#include <LiquidCrystal_I2C.h>
#include <IRremote.h>
#include <DHT.h>
LiquidCrystal_I2C Lcd(0x27,16,2);
int Ir=10;
IRrecv Recever(Ir);
decode_results results;
int Led=13;
int Buzzer =8;
int dht=5;
int Move =3;
int Fan=12;
DHT Dht(dht,DHT22 );
void setup() {
// put your setup code here, to run once:
Recever.enableIRIn();
Lcd.begin(16,2);
Lcd.backlight();
pinMode(Led, OUTPUT);
pinMode(Buzzer, OUTPUT);
pinMode(Move, INPUT);
pinMode(Fan, OUTPUT);
Serial. begin(9600);
Dht. begin();
}
void loop() {
int Moves = digitalRead(Move);
Lcd. println();
if(Moves==HIGH)
{
digitalWrite(Buzzer, HIGH);
delay(1000);
}
else{
digitalWrite(Buzzer, LOW);
delay(1000);
}
if(Recever.decode())
{
Serial. println(Recever.decodedIRData.decodedRawData, HEX);
Recever.resume();
}
if(Recever. decodedIRData. decodedRawData==0x5DA2FF00 )
{
digitalWrite(Led, HIGH);
delay(1000);
}
if(Recever.decodedIRData.decodedRawData==0x1DE2FF00)
{
digitalWrite(Led, LOW);
delay(1000);
}
float Temp = Dht.readTemperature();
float Hum = Dht. readHumidity();
Lcd.setCursor (0,0);
Lcd. print("Temp = ");
Lcd. print(Temp);
Lcd. print(" C");
Lcd. setCursor (0,1);
Lcd. print("Hum = ") ;
Lcd. print(Hum);
Lcd. print(" %");
if(Temp>=30 || Hum>=40)
{
digitalWrite(Fan, HIGH);
delay(1000);
}
else
{
digitalWrite(Fan, LOW);
delay(1000);
}
}