Wi-Fi модуль ESP-01 – самый популярный модуль серии ESP8266. Общение с компьютером или микроконтроллером осуществляется с через UART с помощью набора AT-команд. Кроме того, модуль можно использовать как самостоятельное устройство, для этого необходимо в него загрузить свою прошивку. Программировать и загружать прошивки можно через Arduino IDE версии выше 1.6.5. Для прошивки модуля понадобится переходник UART-USB. Модуль ESP-01 может получить широкое распространение для использования в устройствах IoT (Интернет вещей).

Технические характеристики модуля

  • Wi-Fi 802.11 b/g/n
  • Режимы WiFi: клиент, точка доступа
  • Выходная мощность - 19,5 дБ
  • Напряжение питания - 1.8 -3.6 В
  • Ток потребления - 220 мА
  • Портов GPIO : 4
  • Тактовая частота процессора - 80 МГц
  • Объём памяти для кода
  • Оперативная память - 96 КБ
  • Размеры - 13×21 мм

Подключение

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

  • VCC — +3.3 В
  • GND — земля
  • RX, TX — выводы UART
  • ВыводCH_PD  — Chip enable
  • GPIO0, GPIO2 — цифровые контакты

Модулю требуется внешнее питание 3.3 В.
 

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

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

Схема подключения для общения с модулем в режиме AT-команд:
 

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

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

Схема подключения ESP-01 в сборе

Схема в сборе

Для отправки команд AT-команд в ОС Mac OS X можно использовать программу CoolTerm, в операционной системе Windows программу Termite. Узнать скорость COM-порта для соединения с модулем можно только экспериментально, для разных прошивок она может быть разной. Для моего модуля скорость оказалась равной 9600 бод. Кроме того установить обмен удалось только после отключения и повторного подключения к питанию вывода  CH_PD. После подключения набираем в терминале  AT и должны получить в ответ от модуля OK. Команда AT+GMR выдает номер версии прошивки модуля, команда AT+RST — перезагружает модуль (см. рис. 4). Список основных AT-команд можно посмотреть в этом документе (ESP8266ATCommandsSet.pdf).
 

Отправка AT-команд в модуль из программы Termite

Отправка AT-команд в модуль из программы Termite

Если режим AT команд для вас не удобен, плату можно настроить с помощью программы AppStack  ESP8266 Config, скачать которую  можно по ссылке https://esp8266.ru/downloads/. Внешний вид программы представлен ниже. Настройка модуля осуществляется с помощью графического интерфейса, при этом выполнение команд можно видеть в мониторе программы (см. рис. 6). В мониторе также можно послать AT-команды из командной строки.

Программа AppStack ESP8266 Config

Программа AppStack ESP8266 Config

Serial monitor программы AppStack ESP8266 Config

Serial monitor программы AppStack ESP8266 Config

Есть два варианта использования данного модуля:

  • в связке с микроконтроллером (например Arduino), который будет управлять модулем по UART;
  • написание собственной прошивки для использования ESP8266 в качестве самостоятельного устройства.

Пример использования

Рассмотрим пример подключения к модулю ESP-01 датчика влажности и температуры DHT11 и отправки данных в облачный сервис ThingSpeak (https://thingspeak.com/). Нам понадобятся следующие детали:

  • модуль ESP-01
  • макетная плата
  • датчик влажности и температуры DHT11
  • резистор 10 кОм
  • соединительные провода
  • блок питания 3 - 3.6В

Сначала подключим датчик DS18B20 к модулю ESP-01. DS18B20 – цифровой датчик температуры, работающий по однопроводному интерфейсу 1-Wire. Схема подключения датчика DS18B20 к модулю показана на рис. 7.
 

Схема подключения датчика DHT11 к модулю ESP-01

Схема подключения датчика DHT11 к модулю ESP-01.

Затем необходимо завести профиль в сервисе ThingSpeak. В сервисе есть инструкции для отправки данных в сервис и получения данных из сервиса.
 

shema-v-sbore-764x1024.jpg

Схема в сборе.

Программу будем писать в среде Arduino IDE для ESP8266. Будем использовать библиотеки ESP8266WiFi.h (встроенную) и OneWire.h. Загрузим на плату Arduino скетч из листинга 1 – получение данных с датчика температуры и отправка данных в сервис ThingSpeak. Необходимо внести свои данные для WiFi точки доступа для модуля ESP-01:

const char *ssid;
const char *password;

а также параметр privateKey для вашего приложения в сервисе ThingSpeak. Листинг 1

// Подключаем библиотеку для работы с esp8266
#include <ESP8266WiFi.h> 
// Подключаем библиотеку DHT для работы с DHT11 
#include <DHT.h> 
// пин подключения контакта DATA
#define DHTPIN 4
// датчик DHT11
#define DHTTYPE DHT11
// создание экземпляра объекта DHT
DHT dht(DHTPIN, DHTTYPE);
// ssid WiFi сети подключения
const char ssid = "********"; 
// Пароль  WiFi сети подключения 
const char password = "******"; 
// Сервер ThingSpeak
const char* host = "184.106.153.149"; 
// API KEY вашего приложения ThingSpeak
const char* privateKey = "****************"; 
// переменные для хранения температуры и влажности
float temp; 
float humidity; 
// переменная для интервала измерений
unsigned long millis_int1=0;
void setup() {
// запуск последовательного порта 
Serial.begin(115200); 
delay(10);
Serial.print("Connect to WiFi"); 
Serial.println(ssid);
// Соединяемся по WiFi
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
}
Serial.println("WiFi connected"); 
// запуск dht
dht.begin(); 
}
void loop() {
// ждем интервал 10 минут
if(milis()-millis_int1>=10*60000) {
Serial.print("connect to ThingSpeak");
Serial.println(host);
// Используем WiFi клиент 
WiFiClient client;
if (!client.connect(host, 80)) {
Serial.println("connection failed");    
return;
}
// получить данные температуры
temp = get_data_temperature();
humidity = get_data_humidity();
// Создаем URL с запросом для сервера
String url = "/update?key=";
url += privateKey;
url += "&temp="; 
url += temp;
url += "&humidity="; 
url += humidity;
// Отправляем запрос на сервер
client.print(String("GET ") + url + " HTTP/1.1\r\n" + "Host: " + host + "\r\n" + "Connection: close\r\n\r\n");
delay(10);
// ответ сервера ThingSpeak
while(client.available()){
String req = client.readStringUntil('\r');
Serial.print(req);
}
}
}

Теперь в сервисе ThingSpeak мы можем смотреть график показаний нашего датчика температуры DHT11.
 

График показаний датчика температуры DS18B20 в сервисе ThingSpeak.

График показаний датчика температуры DS18B20 в сервисе ThingSpeak.


Что делать если

Модуль не отвечает на AT-команды

Проверьте правильность подключения модуля
Проверьте правильность подключения контактов Rx,Tx к переходнику UART-USB
Проверьте подключение контакта CH_PD к 3.3 В

Подберите экспериментально скорость обмена по последовательному порту

Модуль ESP-01 не получает данные температуры от датчика DHT11

Проверьте правильность подключения датчика DHT11 к модулю

Не передаются данные в сервис ThingSpeak

Проверьте подключение модуля к точке доступа WiFi
Проверьте подключение точки доступа WiFi к сети интернет

Проверьте правильность запроса к сервису ThingSpeak

Рекомендуемые товары

Комментарии 0