Датчик 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);
}

Схема примера появится, когда загрузится страница: её собирает и считает движок цепей.

← Ко всем примерам