База знаний · Датчики и модули

DHT11 и DHT22: температура и влажность

Чем DHT22 лучше DHT11, куда девать третью ножку, зачем резистор 10 кОм и почему датчик отвечает nan.

DHT11 и DHT22 — самые ходовые датчики «погоды»: меряют сразу и температуру, и влажность воздуха, а отдают готовые цифры по одному проводу. Внешне похожи (пластиковая коробочка с решёткой), подключаются одинаково, и в скетче различаются одним словом. Вся разница — в характеристиках.

ПараметрDHT11DHT22 (он же AM2302)
Температура0…50 °C, точность ±2 °C−40…+80 °C, точность ±0,5 °C
Влажность20–90 %, точность ±5 %0–100 %, точность ±2 %
Опросне чаще раза в 1–2 сне чаще раза в 2 с
Питание3–5,5 В3,3–5,5 В
В магазинеTrema-модуль — 356 ₽590 ₽

Правило выбора простое: для «сколько градусов в комнате» хватает DHT11, для теплицы, погреба и всего, где важны минус и точность, — DHT22. AM2302 — это тот же DHT22, только с проводами: красный — питание, чёрный — земля, жёлтый — данные.

Подключение

У «голого» датчика четыре ножки, работают три: решёткой к себе, слева направо — питание VDD, данные DATA, пустая ножка, земля GND. Линию данных подтягивают резистором 10 кОм к питанию — без него чтения начинают сбоить.

UNO / NANOлюбая классика 5 ВDHT11 / DHT22решёткой к вамножка 3 — пустая (NC)5VVDDпитание 3,3–5,5 В2DATAданныеGNDGNDобщий провод10 кОм
Три провода из четырёх ножек: третья не подключается никуда. Резистор 10 кОм между DATA и VDD — «подтяжка» линии данных; у готовых Trema-модулей он уже распаян на плате, и хватает трёхпроводного шлейфа.

Датчик продаётся без резистора, поэтому либо докупите набор резисторов с 10 кОм (260 ₽), либо возьмите Trema-модуль — там резистор уже распаян, и датчик подключается готовым трёхпроводным шлейфом.

Скетч

Понадобятся две библиотеки из каталога: «DHT sensor library» и её зависимость «Adafruit Unified Sensor» — каталог знает об этой связке. Скетч собран и проверен: на Uno занимает 5 094 байта.

// Датчик температуры и влажности DHT22 (линия DATA — на выводе 2).
// Нужны две библиотеки из каталога: «DHT sensor library» и её
// зависимость «Adafruit Unified Sensor».
#include <DHT.h>

DHT dht(2, DHT22);   // для DHT11 напишите: DHT dht(2, DHT11);

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

void loop() {
  float h = dht.readHumidity();     // влажность, %
  float t = dht.readTemperature();  // температура, °C
  if (isnan(h) || isnan(t)) {
    // nan означает «датчик не ответил»: проверьте провода и подтяжку
    Serial.println("Datchik ne otvechaet");
  } else {
    Serial.print("t = ");
    Serial.print(t);
    Serial.print(" C, RH = ");
    Serial.print(h);
    Serial.println(" %");
  }
  delay(2000);   // DHT22 нельзя опрашивать чаще раза в 2 секунды
}

Для DHT11 меняется одна строка: DHT dht(2, DHT11); — всё остальное совпадает. Есть и альтернатива с русскими комментариями — библиотека iarduino_DHT из каталога: с ней работает урок 27 нашего курса.

Почему датчик отвечает nan

nan («not a number») — стандартный ответ библиотеки, когда датчик промолчал. Проверяйте по частоте причин:

  • перепутаны ножки — сверьтесь со схемой выше;
  • нет подтяжки 10 кОм между DATA и питанием;
  • опрос чаще раза в 2 секунды — датчик просто не успевает делать измерения;
  • чтение в первую секунду после подачи питания — по даташиту датчик в это время нестабилен;
  • слишком длинный провод без экрана (больше пары метров).

И два запрета из даташита: не работать в конденсате (роса, туман, дождь — датчик деградирует) и не держать под прямым солнцем. Для воды и почвы берите герметичный DS18B20 — про него отдельная статья.

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

Чем DHT11 отличается от DHT22?

Диапазоном и точностью. DHT11: температура 0…50 °C с точностью ±2 °C, влажность 20–90 % с точностью ±5 %. DHT22: −40…+80 °C с точностью ±0,5 °C, влажность 0–100 % с точностью ±2 %. Подключаются одинаково, в скетче меняется одно слово — тип датчика.

Почему датчик возвращает nan?

nan означает «датчик не ответил». Причины по частоте: перепутаны ножки, нет подтяжки 10 кОм между DATA и питанием, опрос чаще раза в 2 секунды, обращение в первую секунду после включения. У Trema-модуля резистор уже на плате — там обычно виноваты провода.

Можно ли ставить DHT22 на улицу?

Диапазон −40…+80 °C позволяет, но даташит запрещает работу в конденсате: под дождём и в тумане с росой датчик деградирует. Ставьте под навес в вентилируемом корпусе, а для воды и почвы берите герметичный DS18B20 — он измеряет только температуру, зато не боится влаги.

Обновлено: 21 августа 2026