Home News

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

29.08.2018

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

Как подключить датчик температуры DHT11 к ардуино (аналоговый выход)

Составной датчик DHT11 включает в себя сразу два полезных измерительных прибора — термометр и гигрометр. Первый, очевидно, измеряет температуру, а второй — влажность воздуха. Обычно, датчик можно приобрести в таком вот пластиковом корпусе:



Но бывают версии распаянные на небольшой платке, например так:

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

напряжение питания — 3-5В; потребляемый ток — 2.5 мА в момент опроса (в остальное время меньше); диапазон измерений влажности — 20-80%, при точности — 5%; диапазон измерений температур — 0-50°C, при точности ±2°C; частота опроса — 1 Гц (раз в секунду).

Кроме DHT-11, вы можно легко встретить и его близких собратьев: DHT-22, 33 и 44. Отличаются эти датчики более высоким уровнем точности и диапазоном измерений. Например, у датчика DHT-22 диапазон измерений влажности составляет от 0 до 100%, а температуры от -40 до 125°C.


Как подключить DHT11 DHT22 к ардуино и вывести через I2C дисплей 16х2

1. Подключение датчика DHT11

У датчика DHT-11 есть четыре вывода, один из которых (№3) не используется.

Как видно на фото, выводы нумеруются слева на право, если смотреть на корпус датчика со стороны решетки и ногами вниз. Подключаем выводы к Ардуино Уно по следующей схеме:


Подключение к Ардуино датчика температуры и влажности DHT11

Датчик DHT11 1 2 4
Ардуино Уно +5V 2 GND

Принципиальная схема

Внешний вид макета

Важно отметить, что второй вывод датчика мы подключаем не только ко второй линии GPIO на Ардуино, но еще и к плюсу питания через резистор 4.7 кОм. Таким образом, мы, что называется, «подтягиваем» линию данных датчика к плюсу. Это необходимо для правильного функционирования DHT11.

2. Запускаем тестовый опрос датчика

Теперь, когда датчик подключен, приступим к программированию контроллера. Первое, что нам следует сделать — установить в Arduino IDE дополнительную библиотеку. Существует несколько библиотек для работы с DHT, но мы выберем вариант с портала adafruit. Скачать архив с библиотекой можно по следующей ссылке:

https://github.com/adafruit/DHT-sensor-library/archive/master.zip

Устанавливаем библиотеку и составляем тестовую программу:

#include "DHT.h" #define DHTTYPE DHT11 // DHT 11 //#define DHTTYPE DHT22 // DHT 22 (AM2302) //#define DHTTYPE DHT21 // DHT 21 (AM2301) const byte dht_pin = 2; DHT dht(dht_pin, DHTTYPE); void setup() { Serial.begin(9600); Serial.println("Test DHT11"); dht.begin(); } void loop() { float h = dht.readHumidity(); float t = dht.readTemperature(); if (isnan(t) || isnan(h)) { Serial.println("Failed to read from DHT"); } else { Serial.print("Humidity: "); Serial.print(h); Serial.print(" %\t"); Serial.print("Temperature: "); Serial.print(t); Serial.println(" *C"); } }

В верхней части программы имеется три строки с директивой define, две из которых закомментированы. В зависимости от типа датчика мы можем раскомментировать нужную строку. Сейчас выбран датчик DHT11.

Загружаем программу в Ардуино Уно, открываем монитор последовательного порта (Tools/Serial Monitor) и наблюдаем результаты измерений!

Задания

Автоматическая теплица. Требуется собрать автоматический регулятор влажности, состоящий из контроллера Ардуино Уно, датчика влажности DHT11 и реле. Программа регулятора должна каждые 3 секунды проверять значение влажности и температуры. В случае, если во время очередной проверки влажность опускается ниже 50% при температуре не ниже +20 градусов, с помощью реле включается вентилятор. Для простоты, к реле можно подключить обычный светодиод.

Заключение

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

Новости

rss