Первое включение, настройка среды, первая программа WEMOS

Первое включение:

Платы WEMOS D1 mini / WEMOS D1 mini Pro имеют много общего: они оснащены микроконтроллером ESP8266 с интерфейсом Wi-Fi, имеют одинаковое расположение и назначение выводов, подключаются к компьютеру через WiFi или USB порт. К основным отличиям этих плат можно отнести: разный объем flash памяти (4 Мбайт / 16 Мбайт), разные типы антенн (PCB / SMD) и разные чипы USB-UART преобразователей (CH340G / CP2104), так же у первой платы нет разъема IPX для подключения внешней антенны.

О том как загружать скетч из «Arduino IDE» в платы WEMOS D1 mini / WEMOS D1 mini Pro по WiFi (без подключения их к USB порту компьютера), рассказано в конце данной статьи.

О том как установить «Arduino IDE» можно прочитать в статье Wiki - Установка среды разработки Arduino IDE для Windows.

Настройка Arduino IDE:

Писать скетчи под микроконтроллер ESP8266 можно в среде разработки «Arduino IDE», но перед загрузкой скетча нужно выбрать тип используемой платы из списка меню «Инструменты» > «Плата», а там по умолчанию нет платы WEMOS D1 mini / WEMOS D1 mini Pro. Вся настройка сводится к тому, что бы в этом списке меню появились платы WEMOS D1 mini / WEMOS D1 mini Pro.

В среде «Arduino IDE» имеется «Менеджер плат» который поможет быстро добавить интересующие платы в список. Для этого нужно выполнить следующие действия:

Настройки Arduino IDE Откройте «Arduino IDE» и выберите пункт меню: «Файл» > «Настройки».
Дополнительные ссылки для Менеджера плат Arduino IDE В открывшемся окне заполните поле «Дополнительные ссылки для Менеджера плат» введя в него строку:
http://arduino.esp8266.com/stable/package_esp8266com_index.json
И нажмите на кнопку «Ok».

Если вы хотите указать конкретную версию сборки, введите её вместо слова «stable» предыдущей ссылки:
http://arduino.esp8266.com/versions/2.3.0/package_esp8266com_index.json
В поле допускается вводить несколько ссылок разделённых запятыми.

Менеджер плат Arduino IDE Запустите «Менеджер плат» выбрав пункт меню «Инструменты» > «Плата» > «Менеджер плат».
Сборка esp8266 by ESP8266 Community в списке менеджера плат Arduino IDE В открывшемся окне «Менеджер плат» выберите пункт «esp8266 by ESP8266 Community» из списка сборок и нажмите на кнопку «Установка» (при желании можно выбрать версию устанавливаемой сборки).
Установка сборки esp8266 by ESP8266 Community в Arduino IDE Дождитесь окончания установки сборки.
«Менеджер плат» загрузит примерно 150 Мбайт данных.
Список менеджера плат Arduino IDE После успешной установки сборки, в списке, напротив её названия «esp8266 by ESP8266 Community» появится фраза «INSTALLED».
Закройте «Менеджер плат» нажав на кнопку «Закрыть».

На этом настройка «Arduino IDE» завершена! Теперь в списке плат есть раздел «WeMos D1 R2 & mini» который и нужно выбрать при загрузке скетчей в платы WEMOS D1 mini / WEMOS D1 mini Pro.

Первая программа:

Самая первая программа для любой платы под управлением микроконтроллера - это «HelloWorld» (вывод надписи) или «Blink» (мигание светодиодом). Данная статья не будет исключением, загрузим скетч для мигания светодиодом.

Выбор раздела Arduino IDE для работы с платами WEMOS D1 mini / WEMOS D1 mini Pro Для работы с платами WEMOS D1 mini / WEMOS D1 mini Pro нужно выбрать пункт меню «Инструменты» > «Плата» > «WeMos D1 R2 & mini».
Выбор COM-порта в Arduino IDE Так же нужно выбрать COM-порт после подключения платы к компьютеру через USB порт.
На рисунке выбран порт «COM10», но Вам нужно выбрать тот порт, который появился у Вас в списке доступных портов после подключения платы.
Если после подключения платы новый порт не появился, значит не установлен драйвер для чипа CH340G / CP2104, ссылки на драйверы указаны в начале данной статьи.
Скетч Blink для ESP8266 Осталось загрузить скетч и проверить его работу. На рисунке загружается простой скетч для мигания светодиодом, установленным на плате и подключённым катодом к выводу D4.
При написании скетчей, обратите внимание на то что константы имён выводов D0 ... D8 хранят нумерацию выводов JPIO микроконтроллера, а не нумерацию выводов платы, так например:
digitalWrite(D5, HIGH); // установит «1» на выводе платы D5 (он же вывод JPIO-14 микроконтроллера).
digitalWrite(5, HIGH); // установит «1» на выводе платы D1 (он же вывод JPIO-5 микроконтроллера).
Скетч Blink для ESP8266 из примеров Arduino IDE Предыдущий скетч можно не писать вручную, а загрузить из примеров, большое количество которых стало доступно в меню «Файл» > «Примеры» > «Примеры для WeMos D1 R2 & mini», после выбора платы «WeMos D1 R2 & mini».
В примере «Файл» > «Примеры» > «ESP8266» > «Blink» светодиод включается на 1 секунду через паузу в 2 секунды, а вывод к которому подключён светодиод указывается не константой D4, а константой LED_BUILTIN.
Обратите внимание на то, что светодиод включается подачей логического «0».

