Итак, я пытаюсь реализовать способ OTA для одновременного обновления около 100 устройств. Я много раз гуглил и всегда видел, что у вас запущен веб-сервер и вы загружаете файл .bin на само устройство, а затем прошиваете этот файл на устройство.
Это нормально, если у вас есть только 1-5 устройств, а не когда у вас есть сотни граничных устройств, которые вам нравятся, не имеют доступа к ним физически и / или через локальный IP-адрес (поскольку они находятся по всей стране).
У них есть доступ в Интернет и они общаются с сервером через MQTT, но мы также можем выполнять некоторые вызовы API.
Основная цель, которую я хочу достичь, заключается в следующем:
ESP загружается с каким-то прошитым загрузчиком, который посещает заранее определенный адрес сервера в загрузчике. Ответ - это двоичный файл, который должно запустить пограничное устройство. Бинарный файл загружается в ОЗУ устройства (или, если необходимо, на SD-карту или другую флеш-память). Когда двоичный файл загружается, он запускается НЕ ЗАПИСЫВАЕТСЯ НА УСТРОЙСТВО. Я хочу, чтобы когда я беру устройство и хочу реконструировать бинарный файл, я могу реконструировать только загрузчик, а не основной код, который будет извлечен с сервера.
Таким образом, основные вопросы;
- Это вообще возможно? (Я делаю специальную плату, чтобы при необходимости на ней можно было разместить множество специальных компонентов)
- Как мне это сделать? Я вообще не могу понять, как это происходит тогда
- я что-нибудь упускаю?
Спасибо!