Модуль на чипсете ESP8266 — это простой и дешёвый способ добавить в своё устройство функции беспроводной связи через Wi-Fi.
Используйте ESP8266, чтобы управлять своим устройством дистанционно или чтобы снимать показания с сенсоров через интернет. Подключите свой гаджет к социальным сетям или реагируйте на данные, которые получаете через API от веб-сервисов.
В семействе модулей ESP8266 есть много разновидностей. Представленный модуль — ESP-01. У него антенна WiFi встроена на плату, а на ножки дополнительно выведены 2 GPIO-порта свободного назначения.
Управляющее устройство общается с ESP8266 через UART (Serial-порт) с помощью набора AT-команд. Поэтому работа с модулем тривиальна для любой платы с UART-интерфейсом: используйте Arduino, Raspberry Pi, что душе угодно.
Работа над приёмом и передачей данных выглядит, как взаимодействие с сырым TCP-сокетом или с serial-портом компьютера.
Более того, модуль можно перепрошивать. Программировать и загружать прошивки можно через Arduino IDE, точно так же, как при работе с Arduino. Реакция на AT-команды — это просто функция штатной прошивки, устанавливаемой на заводе. А вы можете написать свою собственную, если того требует проект. Поскольку на модуле есть 2 порта ввода-вывода общего назначения, вы можете обойтись вовсе без управляющей платы: просто подключите периферию непосредственно к ним.
Для того, чтобы среда Arduino IDE научилась прошивать ESP8266, достаточно добавить директорию с конфигурацией платформы в папку со своими скетчами. Визуальная среда программирования XOD IDE поддерживает ESP866 прямо из коробки.
Для физического соединения при прошивке вам понадобится USB-UART преобразователь или плата Arduino/Iskra, настроенная в режим USB-моста.
Родное напряжение модуля — 3,3 вольта. Его пины не толерантны к 5 вольтам. Если вы подадите напряжение выше, чем 3,3 вольта на пин питания, коммуникации или ввода-вывода, модуль выйдет из строя.
Поэтому для передачи данных на модуль с 5-вольтовых управляющих плат используйте делитель напряжения, чтобы перевести напряжение в допустимый диапазон. Делитель из двух резисторов одинакового номинала, например резистор на 10 кОм идеально подойдёт.
Никаких посредников для приёма данных не нужно. Сигнал в 3,3 В как есть будет воспринят управляющей платой, как логическая единица.
Питайте модуль ровными 3,3 вольтами. Их можно получить с отдельного регулятора напряжения.
Модуль потребляет в пике 220 мА. Регулятора напряжения, используемого на пятивольтовых платах Arduino для пина 3.3V, может оказаться недостаточно. Обратите внимание на характеристики своей платы. Например, Arduino Uno и Arduino Leonardo могут выдать не более 50 мА с пина 3.3V, поэтому с ними нужно обязательно использовать внешний регулятор; а Iskra Neo может выдать до 800 мА, поэтому с ней можно питать ESP8266 прямо от платы.
Из-за расположения ножек вплотную в 2 ряда, модуль нельзя установить на breadboard’е. Используйте макетную плату под пайку или провода с разъёмами «мама» для подключения к пинам модуля.