Это старая версия документа.


Датчик температуры и влажности DHT-11

Описание

Датчик температуры и влажности DHT-11 - это недорогой цифровой датчик температуры и влажности. Он использует ёмкостный датчик влажности и термистор для измерения окружающего воздуха, и выдает цифровой сигнал на пин данных. Он достаточно прост в использовании, но имеет минус при получении данных: недостатком этого датчика является время получения данных - не чаще чем один раз в две секунды.

Характеристики

  • Измерение температуры и относительной влажности
  • Низкое энергопотребление
  • Измерение температуры в диапазоне 0°C - 50°C (погрешность ±2°C)
  • Измерение влажности в диапазоне 20% - 90% (погрешность ±5%)
  • Шаг измерения температуры 1°С
  • Напряжение питания 3 - 5,5В
  • Максимальный потребляемый ток 2,5 мА (в режиме ожидания 0,15 мА)
  • Потребляемый ток в режиме ожидания: 150нА

Физические размеры

  • Размеры датчика ДхШхВ: 15,5 х 12 х 5,5 мм
  • Размеры модуля датчика ДхШхВ: 28 х 12 х 5,5 мм

Плюсы использования

  • Сочетает в себе два датчика: датчик температуры и датчик влажности
  • Недорогое решение для получения температуры и влажности
  • Просты в использовании
  • Просты в подключении

Минусы использования

  • Большая погрешность измерений
  • Не измеряют температуру ниже 0°C
  • Долгое время отклика: раз в две секунды

Библиотека для работы с датчиком

Примеры подключения и использования

Пример 1: Подключение датчика DHT-11

Подключение датчика и вывод температуры и влажности на экран сериал-порта (на примере контроллера Smart UNO). Для этого нам понадобится:

Подключение:

Пример кода:

//Подключение библиотеки для работы с датчиком
#include <DHT.h>
 
//определение постоянных значений
#define DHTPIN 8 //пин получения данных с датчика
#define DHTTYPE DHT11 //Значение типа датчика
 
DHT dhtSensor(DHTPIN, DHTTYPE); //инициализация датчика
 
void setup() {
  dhtSensor.begin(); //запуск датчика
 
  Serial.begin(9600); //запуск Serial соединения
}
 
void loop() {
  delay(2000); //время чтобы датчик прогрузился
 
  float h = dhtSensor.readHumidity(); //получение данных по влажности
  float t = dhtSensor.readTemperature(); //получние данных по температуре
 
  if(isnan(h) || isnan(t)) return; //возврат если данные по температуре или влажные некорректно считались
 
  //Вывод значений 
  Serial.print("Temperature: ");
  Serial.print(t);
  Serial.print(" humidity: ");
  Serial.println(h);
 
}

Пример 2: Подключение модуля датчика DHT-11

Подключение модуля датчика и вывод температуры и влажности на экран сериал-порта (на примере контроллера Smart UNO). Для этого нам понадобится:

Подключение:

Пример кода:

//Подключение библиотеки для работы с датчиком
#include <DHT.h>
 
//определение постоянных значений
#define DHTPIN 8 //пин получения данных с датчика
#define DHTTYPE DHT11 //Значение типа датчика
 
DHT dhtSensor(DHTPIN, DHTTYPE); //инициализация датчика
 
void setup() {
  dhtSensor.begin(); //запуск датчика
 
  Serial.begin(9600); //запуск Serial соединения
}
 
void loop() {
  delay(2000); //время чтобы датчик прогрузился
 
  float h = dhtSensor.readHumidity(); //получение данных по влажности
  float t = dhtSensor.readTemperature(); //получние данных по температуре
 
  if(isnan(h) || isnan(t)) return; //возврат если данные по температуре или влажные некорректно считались
 
  //Вывод значений 
  Serial.print("Temperature: ");
  Serial.print(t);
  Serial.print(" humidity: ");
  Serial.println(h);
 
}