Как запрограммировать nodeMCU через OTA с помощью GPRS?
Я использую NodeMCU в одном из своих проектов. Установка находится в удаленном месте. В этом месте нет Wi-Fi, поэтому я использую GPRS (GSM SIM800V) для сбора данных датчиков на свой сервер. Прямо сейчас мне нужно обновить мою новую прошивку до этого NodeMCU.
Возможна ли OTA через GPRS (GSM SIM800V)?
@Pitchai Muthu, 👍1
Обсуждение1 ответ
Да, это возможно, но с вашей стороны потребуется определенная работа.
Недавно мне пришлось внедрить обновления OTA для ESP32 по каналу RS-485, и на самом деле это довольно просто. Трудная часть (для вас) — это коммуникационное соединение.
Выполнение обновления (при условии, что флэш-память уже разбита на разделы и правильно настроена для обновлений OTA) — это случай «запуска» обновления, передачи диспетчеру обновлений данных флэш-памяти, а затем «завершения» обновления:
Update.begin(size)
— запускает процесс обновления. На этом этапе вам необходимо указать ожидаемый размер флэш-данных.Update.write(*data, length)
— передать блок флэш-данных программе обновления для записи. Альтернативой является чтение непосредственно из классаStream
, который попытается прочитать количество байтов, указанное в параметреsize
, дляbegin
.< /li>Update.end()
— это завершит все это и переключит загрузчик на загрузку с новой флэш-памяти. Если он работал нормально, он вернетtrue
, в противном случае он вернетfalse
.
Предполагая, что вышеописанное сработало, вы не можете сбросить плату с помощью ESP.restart()
Для дополнительной безопасности вы также можете передать хеш MD5 данных в Update.setMD5(md5)
, и программа обновления проверит, соответствуют ли загруженные данные этому хешу MD5.
Конечно, все это необходимо реализовать в вашей программе, работающей на целевом устройстве, до того, как вы попытаетесь выполнить какие-либо обновления OTA. И, конечно же, вам нужно организовать фактический канал обновления, чтобы в первую очередь доставлять команды и данные к цели.
Итак:
- Реализовать метод получения данных для цели
- Реализовать код программы обновления
- Перейдите к устройству и обновите прошивку.
- С этого момента вы сможете использовать обновления OTA через выбранный вами механизм.
- Реализовать связь Visible Light с помощью Arduino
- SIM800L GSM-модуль, нет сигнала сети RSSI
- Скетч мигания ESP8266 не мигает светодиодом
- Почему я не могу прочитать другие смс, кроме первого смс?
- nodeMCU — 2 цикла одновременно — один непрерывно, второй каждые 10 секунд.
- Новый код приводит к звуковому шуму
- Будет ли этот скетч в конечном итоге неудачным из-за проблемы с целочисленным ограничением?
- Можно ли использовать GSM и Data Logger Shield одновременно на одном Arduino?
https://arduino-esp8266.readthedocs.io/en/latest/ota_updates/readme.html#http-сервер, @Juraj