цифровая электроника
вычислительная техника
встраиваемые системы

 
» » Быстрая и удобная настройка ESP8266 и ESP32 с помощью ColdBoot

Быстрая и удобная настройка ESP8266 и ESP32 с помощью ColdBoot

Автор: Mike(admin) от 18-05-2020, 11:35

Когда вы развертываете сотни устройств в рамках проекта Интернета вещей (IoT), возникает вопрос, как подключить их к сети заказчика и предоставить на устройство последнюю специальную прошивку.


Быстрая и удобная настройка ESP8266 и ESP32 с помощью ColdBoot

Проблема в том, что вы не знаете, где и когда устройство будет впервые загружено. Устройство не будет знать параметры WiFi, и его прошивка может быть устаревшей. Вот здесь-то ColdBoot приходит на помощь.


ColdBoot (github.com/arkhipenko/EspColdBoot) – это предварительно скомпилированная прошивка для микроконтроллера ESP8266 или ESP32, способная быстро собирать от конечного пользователя через простую веб-форму параметры WiFi (SSID и пароль) , URL последней версии файла конфигурации и URL-адрес сервера обновлений OTA.


Основная задача ColdBoot – получить доступ к Wi-Fi и максимально быстро и легко установить последнюю версию прошивки для конкретного устройства. ColdBoot предоставляет пошаговые инструкции через окно терминала, подключенное к USB или последовательному порту (настройка 115200 бит/с).


Как использовать ColdBoot? В целом есть два варианта. Вариант 1: загрузка предварительно скомпилированных двоичных файлов непосредственно в чип. Вариант 2. скомпилируйте и загрузите предоставленный скетч. Дополнительно: отредактируйте файл data/config.json и загрузите его в SPIFFS с помощью инструмента загрузки.


ШАГ 1: ПРОЧИТАЙТЕ КОНФИГУРАЦИЮ ИЗ SPIFFS


ColdBoot пытается прочитать файл конфигурации из файловой системы SPIFFS устройства. Файл конфигурации должен называться config.json и находиться в корневой папке. Файл конфигурации представляет собой простой массив JSON и может определять следующие параметры:


  • Title – заголовок веб-формы для сбора параметров от пользователя
  • SSID – SSID сети Wi-Fi
  • Password – пароль сети Wi-Fi
  • Config – URL-адрес файла конфигурации, если параметры должны быть получены из Интернета
  • OTA – URL-адрес HTTP-сервера обеспечения прошивки OTA
  • Fields – количество полей для отображения в веб-форме

Все или подмножество полей могут быть определены здесь файл может повлиять на последующий процесс.


Пример: файл конфигурации содержит заголовок для веб-формы, URL-адрес для последней конфигурации и ограничивает количество полей веб-формы до 2 (SSID и пароль).



{
  "Title"    : "My Amazing IoT device",
  "Config"   : "http://ota.home.lan/esp/config/",
  "fields"   : "2"
}

ШАГ 2: ПОДКЛЮЧИТЕСЬ К WIFI НА ОСНОВЕ КОНФИГУРАЦИИ SPIFFS


Если чтение конфигурации из SPIFFS прошло успешно, есть вероятность, что там были указаны SSID и пароль, поэтому ColdBoot пытается подключиться к WiFi. Если SPIFFS не был доступен или файл orconfig.json был недоступен, шаг 2 пропускается.


ШАГ 3: ПРЕДОСТАВЛЕНИЕ КОНФИГУРАЦИИ ОТ ПОЛЬЗОВАТЕЛЯ


Если устройство смогло подключиться к сети Wi-Fi на шаге 2, этот шаг пропускается. На этом этапе устройство создает точку доступа WiFi и создает простую веб-форму для сбора параметров конфигурации от пользователя. AP SSID является ESP8266-идентификатор устройства или ESP32-идентификатор устройства. Пример: ESP8266-dac26e. Конечный пользователь должен подключиться к точке доступа и перейти к http://10.1.1.1.


Быстрая и удобная настройка ESP8266 и ESP32 с помощью ColdBoot

Полная веб-форма будет выглядеть так.


Быстрая и удобная настройка ESP8266 и ESP32 с помощью ColdBoot

Сокращенная веб-форма, основанная на примере файла config.json шага 1, будет выглядеть следующим образом.


Быстрая и удобная настройка ESP8266 и ESP32 с помощью ColdBoot

Как только пользователь нажимает кнопку «Submit», устройство попытается подключиться к WiFi снова и снова, пока подключение не будет успешно. Устройство перезагрузится через 10 минут бездействия.


ШАГ 4: ПРОЧИТАЙТЕ КОНФИГУРАЦИЮ С HTTP-СЕРВЕРА


Если указан URL-адрес конфигурации, устройство попытается прочитать и проанализировать параметры конфигурации с HTTP-сервера. Здесь есть два варианта. Первый: вы можете указать путь к серверу, на котором хранятся определенные файлы конфигурации для каждого устройства. Второй: вы можете указать путь к файлу конфигурации напрямую (в этом случае несколько устройств могут читать один и тот же файл).


