247   225   70    

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 более точный и имеет больший диапазон измеряемых значений.

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

Подключение DHT11 (DHT22) к Ардуино

Чтобы подключить DHT11 или DHT22 к Ардуино нам нужно сделать всего несколько простых шагов.

Комплектующие

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

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

Схема подключения сенсоров

Собрать очень простую схему соответственно изображению ниже:

Код программы

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

Далее нужно загрузить скетч (см. ниже) через 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); // Опрос раз в секунду
}

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

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

Ардуино+