Датчик DHT-22: температура и влажность
Три провода, вывод DATA на D2 с подтяжкой 10 кОм. Датчик отвечает не чаще раза в две секунды, а без подключённого DATA возвращает NAN — это ловится через isnan().
Программа
// DHT-22: температура и влажность одним датчиком.
//
// Датчик отвечает не мгновенно: опрашивать чаще раза в две секунды бессмысленно,
// вернётся то же самое значение. Не подключён DATA — вместо числа приходит NAN,
// и проверять это надо через isnan(): сравнение NAN == NAN всегда ложно.
#include <DHT.h>
DHT dht(2, DHT22); // вывод DATA, тип датчика
void setup() {
Serial.begin(9600);
dht.begin();
}
void loop() {
float t = dht.readTemperature();
float rh = dht.readHumidity();
if (isnan(t) || isnan(rh)) {
Serial.println("датчик не отвечает — проверьте провод DATA");
} else {
Serial.print("t = ");
Serial.print(t);
Serial.print(" C влажность = ");
Serial.print(rh);
Serial.println(" %");
}
delay(2000);
}
Схема примера появится, когда загрузится страница: её собирает и считает движок цепей.