• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Обсуждение Выбор актуального dev-кита для нового проекта

Shara

New member
Вопрос, пожалуй, к тем, кто достоточно повозился с esp8266, чтобы составить мнение о всех вариантах разработки под данный МК. Что посоветуете использовать для нового, сложного, но неспешного собственного проекта в области IoT? Интерпретаторы я сразу отсекаю как лишние слои абстракции, отъедающие драгоценные такты и возводящие количество багов в степень. Остаются варианты - официальный SDK против самодельных сборок.

Имеется небольшой опыт разработки под stm32 на регистрах с использованием CMSIS, без SPL/HAL, битовых операций не боюсь.

Насколько я понимаю, Espressif до сих пор не открыли ядро, а официальные SDK развиваются быстро, но написаны криво и имеют множество багов. Однако, любительские наборы поддерживаются хуже и зачастую забрасываются.

Насколько юзабельна ветка официального SDK с RTOS? Я полагаю, лучше взять его, нежели городить огород из прерываний?

Насколько пригоден к использованию проект pvvx с обнадёживающим название "свалка"?

Имеет ли смысл использовать стандартные библиотеки или лучше написать простые собственные обёртки для управления регистрами?

Вопросов много, излагаю немного сумбурно, но все их свести можно, к одному — "С чего начать, если нужно не помигать диодом, не скостылить временное решение, а сделать продукт?"
 

pvvx

Активный участник сообщества
Зависит от того, что считается за "продукт"?
Оф. SDK NONOS и RTOS не позволяет многое сделать. Например достичь минимального потребления (выбор что загружать и сколько ресурсов и времени уйдет на загрузку + лишний заполнители памяти ненужными функциями и их буферами) и/или управлять периферией. Так-же не поддерживает множественные одновременные соединения TCP/UDP и другие ограничения в espconn.
Всё, что возможно с учетом сказанного, уже написано и как-то работает...
"Свалка" - это просто куча примеров, наслоения накоплений по мере роста SDK и максимально разчлиненный SDK с исходными кодами для инициализации библиотек NONOS SDK, с заменой на исходники того, что было необходимо ускорить или исправить.
За пять минут не впишитесь - help-a нет и не будет, т.к. help-ом являются исходники.
 
Последнее редактирование:

Shara

New member
Спасибо за ответ, наверное поэтому очень мало где в IOT встречается esp, кроме поделок любителей и китайцев. Под продуктом я подразумеваю законченное устройство, работа которого предсказуема и на которое можно положиться, а не игрушку, собранную из говна и палок по принципу сделал чтобы работало и поскорей забыл.
 

NutsXXXL

New member
@Shara официальный SDK это таже поделка к которой еще надо компилятор прикрутить самому
если есть навыки работы с gnu то можно сделать свою сборку (я так и сделал)
в целом только в UDK компилятор и sdk и eclipse и примеры склеены вместе
@pvvx на основе UDK творит вещи весьма высокого уровня, переколхозя стандартные библиотеки и вообще глубоко закопаясь
плюс Arduino IDE - в нем тот же компилятор + библиотеки в единой сборке, но опять же как бы любительская сборка, но с довольно низким уровнем вхождения
подозреваю что много "продуктов" на самом деле сделано на основе таких же поделок,
иногда это всплывает :)
----------
в целом программистское сообщество помогает допилить многие железки в каких то местах до уровня недоступного самим разработчикам
если хочется все серьезнее - Ti CC3200 стоит раза в 3 дороже, но все по "взрослому"
Atmel в принципе серьезный модуль родила
virt2real еще есть но как то дышит , BlackSwift совсем не дышит..
но и то надо посмотреть насколько там раскрутились, при поддержке сообщетва ;)
 
Последнее редактирование:

Shara

New member
Компилятор я прикрутил, SDK работает, просто имею некоторые опасения относительно качества библиотек и стабильности разработок сумеречного китайского гения (особенно, если учесть, что стоковая прошивка модулей с завода вообще оказалась неработоспособной). Относительно работы @pvvx смущает отсутсвие "протоптанных дорожек" к RTOS, всё же когда у тебя на камне крутится такая важная штука, как WiFi, хочется изолировать работу с ним в отдельный процесс. В общем, буду думать-ковырять.
 

pvvx

Активный участник сообщества
смущает отсутсвие "протоптанных дорожек" к RTOS, всё же когда у тебя на камне крутится такая важная штука, как WiFi, хочется изолировать работу с ним в отдельный процесс.
В RTOS этого тоже нет. WiFi работает по прерываниям (по событиям). RTOS тоже - по событию таймера и уменьшает ресурсы, да имеет лицензионные ограничения для "продукт".
Система переключения задач с единым стеком (для уменьшения потребления ресурсов) в web-свалке есть, но не используется, т.к. всё организуется по событиям. Иначе не реализовать максимальный режим sleep у WiFi для уменьшения потребления и скоростные характеристики (время отклика и прочее). В 21-ом веке никто не использует main_loop() для одноядерного МСU c ограниченными ресурсами.

Основная беда у ESP - это подход китайцев к SDK. В нем нет разделения процессов - там мешанина из крупных либ и они глубоко переплетены с ненужным для многих задач хламом. Т.е. там нет отдельной части WiFi и вы не можете это изменить. Проект "Hello world" будет содержать все переплетенные либы китайцев с затратами не менее 300 килобайт flash и 2/3 ram.
В итоге на текущих китайских SDK от Espressif на ESP вы получаете закрытый WiFic 90% хламу в нагрузку (и тоже закрытого – без исходников). Модули от других производителей дают отдельные, не пересекающиеся либы с полной документацией и у вас есть выбор, какие части использовать. По этой причине ESP не является перспективной для какой-либо разработки. Вам завтра Espressif, в новой SDK, исправив очередной малый баг в нужной вам части, впихнет ещё мегабайты ненужного кода и вы не сможете их откинуть.
 
Последнее редактирование:

NutsXXXL

New member
@pvvx кстати в связи с этис еще более интерено стало зачем нужен проект с 485 и modbus - это же вероятно вопрос производтвенного масштаба
@Shara багов бояться - ide не запускать :)
если работает то работает. глюки к сожалению и у разработок серьзных контор бывают. а если дело настолько серьезное то и подход должен быть посерьезнее..
 

pvvx

Активный участник сообщества
@pvvx кстати в связи с этис еще более интерено стало зачем нужен проект с 485 и modbus - это же вероятно вопрос производтвенного масштаба
Угу - для домашнего питомника и подключения детям всяких датчиков на 485-modbus контроллерах... Для творчества...
Кто бы помог другие проекты нарисовать... У меня времени на "раскраску" HTML и описаний нет.
Для производственного проекта там надо выкидывать к 70% всякого и вставлять ещё около 5% другого кода, что детям не надо.
 
Сверху Снизу