Цифровой датчик температуры, влажности на Arduino
Этот проект может использоваться как комнатный термометр, так и измеритель влажности, поскольку обе функции интегрированы в один датчик. Теперь вы знаете немного о датчиках DHTxx. Лучше использовать датчик DHT22 для проектов, которые вы собираетесь использовать в течение длительного времени.
Программа написана таким образом, что вам просто нужно вставить DHT11 в правый порт на Arduino. Это уменьшит перегрузку проводов при прототипировании этого проекта. Если вы хотите ощутить температуру окружающей среды вокруг какой-либо области / цепи, вы можете протянуть провода от датчика. Таким образом, вы можете установить всю установку в коробке для мусора, и датчик расширяется из коробки мусора, как зонд.
Вы можете использовать свою любимую плату Arduino для этого проекта, но мое предложение - использовать «Arduino pro mini», который дешевле и мал по размеру, который может легко вписаться в небольшую коробку для мусора для таких простых проектов. В библиотеке DHT имеется множество механизмов обнаружения ошибок, которые информируют пользователя об ошибке. Но чтобы сделать программу простой, я просто добавил один механизм обнаружения ошибок, который проиллюстрирован ниже:
В основном ошибки связаны с неисправным соединением между датчиком и другими ошибками arduino, которые менее вероятны, поскольку крошечный объем данных передается между ардуином и датчиком. Это не означает, что другой вид ошибки не произойдет. Чтобы получить представление обо всех типах ошибок, связанных с этим датчиком, посмотрите пример кода в «DHTlib». Программный код для приведенного выше объяснения цифровой температуры, счетчик влажности с использованием Arduino:
Программный код
//------------------Program developed by R.Girish-----------------//
#include <LiquidCrystal.h>
#include <dht.h>
dht DHT;
LiquidCrystal lcd(12,11,5,4,3,2);
#define DHTxxPIN A1
int p = A0;
int n = A2;
int ack;
int f;
void setup()
{
lcd.begin(16,2);
pinMode(p,OUTPUT);
pinMode(n,OUTPUT);
}
void loop()
{
digitalWrite(p,1);
digitalWrite(n,0);
ack=0;
int chk = DHT.read11(DHTxxPIN);
switch (chk)
{
case DHTLIB_ERROR_CONNECT:
ack=1;
break;
}
if(ack==0)
{
f=DHT.temperature*1.8+32;
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Temp:");
lcd.print(DHT.temperature);
lcd.print("C/");
lcd.print(f);
lcd.print("F");
lcd.setCursor(0,1);
lcd.print("Humidity:");
lcd.print(DHT.humidity);
lcd.print("%");
delay(500);
}
if(ack==1)
{
lcd.clear();
lcd.setCursor(0,0);
lcd.print("NO DATA, Please");
lcd.setCursor(0,1);
lcd.print("check connection");
delay(500);
}
}
//------------------Program developed by R.Girish-----------------//