Подключение DHT22 к ESP32
Датчик температуры и влажности
DHT22 подключается к ESP32 тремя проводами: питание 3,3 В, земля и один сигнальный вывод. Датчик работает от 3,3 до 6 В, поэтому с ESP32 никаких делителей не нужно.
Схема подключения DHT22 к ESP32
| DHT22 (AM2302) | ESP32 |
|---|---|
| SDA | GPIO15 |
| VCC | 3V3 |
| GND | GND |
Схема из примера «DHT22: температура и влажность».
Выводы DHT22 (AM2302)
| Вывод | Назначение |
|---|---|
| NC | не подключается |
| SDA | линия данных (в документации — DATA); нужна подтяжка 10 кОм к питанию |
| VCC | питание 3,3–5 В |
| GND | общий провод |
Код для ESP32
#include <DHT.h>
#define DHTPIN 15
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(115200);
dht.begin();
}
void loop() {
float t = dht.readTemperature();
float h = dht.readHumidity();
if (isnan(t) || isnan(h)) {
Serial.println("датчик не ответил");
} else {
Serial.printf("%.1f °C %.1f %%\n", t, h);
}
delay(2000); // чаще DHT22 опрашивать нельзя
}
Скетч можно править и запускать в симуляторе без платы и установки среды.
Что учесть на ESP32
- Между сигнальным выводом и питанием нужна подтяжка около 10 кОм: на готовых модулях она уже есть, у голого датчика её ставят самостоятельно.
- Читать датчик чаще раза в две секунды нельзя: он не успевает измерить, и библиотека DHT вернёт старое значение или NaN.
В железе
На модуле (плата с тремя выводами) подтягивающий резистор обычно уже стоит. У голого датчика с четырьмя ножками его ставят сами: 10 кОм между DATA и VCC.
Частые ошибки при подключении к ESP32
- Вывод данных без подтяжки к питанию: чтения идут через раз или не идут вовсе.
- Данные на GPIO34–39: эти выводы только входные, а протоколу DHT нужен двусторонний обмен по одному проводу.
- Чтение чаще раза в 2 секунды — датчик не успевает, и библиотека возвращает NaN.
- Нет подтягивающего резистора у голого датчика — линия висит, данные не приходят.
- Длинный провод (больше 20 м) без понижения скорости опроса и с тонкими жилами — ошибки контрольной суммы.
- Проверяйте результат через
isnan()— NaN, выведенный на экран как число, выглядит как «датчик врёт».
Ещё по теме
Другие детали для ESP32
HC-SR04BME280DS3231SSD1306 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-023DHT11HTU21DSN65HVD230