ESP8266 Загрузка скетчей по WiFi

Загрузка скетчей по WiFi:

Для загрузки скетчей в платы ESP8266 по WiFi, в них должен быть загружен скетч «BasicOTA» (Basic Over The Air - основной по воздуху). А уже к этому скетчу Вы можете добавлять свой код. Это значит что в коде loop() Вашей программы, обязательно должна присутствовать строка ArduinoOTA.handle(), а в коде setup() должны присутствовать функции инициализации и настройки работы с WiFi и OTA.

Откройте скетч «BasicOTA» из примеров, выбрав пункт меню «Файл» > «Примеры» > «ArduinoOTA» > «BasicOTA».

Отредактируйте строки констант «ssid» и «password» указав имя Вашей WiFi сети и пароль к ней. При желании измените скорость передачи данных в монитор последовательного порта «Serial.begin(115200)» на «Serial.begin(9600)» (часто используемая скорость для плат Arduino), или на «Serial.begin(74880)» (скорость на которой микроконтроллер ESP8266 отправляет отладочную информацию при старте).

Загрузите скетч «BasicOTA» в плату по USB порту.

Теперь, если плата подключилась к Вашей WiFi сети, то в пункте меню «Инструменты» > «Порт», к списку «Последовательные порты» должен добавиться список «Сетевые порты».

Если сетевые порты не появились, закройте и откройте окно «Arduino IDE», при работающей плате

Попробуем загрузить новый скетч по WiFi:

Измените скетч «BasicOTA» добавив к нему строки кода из скетча «Blink», как это показано на рисунке. На рисунке изображён скетч без вывода данных в монитор последовательного порта и с указанием плате нового сетевого имени «My First ESP», оно отобразится среди сетевых портов после загрузки скетча в плату.

Плату можно оставить подключённой к USB порту компьютера (для получения питания) или, если у Вас есть другой источник питания (на 5 В или 3,3 В), то отключить плату от USB порта компьютера и подключить к этому источнику питания.

Выберите сетевой порт для загрузки скетча из меню «Инструменты» > «Порт» > «esp8266-ID at IP» (вместо ID и IP будут указаны ID чипа и присвоенный ему IP-адрес).

Если у Вас на компьютере ранее была установлена программа «Python» (язык программирования) версии 2.7.X и папка этой программы указана в списке путей каталогов исполняемых файлов. То скетч загрузится без ошибок.

Если у Вас нет программы «Python» версии 2.7.X То скетч выдаст ошибку «Cannot run program "python.exe": CreateProcess error=2, Не удаётся найти указанный файл».

Значит для загрузки скетчей в плату по WiFi, Вам сначала придётся установить программу «Python» версии 2.7.X (о том как это сделать написано в следующей главе данной статьи).

После установки программы «Python» можно приступать к загрузке скетчей по WiFi.

Теперь, даже если плата находится в труднодоступном месте, это не станет помехой для обновления скетчей.

Имя сетевого порта, который нужно выбрать для загрузки скетчей по WiFi, по умолчанию «esp8266-ID at IP» - это имя хоста (имя платы). Но его можно менять в скетче (см. картинку на шаге 4, где имя платы меняется на «My First ESP»). Указывать своё имя платам удобно, если у Вас работают сразу несколько плат подключённых к одной сети WiFi.

Установка программы Python 2.7.X:

Данную программу нужно установить т.к., на момент написания данной статьи, «Arduino IDE» обращается к её ресурсам при загрузке скетчей по WiFi. Возможно что в следующих версиях «Arduino IDE» или сборки «esp8266 by ESP8266 Community», необходимые команды будут интегрированы и установка «Python» не понадобится.

Перейдите на сайт www.python.org и скачайте дистрибутив программы «Python» версии 2.7.X нажав на кнопку «Download Python 2.7.X».

Запустите скаченный дистрибутив и следуйте инструкциям.

На шаге выбора устанавливаемых компонентов программы, разрешите прописать путь к папке с файлом python.exe в список путей каталогов исполняемых файлов, выбрав пункт «Will be installed on local hard drive».

Продолжите установку.

После установки «Python», перед загрузкой скетчей из «Arduino IDE» по WiFi, нужно закрыть все окна «Arduino IDE» (если они были открыты).

При первой загрузке скетча по WiFi возможно появление окна «Брандмауэра Windows» (определившего попытку «Python» войти в сеть), в котором нужно нажать на кнопку «Разрешить доступ».

Если у Вас не появляются сетевые порты после загрузки скетча «BasicOTA», попробуйте выполнить следующие действия:

  • Откройте монитор последовательного порта на скорости указанной в скетче (если Вы её не меняли, то 115000 бод). В мониторе должна появиться строка «IP address: » и адрес присвоенный плате. Если эта строка не появляется, или появляются строки «Connection Failed! Rebooting...», значит плата не может подключиться к вашей сети WiFi, проверьте указанные в скетче имя сети (константа «ssid») и пароль (константа «password»), а так же настройки роутера.
  • Если плата подключилась к WiFi и получила IP-адрес. Откройте командную строку («Пуск» > «Служебные - Windows» > «Командная строка») и выполните команду «ping адрес», указав полученный платой IP-адрес. Если запросы не проходят, то проверьте настройки своей сети.
  • Если плата подключилась к WiFi, получила IP-адрес и команда ping проходит, то закройте и откройте окно Arduino IDE не отключая питание платы.
  • В некоторых случаях помогает отключение VPN и антивирусных программ.