В статье рассмотрены основы работы с недорогими датчиками температуры и влажности серии DHT. Эти сенсоры простые и медленные, но при этом отлично подходят для хобби-проектов на Arduino. Датчики DHT состоят из двух основных частей: ёмкостный датчик влажности и термистор. Также в корпусе установлен простенький чип для преобразования аналогового сигнала в цифровой. Такие датчики температуры и влажности чрезвычайно полезны при построении систем контроля климата. Сенсор DHT22 является очень популярным в радиолюбительском сообществе, поскольку он прост в использовании и очень легко подключается к плате Arduino. Тем более для работы с ним имеется простая и понятная библиотека для Arduino IDE. Данные датчики не отличаются высоким быстродействием и точностью, однако могут найти свое применение в радиолюбительских проектах из-за своей невысокой стоимости.
Отличия DHT11 и DHT22
По цоколевке данные датчики идентичны, однако немного различаются характеристиками.
DHT11:
- Очень низкая стоимость
- Питание и I/O 3-5 В
- Определение влажности 20-80% с 5% точностью
- Определение температуры 0-50 град. с 2% точностью
- Частота опроса не более 1 Гц (не более раза в 1 сек.)
- Размеры 15.5мм x 12мм x 5.5мм
- 4 вывода с расстоянием между ножками 0.1"
DHT22:
- Низкая стоимость
- Питание и I/O 3-5 В
- Определение влажности 0-100% с 2-5% точностью
- Определение температуры -40 — 125 град. с точностью ±0.5 град.
- Частота опроса не более 0.5 Гц (не более раза в 2 сек.)
- Размеры 15.1мм x 25мм x 7.7мм
- 4 вывода с расстоянием между ножками 0.1"
Как видно, сенсор DHT22 имеет более лучшие характеристики. Однако оба датчика медлительны и вы не сможете считывать с них информацию чаще, чем раз в 1 или 2 сек.
Подключаются датчики легко. Так как у них достаточно длинные выводы с шагом 2,54мм, можно устанавливать их непосредственно на макетную или монтажную плату.
DHT имеет 4 вывода:
- Vcc (3-5V питание)
- Data out — Вывод данных
- Не используется
- Общий
При подключении к МК, вы можете между выводами Vcc и Data разместить подтягивающий pull-up резистор номиналом 10 кОм. Плата Arduino имеет встроенные pull-up, однако они очень слабенькие — порядка 100 кОм.
На рисунке ниже приведена схема подключения DHT11 к Arduino. Подключите сигнал с датчика к пину 2, чтобы схема соответствовала примеру скетча, который приведен ниже. Этот пин можно изменить с соответствующими правками в коде.
Скачать библиотеку для работы датчиков DHT с Arduino можно здесь. Там же и пример.
Для начала скачайте библиотеку для работы с DHT датчиками. Переименуйте папку DHT и убедитесь, что в ней есть файл dht.cpp и другие. После этого переместите папку DHT в папку arduinosketchfolder/libraries/ . Возможно вам придется создать подпапку для библиотек, если вы впервые интегрируете библиотеку. Перезагрузите Arduino IDE.
Теперь загрузите скетч: Examples->DHT->DHTtester.
Если вы используете датчик модели DHT11, закомментируйте строку, которая устанавливает тип:
//#define DHTTYPE DHT22 // DHT 22 (AM2302)
И снимите комментарий со строки:
#define DHTTYPE DHT11 // DHT 11
Эти настройки помогают снимать правильные значения именно с вашей модели датчика.
При запуске программы на терминал будут выводиться значения влажности и тепмпературы.
Подышав на датчик, можно отследить изменения показаний. В этом случае уровень влажности должен увеличиться.