#include <LiquidCrystal.h>
LiquidCrystal lcd(13,12,11,10,9,8);
#include <DHT.h>
DHT dht(4,DHT22);
void setup() {
// put your setup code here, to run once:
lcd.begin(20,4);
dht.begin();
pinMode(A0, INPUT); //LDR
pinMode(7, INPUT); //PIR
pinMode(5, INPUT); //ECHO
pinMode(6, INPUT); //trigger
pinMode(3, OUTPUT); //buzzer
pinMode(2,OUTPUT); //LED
}
void loop() {
// put your main code here, to run repeatedly:
int ldr=analogRead(A0);
int pir=digitalRead(7);
float dhtH=dht.readHumidity();
float dhtTemp=dht.readTemperature();
float dhtT = dht.readTemperature(true);
lcd.setCursor(0,0);
lcd.print("L:");
lcd.setCursor(2,0);
lcd.print(ldr);
lcd.setCursor(6,0);
lcd.print("P:");
lcd.setCursor(8,0);
lcd.print(pir);
lcd.setCursor(0,1);
lcd.print("H:");
lcd.setCursor(2,1);
lcd.print(dhtH);
lcd.setCursor(8,1);
lcd.print("T:");
lcd.setCursor(10,1);
lcd.print(dhtT);
digitalWrite(6, LOW);
delayMicroseconds(25);
digitalWrite(6, HIGH);
delayMicroseconds(10);
digitalWrite(6, LOW);
int duration = pulseIn(5, HIGH);
int us=duration * 0.034 / 2;
lcd.setCursor(12,0);
lcd.print("U:");
lcd.setCursor(15,0);
lcd.print(us);
if(ldr<=300 && pir==HIGH || ldr>=700 && pir==HIGH){
digitalWrite(2, HIGH);
delay(2000);
digitalWrite(2, LOW);
}
delay(2000);
// lcd.clear();
if(us<200)
{
digitalWrite(3, HIGH);
delay(2000);
digitalWrite(3, LOW);
}
delay(2000);
if(dhtH<=30 && dhtT<=50 || dhtH>=50 && dhtT>=80)
{
digitalWrite(3, HIGH);
delay(2000);
digitalWrite(3, LOW);
}
}