Подключение датчика DHT11/DHT22 к ESP8266: чтение температуры и влажности

Датчик DHT к ESP8266 — простой способ измерять температуру и влажность. Подключение по трём проводам, данные выводятся в Serial Monitor. Проект — основа для метеостанций, умного дома, логгеров. Используем библиотеку DHT sensor library. DHT11 бюджетный (±2°C), DHT22 точнее (±0.5°C). Сборка за минуты, работает стабильно.

Подключение DHT к ESP8266 температура влажность

Возможности

Чтение температуры и влажности. Вывод в Serial Monitor. Поддержка DHT11/DHT22. Несколько датчиков на разных пинах. Легко добавить веб-сервер, Telegram или графики. Низкое потребление для батарейного питания.

Компоненты

  • ESP8266 NodeMCU
  • DHT11 или DHT22 (модуль или отдельный)
  • Резистор 10 кОм (если без модуля)

Подключение

  • VCC → 3.3V ESP
  • GND → GND
  • Data → D4 (GPIO2)
  • Резистор 10 кОм от Data к VCC

Библиотека

DHT sensor library by Adafruit (менеджер библиотек).

Скетч ESP8266

#include <DHT.h>

#define DHTPIN D4
#define DHTTYPE DHT11   // DHT22 для точного
DHT dht(DHTPIN, DHTTYPE);

void setup() {
  Serial.begin(115200);
  dht.begin();
}

void loop() {
  delay(2000);
  float h = dht.readHumidity();
  float t = dht.readTemperature();

  if (isnan(h) || isnan(t)) {
    Serial.println("Ошибка чтения DHT!");
    return;
  }

  Serial.print("Влажность: ");
  Serial.print(h);
  Serial.print(" %\t");
  Serial.print("Температура: ");
  Serial.print(t);
  Serial.println(" °C");
}
Инициализирует датчик DHT11 на пине D4.
Считывает каждые 2 секунды влажность и температуру.
Выводит значения в сериал-монитор.
Проверяет корректность считывания и выводит сообщение об ошибке при сбое.

Как работает

delay(2000) для стабильного чтения. readHumidity() и readTemperature() возвращают float. Проверка isnan() на ошибки. Вывод в Serial каждые 2 секунды.

Заключение

Простое подключение DHT к ESP8266. Готово к интеграции с веб-сервером, Telegram или графиками температуры.

FAQ — DHT на ESP8266

Почему значения NaN?

Проверьте подключение, резистор, питание 3.3V. Добавьте delay(2000) после dht.begin().

DHT22 вместо DHT11?

Измените DHTTYPE на DHT22 — точность выше.

Несколько датчиков?

Создайте несколько объектов DHT на разных пинах.

Питание от 5В?

DHT работает от 3–5В, но сигнал на ESP 3.3V — используйте делитель или уровень-преобразователь.

Как часто читать данные?

DHT11 — каждые 1 сек, DHT22 — каждые 2 сек минимум.

Вывод в Fahrenheit?

dht.readTemperature(true) — параметр true для °F.

Интеграция с веб?

Добавьте ESPAsyncWebServer и выводите значения на страницу.