Библиотека DHT.h

Библиотека DHT.h предназначена для работы с датчиками температуры и влажности:
DHT 11, DHT 21 (AM2301), DHT 22 (AM2302, AM2321)

Скачать | Страница на GitHub

Также вам потребуется библиотека Adafruit Sensor

DHT 11 — цифровой датчик для измерения температуры и относительной влажности окружающего воздуха. Температура и влажность отдаются датчиком по одному сигнальному проводу (S). DHT общается с принимающей стороной, по собственному протоколу.

DHT 22 — более продвинутый датчик, неплохой выбор для различных проектов метеостанций, благодаря большому интервалу замеряемых значений (от -40 до 125 градусов для температуры и от 0 до 100% влажности) и относительно невысоким значениям погрешности.

Сам датчик состоит из термистора и емкостного датчика влажности, а так же АЦП для преобразования сигнала в цифровой.

 

Подключение датчика DHT к Arduino

VCC -> питание 5 вольт, допускается 3.3V
GND -> GND земля
S -> любой цифровой контакт на Arduino

Подключение датчика DHT-11 к Arduino

 

Пример использования библиотеки DHT.h

#include "DHT.h" // подключаем библиотеку
 
#define DHTPIN 2  // задаем контакт подключенный 
                  // к сигнальному контакту датчика (S)
 
 
// задаем тип подключаемого датчика
 
#define DHTTYPE DHT11   // DHT 11
                        // DHT 22  (AM2302), AM2321
                        // DHT 21 (AM2301)
 
// обьявляем обьект dht с параметрами
DHT dht(DHTPIN, DHTTYPE);
 
void setup() {
  Serial.begin(9600);
  dht.begin(); // запускаем датчик
}
 
void loop() {
 
  delay(2000); // задержка 2 сек между считываниями
 
  float h = dht.readHumidity(); // считываем влажность
  float t = dht.readTemperature(); // считываем температуру
	                               // в градусах Цельсия
  float f = dht.readTemperature(true); // в Фаренгейтах
 
  // проверяем полученные значения
  if (isnan(h) || isnan(t) || isnan(f)) {
    Serial.println("Ошибка чтения датчика");
    return;
  }
 
 
  // выводим полученные данные в консоль	
  Serial.print("Влажность : ");
  Serial.println(h);
 
  Serial.print("Температура : ");
  Serial.print(t);
  Serial.print(" *C, ");
 
  Serial.print(f);
  Serial.println(" *F");
}

 

15608