Датчики влажности и температуры DHT11 DHT22 и их подключение к Arduino

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

Датчики влажности и температуры DHT11:

Питание от 3 до 5В
Максимально ток потребления - 2.5мА при преобразовании сигнала (и в момент запроса контролируемых параметров)
Измерение уровня влажности в интервале от 20% до 80%.
Точность измерений - 5%.
Контролируемая температура от 0 до 50 градусов с точностью 2%
одно измерение в секунду
размер: 15.5 мм x 12 мм x 5.5 мм

Датчики влажности и температуры DHT22:

Питание 3 - 5В
потребляемый ток - 2.5мА
Влажность 0% - 100%. погрешность 2%-5%
Температура -40 - 125 градусов с точностью плюс-минус 0.5 градусов
одно измерение за 2 секунды)
Размер корпуса: 15.1 мм x 25 мм x 7.7 мм
Подключение датчиков DHT11 и DHT22 к Arduino

Подключаются они достаточно легко. Так как у них достаточно длинные выводы, то их можно устанавливать сразу на макетную или монтажную плату. Непосредственное подключение к плате Arduino тоже простое. На первый вывод DHT11 или DHT22 подаем питание VCC - от 3 до 5 В. По второму передается информация с датчика. Третий не используется, четвертый общий или земля. Рекомендуется подключить подтягивающее сопротивление на 10 кОм между сигналом и питанием. На рисунке ниже показана схема подключения DHT11 к Ардуино. Подключаем сигнал с DHT22, например к 2-му пину (можно взять и другой этот пин легко изменить с соответствующими правками в коде (смотри в файловом архиве по ссылке выше).

Считывание информации с датчиков DHT11 и DHT22

Переместите из файлового архиву папку DHT в папку arduinosketchfolder/libraries/ . Возможно вам придется создать папку libraries для библиотек, если вы впервые интегрируете библиотеку. Перезагрузите программу Arduino IDE. После этого загрузите скетч: Examples->DHT->DHTtester. Выглядит окно программы следующим образом:

Если вы подключили температурный датчик модели DHT11, закомментируйте строку, которая устанавливает тип:
//#define DHTTYPE DHT22 // DHT 22 (AM2302)
И уберите комментарий со строки:
#define DHTTYPE DHT11 // DHT 11
Эти настройки помогают настроить правильные значения именно с подключенной в схему модели датчика. В окне серийного монитора вы должны увидеть показания текущей влажности и температуры. Нагрев датчик, показания должны изменится.

Подключение Arduino DHT22 и вентилятора

Ниже показана практическая схема подключения датчика температуры и влажности DHT22 и вентилятора к плате Arduino UNO. Как мы можем видеть, DHT22 подключается также ко второму порту платы Arduino. Сигнал на управление вентилятором идет с порта 4 на биполярный транзистор BC547. Сопротивление 1 КОм требуется для ограничения тока на базе. Также, как и в предыдущем случае, нужно поставить резистор 10 КОм между первой и второй ножками DHT22.

Вентилятор начинает вращаться, при условии, что уровень влажности поднимется выше 60% или температура будет выше 40°C. Эти параметры, можно изменить в коде. Для работы с датчиком используется библиотека DHT library от Adafruit. Код смотри в общем файловом архиве выше.