ESP, IoT Билли-Релешка: ESP32/ESP8266 "на пальцах"

Erling

✩✩✩✩✩✩✩
25 Янв 2023
3
3
Всем привет.

Давно хотел сделать что-то вроде “ESP101”, то есть Arduino-проект на базе модулей ESP32/ESP8266, к которому прикручены максимальное количество простых каналов коммуникации (с возможностью их настройки) и возможность управлять простой (ВКЛ./ВЫКЛ.) нагрузкой.

Билли-Релешка это:
простая передача команд по UART, “голому” TCP, HTTP и Bluetooth Classic (там, где он есть);
унифицированная обработка команд, поступающих по различным каналам коммуникации;
наличие базовой веб-морды;
возможность управления через сервер в локальной сети или в Интернете (правда, этот сервер придётся развернуть, но в описании Билли есть ссылка на подходящий проект для Linux);
подробные и структурированные комментарии;
модульная структура кода, благодаря чему скетч удобно модифицировать и дополнять;
совместимость с любой (вроде бы) платой ESP32/ESP8266, поддерживаемой в соответствующем ядре Arduino;
простая пред-compile-time настройка в одном заголовочном config-файле;
простая runtime-настройка каналов коммуникаций с помощью AT-команд;
подробный вывод статуса устройства через UART и другие каналы коммуникации.

Надеюсь, ссылки на GitHub достаточно для корректного оформления поста, поскольку файлов многовато, чтобы выкладывать сюда код из каждого. Пытался на всякий случай выложить напрямую код из основного файла (.ino), но форум ругается на превышение лимита в 30 000 символов.

Проект представляет собой абстрактную реализацию и не имеет привязки к конкретному изготовленному мной аппарату, но для красоты пусть будет фото пары моих устройств, работающих на этой прошивке:

111.png222.png333.jpg
 

vortigont

★★★★★★✩
24 Апр 2020
1,022
542
Saint-Petersburg, Russia
А вы молодец!
Ваш проект образец того как надо оформлять код новичку (да и чего уж греха таить, не только новичку). Структурирован и прокомментирован, хотя сам код весьма простенький. И добавьте уж UDP тогда если ориентируетесь на низкоуровневые протоколы.
Это #ifndef THIS_IS_ESP8266 #ifdef THIS_IS_ESP32 уберите, есть определения предоставляемые самим ардуино ядром о том какая платформа используется - #ifdef ESP32, #ifdef ESP8266
 
  • Лойс +1
Реакции: biakss

Erling

✩✩✩✩✩✩✩
25 Янв 2023
3
3
А вы молодец!
Ваш проект образец того как надо оформлять код новичку (да и чего уж греха таить, не только новичку). Структурирован и прокомментирован, хотя сам код весьма простенький.
Спасибо на добром слове, очень приятно)

Это #ifndef THIS_IS_ESP8266 #ifdef THIS_IS_ESP32 уберите, есть определения предоставляемые самим ардуино ядром о том какая платформа используется - #ifdef ESP32, #ifdef ESP8266
И ещё одно спасибо за отличный совет, теперь переключаться между ESP32 и ESP8266 в Arduino IDE стало проще.
 
  • Лойс +1
Реакции: vortigont