Обзор
DHT20 — это высокоточный цифровой датчик температуры и влажности с интерфейсом I²C. Он отличается низким энергопотреблением, быстрым временем отклика и превосходной долгосрочной стабильностью, что делает его идеальным для широкого спектра приложений мониторинга окружающей среды.
DHT20 — это высокоточный цифровой датчик температуры и влажности с интерфейсом I²C. Это современная версия датчиков DHT11/DHT22 с значительно улучшенными характеристиками. Датчик имеет встроенную калибровку и обеспечивает стабильные показания.
⚡ Ключевые особенности
- Интерфейс I²C — простая и надежная коммуникация
- Высокая точность — ±0.3°C для температуры, ±2% для влажности
- Низкое энергопотребление — идеально для батарейных устройств
- Долгосрочная стабильность — превосходная стабильность показаний
- Компактный размер — встроенный корпус
Приобретите DHT20
Технические характеристики DHT20
Распиновка DHT20
Питание (2.2V - 3.6V)
I2C данные
Земля
I2C тактирование
- 🔌 I2C адрес — 0x38 (фиксированный)
- 📏 Длина провода — до 10 метров
- ⏱️ Частота опроса — рекомендуется каждые 5 секунд
- 🔋 Питание — 3.3V (не 5V!)
Подключение DHT20 к ESP32
| Вывод DHT20 | Подключение | Вывод ESP32 | Описание |
|---|---|---|---|
| VCC | Требуется | 3.3V | Питание (2.2V-3.6V) |
| GND | Требуется | GND | Земля |
| SDA | Требуется | GPIO21 | I2C данные |
| SCL | Требуется | GPIO22 | I2C тактирование |
- ⚠️ НАПРЯЖЕНИЕ — используйте 3.3V, а не 5V!
- 📍 Адрес I2C — фиксированный 0x38
- 🔧 Подтяжка — встроенные резисторы
Устранение неполадок DHT20
Датчик не определяется
I2C сканер не находит датчик
Датчик не определяется
I2C сканер не находит датчик
Проблема: Датчик не обнаруживается по I2C.
Причины:
- Неправильное напряжение питания (используется 5V вместо 3.3V)
- Неправильное подключение SDA/SCL
- Проблемы с проводами
Решение: Проверьте напряжение питания (должно быть 3.3V), проверьте подключение SDA к GPIO21 и SCL к GPIO22.
Нестабильные показания
Значения прыгают или некорректны
Нестабильные показания
Значения прыгают или некорректны
Проблема: Показания датчика нестабильны.
Причина: Нестабильное питание или помехи на линии I2C.
Решение: Добавьте конденсатор 100nF между VCC и GND, проверьте качество питания.
- 🔌 Используйте I2C сканер для проверки адреса
- 🔧 Проверьте напряжение питания (3.3V!)
- 📏 Длина провода — не более 10 метров
- ⏱️ Задержка — минимум 5 секунд между чтениями
Примеры программирования DHT20
Arduino
Совместимо с Arduino IDE и ESP32
C++
Arduino
Совместимо с Arduino IDE и ESP32
#include <Wire.h>
#include <DHT20.h>
DHT20 dht;
void setup() {
Serial.begin(115200);
Wire.begin(21, 22); // SDA=21, SCL=22 на ESP32
// Инициализация датчика
while (dht.begin() != true) {
Serial.println("DHT20 не найден!");
delay(5000);
}
Serial.println("DHT20 инициализирован!");
}
void loop() {
// Чтение данных (занимает ~5ms)
dht.read();
float temperature = dht.getTemperature();
float humidity = dht.getHumidity();
// Проверка на ошибки
if (isnan(temperature) || isnan(humidity)) {
Serial.println("Ошибка чтения!");
return;
}
Serial.print("Температура: ");
Serial.print(temperature);
Serial.println(" °C");
Serial.print("Влажность: ");
Serial.print(humidity);
Serial.println(" %");
delay(5000); // Минимум 2 секунды между чтениями
}
Пример использует библиотеку DHT20 для чтения данных. Датчик подключен к стандартным пинам I2C ESP32 (SDA=GPIO21, SCL=GPIO22).
ESPHome
Конфигурация для Home Assistant
YAML
ESPHome
Конфигурация для Home Assistant
i2c:
sda: GPIO21
scl: GPIO22
sensor:
- platform: dht20
temperature:
name: "Гостиная Температура"
unit_of_measurement: "°C"
humidity:
name: "Гостиная Влажность"
unit_of_measurement: "%"
update_interval: 60s
Конфигурация ESPHome для подключения DHT20. Датчик автоматически определяется по адресу 0x38.
MicroPython
Python для микроконтроллеров
Python
MicroPython
Python для микроконтроллеров
from machine import I2C, Pin
import time
i2c = I2C(0, scl=Pin(22), sda=Pin(21), freq=100000)
DHT20_ADDR = 0x38
def read_dht20():
# Отправка команды на измерение
i2c.writeto(DHT20_ADDR, bytes([0xAC, 0x33, 0x00]))
time.sleep_ms(80)
# Чтение 6 байт данных
data = i2c.readfrom(DHT20_ADDR, 6)
# Проверка статуса
if (data[0] >> 4) != 0x0A:
return None, None
# Расчет значений
humidity = ((data[1] << 12) | (data[2] << 4) | (data[3] >> 4)) / (1 << 20) * 100
temperature = (((data[3] & 0x0F) << 16) | (data[4] << 8) | data[5]) / (1 << 20) * 200 - 50
return temperature, humidity
while True:
temp, hum = read_dht20()
if temp is not None:
print(f"Температура: {temp:.1f}°C, Влажность: {hum:.1f}%")
else:
print("Ошибка чтения")
time.sleep(5)
MicroPython пример для чтения DHT20 без внешней библиотеки. Данные считываются напрямую через I2C.
Итоги DHT20
Датчик DHT20 — это современная и высокоточная замена устаревшим датчикам DHT11/DHT22. Благодаря интерфейсу I²C, низкому энергопотреблению и превосходной стабильности, он идеально подходит для проектов IoT и систем мониторинга.
Преимущества
Интерфейс I²C, высокая точность ±0.3°C, низкое энергопотребление, долгосрочная стабильность.
Важно помнить
Питание только 3.3V (не 5V!), адрес I2C всегда 0x38.
Готовы начать создавать?
Теперь, когда у вас есть вся необходимая информация, пора интегрировать DHT20 в проект и воплотить идеи в жизнь!
Изучите альтернативные датчики
Ищете альтернативы DHT20? Посмотрите эти похожие датчики — возможно, они лучше подойдут под задачи вашего проекта.

Датчик температуры и влажности AHT20
AHT20 — новое поколение датчиков температуры и влажности, устанавливающих новый стандарт по размерам и точности...

Датчик температуры и влажности AHT10
AHT10 — современный, полностью откалиброванный и высокоинтегрированный датчик температуры и влажности...

SHT31 / SHT31-D / GY-SHT31 / SI7021 — датчик температуры и влажности
Серия SHT31 использует технологию CMOSens® от Sensirion, чтобы обеспечивать точные, стабильные и линейные данные...