Добрый день, уважаемый читатель! В прошлых статях серии я рассказывал, как собрать и запрограммировать устройство домашней автоматики с удаленным управлением на базе ESP-IDF без использования Arduino, на "голом" ESP-IDF.
Но, к сожалению, некоторое время назад стали поступать многочисленные сообщения, что проект не компилируется, а выдает кучу ошибок:
Всё это было связано с тем, что проект был создан для ESP-IDF 4.4.3, а в PlatformIO уже выложили новую версию - ESP-IDF 5.0.0
Изменений в новой версии много, неполный список того, что пришлось исправить и изменить, я уже публиковал здесь:
Библиотеки под новую ESP-IDF были адаптированы ещё на прошлой неделе, но... в ESP-IDF 5.0.0 был обнаружен существенный баг, не замеченный разработчиками
Пришлось "возвращать всё взад". Точнее я сделал универсальную версию библиотек, которая одинаково работает и со старой ESP-IDF 4.4.3, так и с новой ESP-IDF 5.0.0.
Скачать новый архив можно, как обычно, с репозитория GitHub, ветка 03_ESP-IDF_5-0-0 или master:
Как установить?
Можно просто скачать только архив с библиотеками, на момент написания статьи это libs_local_20230219.zip. Удалите старые библиотеки из c:\PlatformIO и на их место распакуйте новые. Всё, можно пробовать компилировать.
Если вы еще ничего не успели изменить "под себя" в проекте, можно скачать его целиком.
Что еще поправлено в новой версии библиотек
- Комнатный сенсор заменил на BME280. Просто потому, что валялся без дела, с уже припаянными проводками. Да и популярнее он будет, чем Sensirion. На фото выше уже он.
- Добавил статические буферы для шины I2C, это ускорит работу и теоретически снизит фрагментацию оперативной памяти (кучи).
- Поправил автоматическое переключение на резервный MQTT сервер (не работало, оказывается)
Что делать, если устройство спонтанно перегружается
В этом случае вероятнее всего, у вас проявился тот же баг, что и у меня - в localtime_r(). В этом случае придется откатиться на ESP-IDF 4.4.3. Это просто, в platformio.ini измените строчку framework с указанием конкретной версии:
Больше ничего делать не требуется, VSCode сам скачает новую-старую версию ESP-IDF при первой компиляции. Но, вероятно, придётся "очистить" проект (выполнить команду Clean).
Большая просьба
Если заметите проблему в коде, большая просьба - создайте issue в репозиторий. Так меньше шансов, что я её пропущу или забуду. Потому что все равно я переношу баги туда, но уже самостоятельно. Но и комментарии сюда задублировать не помешает (для активности).
В следующей статье планирую вкратце рассказать про структуру проекта.
_______________
На этом пока всё, до встречи на сайте и на dzen-канале!
👍 Понравилась статья? Поддержите канал лайком или комментарием! Каналы на Дзене "живут" только за счет ваших лайков.
📌Подпишитесь на канал и вы всегда будете в курсе новых статей.