Режим OTA
Режим OTA (Over-the-Air - Обновление по воздуху)
Как это работает?
Вам нужно использовать обычный скетч для экспортированных приложений ;
После того, как вы запустили свое оборудование, вы готовы к OTA;
Вы можете запустить обновление прошивки для конкретного оборудования с помощью его токена или для всего оборудования.
Поток
Пользователь с правами администратора запускает OTA с помощью одного из HTTPS-запросов;
Пользователь предоставляет в HTTPS-запросе учетные данные администратора и двоичный файл встроенного ПО для обновления оборудования;
Когда оборудование подключается к серверу - сервер проверяет его прошивку. В случае, если дата сборки прошивки оборудования отличается от загруженной прошивки, сервер отправляет аппаратному обеспечению специальную команду с URL-адресом новой прошивки;
Получение URL-адреса новой версии прошивки с помощью обработчика:
BLYNK_WRITE(InternalPinOTA) { // Получение ссылки на файл прошивки // Пример: http://localhost:8080/static/ota/FUp_2441873656843727242_upload.bin overTheAirURL = param.asString(); ... }
Оборудование загружает новую прошивку и начинает обновление
Примеры команд
Запустить обновление для конкретного оборудования
curl -v -F file=@Template_ESP8266.ino.nodemcu.bin --insecure -u [email protected]:admin https://localhost:9443/admin/ota/start?token=123
Template_ESP8266.ino.nodemcu.bin
- относительный (или полный) путь к вашей прошивке;--insecure
флаг для серверов с самогенерируемыми сертификатами. Вам не нужен этот флаг, если вы использовали Let's Encrypt или другие доверенные сертификаты;[email protected]:admin
учетные данные администратора на вашем сервере. Это значения по умолчанию. Форматusername:password
. Вы можете изменить его вserver.properties
файле;token
— это идентификатор вашего оборудования, к которому вы хотите применить обновление прошивки. ;
Запустить обновление всех устройств
Обновление для всех устройств будет запущено только при их подключении к локальному серверу.
curl -v -F file=@Template_ESP8266.ino.nodemcu.bin --insecure -u [email protected]:admin https://localhost:9443/admin/ota/start
В этом случае OTA сработает сразу после подключения устройства к серверу. Если устройство подключено к сети, обновление прошивки будет инициировано только после повторного подключения устройства.
Запустить обновление для конкретного пользователя
В этом случае обновление прошивки будет запущено для всех устройств указанного пользователя.
curl -v -F file=@Template_ESP8266.ino.nodemcu.bin --insecure -u [email protected]:admin https://localhost:9443/admin/ota/[email protected]
Запустить обновление для конкретного проекта пользователя
В этом случае обновление прошивки будет запущено для всех устройств указанного пользователя в рамках указанного проекта.
curl -v -F file=@Template_ESP8266.ino.nodemcu.bin --insecure -u [email protected]:admin https://localhost:9443/admin/ota/[email protected]&project=123
Остановить обновление
curl -v --insecure -u [email protected]:admin https://localhost:9443/admin/ota/stop
Как собрать прошивку
Для того, чтобы собрать прошивку в Arduino IDE - зайдите в меню: Скетч -> Экспорт бинарного файла.
ВНИМАНИЕ: ESP8266 сейчас принимает прошивку только через HTTP, а не HTTPS.
Last updated