Содержание
Обзор беспроводного модуля ESP-07
ESP-07 (рисунок 1) – еще одна модификация платы на базе Wi-Fi модуля ESP8266EX. На модуле ESP-07 имеется микросхема памяти 25Q04 емкостью 512Кб. Оперативная память встроена в микросхему и предоставляет 80Кб статической памяти программ и 32Кб оперативной памяти инструкций.
Рисунок 1.
Для взаимодействия модуля с внешними устройствами используется 16 выводов с шагом 2 мм. Так как контакты расположены с шагом 2 мм, а не 2,54 как у штырьковых разъемов, применяемых в Arduino и макетных платах, поэтому удобно использовать адаптеры-переходники (рис. 2).
Рисунок 2.
Назначение контактов
RX и TX –последовательный порт;
GND – общий;
VCC – питание модуля 1.8 -3.6 В;
CH_PD –для управления питанием модуля;
Reset –перезагрузка;
GPIO – цифровые контакты ввода/вывода;
ADC0 – вывод аналого-цифрового преобразователя.
Рисунок 3.
Модуль оснащен встроенной керамической антенной, но по запросу может комплектоваться антенным разъемом для внешней антенны, что позволяет увеличить дальность Wi-Fi связи до нескольких сотен метров.
Общение с компьютером или микроконтроллером осуществляется через последовательный порт с помощью набора AT-команд. Кроме того, модуль можно использовать как самостоятельное устройство, загрузив свою прошивку.
Характеристики модуля ESP-07
WI-FI 802.11 b/g/n.
Режимы работы – STA (клиент), AP (точка доступа), STA+AP.
Напряжение питания 1,7-3,6 В.
Ток потребления макс. 200 мА;
Количество GPIO: 16.
Flash память 512 кБайт.
RAM : 80 кБайт данных + 32 кБайт инструкций
Области применения
Домашняя техника
Домашняя автоматика
Устройства Интернет вещей
Подключение модуля ESP-07 к плате Arduino
Для подключения модуля к компьютеру используется USB-UART переходник. Подключение согласно схеме на рис. 4.
Рисунок 4.
Arduino IDE для ESP8266
Если у Вас установлена версия Arduino IDE версии не ниже 1.6.5, вы можете программировать и загружать скетчи для плат ESP8266. Сначала необходимо доустановить программное обеспечение для ESP8266. В среде Arduino IDE выбираем пункт Файл → Настройки и вводим http://arduino.esp8266.com/stable/package_esp8266com_index.json в поле Additional Boards Manager URLs. Нажимаем OK (см. рис. 5).
Риcунок 5.
Далее в пункте меню Инструменты →Плата → BoardsManager, в списке находим ESP8266 и кликаем по кнопке Install (см. рис. 6, 7, 8).
Риcунок 6,7,8.
После загрузки и автоматической установки программного обеспечения, в пункте Инструменты → Плата появятся платы ESP8266 (см. рис. 9).
Риcунок 9.
Пример использования ESP-07
Рассмотрим пример подключения к модулю ESP-07 цифрового датчика влажности и температуры DHT11. Данные будем отправлять с сервис ThingSpeak и выводить на экран дисплея Nokia 5110.
Список деталей:
модуль ESP-07;
плата прототипирования;
датчик DHT11;
модуль дисплея Nokia 5110;
соединительные провода;
блок питания 3 - 3.6В.
Подключим датчик DHT11 и дисплей Nokia 5110 к модулю ESP-07. DHT11 – датчик относительной влажности и температуры, работающий по однопроводному интерфейсу. Схема подключения показана на рис. 10.
Рисунок 10.
Для отправки данных в сервис ThingSpeak, необходимо зарегистрироваться и получить ключ (privateKey).
При написании скетча будем использовать библиотеки:
ESP8266WiFi (встроенная);
DHT;
Adafruit_GFX;
Adafruit_PCD8544.
Загрузим на плату Arduino скетч из листинга 1, подставив свои данные для WiFi точки доступа и ключа для вашего приложения в сервисе ThingSpeak.
Листинг 1
// Подключаем библиотеки #include <ESP8266WiFi.h> #include <DHT.h> #include <SPI.h> #include <Adafruit_GFX.h> #include <Adafruit_PCD8544.h> // создание экземпляров DHT sensor(5, DHT11); // 14 - SCLK // 13 - DIN // 12 - D/C // 15 - CS // 4 - RST Adafruit_PCD8544 dNokia5110 = Adafruit_PCD8544(14, 13, 12, 15, 4); // параметры WiFi const char* ssid = "**********"; const char* pass = "********"; // ThingSpeak const char* serverthingspeak = "184.106.153.149"; const char* privateKey = "****************"; // переменные float tdht; float hdht; unsigned long millis1=0; unsigned long interval=10000; void setup() { dNokia5110.begin(); dNokia5110.setContrast(70); dNokia5110.clearDisplay(); dNokia5110.setTextSize(1); dNokia5110.setTextColor(BLACK); dNokia5110.setCursor(0,0); dNokia5110.println("Connect to WiFi"); dNokia5110.display(); // Соединяемся по WiFi WiFi.begin(ssid, pass); while (WiFi.status() != WL_CONNECTED) { delay(500); } // дисплей dNokia5110.clearDisplay(); dNokia5110.setCursor(0,0); dNokia5110.println("ESP07 - DHT11"); dNokia5110.println("Makerplus.ru"); dNokia5110.display(); // запуск dht sensor.begin(); } void loop() { // каждые 10 минут if(millis()-millis1>=interval) { // WiFi клиент WiFiClient client; if (!client.connect(serverthingspeak, 80)) { dNokia5110.clearDisplay(); dNokia5110.setCursor(0,0); dNokia5110.println("ESP07 - DHT11"); dNokia5110.println("Makerplus.ru"); dNokia5110.display(); return; } // получить данные c dht11 tdht = sensor.readTemperature(); hdht = sensor.readHumidity(); // вывод на дисплей dNokia5110.clearDisplay(); dNokia5110.setCursor(0,0); dNokia5110.println("ESP07 - DHT11"); dNokia5110.println("Makerplus.ru"); dNokia5110.print("T="); dNokia5110.print(tdht); dNokia5110.println(" *C"); dNokia5110.print("H="); dNokia5110.print(hdht); dNokia5110.println(" %"); dNokia5110.display(); // формирование запроса к серверу String str1="/update?key="; str1+=privateKey; str1+="&temp="; str1+=tdht; str1+="&humidity="; str1+=hdht; // запрос на сервер client.print(String("GET ") + str1 + " HTTP/1.1\r\n" + "Host: " + serverthingspeak + "\r\n" + "Connection: close\r\n\r\n"); delay(10); // ответ от сервера while(client.available()){ String str = client.readStringUntil('\r'); Serial.print(str); } interval=10*60000; } }
Заходим в сервисе ThingSpeak, где можем посмотреть графики показаний нашего датчика DHT11 (рисунок 11).
Рисунок 11.
Рисунок 12, 13, 14.
Часто задаваемые вопросы
1. Не загружается скетч на модуль ESP-07 из Arduino IDE- Проверьте правильность подключения модуля к переходнику USB-UART;
- Перед загрузкой скетча перегрузите питание модуля ESP-07.
- Проверьте правильность подключения дисплея Nokia 5110.
- Проверьте правильность подключения датчика DHT11 к модулю ESP-07.
- Проверьте подключение модуля ESP-07 к точке доступа WiFi;
- Проверьте подключение точки доступа к сети интернет;
- Проверьте правильность запроса к сервису ThingSpeak.