DHT11  — это цифровой датчик влажности и температуры, состоящий из термистора и емкостного датчика влажности.  Также датчик содержит в себе АЦП для преобразования аналоговых значений влажности и температуры. Датчик DHT11 не обладают высоким быстродействием и точностью, но зато прост, недорог и отлично подходят для обучения и контроля влажности в помещении.   
 

DHT11

Технические характеристики датчика DHT11

  • Питание: DC 3,5 – 5,5 В
  • Ток питания
    • в режиме измерения 0.3mA
    • в режиме ожидания 60μA
  • определение влажности 20–80 % с точностью 5 %
  • определение температуры 0–50 °С с точностью 2 %
  • частота опроса не более 1 Гц (не более одного раза в 1 сек.)
  • размеры 15,5x12x5,5 мм

Подключение

Датчик имеет 4 вывода стандарта 2,54 мм:

  • 1 — VCC (питание 3–5 В);
  • 2 — DATA (вывод данных);
  • 3 — не используется;
  • 4 — GND (земля).

распиновка DHT11


Между выводами питания и вывода данных необходимо разместить резистор. Рекомендуемый номинал 10 кОм , если расстояние от датчика к ардуино небольшое, для расстояния больше 20 метров рекомендуется резистор номиналом 5,1 кОм. Также рекомендуется конденсатор (фильтр по питанию между VCC и GND). Протокол обмена — однопроводный, по структуре весьма похож на DS18B20, но с отличиями:

  • DHT не умеет работать в "паразитном" режиме;
  • каждый DS18B20 имеет персональный идентификатор, что дает возможность подключения нескольких таких датчиков к одному пину Arduino. Однако у DHT такой возможности нет — один датчик будет использовать строго один цифровой пин.

Пример использования

Рассмотрим подключение датчика DHT11 к Arduino и создадим проект для отображения на RGB-светодиоде состояния влажности воздуха в помещении:

  • зеленый – оптимальная влажность воздуха для человека (40 – 60%);
  • красный – сухо (<40%);
  • синий – повышенная влажность ( >60%).

Для проекта нам понадобятся следующие детали:

  • совместимая плата Arduino Uno
  • плата прототипирования
  • RGB-светодиод
  • датчик DHT11
  • резистор 10 кОм
  • резистор 220 Ом – 3 шт
  • соединительные провода

Соберем схему, показанную на рисунке.

Запустим Arduino IDE. Создадим новый скетч и внесем в него следующее содержимое:

// подключение библиотеки
#include "DHT.h"
// пин для подключения датчика DHT
#define DHTPIN 2     // what pin we're connected to
// тип датчика DHT
#define DHTTYPE DHT11   // DHT 11
//#define DHTTYPE DHT22   // DHT 22 (AM2302)
// создание экземпляра объекта DHT
DHT dht(DHTPIN, DHTTYPE);
// подключение RGB-светодиода
const int pinRED=5; // вывод красной ноги RGB-светодиода
const int pinGREEN=4; // вывод зеленой ноги RGB-светодиода
const int pinBLUE=3; // вывод синей ноги RGB-светодиода
void setup() {
// подключение последовательного порта
Serial.begin(9600);
// запуск датчика DHT
dht.begin();
// настройка выводов подключения к RGB светодиоду
pinMode(pinRED,OUTPUT);
pinMode(pinGREEN,OUTPUT);
pinMode(pinBLUE,OUTPUT);
} 
void loop() {
// получение данных влажности
float h = dht.readHumidity();
// ошибочные данные с датчика!
if (isnan(h)) {
Serial.println("Failed to read from DHT");
set#000000;
} else {
Serial.print("Humidity: ");
Serial.println(h);
if(h<40)
set#010000;
else if(h>60)
set#000001;
else
set#000100;
}
// пауза 5 секунд
delay(5000);
}
// процедура установки цвета для RGB-светодиода
void setRGB(int R, int G, int B) {
digitalWrite(pinRED,R);
digitalWrite(pinGREEN,G);
digitalWrite(pinBLUE,B);
}

Для работы с датчиком DHT11 используем Arduino библиотеку DHT. Необходимо выбрать тип датчика, в нашем случае DHT11 #define DHTTYPE DHT11 С интервалом 5 секунд получаем с датчика DHT11 значение относительной влажности воздуха. В зависимости от полученного значения, устанавливаем цвет "горения" RGB-светодиода (красный, зеленый, синий). В случае ошибки получения данных с датчика DHT11, светодиод "не горит". Зажигаем RGB-светодиод в процедуре setRGB(), передавая данные для R, G и B компоненты цвета. Для контроля выводим данные относительной влажности воздуха в монитор последовательного порта Arduino IDE.
 

Схема в сборе
 


Что делать если

Не горит RGB-светодиод

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

Ошибка получения показаний датчика DHT11

Проверьте правильность подключения датчика DHT11 порта.

RGB светодиод горит неправильно (цвета другие)

Проверьте цоколевку вашего RGB-светодиода по даташиту.




 

Рекомендуемые товары

Комментарии 0