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);