На плате WEMOS D1 mini Pro установлена flash память на 16 Мбайт, но на момент написания данной статьи в «Arduino IDE» поддерживаются только 4 Мбайта flash памяти. Микроконтроллер работает на тактовой частоте 80 МГц, он может работать на частоте 160 МГц, но такой режим работы не гарантирован производителем. Скорость загрузки скетча 921'600 бит/сек является максимальной из предложенных, её лучше оставить без изменений, так как при каждой загрузке скетча, помимо Вашей программы в микроконтроллер загружаются дополнительные процессы для его работы и уменьшение скорости загрузки скетча увеличит время его загрузки.

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

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

Скетч BasicOTA из примеров Arduino IDE Откройте скетч «BasicOTA» из примеров, выбрав пункт меню «Файл» > «Примеры» > «ArduinoOTA» > «BasicOTA».
Редактирование имя сети WiFi и логина в скетче BasicOTA Отредактируйте строки констант «ssid» и «password» указав имя Вашей WiFi сети и пароль к ней.
При желании измените скорость передачи данных в монитор последовательного порта «Serial.begin(115200)» на «Serial.begin(9600)» (часто используемая скорость для плат Arduino), или на «Serial.begin(74880)» (скорость на которой микроконтроллер ESP8266 отправляет отладочную информацию при старте).
Загрузка скетчей в ESP8266 из Arduino IDE Загрузите скетч «BasicOTA» в плату WEMOS D1 mini / WEMOS D1 mini Pro по USB порту.
Теперь, если плата подключилась к Вашей WiFi сети, то в пункте меню «Инструменты» > «Порт», к списку «Последовательные порты» должен добавиться список «Сетевые порты».
Если сетевые порты не появились, закройте и откройте окно «Arduino IDE», при работающей плате «MeMos...».
Скетч BasicOTA с комментариями на русском языке Попробуем загрузить новый скетч по WiFi:
Измените скетч «BasicOTA» добавив к нему строки кода из скетча «Blink», как это показано на рисунке слева. На рисунке изображён скетч без вывода данных в монитор последовательного порта и с указанием плате нового сетевого имени «My First ESP», оно отобразится среди сетевых портов после загрузки скетча в плату.
Плату можно оставить подключённой к USB порту компьютера (для получения питания) или, если у Вас есть другой источник питания (на 5 В или 3,3 В), то отключить плату от USB порта компьютера и подключить к этому источнику питания.
Выбор сетевого порта для загрузки скетчей из Arduino IDE по WiFi Выберите сетевой порт для загрузки скетча из меню «Инструменты» > «Порт» > «esp8266-ID at IP» (вместо ID и IP будут указаны ID чипа и присвоенный ему IP-адрес).
Загрузка скетча из Arduino IDE по WiFi Если у Вас на компьютере ранее была установлена программа «Python» (язык программирования) версии 2.7.X и папка этой программы указана в списке путей каталогов исполняемых файлов. То скетч загрузится без ошибок.
Cannot run program "python.exe": CreateProcess error=2, Не удаётся найти указанный файл Если у Вас нет программы «Python» версии 2.7.X То скетч выдаст ошибку «Cannot run program "python.exe": CreateProcess error=2, Не удаётся найти указанный файл».
Значит для загрузки скетчей в плату WEMOS D1 mini / WEMOS D1 mini Pro по WiFi, Вам сначала придётся установить программу «Python» версии 2.7.X (о том как это сделать написано в следующей главе данной статьи).
После установки программы «Python» можно приступать к загрузке скетчей по WiFi.

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

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

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

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

Скачать PythonЗапустить дистрибутив программы PythonУстановка программы Python для всех пользователейВыбор директории для установки программы Python Перейдите на сайт www.python.org и скачайте дистрибутив программы «Python» версии 2.7.X нажав на кнопку «Download Python 2.7.X».

Запустите скаченный дистрибутив и следуйте инструкциям.
Выбор устанавливаемых компонентов Python На шаге выбора устанавливаемых компонентов программы, разрешите прописать путь к папке с файлом python.exe в список путей каталогов исполняемых файлов, выбрав пункт «Will be installed on local hard drive».
Устанавливаемые компоненты PythonПроцесс установки программы PythonЗавершение установки PythonРазрешить доступ в Брандмауэре Windows Продолжите установку.

После установки «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 и антивирусных программ.

Обсуждение

Присоединяйся

На главную