DHT22: http://alii.pub/5yjvv7
Прежде чем приступить к материалу, я Вас попрошу, если нравится то, что я делаю и хотите следить за моей деятельностью, то рекомендую подписаться на мой телеграмм канал: https://t.me/ypavla
Там я публикую новости о вышедших видео, статьях и разные устройства для умного дома и не только показываю.
Спасибо за внимание, теперь продолжим.
Этот датчик DHT22 температуры и влажности был очень популярный раньше. Самое первое что люди начинали изучать в ардуино это подключение этого датчика к нему.
Тогда еще не было таких крутых датчиков как BME280 и других. Позже появился bmp080, но он скорее был дополнением, так как он не показывал влажность, но показывал давление.
Технические характеристики датчика DHT22:
- Питание – от 3 до 5 Вольт;
- Максимальный ток при преобразовании – 2,5 мА;
- Способен измерять влажность в интервале от 0% до 100%. Точность измерений колеблется от 2% до 5%;
- Минимальная измеряемая температура – минус 40, максимальная – 125 градусов по Цельсию (точность измерений – 0,5);
- Устройство способно совершать одно измерение за 2 секунд. Частота – до 0,5 ГЦ;
- Габаритные размеры: 15,1 мм длина; 25 мм широта; 5,5 мм высота;
- Присутствует 4 коннектора. Расстояние между соседними – 0,1 ‘;
Теперь давайте поговорим про подключение его к ESP8266 или ESP32 чтоб работать с ним в ESPHome.
Если DHT22 в оболочке “модуля” то у него всего 3 пина, таких как VCC,GND и Pin data.
Для ESPHome существует интеграция DHT https://esphome.io/components/sensor/dht.html. С ней собственно и работают датчики DHT22 и DHT11.
У меня код в итоге выглядит вот так:
sensor:
- platform: dht
pin: GPIO26
temperature:
name: "DHT22 Temperature"
humidity:
name: "DHT22 Humidity"
update_interval: 60s
GPIO26 - это пин к которому собственно и подключен pin data датчика DHT22.
А так выглядит вывод показаний Температуры и влажности на дисплей M5STack:
spi:
clk_pin: 18
mosi_pin: 23
miso_pin: 19
sensor:
- platform: dht
pin: GPIO26
temperature:
name: "DHT22 Temperature"
id: temperature
humidity:
name: "DHT22 Humidity"
id: humidity
update_interval: 3s
font:
- file: "fonts/Roboto-Medium.ttf"
id: font_roboto_medium22
size: 22
color:
- id: RED
red: 100%
green: 0%
blue: 0%
- id: BLUE
red: 0%
green: 0%
blue: 100%
- id: WHITE
red: 100%
green: 100%
blue: 100%
display:
- platform: ili9341
id: m5stack_display
model: M5Stack
cs_pin: 14
dc_pin: 27
led_pin: 32
reset_pin: 33
rotation: 0
lambda: |-
it.rectangle(0, 0, it.get_width(), it.get_height(), WHITE);
it.rectangle(0, 22, it.get_width(), it.get_height(), WHITE); // header bar
it.print(it.get_width() / 2, 11, id(font_roboto_medium22), WHITE, TextAlign::CENTER, "DHT22");
it.print(11, 33, id(font_roboto_medium22), WHITE, TextAlign::LEFT, "Temperature");
it.print(11, 55, id(font_roboto_medium22), WHITE, TextAlign::LEFT, "Humidity");
it.printf(it.get_width() - 11, 33, id(font_roboto_medium22), WHITE, TextAlign::RIGHT, "%.1f ", id(temperature).state);
it.printf(it.get_width() - 11, 55, id(font_roboto_medium22), WHITE, TextAlign::RIGHT, "%.1f ", id(humidity).state);
Ну а как добавить этот датчик подключенный таким способом к ESPHome в Home Assistant. Тут все как обычно.
Заходим в Настройки->Интеграции-> Добавляем новую интеграцию ESPHome и введя ip адрес нашей ESPшки к которой подключен DHT22. И все интеграция добавится.
В системе Home Assistant это все будет видеться какDHT22 Temperature и DHT22 Humidity
соответственно. И выглядит это так:
Ну и при добавлении в карточку: