Режим 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=123Template_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