Обзор модуля DHT11 для ESP-01

Сегодня расскажу о небольшом модуле DHT11 (TB:IOTMCU) для ESP-01 и ESP-01S, с помощью которого можно собрать небольшую метеостанцию у себя дома.

Обзор модуля DHT11 для ESP-01

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

► Контроллер: ESP-01 или ESP-01S
► Напряжение питания: 3.7 В – 12 В
► Датчики температуры и влажности: DHT11
► Диапазон измерения:  20 % … 90 %
► Точность измерения температуры: +/- 2 C
► Точность измерения влажности: +/- 5%
► Габариты: 20 мм х 25 мм

Общие сведения о модуле DHT11 для ESP-01

Данный модуль, позволяет организовать небольшую метеостанцию, в качестве передающего устройства используется контроллер ESP-01 (ESP8266), а показания  считываются с датчика DHT11. Собран на зеленом стеклотекстолите с небольшими габаритами 20 x 25 мм, большую часть места занимает датчик DHT11, рядом расположены разъем для подключения ESP-01 (S) и разъем питания. Для стабильной работы ESP-01 необходимо напряжение 3.3 В, для этого на плате установлен стабилизатор напряжения LI336 (документацию не нашел), который стабилизирует выходное напряжение 3.3 В, при входном 3.7 В … 12 В. Так-же, установлена кнопка RESET с помощью которой можно перегрузить ESP-01 и световая индикация.
В качестве источника питания, можно использовать блок питания от телефона или литиевую батарею типа 18650 (при тесте, ток потребления составил 75 мА).

Обзор модуля DHT11 для ESP-01

Принципиальную схему модуля можно посмотреть на рисунке ниже.

Принципиальная схема модуля DHT11 для ESP-01

WEB Сервер на ESP-01

Необходимые детали:
► Беспроводной Wi-Fi модуль ESP8266-01 (ESP-01) x 1 шт.
► Модуль DHT11 для ESP-01 (S) x 1 шт.
► Адаптер для ESP-01 (USB, CH340G, ESP8266) x 1 шт.
► Резистор 4.7 кОм x 1 шт

