Перейти к содержимому

Термостат на ESP32 с удаленным управлением. Часть 6. Переход на ESP-IDF 5.0.0

Добрый день, уважаемый читатель! В прошлых статях серии я рассказывал, как собрать и запрограммировать устройство домашней автоматики с удаленным управлением на базе ESP-IDF без использования Arduino, на “голом” ESP-IDF.

Собранное устройство


 

Но, к сожалению, некоторое время назад стали поступать многочисленные сообщения, что проект не компилируется, а выдает кучу ошибок:

Ошибки компиляции проекта

Всё это было связано с тем, что проект был создан для ESP-IDF 4.4.3, а в PlatformIO уже выложили новую версию – ESP-IDF 5.0.0

Изменений в новой версии много, неполный список того, что пришлось исправить и изменить, я уже публиковал здесь: ESP-IDF 5.0.0: что придется исправить в уже работающем проекте

Библиотеки под новую ESP-IDF были адаптированы ещё на прошлой неделе, но… в ESP-IDF 5.0.0 был обнаружен существенный баг, не замеченный разработчиками

Нарвался на проблему c ESP-IDF 5.0.0… В выходные обновился до ESP-IDF 5.0.0, изменений много, пришлось многое переписывать. Времени на хобби, увы, с работой остается не так много. Но с моей стороны уже почти всё готово, и я смогу таки в ближайшее время выложить в своем GitHub-е новый архив с библиотеками под 5-ую версию. Заодно статические буферы для шины I2C прикрутил (их недавно добавили…

Пришлось “возвращать всё взад”. Точнее я сделал универсальную версию библиотек, которая одинаково работает и со старой ESP-IDF 4.4.3, так и с новой ESP-IDF 5.0.0.

Скачать новый архив можно, как обычно, с репозитория GitHub, ветка 03_ESP-IDF_5-0-0 или master:

GitHub – kotyara12/telemeter_dzen: Термостат + охранно-пожарная сигнализацияgithub.com


 

Как установить?

Можно просто скачать только архив с библиотеками, на момент написания статьи это libs_local_20230219.zip. Удалите старые библиотеки из c:\PlatformIO и на их место распакуйте новые. Всё, можно пробовать компилировать.

Если вы еще ничего не успели изменить “под себя” в проекте, можно скачать его целиком.


Что еще поправлено в новой версии библиотек

  • Комнатный сенсор заменил на BME280. Просто потому, что валялся без дела, с уже припаянными проводками. Да и популярнее он будет, чем Sensirion. На фото выше уже он.
  • Добавил статические буферы для шины I2C, это ускорит работу и теоретически снизит фрагментацию оперативной памяти (кучи).
  • Поправил автоматическое переключение на резервный MQTT сервер (не работало, оказывается)

Что делать, если устройство спонтанно перегружается

В этом случае вероятнее всего, у вас проявился тот же баг, что и у меня – в localtime_r(). В этом случае придется откатиться на ESP-IDF 4.4.3. Это просто, в platformio.ini измените строчку framework с указанием конкретной версии:

Термостат на ESP32 с удаленным управлением. Часть 6. Переход на ESP-IDF 5.0.0

Откат на предыдущую версию

Больше ничего делать не требуется, VSCode сам скачает новую-старую версию ESP-IDF при первой компиляции. Но, вероятно, придётся “очистить” проект (выполнить команду Clean).


 

Большая просьба

Если заметите проблему в коде, большая просьба – создайте issue в репозиторий. Так меньше шансов, что я её пропущу или забуду. Потому что все равно я переношу баги туда, но уже самостоятельно. Но и комментарии сюда задублировать не помешает (для активности).

 

Все статьи цикла “Термостат и ОПС”:

Прошивка K12 для ESP32 и ESP-IDF:

Дополнительные статьи, которые применимы к любым устройствам, запрограммированным с помощью тех же самых библиотек.

 

💠 Полный архив статей вы найдете здесь


Пожалуйста, оцените статью:
[ 0 из 5, всего 0 оценок ]

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *