Датчик температуры и влажности DHT11: даташит, спецификации, подключение и протокол обмена
Температура и влажность воздуха — ключевые параметры микроклимата. Для одновременного их измерения используется комбинированный цифровой датчик DHT11. Он дешев, распространен в Arduino/Raspberry Pi проектах, имеет калибровку на производстве и выдает данные по однопроводному протоколу. Эта статья — полный обзор даташита DHT11: характеристики, распиновка, протокол, формат данных, типичные ошибки и аналоги.
1. Что такое DHT11?
DHT11 — это комбинированный цифровой датчик относительной влажности и температуры. Внутри корпуса:
- Емкостной датчик влажности (полимерный, изменяет емкость в зависимости от влажности).
- Термистор (NTC) для измерения температуры.
- 8-битный микроконтроллер (ASIC) — выполняет АЦП, калибровку, линеаризацию и выдает цифровой пакет по Single-Bus протоколу.
Калибровочные коэффициенты хранятся в OTP-памяти (One-Time Programmable). Диапазон передачи сигнала до 20 м (при хорошем проводе и питании 5 В). Напряжение питания 3.3–5.5 В.
2. Применение DHT11
- Умный дом: климат-контроль, увлажнители, кондиционеры.
- HVAC системы (вентиляция, отопление, кондиционирование).
- Автомобили: климат-контроль салона.
- Метеостанции (любительские/образовательные).
- Дата-логгеры (запись на SD, отправка в облако).
- Медицинское оборудование (инкубаторы, стерилизаторы).
- Автоматизация процессов (сушка, теплицы, склады).
3. Преимущества DHT11
- Хорошая долгосрочная стабильность (< ±0.5% RH/год).
- Дальность передачи до 20 м.
- Низкое потребление (60 мкА в standby, 0.3 мА при измерении).
- Адаптивный ускорение памяти (внутренний MCU).
- Удобный 4-пиновый корпус в один ряд (DIP-4).
4. Технические характеристики
Питание и общие параметры
- Напряжение питания: 3.5–5.5 В DC
- Период измерения (sampling period): > 2 секунды (не опрашивайте чаще!)
- Ток покоя: 60 мкА
- Ток измерения: 0.3 мА
- Корпус: 4 пина в ряд (DIP-4)
Влажность (Relative Humidity)
- Выходной сигнал: цифровой, Single-Bus
- Диапазон измерения: 20–80% RH (при 50°C)
- Чувствительный элемент: полимерный резистор
- Взаимозаменяемость: полная
- Долгосрочная стабильность: < ±0.5% RH/год
- Точность: ±5% RH (при 25°C)
- Гистерезис: < ±0.3% RH
- Разрешение: 1% RH
Температура
- Разрешение: 1°C
- Повторяемость: ±1°C
- Рабочий диапазон: 0–50°C
- Точность: ±2.0°C
5. Распиновка DHT11
| Пин | Название | Функция | Цвет провода (типовый) |
|---|---|---|---|
| 1 | VCC | Питание 3.5–5.5 В DC | Красный |
| 2 | DATA | Последовательные данные, Single-Bus | Желтый / Белый |
| 3 | NC | Не подключен (не используется) | — |
| 4 | GND | Земля, общий провод | Черный |
Важно: Модуль (плата с датчиком) обычно уже имеет на плате подтягивающий резистор 4.7–10 кОм на линии DATA и фильтрующий конденсатор 100 нФ на питании. Если используете «голый» датчик (корпус DIP-4) — добавьте их сами: R_pullup 4.7–10 кОм (DATA → VCC), C_bypass 100 нФ (VCC → GND).
6. 2D-модель корпуса
7. Протокол обмена данными (Single-Bus)
Обмен инициирует мастер (МК). Датчик — ведомый (slave). Один цикл связи до 4 мс. Подтягивающий резистор 5 кОм держит линию в HIGH (idle).
Последовательность (Timing Diagram):
- Start Signal (МК): МК переводит линию в LOW на 1–10 мс (минимум 1 мс, рекомендуется 18–20 мс для надежности).
- Release (МК): МК отпускает линию (переводит в вход/подтяжку), ждет ответа 20–40 мкс.
- Response (DHT11): Датчик тянет линию LOW на 80 мкс, затем HIGH на 80 мкс — подтверждение готовности.
- Data Transmission (DHT11): 40 бит данных, каждый бит начинается с LOW 50 мкс. Длительность HIGH определяет бит:
- HIGH ~26–28 мкс → бит «0»
- HIGH ~70 мкс → бит «1»
Формат 40-битного пакета:
[8 бит: влажность целая] [8 бит: влажность дробная] [8 бит: температура целая] [8 бит: температура дробная] [8 бит: контрольная сумма]
У DHT11 дробные части всегда 0 (разрешение 1% RH и 1°C). Контрольная сумма = сумма первых 4 байт (младшие 8 бит).
Пример декодирования:
Получены 40 бит:
00110001 00000000 00011010 00000000 00111011
RH_int RH_dec T_int T_dec Checksum
0x33 0x00 0x1A 0x00 0x3B
Проверка: 0x33 + 0x00 + 0x1A + 0x00 = 0x4D (77) → младший байт 0x4D ≠ 0x3B? Ошибка в примере исходника.
Правильно: 0x33 + 0x00 + 0x1A + 0x00 = 0x4D. Контрольная сумма должна быть 0x4D.
Если совпало: Влажность = 0x33 = 51% RH, Температура = 0x1A = 26°C.
8. Типичные ошибки и факторы точности
- Опрос чаще 2 секунд → датчик не успевает измерить → ошибки/зависание.
- Длинные/тонкие провода → падение питания, искажение фронтов → ошибки CRC.
- УФ-излучение (солнце) degrадирует полимерный датчик влажности.
- Дым, кислоты, окисляющие газы разрушают чувствительный элемент.
- Конденсация на датчике → показания 100% RH, долгая регенерация.
- Самонагрев от частого опроса — влияет на температуру.
9. Аналоги и альтернативы
| Датчик | Тип | Влажность | Температура | Точность RH/T | Интерфейс | Цена |
|---|---|---|---|---|---|---|
| DHT22 / AM2302 | Цифровой | 0–100% RH | -40…+80°C | ±2% RH / ±0.5°C | Single-Bus | ~2-3× DHT11 |
| SHT30 / SHT31 / SHT35 | Цифровой | 0–100% RH | -40…+125°C | ±2% RH / ±0.3°C | I2C | ~5-10× DHT11 |
| SHT71 | Цифровой | 0–100% RH | -40…+123°C | ±3% RH / ±0.4°C | 2-проводной (I2C-like) | Дорого |
| BME280 / BMP280 | Цифровой | 0–100% RH | -40…+85°C | ±3% RH / ±0.5°C | I2C / SPI | ~3-5× DHT11 |
Для серьезных проектов выбирайте **SHT3x (I2C)** или **BME280 (I2C/SPI + давление)** — выше точность, стабильность, стандартный интерфейс, нет проблем с таймингами Single-Bus.
Резюме
DHT11 — входной билет в мир мониторинга микроклимата. Дешев, прост в подключении (3 провода), имеет библиотеки для Arduino/ESP/STM32/Python. Ограничения: низкая точность (±5% RH, ±2°C), диапазон влажности 20–80%, минимальный период опроса 2 с, капризный Single-Bus протокол. Для бытовых/обучающих задач — идеален. Для промышленности, точного климат-контроля, уличных метеостанций — выбирайте SHT3x или BME280.
Нужна помощь с кодом для Arduino/ESP32, схемой подключения или выбором альтернативы? Пишите — разберем!
Промышленные технологии
- STTS22H: Цифровой датчик температуры с точностью 0,25 °C и сверхнизким потреблением
- Раскрытие цифровой цепочки поставок: 5 ключевых драйверов успеха в производстве
- Подключение цифрового термометра DS18B20 1-Wire к Raspberry Pi — пошаговое руководство
- Создайте домашний монитор температуры на Raspberry Pi с MCP9808, InfluxDB и Grafana
- Трансформация контейнерных перевозок: цифровая стратегия для умных, эффективных операций
- Точный датчик температуры подшипников: обнаружение и мониторинг
- Оценка цифровой зрелости компании: проверенная методика
- Цифровая трансформация промышленности: ключевые тренды экономии затрат и инноваций
- Цифровое производство: формирование промышленности завтрашнего дня
- DS18B20: 1-Wire цифровой датчик температуры — распиновка, характеристики, применение