Как подключить DHT22 к ESP32

Три провода, данные на GPIO4, питание 3,3 В.

Схема подключения

Открыть в конструкторе

Соединения

ШагОткудаКудаЦвет
1ESP32 DOIT GNDDHT22 модуль -чёрный
2ESP32 DOIT 3V3DHT22 модуль +красный
3ESP32 DOIT D4DHT22 модуль outбелый

Детали

Проверка питания и проводов

  • Проверка схемы, та же, что в конструкторе, не нашла ошибок: напряжения выводов совпадают, земля общая, шины подключены целиком.
  • DHT22 модуль берёт до 1.5 мА (обычно около 1) с вывода 3V3 ESP32 DOIT, вывод даёт около 500 мА: стабилизатор AMS1117 на 1 А, до 500 мА берёт сам ESP32.

Ток всей схемы и сколько она проработает от аккумулятора: расчёт питания. Где что втыкать: схема на макетке.

Пример кода

Arduino IDE, DHT sensor library (Adafruit) 1.4, Adafruit Unified Sensor.

#include <DHT.h>

DHT dht(4, DHT22);

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

void loop() {
  delay(2000);  // DHT22 отвечает не чаще раза в 2 секунды
  float t = dht.readTemperature();
  float h = dht.readHumidity();
  if (isnan(t) || isnan(h)) {
    Serial.println("DHT22 не ответил: проверьте провод out и питание");
    return;
  }
  Serial.printf("%.1f °C, %.1f %%\n", t, h);
}

Распиновки деталей

Как подключено

У модуля DHT22 три вывода: + на 3V3, out на GPIO4, минус на GND. Подтяжка 10 кОм от out к плюсу уже стоит на плате модуля. У голого DHT22 с четырьмя ногами её ставят самому: 4,7-10 кОм от DATA к VDD, третья нога ни к чему не подключена.

Датчик отвечает не чаще раза в 2 секунды, поэтому в примере задержка 2000 мс. Первую секунду после включения он молчит.

Частые ошибки

  • Берут для данных GPIO34-39. Эти пины ESP32 работают только на вход, а DHT22 ждёт от контроллера стартовый импульс, и датчик не отвечает.
  • Выбирают в библиотеке тип DHT11 для DHT22. Числа приходят, но неверные: формат данных у датчиков разный.

Частые вопросы

Можно ли питать DHT22 от 5 В при подключении к ESP32?
Нельзя без делителя: подтяжка на модуле потянет линию данных к 5 В, а пин ESP32 рассчитан на 3,3 В. От 3,3 В датчик работает по даташиту Aosong.
Чем DHT22 отличается от DHT11?
DHT22 точнее (±2 % влажности и ±0,5 °C) и меряет от −40 до 80 °C. Провода те же, в коде меняется только тип датчика.
Почему приходит nan?
Датчик не ответил: нет питания, провод out не на том пине или опрос чаще раза в 2 секунды. Для провода до 20 м Aosong советует подтяжку около 5 кОм, на модуле стоит 10 кОм: с длинным проводом добавьте ещё 10 кОм от out к плюсу.

Пригодится ещё