Если указан только путь к папке, ColdBoot добавит идентификатор устройства и версию, поэтому запрашиваемая конфигурация считается уникальной. Например, для идентификатора устройства ESP8266-dac26e URL будет выглядеть следующим образом: http://ota.home.lan/esp/config/coldboot-dac26e-1.0.0.json. (при условии, что http://ota.home.lan/esp/config/ является вашим сервером конфигурации).


Кроме того, вы можете указать прямой URL-адрес файла, например: http://ota.home.lan/esp/config/iotdevice.json. Если ColdBoot определяет, что действительный URL-адрес не предоставлен, этот шаг пропускается как необязательный.


ШАГ 5: ОБНОВЛЕНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ОТ OTA-СЕРВЕРА


На этом этапе ColdBoot предполагает наличие действительного URL-адреса для сервера обновлений OTA. Устройство попытается выполнить обновление прошивки OTA на основе предоставленного URL-адреса. Здесь есть два варианта. Первый: Вы можете указать путь к серверу, на котором хранятся определенные двоичные файлы для каждого устройства. Второй: вы можете указать путь к двоичному файлу напрямую (в этом случае несколько устройств могут обновляться на основе одного файла).


Если указан только путь к папке, ColdBoot добавит идентификатор устройства и версию, поэтому запрашиваемое OTA считается уникальным. Например, для идентификатора устройства ESP8266-dac26e URL будет выглядеть следующим образом: http://ota.home.lan/esp/bin/coldboot-dac26e-1.0.0.bin (при условии, что http://ota.home.lan/esp/bin/ является URL-адресом вашего OTA-сервера). Кроме того, вы можете указать прямой URL-адрес файла, например: http: //ota.home.lan/esp/bin/iotdevice.bin.


ШАГ 6: ПЕРЕЗАГРУЗКА


Если все идет хорошо, шаг 6 не должен быть достигнут, поскольку устройство перезагрузится в конце успешного обновления OTA на шаге 5. Однако в случае сбоя обновления OTA устройство подождет 10 секунд и перезагрузится.




Ниже представлен вывод терминала реального устройства, предоставляемого через ColdBoot. Обратите внимание, что идентификатор приложения изменится на «success» после выполнения прошивки по воздуху (ОТА).



ESP8266 ColdBoot v1.0.0

ESP8266 ID: ESP8266-dac26e

Full Application Version: coldboot-dac26e-1.0.0
---------------------------------------------

STEP 1:

 > Reading configuration file from SPIFFS if present
 > SUCCESS.

STEP 2:

 > Configuration read from SPIFFS:
 > Title	:	ColdBoot Initial Config
 > SSID	:	<your wifi ssid>
 > Password	:	<your wifi password>
 > Config	:	http://ota.home.lan/esp/config/
 > OTA	:	<path to OTA firmware>
 > fields	:	2
 > Current count = 6
 > Current size  = 157

 > Attempting WiFi connection ............................................................ WiFi connection timeout
 > WiFi connection unsuccessful.


STEP 3:

 > Provisioning configuration from the user

	Navigate to  http://10.1.1.1  and fill out the form
	Provide WiFi SSID and password
	as well as URLs for Configuration and/or OTA

 > Bootstrapping SUCCESS.
 > Configuration after Bootstrap:
 > Title	:	ColdBoot Initial Config
 > SSID	:	devices
 > Password	:	********
 > Config	:	http://ota.home.lan/esp/config/
 > OTA	:	<path to OTA firmware>
 > fields	:	2
 > Current count = 6
 > Current size  = 142

 > Attempting WiFi connection .............	WiFi connected
 > IP address: 192.168.122.65
 > SSID: devices
 > mac: 98:F4:AB:DA:C2:6E

STEP 4:

 > Checking if configuration should be read from an HTTP server
 > Attempting to read config from this URL:
   http://ota.home.lan/esp/config/coldboot-dac26e-1.0.0.json
 > SUCCESS.
 > Dictionary after HTTP config:
 > Title	:	ColdBoot Initial Config
 > SSID	:	devices
 > Password	:	********
 > Config	:	http://ota.home.lan/esp/config/
 > OTA	:	http://ota.home.lan/esp/bin/
 > fields	:	2
 > Current count = 6
 > Current size  = 148


STEP 5:

 > Checking for the OTA provisioning URL
 > Attempting OTA Update from this URL:
   http://ota.home.lan/esp/bin/coldboot-dac26e-1.0.0.bin

 ets Jan  8 2013,rst cause:2, boot mode:(3,7)

load 0x4010f000, len 3456, room 16 
tail 0
chksum 0x84
csum 0x84
va5432625
@cp:0
ld
ColdBoot v1.0.0

ESP8266 ID: ESP8266-dac26e
AppVersion: success-dac26e-1.0.0



© digitrode.ru


Теги: ESP8266, ESP32




Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Комментарии:

Оставить комментарий