Датчики DHT (11, 22, 21) предназначены для снятия показаний температуры и влажности. Конструктивно они достаточно просты- одна часть это емкостный датчик влажности, другая часть термистор.
Внутри установлен АЦП и на выходе предоставляет информацию в виде цифрового сигнала.
Для этого примера был использован датчик температуры и влажности DHT22 . У этого датчика более лучшие параметры чем у DHT11 (но немного отличаются от DHT21- он уличный)
- определение влажности в диапазоне 0-100%
- определение температуры от -40°C до +125°C
- частота опроса 1 раз в 2 секунды
Датчики имеют 4 выхода
- питание.
- вывод данных
- не используется.
- GND (земля).
При подключении такого датчика нужно использовать резистор на 10 Ком. Но есть датчики смонтированные на плате и резистор уже встроен.
Для урока нам понадобятся:
- Arduino
- Макетная плата
- DHT22
- Соед. провода
- Резистор 10 к
Соединяем как на схеме
Перед тем как загрузить скетч в Arduino, нужно скачать и у сохранить в паке /libraries библиотеку DHT.h. Скачать можно тут
#include "DHT.h" // подключаем библиотеку #define DHTPIN 2 // вывод, к которому подключается датчик DHT dht(DHTPIN, DHT22); // определяем тип датчика: 22 или 11 void setup() { Serial.begin(9600); dht.begin(); // датчик передает данные } void loop() { delay(2000); // ждем пару секунд перед началом измерений // считывание температуры или влажности занимает примерно 250 мс! // считанные показания могут отличаться от актуальных примерно на 2 секунды (это очень медленный датчик) float h = dht.readHumidity(); // показания влажности в переменную h // Считывание температуры в цельсиях float t = dht.readTemperature(); // показания температуры в переменную t // проверяем, были ли ошибки при считывании и, если были, начинаем заново if (isnan(h) || isnan(t)) { Serial.println("Failed to read from DHT sensor!"); return; } Serial.print("Humidity: "); Serial.print(h); Serial.print(" %\t"); Serial.print("Temperature: "); Serial.print(t); Serial.println(" *C "); }
В скетче подробно прокоментированны важные строчки. После того как все подключено и скетч отправлен, в мониторе порта можно наблюдать параметры температуры и влажности.