Программирование NodeMCU ESP8266 "по воздуху" (Over-the-Air, OTA)


Беспроводное программирование по технологии OTA (Over the Air – "по воздуху") – это процесс, позволяющий устройствам обновить свою прошивку или программное обеспечение беспроводным способом, без физического подключения к чему-либо. Для этого можно использовать такие технологии как Wi-Fi, Bluetooth, GPRS или 4G/3G вместо использования последовательной связи по проводам. Технология OTA используется для перепрограммирования различных устройств – микроконтроллеров, сотовых телефонов, компьютеров и т.п. В связи с широким распространением технологий интернета вещей технология OTA в настоящее время использует преимущественно частотные диапазоны с низкими скоростями передачи данных (868 MHz, 900 MHz, 2400 MHz).

Внешний вид проекта беспроводного программирования NodeMCU ESP8266 с помощью Arduino IDE

В данной статье мы рассмотрим беспроводное ("по воздуху") программирование платы ESP8266 NodeMCU с помощью Arduino IDE.

ESP8266 NodeMCU

Внешний вид платы NodeMCU ESP8266

NodeMCU – это платформа IoT (интернета вещей) с открытым исходным кодом. Она включает в себя прошивку (firmware), которая работает на дешевом Wi-Fi чипе (SoC) ESP8266 от компании Espressif Systems, и аппаратном обеспечении (hardware), основанном на модуле ESP-12. Она содержит контакты GPIO, SPI, I2C, ADC, PWM, UART и может программироваться с помощью среды Arduino IDE. Плата NodeMCU содержит в своем составе микросхему CP2102, которая обеспечивает преобразование интерфейса USB в логику TTL. Благодаря этому NodeMCU можно подключать напрямую к USB порту компьютера, в то время как обычный модуль ESP8266 можно подключать к USB порту компьютера только при помощи платы (модуля) FTDI.

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

  1. NodeMCU ESP8266 (купить на AliExpress) (Реклама: ООО "АЛИБАБА.КОМ (РУ)" ИНН: 7703380158).
  2. Кабель micro USB.
  3. Arduino IDE.

Подготовка NodeMCU для беспроводного программирования (OTA)

Подключите NodeMCU ESP8266 к компьютеру с помощью кабеля USB cable. Далее, чтобы нам загрузить прошивку в плату с помощью технологии OTA, нам сначала необходимо по кабелю загрузить скетч в NodeMCU ESP8266, который будет генерировать IP адрес – этот скетч в дальнейшем поможет нам осуществить беспроводное программирование платы. Для этого выберите последовательный порт, по которому плата подключена к компьютеру, в пункте меню Tools -> Port.

В среде Arduino IDE есть библиотеки и примеры для работы с модулями ESP8266. В Arduino IDE откройте пример BasicOTA как показано на следующем рисунке.

Открытие примера BasicOTA в Arduino IDE

Внесите изменения в код этого примера, заменив в нем значения параметров “your-ssid” и “your-password” на идентификатор сети и пароль для своей сети Wi-Fi. После этого можете загружать скетч в модуль.

Загрузка примера BasicOTA в плату NodeMCU ESP8266 с помощью Arduino IDE

После успешной загрузки скетча в модуль откройте окно монитора последовательной связи (serial monitor). В окне монитора последовательной связи установите скорость передачи (Baud Rate) равную 115200 и нажмите кнопку сброса (Reset button) на NodeMCU ESP8266. Подключение NodeMCU ESP8266 к сети Wi-Fi займет некоторое время поскольку при этом проверяются идентификатор сети и пароль на вход в нее. После успешного подключения модуля к сети Wi-Fi его IP адрес отобразится в окне монитора последовательной связи.

Отображение IP адреса платы NodeMCU ESP8266 в окне монитора последовательной связи

Объяснение программы для модуля ESP8266

Полный код программы для мигания светодиодом при помощи технологии OTA приведен в конце статьи, здесь же мы кратко рассмотрим его основные фрагменты.

Первым делом в программе подключим используемые библиотеки. Библиотека ESP8266WiFi.h содержит функции (операции) для работы с Wi-Fi, которые потребуются ему для соединения с сетью. Также она содержит методы и свойства для работы модуля ESP8266 в режиме станции или в режиме точки доступа. Библиотека ESP8266mDNS.h позволяет скетчу отвечать на широковещательные DNS запросы.

Инициализируем переменные для хранения идентификатора сети (SSID) и пароля (password) Wi-Fi сети, к которой будет подключаться наш модуль ESP. Для работы нашего проекта необходимо чтобы компьютер и модуль ESP были подключены к одной и той же сети.

Для модуля ESP8266 установим режим работы в качестве станции сети Wi-Fi. При подключении к сети Wi-Fi будут проверяться идентификатор сети и пароль. Если они корректны, то произойдет подключение к сети Wi-Fi, если они не корректны, то модуль ESP8266 будет перезагружаться каждую секунду.

IP адрес модуля ESP8266 будет выводиться в окно монитора последовательной связи когда модуль подключится к сети Wi-Fi. Для определения IP адреса модуля ESP8266 будет использоваться функция WiFi.localIP().

После успешной загрузки кода программы в модуль откройте монитор последовательной связи на скорости 115200 бод. Нажмите кнопку сброса на модуле и спустя несколько секунд вы увидите IP адрес модуля ESP8266 в окне монитора последовательной связи. После этого вы получите возможность беспроводной загрузки прошивки (программного обеспечения) в модуль ESP8266.

Беспроводная загрузка скетча мигания светодиодом в NodeMCU ESP8266

Перед загрузкой следующего скетча в модуль зайдите в пункт меню Tools в Arduino IDE и в нем измените PORT на IP адрес модуля ESP8266 – это нам понадобится для беспроводной загрузки прошивки (программного обеспечения) в NodeMCU.

Переключение на IP адрес модуля ESP8266 в Arduino IDE

После этого загрузите ниже приведенный скетч для мигания светодиодом в NodeMCU беспроводным способом с помощью Arduino IDE. Перед этим убедитесь в том что ваш компьютер и модуль ESP8266 подключены к одной и той же Wi-Fi сети, а модуль Wi-Fi запитан от отдельного источника питания.

После успешной загрузки скетча светодиод на плате NodeMCU ESP8266 начнет мигать каждую секунду. Вы также можете установить имя хоста (host name) и пароль в скетче в целях безопасности, пока загружаете прошивку в ESP8266.

Тестирование работы загруженного скетча мигания светодиодом

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

Источник статьи

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

Комментарии

Программирование NodeMCU ESP8266 "по воздуху" (Over-the-Air, OTA) — 4 комментария

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *