Обзор
DHT22 (также известный как AM2302) — это высокоточный цифровой датчик для измерения температуры и влажности. В отличие от DHT11, он обеспечивает лучшую точность и более широкий диапазон измерений. Благодаря калиброванным цифровым выходам, он прост в подключении и широко используется в проектах мониторинга окружающей среды.
DHT22 (AM2302) — это высокоточный цифровой датчик для измерения температуры и влажности. Он обеспечивает калиброванные цифровые выходы и имеет значительно лучшую точность по сравнению с DHT11. Датчик широко используется в проектах Arduino, ESP32 и Raspberry Pi.
⚡ Ключевые особенности
- Высокая точность — ±0.5°C для температуры, ±2% для влажности
- Широкий диапазон — от -40°C до 80°C
- Цифровой выход — не требует АЦП
- Калибровка — встроенная заводская калибровка
- Низкое энергопотребление
Приобретите DHT22
Технические характеристики DHT22
Распиновка DHT22
Питание (3.3V - 5V)
Линия данных (требуется подтяжка 4.7kΩ)
Не используется
Земля
- 🔌 Резистор подтяжки — обязателен 4.7kΩ - 10kΩ
- 📏 Длина провода — до 30 метров
- ⏱️ Частота опроса — не чаще 1 раза в 2 секунды
- 🔋 Питание — рекомендуется 3.3V для ESP32
Подключение DHT22 к ESP32
| Вывод DHT22 | Подключение | Вывод ESP32 | Описание |
|---|---|---|---|
| VCC | Требуется | 3.3V | Питание |
| DATA | Требуется | GPIO4 | Линия данных (с подтяжкой 4.7kΩ) |
| GND | Требуется | GND | Земля |
Устранение неполадок DHT22
Показания "0" или "-1"
Датчик не отвечает
Показания "0" или "-1"
Датчик не отвечает
Проблема: Датчик возвращает значения 0 или -1.
Причины:
- Неправильное подключение
- Отсутствует резистор подтяжки
- Слишком длинный провод
- Неправильный пин GPIO
Решение: Проверьте подключение, добавьте резистор подтяжки 4.7kΩ - 10kΩ между DATA и VCC.
Ошибка CRC
Несовпадение контрольной суммы
Ошибка CRC
Несовпадение контрольной суммы
Проблема: Ошибка контрольной суммы при чтении данных.
Причина: Помехи на линии данных или нестабильное питание.
Решение: Добавьте конденсатор 100nF между VCC и GND, укоротите провода, проверьте качество питания.
- 🔌 Используйте Serial Monitor для отладки
- 🔧 Проверьте подтягивающий резистор
- 📏 Длина провода — не более 30 метров
- ⏱️ Задержка — минимум 2 секунды между чтениями
Примеры программирования DHT22
Arduino
Совместимо с Arduino IDE и ESP32
C++
Arduino
Совместимо с Arduino IDE и ESP32
#include <DHT.h>
#define DHTPIN 4 // Пин данных
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(115200);
dht.begin();
Serial.println("Датчик DHT22 инициализирован!");
}
void loop() {
// Задержка между измерениями (DHT22 мин. 2 секунды)
delay(2000);
float h = dht.readHumidity();
float t = dht.readTemperature();
// Проверка на ошибки чтения
if (isnan(h) || isnan(t)) {
Serial.println("Ошибка чтения с датчика DHT22!");
return;
}
Serial.print("Влажность: ");
Serial.print(h);
Serial.println(" %");
Serial.print("Температура: ");
Serial.print(t);
Serial.println(" °C");
}
Пример использует библиотеку DHT для чтения данных с датчика. Измените DHTTYPE на DHT22 (для DHT11 используйте DHT11).
ESPHome
Конфигурация для Home Assistant
YAML
ESPHome
Конфигурация для Home Assistant
sensor:
- platform: dht
pin: GPIO4
model: DHT22
temperature:
name: "Living Room Temperature"
unit_of_measurement: "°C"
humidity:
name: "Living Room Humidity"
unit_of_measurement: "%"
update_interval: 60s
Конфигурация ESPHome для подключения DHT22 к GPIO4. Укажите model: DHT22 для правильной работы.
MicroPython
Python для микроконтроллеров
Python
MicroPython
Python для микроконтроллеров
from machine import Pin
from dht import DHT22
import time
# Создаем объект датчика на пине GPIO4
dht = DHT22(Pin(4))
while True:
try:
dht.measure()
temp = dht.temperature()
hum = dht.humidity()
print(f"Температура: {temp}°C, Влажность: {hum}%")
except OSError as e:
print("Ошибка чтения датчика:", e)
time.sleep(2)
MicroPython поддерживает DHT22 через класс DHT22. Подключите датчик к GPIO4.
Итоги DHT22
Датчик DHT22 (AM2302) — это высокоточный и надежный датчик для измерения температуры и влажности. Благодаря широкому диапазону измерений и лучшей точности по сравнению с DHT11, он идеально подходит для проектов мониторинга окружающей среды.
Преимущества
Высокая точность ±0.5°C, широкий диапазон температур от -40°C до 80°C, 0-100% влажности.
Ограничения
Требует задержки 2 секунды между измерениями, дороже чем DHT11.