Сензори за температура и влажност DHT11 и DHT22 и Arduino
Статията обхваща основите на работа с евтини сензори за температура и влажност от серията DHT.
Тези сензори са прости и бавни, но чудесни за хоби проекти на Arduino. DHT сензорите се състоят от две основни части: капацитивен сензор за влажност и термистор. Също така в кутията има прост чип за преобразуване на аналогов сигнал в цифров. Четенето на цифров сигнал на изхода е доста просто, можете да използвате всеки контролер, не непременно Arduino.
Спецификации DHT11 и DHT22
Има две версии на DHT сензори. Изглеждат почти еднакви. Пинаутът също е същият. Основните разлики са в техническите характеристики:
- Много евтино.
- Захранване от 3 до 5V.
- Максималната консумация на ток е 2,5 mA по време на преобразуване (при заявка на данни).
- Изчислява се при измерване на ниво на влажност в диапазона от 20% до 80%. В този случай точността на измерване е от порядъка на 5%.
- Измерва температура в диапазона от 0 до 50 градуса с точност плюс минус 2%.
- Честотата на измерване е не повече от 1 Hz (едно измерване в секунда).
- Размер на корпуса: 15.5mm x 12mm x 5.5mm.
- 4 конектора. Разстоянието между съседни - 0,1 ".
- Евтини.
- Захранване от 3 до 5V.
- Максималната консумация на ток е 2,5 mA по време на преобразуване (при заявка на данни).
- Изчислява се при измерване на нивото на влажност в диапазона от 0% до 100%. В този случай точността на измерванията е в диапазона от 2% -5%.
- Измерва температура в диапазона от -40 до 125 градуса с точност плюс минус 0,5 градуса по Целзий.
- Честота на измерване до 0,5 Hz (едно измерване за 2 секунди).
- Размер на корпуса: 15.1mm x 25mm x 7.7mm.
- 4 конектора. Разстоянието между съседни - 0,1 ".
Както можете да видите, DHT22 е по-точен и има по-голям диапазон от измерени стойности. И двата сензора имат един цифров изход. Заявките към тях могат да се изпращат не повече от една в секунда или две.

Свързване на DHT сензори към Arduino
Връзки за поръчка на електрониката, използвана в примера по-долу, от Китай
Сензорите се свързват лесно. Тъй като те имат доста дълги 0,1" конектори, можете да ги инсталирате директно върху макет или печатна платка (вижте снимката по-долу).

Свързването директно към Arduino също е лесно. На сензора има 4 конектора:
- Захранване (VCC) - 3 до 5 V.
- Извеждане на данни.
- Не се свързва.
- Земята.
Просто игнорирайте конектор 3, той няма да се свърже. Препоръчително е да свържете 10 kΩ издърпващ резистор между захранването и сигнала. Arduino има вградени резистори, но тяхната стойност от 100kOhm няма да ни свърши работа.
Фигурата по-долу показва диаграмата на свързване на DHT11 към Arduino. Свържете сигнала от сензора към щифт 2, така че веригата да съответства на примерната скица по-долу. Този щифт може да бъде променен със съответните редакции в кода.

Четене на данни от DHTxx сензори
Използваме Arduino, за да тестваме скицата. Можете да използвате всеки друг микроконтролер, който поддържа микросекундно време.
За да започнете, изтеглете библиотеката за работа с DHT сензори тук: Github. За да изтеглите, щракнете върху бутона ИЗТЕГЛЯНИ в горния десен ъгъл.
Преименувайте папката DHT и се уверете, че съдържа файла dht.cpp и други. След това преместете папката DHT в папката arduinosketchfolder/libraries/. Може да се наложи да създадете подпапка за библиотеки, ако интегрирате за първи пътбиблиотека. Рестартирайте Arduino IDE.
Сега изтеглете скицата: Примери->DHT->DHTtester. Програмата изглежда така:

//#define DHTTYPE DHT22 // DHT 22 (AM2302)
#define DHTTYPE DHT11 // DHT11
Тези настройки ви помагат да получите правилните стойности от вашия конкретен модел сензор. В прозореца на серийния монитор ще изглежда по следния начин:

Трябва да видите показанията за температура и влажност. Като дишате върху сензора, можете да проследите промените в показанията. В този случай нивото на влажност трябва да се увеличи.