ESP-07 и Arduino

28-05-2020, 17:35 3 комментариев
Подключить Wi-FI модуль ESP-07 к Ардуино совсем не сложно. Составив простую схему по нашим подсказкам и рекомендациям, вы сможете по достоинству оценить функционал этого цифрового устройства. Да и сфера его применения довольно широка: автоматизация и управление различными процессами в проектах через беспроводное соединение.

Чтобы не быть голословными, рассмотрим основные технические параметры модуля:
  • напряжение: 1,7-3,6В;
  • поддерживаемые стандарты протоколов: 802.11 b/g/n;
  • потребление тока: 200 мА;
  • частота: 2.4 ГГц;
  • объем флеш-памяти: 512кБайт;
  • статическая память: 80Кб + 32 Кб для инструкций;
  • несколько режимов работы: STA, AP, STA+AP.
Данный цифровой прибор является продвинутой версией модуля ESP8266. Кроме того, на нем выведены пользовательские выходы GPIO. Это значит, что он идеален для внедрения в системы «умных» домов.
На плате имеется керамическая антенна, но встречается комплектация с разъемами для внешней антенны. Таким образом есть возможность при желании увеличить дальность связи.

Распиновка платы показана ниже:
Выполним подключение ESP-07 к Arduino. Для этой цели создадим небольшой проект, для реализации которого применяем следующее «железо»:
  1. вай-фай модуль;
  2. датчик влажности и температуры (в нашем случае DHT11);
  3. дисплей Nokia 5110;
  4. блок питания 3 - 3.6V;
  5. макетная плата;
  6. комплект соединительных проводов.
 В итоге наша схема получилась такой, как вы видите на скриншоте:
Далее следует поработать над прошивкой и программированием. Нам понадобятся сразу несколько специализированных приложений – библиотеки ESP8266WiFi (встроенная), Adafruit_PCD8544 и GFX, DHT. Их следует скачать и установить в папку libraries среды разработки Arduino IDE. Инструкции имеются у нас на портале, как и ссылки на софт.

Пишем скетч:
// Подключаем библиотеки
#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 (предварительно пройдя регистрацию). Там мы будем взаимодействовать с показаниями нашего устройства. Кому сложно с ней справиться, можно настроить прошивку и управлять функционалом при помощи утилиты ESP8266_config – это значительно проще! Все зависит от вас – пробуйте!

На этом прощаемся с вами! До новых встреч!
Поделись в социальных сетях:
О авторе
Калугин Антон

Программист микроконтроллеров с 8-ми летним стажем, работал в таких компаниях как IBM, ASUS, Microsoft.

В комментариях с радостью отвечу на ваши вопросы.

Все статьи автора
Похожие новости

Сегодня поговорим о том, как воплотить в жизнь подключение FPM10A к Arduino, что это за модуль, где используется, каковы параметры его работы и т.д. Речь идет...

В новом информационном обзоре рассматриваем GSM модуль SIM800L к Arduino. Почему выбрано именно это устройство? Во-первых, оно достаточно известно и популярно...

В этой статье мы рассмотрим подключение ADS1115 к Ардуино. Речь идет о 16-битном аналого-цифровом преобразователе, оснащенном 4 входами непосредственно для...

Модуль энкодер KY-040 является электромеханическим устройством, а точнее - датчиком угла поворота и вращения оси различных девайсов. Непосредственно сам прибор...

GSM модуль NEOWAY M590 – один из самых простых и бюджетных контроллеров, с помощью которого можно совершать звонки, принимать ∕ отправлять SMS-сообщения, а...

3 комментария
  1. Игорь
    13 июня 2023 17:16 Игорь

    Добрый день.

    Заинтересовался вашим скетчем в "ESP-07 и Arduino".
    Если я правильно понимаю, строка:
    client.print(String("GET ") + str1 + " HTTP/1.1\r\n" + "Host: " + serverthingspeak + "\r\n" + "Connection: close\r\n\r\n");
    отправляет текст на сервер в Public канал.
    Я испозую My Channels.
    Как создать и использовать Public канал и что я увижу в этом канале.
    Заранее спасибо.
    Почта: sever8386@mail.ru

    replyОтветить
  2. Игорь
    13 июня 2023 17:26 Игорь

    Добрый день.
    Заинтересовался скетчем в "ESP-07 и Arduino".
    Если я правильно понимаю, строка:
    client.print(String("GET ") + str1 + " HTTP/1.1\r\n" + "Host: " + serverthingspeak + "\r\n" + "Connection: close\r\n\r\n");
    отправляет текст на сервер в Паблик канал.
    Я использую Мои каналы.
    Как создать и использовать Паблик канал и что я увижу в этом канале.
    Заранее спасибо.
    Почта: sever8386@mail.ru

    replyОтветить
  3. Игорь
    13 июня 2023 17:28 Игорь

    Добрый день.
    Заинтересовался скетчем в "ESP-07 и Arduino".
    Если я правильно понимаю, строка:
    client.print(String("GET ") + str1 + " HTTP/1.1\r\n" + "Host: " + serverthingspeak + "\r\n" + "Connection: close\r\n\r\n");
    отправляет текст на сервер в Паблик канал.
    Я использую Мои каналы.
    Как создать и использовать Паблик канал и что я увижу в этом канале.
    Заранее спасибо.
    Почта: sever8386@mail.ru

    replyОтветить
Оставить комментарий