Датчик влажности и температуры DHT11: подключение к Arduino

Характеристики DHT11, схема включения с подтягивающим резистором и пример индикации влажности в комнате RGB-светодиодом.
Что представляет собой DHT11
DHT11 — цифровой датчик, объединяющий термистор и ёмкостный сенсор влажности. Встроенный АЦП сам преобразует аналоговые значения, так что контроллер получает уже готовые данные. Высокой скоростью и точностью датчик не отличается, зато он прост и недорог, поэтому хорошо подходит для обучения и для контроля влажности в помещении. Опрашивать его можно не чаще одного раза в секунду.

Технические характеристики
| Питание | 3,5–5,5 В постоянного тока |
| Ток при измерении | 0,3 мА |
| Ток в режиме ожидания | 60 мкА |
| Диапазон влажности | 20–80 %, точность 5 % |
| Диапазон температуры | 0–50 °C, точность 2 % |
| Частота опроса | не более 1 Гц |
| Размеры | 15,5 × 12 × 5,5 мм |
Выводы и схема включения
У датчика четыре вывода с шагом 2,54 мм: 1 — VCC, 2 — DATA (данные), 3 — не используется, 4 — GND.

Между питанием и линией данных ставится резистор. При небольшом расстоянии до Arduino рекомендуют 10 кОм, а если линия длиннее 20 метров — 5,1 кОм. Желательно также добавить конденсатор между VCC и GND в качестве фильтра по питанию.
Обмен идёт по одному проводу, и по структуре протокол напоминает DS18B20, но есть отличия. DHT не работает в «паразитном» режиме питания и не имеет индивидуального идентификатора, поэтому несколько датчиков на одну линию повесить нельзя: каждому нужен свой цифровой пин.
Пример: индикатор влажности
В проекте RGB-светодиод показывает состояние воздуха в комнате: зелёный — оптимальные 40–60 %, красный — сухо (ниже 40 %), синий — влажность выше 60 %. Потребуются Arduino Uno, макетная плата, RGB-светодиод, DHT11, резистор 10 кОм, три резистора 220 Ом и провода.

Скетч использует библиотеку DHT. Линия данных подключена к пину 2, тип сенсора задаётся строкой #define DHTTYPE DHT11. Красный, зелёный и синий выводы светодиода соединены с пинами 5, 4 и 3.
Раз в 5 секунд вызывается dht.readHumidity(), возвращающая относительную влажность воздуха. По полученному значению процедура setRGB() включает нужный цвет. Если чтение не удалось, в порт уходит сообщение «Failed to read from DHT», а светодиод гаснет. Значение влажности для контроля выводится в монитор последовательного порта на скорости 9600.

На что обратить внимание
- Светодиод не горит — проверить его подключение и показания датчика в мониторе порта.
- Ошибка чтения данных — проверить подключение DHT11.
- Цвета не соответствуют ожидаемым — сверить цоколёвку RGB-светодиода с документацией.