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

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

ESP-01 — самый распространённый модуль серии ESP8266. Разбираем характеристики, подключение к компьютеру, AT-команды и пример с датчиком DHT11.

Коротко о модуле

ESP-01 относится к серии ESP8266 и считается самым популярным её представителем. С компьютером или микроконтроллером он обменивается данными по UART, принимая AT-команды. Второй сценарий — самостоятельная работа: в модуль загружают собственную прошивку, и внешний контроллер становится не нужен. Писать и загружать прошивки можно в Arduino IDE версии выше 1.6.5, для этого потребуется переходник UART-USB. Основная область применения — устройства Интернета вещей.

Технические характеристики

Стандарт Wi-Fi802.11 b/g/n
Режимы Wi-Fiклиент, точка доступа
Выходная мощность19,5 дБ
Напряжение питания1,8–3,6 В
Ток потребления220 мА
Порты GPIO4
Тактовая частота процессора80 МГц
Оперативная память96 КБ
Размеры13×21 мм

Назначение выводов

  • VCC — питание +3,3 В;
  • GND — земля;
  • RX, TX — линии UART;
  • CH_PD — Chip enable, включение микросхемы;
  • GPIO0, GPIO2 — цифровые контакты.

Модулю необходимо внешнее питание 3,3 В.

Назначение контактов модуля ESP-01

Подключение к компьютеру и AT-команды

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

Схема подключения ESP-01 к компьютеру через USB-UART
ESP-01 и переходник USB-UART в сборе

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

  • AT — проверка связи, модуль должен ответить OK;
  • AT+GMR — номер версии прошивки;
  • AT+RST — перезагрузка модуля.
Отправка AT-команд в модуль из программы Termite

Тем, кому командный режим неудобен, подойдёт программа 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: проверяют подключение модуля к точке доступа, выход точки доступа в интернет и правильность запроса к сервису.

← Все статьи