• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе 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% другого кода, что детям не надо.
 
Сверху Снизу