ESP8266 - микроконтролер с Wi-Fi для IoT устройств

ESP8266 — это высокоинтегрированный, микроконтроллер с интерфейсами WiFi, SPI, UART и GPIO, производства китайской компании Espressif. На данный момент МК ESP8266 является самым распротраненным решением для создания IoT устройств.

Контроллер  обладает небольшим количеством внешних элементов и имеет следующие технические параметры:

  • Поддерживает Wi-Fi протоколы 802.11 b/g/n с WEP, WPA, WPA2;
  • Обладает 14 портами ввода и вывода, SPI, I2C, UART, 10-бит АЦП;
  • Поддерживает внешнюю память до 16 МБ;
  • Необходимое питание от 2,2 до 3,6 В, потребляемый ток до 300 мА в зависимости от выбранного режима.

В данное время на этом микроконтроллере реализовано несколько модификаций плат: ESP01 — ESP12, которые различающихся только формой, количеством выведенных GPIO и вариантами антенн.

Внимание! Модули ESP8266 не толлеранты к логическим урровням +5В. Для взаимодествия с микроконтроллерами с логическими уровненями +5В используйте преобразователи уровней с +5В до +3.3В! В противном случаем вы повредите микросхему микроконтроллера!

Разновидности ESP и их плат

Самыми популярными на сегодняшний день это платы:

ESP-01

ESP-01 — самый распространённый. Имеет 8 разведённых контактов (VCC, GND, UTXD, URXD, CH_PD, GPIO0, GPIO2, GPIO6) и PCB-антенну (печатный проводник на самой плате). Для взаимодействия используется всего два контакта GPIO 0 и GPIO2. Дальность действия антены Wi-FI — до 100м на открытом пространстве,что вполне достаточно для большенства решений типа "умный дом".

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

ESP-12

Cуществует несколько вариантов этой версии: ESP-12S, ESP-12F, ESP-12E.

На основе этой версии создано много плат таких как:

WeMos D1 mini

Имеет распайку девяти GPIO-контактов и возможность питания от +5В, а так же разъем USB-mini для подключения к компютеру. На плате имеется USB-to-TTL преобразователь CH340, который часто используют в китайских поделках. Так же на плате установлен МК с 4 Мбайт flash-памяти. Плату так же можно программировать при помощи Arduino IDE. 

Плата имеет оптимиальные размеры и количество выводов и давольно часто используется в разных проектах. Так же для данной платы выпускается огромное количество шилдов (плат расширения). Например есть шилд: кнопка, реле, светодиод, датчик температуры, датчик влажности и т.д.

Плата расширения просто ставиться поверх платы WeMos D1. В итоге у получается "этажерка" обладающая довольно большими возможностями. Единственно ограничение при этом количество выводов, которые задействованы для взаимодействи с шилдами. 

Для начинающих осваивать ESp8266 я бы рекомендовал бы именно эту плату.

NodeMCU

Существует несколько поколений плат NodeMcu – V1(версия 0.9), V2(версия 1.0) и V3 (версия 1.0). Обозначения V1, V2, V3 используются при продаже в интернет-магазинах. Нередко происходит путаница в платах – например, V3 внешне идентична V2. В настоящее время производством плат NodeMcu занимаются Amica, DOIT и LoLin/Wemos.

Данная плата имеет огромное кол-во выводов, по сравнению с остальными платами и может использоваться как плата для отладки, так как выведены почти все доступные контакты микроконтроллера ESP-8266. Однако плата обладает довольно большими размерами и не часто используется в проектах.

Как работать с ESP8266?

Есть два способа работы это управление через AT-команды и автономная работа со своей прошивкой. В первом случае ESP8266 работает только в паре с другими устройством, допустим с Arduino UNO или Arduio Nano, во втором — может работать как самостоятельное устройство.

По умолчанию устройво прошито на управление через AT-команды и работать будет только если подключить к устройству по UART-интерфейсу. В некоторых случаяшь это даже давольно удобно, так как не надо перепрошивать плату.

Для работы с платой ESP8266 через AT-команд  можно подключить к компьютеру через USB-UART переходник и запустить монитор последовательного порта (например из Arduino IDE).

Если требуется использовать плату ESP8266  как самостоятельное устройство, то вам придется перепрошить ее. Для этого надо подключиться с UART порту ESP8266 через переходник USB-to-TTL или просто подключишивись к USB разъему, например такое возможно для плат Wemos D1 или Node MCU.

Существует несколько софтов для прошивки МК. Например NodeMCU Flasher (которая подходит не только для плат NodeMCU) или ESPTool (необходим Python).

Но самым простым вариантом будет использование Arduino IDE для прошивки ESP8266.

Изначально среда Arduino IDE не предназначена для работы с МК серии ESP8266. Чтобы это исправить, идём в Файл → Настройки и в поле Дополнительные ссылки для Менеджера плат вставляем эту ссылку: http://arduino.esp8266.com/stable/package_esp8266com_index.json

Потом открываем Инструменты → Плата → Менеджер плат и в открывшемся списке в самом низу находим плату «esp8266 by ESP8266 Community» . Устанавливаем последнюю версию платы (около 150 Мбайт).

После установки в списке плат появится немалое количество плат. Если не нашли свою плату или не знаете её названия — выбирайте Generic ESP8266 Module. Теперь можно выбрать свою плату в списке COM-портов.

У ESP8266 две скорости передачи: основная — её вы указываете при инициализации последовательного порта, и скорость, на которой передаётся отладочная информация. Она передаётся сразу после подачи питания на плату. Обычно это скорости 115200 бод и 74800 бод соответственно.

После этого вы можете писать свои скетчи для ESP8266 и заливать их непосредствеено на плату через Arduino IDE.