Прошивка ESP-01:
Прошиваем модуль ESP-01 (ES8266), для этого берем USB адаптер на CH340G (с небольшой доработкой, которая включаем в себя перемычку между GND и GPIO0). Устанавливаем модуль ESP-01 в USB адаптер CH340G и подключаем его в USB разъем компьютера (в системе должен появится новый последовательный порт (COMx).
Программа написана в среде IDE Arduino, но для работы с чипами ESP8266, необходимо установить ESP плату, как это сделать можно посмотреть в этой статье. Так-же, необходимы две дополнительные библиотеки  «DHT» и  «Adafruit_Sensor»(скачиваем их можно в конце статьи). Теперь осталось загрузить скетч в программу IDE и загрузить в модуль ESP-01.

/*
Тестировалось на Arduino IDE 1.8.5
Дата тестирования 08.11.2017г.
*/ 

#include "ESP8266WiFi.h"                                // Подключаем библиотеку ESP8266WiFi
#include "Adafruit_Sensor.h"                            // Adafruit_Sensor
#include "DHT.h"                                        // Подключаем библиотеку DHT

const char* ssid = "Название Вашей сети";               // Название Вашей WiFi сети
const char* password = "Пароль от Вашей сети";          // Пароль от Вашей WiFi сети

#define DHTPIN 2                                        // Пин к которому подключен датчик
#define DHTTYPE DHT11                                   // Используемый датчик DHT 11
  // #define DHTTYPE DHT21
  // #define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);                               // Инициализируем датчик
WiFiServer server(80);                                  // Указываем порт Web-сервера

void setup() 
{
  Serial.begin(115200);                                 // Скорость передачи 115200 
  delay(10);                                            // Пауза 10 мкс
  dht.begin();                                          // Инициализация DHT
                             
  Serial.println("");                                   // Печать пустой строки 
  Serial.print("Connecting to ");                       // Печать "Подключение к:"
  Serial.println(ssid);                                 // Печать "Название Вашей WiFi сети"
  
  WiFi.begin(ssid, password);                           // Подключение к WiFi Сети
  
  while (WiFi.status() != WL_CONNECTED)                 // Проверка подключения к WiFi сети
  {
   delay(500);                                          // Пауза 500 мкс
   Serial.print(".");                                   // Печать "."
  }
   Serial.println("");                                  // Печать пустой строки                                          
   Serial.println("WiFi connected");                    // Печать "Подключение к WiFi сети осуществлено"
   server.begin();                                      // Запуск Web сервера
   Serial.println("Web server running.");               // Печать "Веб-сервер запущен"
   delay(10000);                                        // Пауза 10 000 мкс
   Serial.println(WiFi.localIP());                      // Печатаем полученный IP-адрес ESP
}
void loop() 
{
 WiFiClient client = server.available();                // Получаем данные, посылаемые клиентом 
  
 if (client){
  Serial.println("New client");                         // Отправка "Новый клиент"
  boolean blank_line = true;                            // Создаем переменную, чтобы определить конец HTTP-запроса 
  while (client.connected()){                           // Пока есть соединение с клиентом 
    if (client.available()){                            // Если клиент активен 
     char c = client.read();                            // Считываем посылаемую информацию в переменную "с"
     if (c == '\n' && blank_line){                      // Вывод HTML страницы 
       float t = dht.readTemperature();                  // Запрос на считывание температуры
       float h = dht.readHumidity();
       client.println("HTTP/1.1 200 OK");               // Стандартный заголовок HTTP 
       client.println("Content-Type: text/html"); 
       client.println("Connection: close");             // Соединение будет закрыто после завершения ответа
       client.println("Refresh: 10");                   // Автоматическое обновление каждые 10 сек 
       client.println();
       client.println("<!DOCTYPE HTML>");               // Веб-страница создается с использованием HTML
       client.println("<html>");                        // Открытие тега HTML 
       client.println("<head>");
       client.print("<title>ESP8266 TEMP</title>");     // Название страницы
       client.println("</head>");
       client.println("<body>");
       client.println("<h1>ESP8266 - Temperature &amp; Humidity</h1>"); 
       client.println("<h3>Temperature = ");
       client.println(t);                               // Отображение температуры
       client.println("*C</h3>");
       client.println("</head>");
       client.println("<body>");
       client.println("<h3>Humidity = ");
       client.println(h);                               // Отображение влажности
       client.println("</h3>");
       client.println("</body>");
       client.println("</html>");                       // Закрытие тега HTML 
       break;                                           // Выход
       }
        if (c == '\n'){                                 // Если "с" равен символу новой строки                                             
         blank_line = true;                             // Тогда начинаем новую строку
        }                                          
         else if (c != '\r'){                           // Если "с" не равен символу возврата курсора на начало строки                                        
          blank_line = false;                           // Тогда получаем символ на текущей строке 
         }                                        
    }
  }  
    client.stop();                                      // Закрытие соединения
    Serial.println("Client disconnected.");             // Печать "Клиент отключен"
}
}

 Скачать скетч

Определение IP (ESP-01):
Теперь необходимо узнать IP модуля, для этого открываем «Мониторинг порта» с выставленной скоростью «115200», в моем случаи сеть выдала «192.168.22.114».

Обзор модуля DHT11 для ESP-01

Модуль прошит, устанавливаем ESP-01 в модуль DHT11, подключаем питание и открываем любой браузер, вводим IP-адрес (192.168.22.114) и нажимаем Enter.

Обзор модуля DHT11 для ESP-01

По сути это тоже самое что в этой статье, только все компактнее.

Ссылки
  Скачать библиотеку DHT
  Скачать библиотеку Adafruit_Sensor

Купить на Aliexpress
  Беспроводной Wi-Fi модуль ESP8266-01 (ESP-01)
  Модуль DHT11 для ESP-01
  Адаптер USB для ESP-01 (Wi-Fi, CH340G)
  Адаптер USB для ESP-01 (Wi-Fi, CH340G) — с переключателем 

Купить в Самаре и области
  Беспроводной Wi-Fi модуль ESP8266-01 (ESP-01)
  Модуль DHT11 для ESP-01
  Адаптер USB для ESP-01 (Wi-Fi, CH340G)

Читайте также:

комментария 3

  1. Евгений:

    Temperature = nan *C
    Humidity = nan

  2. Argon:

    При компиляции скетча ругается, что Adafruit_Sensor.h: No such file or directory, хотя я скачал библиотеки и при установке писало, что Библиотека Adafruit_Sensor уже существует. Что делаю не так?

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *