Обзор и подключение DHT11 (DHT22) датчика влажности и температуры

Цифровые датчики DHT11 и DHT22  предназначены для измерения относительной влажности и температуры окружающий среды. Эти сенсоры простые и медленные, но при этом отлично подходят для проектов на Arduino, Wemos, nodemcu и прочих платформ на микроконтроллерах.

Датчики DHT состоят из двух основных частей: ёмкостный датчик влажности и термистор. Также в корпусе установлен простенький чип для преобразования аналогового сигнала в цифровой. Считывать цифровой сигнал на выходе достаточно просто, можно использовать любой контроллер, не обязательно это должен быть ардуино.

Обзор и подключение DHT11(DHT22) датчика влажности и температуры

Характеристики датчиков:

DHT11:

  • Питание от 3 до 5В.
  • Максимально потребляемый ток – 2.5мА при преобразовании (при запросе данных).
  • Рассчитан на измерение уровня влажности в диапазоне от 20% до 80%. При этом точность измерений находится в диапазоне 5%.
  • Измеряет температуру в диапазоне от 0 до 50 градусов с точностью плюс-минус 2%.
  • Частота измерений не более 1 Гц (одно измерение в секунду).
  • Размер корпуса: 15.5 мм x 12 мм x 5.5 мм.
  • 4 коннектора. Расстояние между соседними – 0.1″.

DHT22:

  • Питание от 3 до 5В.
  • Максимально потребляемый ток – 2.5мА при преобразовании (при запросе данных).
  • Рассчитан на измерение уровня влажности в диапазоне от 0% до 100%. При этом точность измерений находится в диапазоне 2%-5%.
  • Измеряет температуру в диапазоне от -40 до 125 градусов с точностью плюс-минус 0.5 градусов по Цельсию.
  • Частота измерений до 0.5 Гц (одно измерение за 2 секунды).
  • Размер корпуса: 15.1 мм x 25 мм x 7.7 мм.
  • 4 коннектора. Расстояние между соседними – 0.1″.

Как видите, DHT22 более точный и имеет больший диапазон измеряемых значений, но стоит немного дороже DHT11. Оба датчика имеют по одному цифровому выходу. Запросы к ним можно отправлять не чаще чем один в секунду или две.

Как подключить датчик к ардуино? Просто!

Собрав очень простую схему по картинке, и залив скетч через Arduino IDE, мы уже сможем считывать показания датчиков и получим температуру и влажность окружающей среды! Приступим!

Для сбора устройства Вам понадобятся:

1. Arduino UNO, либо другой аналогичный ардуино, отличающийся формфактором;
2. Датчик влажности DHT11;
3. Резистор 10КОм;
4. Макетная плата;

После того как вы собрали тестовый стенд для испытаний датчика, вам потребуется скачать библиотеку DHT11 и подключить к среде разработки Arduino IDE, скачать библиотеку можно тут. Как установить библиотеку, мы рассказывали.

Затем подключив Ардуино к компьютеру и выбрав вашу плату и порт, заливаем скетч:

#include <dht11.h>

dht11 DHT;
//Вывод данных DHT11 подключен к ноге 4
#define DHT11_PIN 4

void setup()
{
Serial.begin(9600); //Запускаем отладочный порт
int check; 
Serial.print("DHT11 STATUS – \t"); //Состояние датчика
check = DHT.read(DHT11_PIN); //запрашиваем состояние
//Выводим результат
switch (check) 
{
case DHTLIB_OK: //Датчик готов к работе
Serial.print("OK\n");
break;
case DHTLIB_ERROR_CHECKSUM: //Ошибка контрольной суммы - проверить контакт
Serial.print("Checksum error\n");
break;
case DHTLIB_ERROR_TIMEOUT: //Превышено премя ожидания
Serial.print("Timeout error\n");
break;
default: //Библиотека не может подключиться к датчику по неизвестной причине
Serial.print("Unknown error\n");
break;
}
}

void loop()
{
//Вывод температуры и влажности 
Serial.print("Humidity is ");
Serial.print(DHT.humidity,1); //Влажность
Serial.print("\n");
Serial.println("Temperature is "); 
Serial.println(DHT.temperature,1); //Температура

delay(1000); // Опрос раз в секунду
}

После того как вы залили скетч, открываем монитор порта и смотрим показания датчика, все готово!

Подышав на датчик, можно отследить изменения показаний. В этом случае уровень влажности должен увеличиться. А если приложить к датчику что-нибудь горячее, температура тоже поползет вверх! Если у вас что-то не получилось, оставляйте свои комментарии и мы обязательно поможем решить проблему! Удачи в изучении!

Ардуино+