Подключение DHT11 к ESP32
Цифровой датчик температуры и влажности
DHT11 к ESP32 — три провода: VCC на 3,3 В, земля и DATA на любой GPIO. Датчик работает от 3,3 В, поэтому совместим с ESP32 без делителей.
Схема подключения DHT11 к ESP32
| DHT11 | ESP32 |
|---|---|
| DATA | GPIO15 |
| VCC | 3V3 |
| GND | GND |
Схема из примера «DHT11: температура и влажность целыми числами».
Выводы DHT11
| Вывод | Назначение |
|---|---|
| DATA | линия данных, подтяжка к питанию 4,7–10 кОм |
| VCC | питание 3,3–5,5 В |
| GND | общий провод |
Код для ESP32
#include <DHT.h>
// DHT11: целые градусы (0–50 °C) и проценты влажности (20–90 %).
// Точность скромная — около ±2 °C и ±5 %, зато датчик дешёвый.
#define DHTPIN 15
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(115200);
dht.begin();
}
void loop() {
float h = dht.readHumidity();
float t = dht.readTemperature();
// Отвалившийся провод ошибки не даёт: библиотека возвращает NaN.
if (isnan(h) || isnan(t)) {
Serial.println("датчик не ответил");
} else {
Serial.printf("%.0f °C %.0f %%\n", t, h);
}
delay(2000); // DHT11 отвечает не чаще раза в секунду; берём с запасом
}
Скетч можно править и запускать в симуляторе без платы и установки среды.
Что учесть на ESP32
- Годится любой GPIO, кроме входных 34–39: линией данных нужно и управлять.
- Скетч для DHT11 и DHT22 отличается одной строкой:
#define DHTTYPE DHT11.
В железе
У готового модуля с тремя выводами подтяжка линии данных уже распаяна. У голого датчика с четырьмя выводами подтяжку 4,7–10 кОм между DATA и VCC ставят сами, а третий вывод не используется. Порядок выводов у разных модулей отличается: сверяйтесь с надписью на плате.
Частые ошибки при подключении к ESP32
- DATA на GPIO34–39: эти выводы только входные, стартовый импульс датчику не отправить.
- Опрос в быстром цикле без паузы: датчик не успевает измерить, библиотека возвращает
nan. - Датчик DHT11 в скетче объявлен как DHT22 (
#define DHTTYPE DHT22): разбор кадра другой, показания неверные илиnan. - Нет подтяжки у голого датчика: линия данных висит в воздухе, библиотека возвращает
nan. - Опрос чаще раза в секунду: датчик молчит или отдаёт старое значение.
- Попытка измерить температуру ниже нуля: DHT11 работает от 0 °C.
Ещё по теме
Другие детали для ESP32
HC-SR04DHT22 (AM2302)BME280DS3231SSD1306 OLED 0,96″LCD 1602 с I2CMAX7219TM1637MPU6050 (GY-521)Модуль релеWS2812B (NeoPixel)KY-040Клавиатура 4×4HX711ФоторезисторМодуль microSDRGB-светодиодСервопривод SG9074HC595ИК-приёмник (VS1838B)TFT ST7735 1,8″Шаговый двигательКнопкаПотенциометрПьезопищалкаСветодиодDS18B20Ползунковый переключательHC-SR501TTP223Датчик влажности почвыMQ-2LM35Джойстик KY-023HTU21DSN65HVD230