DHT Sensor Library – это библиотека для Arduino, которая используется в проектах с датчиками влажности и температуры DHT11, DHT21 (AM2301), DHT22 (AM2302, AM2321).
Скачать библиотеку DHT Sensor Library
Описание функций библиотеки DHT
Для работы библиотеки DHT Sensor Library необходимо дополнительно установить библиотеку Adafruit Unified Sensor:
Подключение библиотеки
#include "DHT.h"
Подключение файла библиотеки DHT. Обычно вставляется вверху скетча.
Создание объекта DHT
DHT(uint8_t pin, uint8_t type)
Конструктор класса DHT. Создает объект для работы с датчиком. Необходимо передать контакт ардуино, к которому подключен датчик pin и его тип type. Для типов определены следующие макросы:
#define DHT11 11 // Для датчиков DHT11 #define DHT12 12 // Для датчиков DHT12 #define DHT22 22 // Для датчиков DHT22, AM2302 и AM2321 #define DHT21 21 // Для датчиков DHT21 и AM2301
Чтобы начать работу с датчиком, сперва необходимо инициализировать объект класса DHT. Например, если подключить DHT11, то инициализация может выглядеть следующим образом:
DHT dht(2, DHT11); // 2-й контакт, тип - DHT11
или так:
#define DHTPIN 2 // Контакт ардуино, к которому подключен датчик
#define DHTTYPE DHT11 // Тип датчика
DHT dht(DHTPIN, DHTTYPE); // Инициализация объекта для работы с датчиком
void setup() {
dht.begin(); // Начало работы с датчиком
}
Получение значения температуры
float readTemperature(bool S)
Возвращает значение температуры, полученное от датчика. По умолчанию возвращаемое значение в градусах по шкале Цельсия. Если передать параметр S равный true, то возвращаемое значение будет в градусах по шкале Фаренгейта.
Получить температуру в градусах по шкале Цельсия:
float t = dht.readTemperature();
Получить температуру в градусах по шкале Фаренгейта:
float f = dht.readTemperature(true);
Получение значения влажности
float readHumidity()
Возвращает значение влажности в процентах, полученное от датчика.
float h = dht.readHumidity();
Преобразование температуры из Цельсия в Фаренгейт
float convertCtoF(float c)
Преобразует значение температуры в градусах Цельсия в градусы Фаренгейта.
float tf = dht.convertCtoF(t);
Преобразование температуры из Фаренгейта в Цельсий
float convertFtoC(float f)
Преобразует значение температуры в градусах Фаренгейта в градусы Цельсия.
float ft = dht.convertFtoC(f);
Получение теплового индекса
float computeHeatIndex(float temperature, float percentHumidity, bool isFahrenheit)
Возвращает вычисленное значение теплового индекса, используя уравнения Ротфуза и Стедмана. Передаваемые параметры: температура temperature, влажность percentHumidity и единица измерения температуры isFahrenheit (false – шкала Цельсия, true – шкала Фаренгейта).
Передаем температуру в градусах Фаренгейта:
float hif = dht.computeHeatIndex(f, h);
Передаем температуру в градусах Цельсия:
float hic = dht.computeHeatIndex(t, h, false);



