Измерение влажности на Arduino и датчика DHT11

Для измерения влажности в помещениях отлично подойдет цифровой датчик влажности DHT11. подключать его мы будем как вы уже наверное догадались к плате Arduino. Для этих целей была создана специальная библиотека, все что нам остается это импортировать ее в проект. Измеренное значение влажности будет передаваться в com порт ноутбука. Полученное значение с arduino посылается в ноутбук где отображается в мониторинге порта среды Arduino IDE. Среда Arduino IDE работает абсолютно на любой операционной системе и на любом ноутбуке.

На основе данного датчика относительного давления можно спроектировать некое подобие климатической установки, регулирующей влажность в помещении либо в теплице с растениями. Для этого в программ у добавить условие : "если влажность менее 60% то подать напряжение на распылитель". Тут под "распылителем" понимается устройство распыляющее влагу. 

Датчик давления DHT11

Характеристики датчика DHT11

  • время отклика датчика :1 / е (63%) из 25 ℃ 6s 1 м / с воздуха 6s;
  • разрешение: 16 бит;
  • гистерезис: менее± 0,3% RH;
  • повторяемость: +-1% ;
  • стабильность: менее +-0,5% RH в год.

Расположение и назначение выводов датчика влажности

Для подключения датчика используется 4 вывода, два из них выводы напряжения (vcc и  gnd), третий не подключен, четвертый является линией данных. Между линией данных и плюсовым выводом питания необходимо установить резистор сопротивлением в 10 кОм. В некоторые аналогичных датчиках влажности уже есть данный резистор. Если такой резистор уже имеется то припаивать новый уже не следует.

dht11 1

Схема подключения к Arduino датчика влажности DHT11 

Датчик подключается по 3-м проводам, линия данных подключена к выводу 2, т.к. в программе объект датчика привязывается к этому выводу. 3-й вывод как видно из схемы никуда не подключается.

Схема подключения датчика DHT11 к Arduino

Программа Arduino коммутации с датчиком

#include "DHT.h"
#define DHTPIN 2 
//DHT dht(DHTPIN, DHT22);
DHT dht(DHTPIN, DHT11);
void setup() 
{ Serial.begin(9600);
dht.begin();
} void loop() { delay(1000); float h = dht.readHumidity(); float t = dht.readTemperature(); if (isnan(h) || isnan(t)) { Serial.print("Не считываются показания");
Serial.pringln(""); return; } Serial.print("Влажность воздуха: "+h+" %\t"+"Температура воздуха: "+t+" *C "); }

Добавить комментарий


Защитный код
Обновить

Последние комментарии

Последнии темы форума

  • Нет сообщений для показа