Программирование ESP32 "по воздуху" (Over-the-air) с помощью Arduino IDE


Технология программирования "по воздуху" (Over the Air, OTA) доступна для микроконтроллеров ESP32 и ESP8266, имеющих поддержку WiFi. Данная технология позволяет обновлять их прошивку или загружать в них новую программу беспроводным способом, без всякого физического контакта с ними. Эта технология особенно полезна в случаях, когда модуль жестко закреплен в каком-нибудь устройстве и подключение кабеля к нему затруднено или физически невозможно. Технология беспроводного программирования OTA широко востребована в различных проектах интернета вещей (IoT) и применяется для удаленного обновления программного обеспечения подключенных к сети интернет устройств.

Внешний вид проекта программирование ESP32 "по воздуху" (Over-the-air) с помощью Arduino IDE

Ранее на нашем сайте мы рассматривали беспроводное программирование платы ESP8266 NodeMCU, в этой же статье мы рассмотрим программирование модуля ESP32 "по воздуху" (Over-the-air) с помощью Arduino IDE.

Необходимые компоненты

  1. Модуль ESP32 (купить на AliExpress).
  2. Arduino IDE.

Внешний вид собранной конструкции проекта

Как работает программирование "по воздуху" (OTA)

Для того чтобы иметь возможность программирования модуля ESP32 "по воздуху" (Over-the-air) сначала в него необходимо через последовательный порт загрузить специальный скетч, который содержит HTML код программы OTA Web Updater. Когда этот скетч будет загружен в модуль ESP32, он создаст веб-сервер, с помощью которого можно будет выбрать и загрузить новый скетч через веб-браузер.

Для загрузки этого специального скетча, содержащего OTA Web Updater, подключите модуль ESP32 к компьютеру/ноутбуку с помощью кабеля, откройте Arduino IDE, выберите в ней тип платы (Board Type) ESP32 Dev Kit и выберите COM порт, к которому подключен модуль.

Затем откройте пример File > Examples >ArduinoOTA> OTAWebUpdater.

Открытие примера в Arduino IDE для беспроводного программирования модуля ESP32

Измените в нем имя и пароль для сети Wi-Fi на их значения для своей сети Wi-Fi.

Загрузите код этого примера в модуль ESP32. После успешной загрузки кода в модуль откройте окно монитора последовательной связи (serial monitor). Измените в нем бодовую скорость (Baud Rate) и нажмите кнопку сброса (Reset button) на модуле ESP32 – после этого в окне монитора последовательной связи вы должны увидеть IP адрес модуля ESP32.

Определение IP адреса модуля ESP32

Затем откройте браузер в вставьте в его адресную строку IP адрес модуля ESP32. После этого в браузере у вас должно открыться окно веб-сервера технологии OTA (программирования "по воздуху") как показано на рисунке ниже.

По умолчания имя пользователя (Username) и пароль (Password) в этом окне равны admin.

Окно ввода имени пользователя и пароля

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

Вкладка в браузере, с которой можно загружать новый код программы в модуль

В данной программе мы загрузим в модуль простую программу мигания светодиодом. Учтите, что каждая программа, которую вы будет загружать в модуль ESP32 "по воздуху", должна содержать в себе специальный код технологии OTA. Поэтому добавьте код программы мигания светодиодом в код примера OTA, который вы открыли ранее. Полный код необходимой программы вы можете посмотреть в конце данной статьи.

Сохраните код вашей программы под новым именем и в Arduino IDE выберите пункт Sketch > Export compiled Binary. После этого создастся новый бинарный файл (с расширением .bin) в каталоге, в котором находится ваш скетч.

Созданный бинарный файл для беспроводной загрузки программы в модуль ESP32

После этого вернитесь на веб-страницу OTA, на ней нажмите на кнопку ‘Choose File’ и выберите свой файл с расширением .bin. После этого нажмите на кнопку ‘Update’ чтобы загрузить ваш скетч в модуль ESP32. На этом загрузка программы в модуль ESP32 "по воздуху" будет закончена.

Исходный код программы (скетча)

(Проголосуй первым!)
Загрузка...
949 просмотров

Добавить комментарий

Ваш адрес email не будет опубликован.