Как реализовать автономную прошивку ESP32 (без компьютера и сети)?

Есть у меня самоделка на ESP32, которая находится в труднодоступном месте (под крышей дома, чтобы добраться надо лестницу приставлять и лезть). У ESP-хи есть вайфай, она запрограммирована так что ждет команды от сервера в инете, и при получении определенной команды обновляется через ОТА. Штатно конечно все работает.
Проблемы начинаются если прошивка по какой-то причине сорвалась, интернет ли сбойнул, или питание.
Тогда ЕСП с сбойной прошивкой уходит в бутлуп, приходится лезть, снимать, нести к компу и прошивать через кабель.
Вопрос, возможно ли создать какое-то несложное устройство на базе другой платы, которая будет мониторить состояние первой платы, и если с ней что-то не так (к примеру перестала выдавать какой-нибудь счетчик через сериал) вторая плата автоматически ее прошивает простенькой прошивкой с ОТА?
  • Вопрос задан
  • 309 просмотров
Решения вопроса 1
softmart
@softmart
Разработчик
В ESP32 все это реализовано в поставляемой библиотеке - https://docs.espressif.com/projects/esp-idf/en/lat...

Но на то что там реализовано я бы не надеялся, надежнее реализовать самому. Держать две копии прошивки, при неудачном обновлении загружать предыдущую.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Zhivoi Автор вопроса
App Rollback - работает.
В конфиге надо включить опцию CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE
Далее в прошивке делаем некий анализатор, к примеру успешное подключение к вайфай и передачу данных, и вызываем функции:
Если все ок - esp_ota_mark_app_valid_cancel_rollback() и прошивка становится валидной.
Если же прошивка работает неправильно, достаточно просто перезгрузки или esp_ota_mark_app_invalid_rollback_and_reboot() и она более не грузится, грузится предидущая.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы