Wi-Fi модуль ESP-01: выводы, AT-команды и отправка данных

ESP-01 — самый распространённый модуль серии ESP8266. Разбираем характеристики, подключение к компьютеру, AT-команды и пример с датчиком DHT11.
Коротко о модуле
ESP-01 относится к серии ESP8266 и считается самым популярным её представителем. С компьютером или микроконтроллером он обменивается данными по UART, принимая AT-команды. Второй сценарий — самостоятельная работа: в модуль загружают собственную прошивку, и внешний контроллер становится не нужен. Писать и загружать прошивки можно в Arduino IDE версии выше 1.6.5, для этого потребуется переходник UART-USB. Основная область применения — устройства Интернета вещей.
Технические характеристики
| Стандарт Wi-Fi | 802.11 b/g/n |
| Режимы Wi-Fi | клиент, точка доступа |
| Выходная мощность | 19,5 дБ |
| Напряжение питания | 1,8–3,6 В |
| Ток потребления | 220 мА |
| Порты GPIO | 4 |
| Тактовая частота процессора | 80 МГц |
| Оперативная память | 96 КБ |
| Размеры | 13×21 мм |
Назначение выводов
- VCC — питание +3,3 В;
- GND — земля;
- RX, TX — линии UART;
- CH_PD — Chip enable, включение микросхемы;
- GPIO0, GPIO2 — цифровые контакты.
Модулю необходимо внешнее питание 3,3 В.

Подключение к компьютеру и AT-команды
Для работы в режиме AT-команд модуль соединяют с компьютером через переходник USB-UART.


Команды отправляют из терминальной программы: в Mac OS X подойдёт CoolTerm, в Windows — Termite. Скорость порта заранее неизвестна: она зависит от прошивки и подбирается опытным путём. В описанном случае модуль отвечал на 9600 бод, причём обмен начался только после того, как вывод CH_PD отключили от питания и подключили снова.
- AT — проверка связи, модуль должен ответить OK;
- AT+GMR — номер версии прошивки;
- AT+RST — перезагрузка модуля.

Тем, кому командный режим неудобен, подойдёт программа AppStack ESP8266 Config. В ней модуль настраивается через графический интерфейс, а выполняемые команды видны во встроенном мониторе; оттуда же можно отправлять AT-команды вручную.
Дальше возможны два пути: использовать ESP-01 в паре с микроконтроллером, например Arduino, который управляет им по UART, либо написать собственную прошивку и превратить модуль в самостоятельное устройство.
Пример: DHT11 и сервис ThingSpeak
Во втором режиме модуль может сам опрашивать датчик и отправлять показания в облако. В примере к ESP-01 подключён датчик влажности и температуры DHT11, а данные передаются в сервис ThingSpeak. Понадобятся:
- модуль ESP-01;
- макетная плата;
- датчик DHT11;
- резистор 10 кОм;
- соединительные провода;
- блок питания 3–3,6 В.
В сервисе ThingSpeak нужно создать профиль и получить ключ приложения; там же есть инструкции по отправке и получению данных. Скетч пишется в Arduino IDE с поддержкой ESP8266. В листинге подключены встроенная библиотека ESP8266WiFi и библиотека DHT, линия данных датчика назначена на вывод 4. Перед загрузкой в код вписывают имя и пароль своей точки доступа (ssid, password) и ключ privateKey.
Логика программы такая. При старте открывается последовательный порт на скорости 115200, модуль подключается к Wi-Fi и ждёт установления соединения, затем запускается датчик. В основном цикле раз в 10 минут создаётся WiFi-клиент, который соединяется с сервером ThingSpeak по адресу 184.106.153.149 на порту 80. После чтения температуры и влажности формируется строка запроса вида /update?key=...&temp=...&humidity=..., которая отправляется методом GET; ответ сервера выводится в последовательный порт. Накопленные показания отображаются в ThingSpeak в виде графиков.
Возможные неполадки
- Модуль не отвечает на AT-команды: проверяют общее подключение, линии Rx и Tx к переходнику UART-USB, соединение CH_PD с 3,3 В и подбирают скорость обмена.
- Нет данных от датчика DHT11: проверяют его подключение к модулю.
- Данные не попадают в ThingSpeak: проверяют подключение модуля к точке доступа, выход точки доступа в интернет и правильность запроса к сервису.