В мире «умных» устройств и интернета вещей (IoT) датчики микроклимата занимают особое место: они позволяют технике «чувствовать» окружающую среду и реагировать на её изменения. Один из самых популярных и доступных инструментов для измерения температуры и влажности — датчик DHT11. Его простота, низкая стоимость и совместимость с Arduino сделали его любимцем начинающих электронщиков и основой множества бытовых проектов.
Что представляет собой DHT11 для Arduino
DHT11 — компактный цифровой модуль, объединяющий два сенсора:
- ёмкостный датчик влажности;
-
термистор (датчик температуры).
Внутри модуля также встроен аналого‑цифровой преобразователь (АЦП), который переводит аналоговые показания в цифровой сигнал, удобный для обработки микроконтроллером.
Корпус выполнен из прочного инженерного пластика, а в комплекте обычно идут три перемычки типа «мама‑мама» для быстрого подключения.
Ключевые характеристики датчика температуры и влажности DHT11 TZT для Arduino
- Напряжение питания: 3−5 В.
-
Диапазон измерения влажности: 20−80% (погрешность ±5%).
-
Диапазон измерения температуры: 0−50 ∘C (погрешность ±2 ∘C).
-
Частота опроса: не более 1 Гц (один замер в секунду).
-
Время отклика: 5 с.
-
Потребление тока: 0,3 мА в режиме измерения, 60 μА в режиме ожидания.
-
Размеры: 15,5×12×5,5 мм.
Как подключается DHT11 к Arduino
Модуль имеет три вывода (шаг 2,54 мм):
- VCC — питание (3−5 В).
-
DATA — линия данных (подключается к цифровому пину Arduino).
-
GND — земля.
Важные нюансы подключения:
Между VCC и DATA рекомендуется установить резистор 10 кОм (для коротких линий).
Для линий длиннее 20 м лучше использовать резистор 5,1 кОм.
Желательно добавить конденсатор между VCC и GND для фильтрации помех.
Особенности работы датчика температуры и влажности DHT11 TZT для Arduino
Однопроводный протокол. DHT11 использует собственный цифровой интерфейс, похожий на DS18B20, но без «паразитного» режима.
Один датчик — один пин. В отличие от DS18B20, к одному цифровому пину Arduino можно подключить лишь один DHT11 (у него нет уникального идентификатора).
Низкая частота опроса. Из-за времени отклика (5 с) не стоит запрашивать данные чаще раза в секунду.
Плюсы и минусы DHT11
Достоинства:
- низкая стоимость;
-
простота подключения и программирования;
-
малое энергопотребление;
-
компактный размер;
-
готовность к использованию (не требует дополнительной обвязки).
Ограничения:
- невысокая точность (погрешность ±5% по влажности и ±2 ∘C по температуре);
-
узкий диапазон температур (только положительные значения);
-
медленная реакция на изменения параметров;
-
невозможность подключения нескольких датчиков к одному пину.
Типичные проекты с DHT11
1. Домашний метеостанция
- измерение температуры и влажности в комнате;
-
вывод данных на LCD‑дисплей или OLED;
-
запись значений в текстовый файл на SD‑карту.
2. Система контроля микроклимата
- включение вентилятора при перегреве;
-
оповещение о повышенной влажности (риск плесени);
-
управление увлажнителем воздуха.
3. Умный террариум
- мониторинг условий для растений;
-
сигнализация при выходе параметров за допустимые пределы.
4. IoT‑датчик с отправкой данных
- передача показаний на сервер (например, через ESP8266);
-
визуализация в облачных сервисах (ThingSpeak, Blynk).
5. Учебный проект
- освоение работы с цифровыми датчиками;
-
изучение протоколов обмена данными;
-
практика программирования условий и циклов.
Как работать с DHT11 в Arduino IDE
Установите библиотеку. Например, DHT.h от Adafruit или универсальную DHT sensor library.
Подключите датчик по схеме выше.
Напишите скетч:
укажите пин подключения и тип датчика (#define DHTTYPE DHT11);
инициализируйте объект (DHT dht(DHTPIN, DHTTYPE));
считывайте данные функциями dht.readTemperature() и dht.readHumidity().
Обрабатывайте ошибки. Проверяйте корректность полученных значений (DHT11 может возвращать NAN при сбоях).
Выводите данные в Serial Monitor или на дисплей.
Скетч метеостанции для Arduino с датчиком DHT11 и LCD-дисплеем 1602 (I2C)
В данном проекте помимо датчика температуры и влажности DHT11 ещё понадобиться LCD-дисплей 16×2 с интерфейсом связи I2C (подключается всего четырьмя проводами).
Необходимые компоненты:
- Arduino совместимая плата
-
Датчик DHT11
-
LCD-дисплей 16×2 (I2C)
Соединительные провода
Схема подключения:
DHT11:
VCC → 5V
GND → GND
DATA → цифровой пин (например, 2)
LCD I2C:
VCC → 5V
GND → GND
SDA → Pin 20 (SDA)
SCL → Pin 21 (SCL)
Требования:
Установить библиотеку LiquidCrystal_I2C
Установить библиотеку DHT
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <DHT.h>
// Настройки LCD (адрес I2C обычно 0x27 или 0x3F)
LiquidCrystal_I2C lcd(0x27, 16, 2);
// Настройки DHT11
#define DHTPIN 2
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
void setup() {
// Инициализация Serial порта для отладки
Serial.begin(9600);
// Инициализация датчика
dht.begin();
// Инициализация дисплея
lcd.init();
lcd.backlight();
// Приветственное сообщение
lcd.setCursor(0, 0);
lcd.print("Метеостанция");
lcd.setCursor(0, 1);
lcd.print("Загрузка...");
delay(2000);
lcd.clear();
}
void loop() {
// Считываем данные с датчика
float h = dht.readHumidity();
float t = dht.readTemperature();
// Проверяем успешность чтения
if (isnan(h) || isnan(t)) {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Ошибка чтения!");
delay(2000);
return;
}
// Очищаем экран
lcd.clear();
// Форматируем и выводим температуру
lcd.setCursor(0, 0);
lcd.print("T: ");
lcd.print(t);
lcd.print(" C");
// Форматируем и выводим влажность
lcd.setCursor(0, 1);
lcd.print("H: ");
lcd.print(h);
lcd.print(" %");
// Обновление каждые 2 секунды
delay(2000);
}
|
Дополнительные настройки:
Адрес I2C: по умолчанию используется 0x27. Если дисплей не работает, попробуйте 0x3F.
Пин датчика: в скетче используется пин 2. При необходимости измените значение DHTPIN.
Форматирование: можно изменить формат вывода данных, добавив параметры в функции print().
Обработка ошибок:
Проверка на NaN (некорректные данные)
Вывод сообщения об ошибке
Повторное чтение через 2 секунды
Рекомендации по использованию:
Обеспечьте стабильное питание 5В
Не уменьшайте интервал обновления менее 2 секунд
Размещайте датчик вдали от источников тепла
При необходимости проведите калибровку датчика
Проверьте правильность всех подключений перед запуском
Советы по эксплуатации
- Избегайте конденсации. Датчик не защищён от воды — не используйте в условиях высокой влажности без корпуса.
-
Не размещайте возле источников тепла. Радиатор, лампа или солнце исказят показания температуры.
-
Калибруйте при необходимости. Сравните показания с эталонным прибором и внесите поправки в код.
-
Используйте задержки. Между замерами лучше выдерживайте не менее 5 с.
-
Защищайте от помех. Экранируйте провода или добавляйте конденсаторы, если наблюдаются скачки значений.
DHT11 — это «рабочая лошадка» для начинающих проектов по измерению микроклимата. Несмотря на ограниченную точность, он идеально подходит для:
- обучения основам работы с датчиками;
-
создания прототипов;
-
бытовых устройств, где не требуется высокая точность.
Его простота и доступность открывают дверь в мир IoT: всего несколько проводов и строк кода — и ваша Arduino уже «чувствует» температуру и влажность. Для серьёзных задач есть более точные аналоги (например, DHT22), но для старта DHT11 остаётся одним из лучших выборов.