ELECTRONICS

Библиотека DHT sensor library

В менеджере библиотек
DHT sensor library by Adafruit
Версия
1.4.7 · всего 25 версий, первая — 1.0.0
Платы
любые — автор не ограничивал
Зависимости
Adafruit Unified Sensor — менеджер предложит поставить вместе
СкачатьDHT_sensor_library-1.4.7.zip · 18 КБ

Архивы — копии из официального индекса Arduino, контрольная сумма совпадает. Сверено 19.10.2026.

Датчики температуры и влажности DHT11 и DHT22: два числа за один вызов, без разбора однопроводного протокола.

DHT11 и DHT22 отдают данные по одному проводу своим протоколом с микросекундными импульсами. Библиотека Adafruit разбирает его и возвращает температуру и влажность обычными числами. Вместе с ней менеджер предложит поставить Adafruit Unified Sensor — соглашайтесь, без неё не соберётся.

Датчик медленный: DHT11 нельзя опрашивать чаще раза в секунду, DHT22 — раза в две секунды. Между опросами библиотека отдаёт прошлое значение.

Как скачать и установить

  1. Через менеджер — самый простой путь. В Arduino IDE: Инструменты → Управлять библиотеками (Ctrl+Shift+I). Введите DHT sensor library и найдите в списке строку «DHT sensor library by Adafruit» — одноимённых библиотек бывает несколько, отличаются они автором. Нажмите «Установить», и на вопрос про зависимости — «Установить всё».
  2. Конкретная версия — если в чужом проекте указана не последняя. В той же карточке менеджера рядом с кнопкой есть выпадающий список версий: выберите нужную и нажмите «Установить».
  3. Из архива — если нет интернета на рабочем компьютере или менеджер не открывается. Скачайте ZIP выше, затем Скетч → Подключить библиотеку → Добавить .ZIP библиотеку и укажите файл. Распаковывать не нужно.

Файл DHT.h отдельно не скачивают: он внутри библиотеки и появляется после установки. Если среда пишет DHT.h: No such file or directory — библиотека не установлена или установлена не та. Как устроен менеджер и куда складываются файлы — в общей статье про библиотеки.

Строка подключения:

#include <DHT.h>

Создание объекта — обычно до setup():

#define DHTPIN 2
#define DHTTYPE DHT22          // или DHT11
DHT dht(DHTPIN, DHTTYPE);
dht.begin();                   // в setup()

Методы

Только то, что нужно в обычном скетче. Сигнатуры сверены с версией 1.4.7.

begin()
Подготовить вывод. В setup().
readTemperature()
Температура в °C как float. NaN, если датчик не ответил.
readTemperature(true)
То же в °F.
readHumidity()
Влажность в процентах, float. NaN при ошибке.
computeHeatIndex(t, h, false)
«Ощущаемая» температура по температуре и влажности; false — в °C.
read(bool force)
Принудительно опросить датчик, не дожидаясь двух секунд. Возвращает true при удаче.
isnan(value)
Не метод библиотеки, а проверка из math.h: так узнают, что чтение не удалось.

Пример

#include <DHT.h>

#define DHTPIN  2
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);

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

void loop() {
  delay(2000);                          // DHT22 не отвечает чаще
  float h = dht.readHumidity();
  float t = dht.readTemperature();
  if (isnan(h) || isnan(t)) {
    Serial.println("Датчик не ответил");
    return;
  }
  Serial.print(t, 1); Serial.print(" C, ");
  Serial.print(h, 0); Serial.println(" %");
}
Запустить в симулятореСхема с этим скетчем — запустить в браузере

Проверка на NaN обязательна: при плохом контакте датчик отвечает через раз, и без неё в лог полетят «nan».

На чём попадаются

Всегда NaN

Нет подтягивающего резистора 10 кОм между данными и питанием (у модулей на плате он есть, у голого датчика — нет), либо в DHTTYPE указан не тот датчик.

Не компилируется: Adafruit_Sensor.h not found

Не поставлена зависимость Adafruit Unified Sensor. Ставится через тот же менеджер.

Значения скачут

Слишком частый опрос или длинный провод. Опрашивайте реже, провод короче метра, питание 5 В.

Где используется на сайте

Что дальше