#include <LiquidCrystal_I2C.h>
#include <DHT.h>
#define ledblue 13
#define ledred 12
#define ledgreen 11
#define buzzer 4
#define DHTPIN 5
#define DHTTYPE DHT22
LiquidCrystal_I2C lcd(0x27,20,4);
DHT dht(DHTPIN, DHTTYPE);
void setup() {
pinMode(ledred, OUTPUT);
pinMode(ledblue, OUTPUT);
pinMode(ledgreen, OUTPUT);
pinMode(buzzer, OUTPUT);
Serial.begin(9600);
lcd.init();
lcd.backlight();
digitalWrite(ledred, HIGH);
digitalWrite(ledblue, HIGH);
digitalWrite(ledgreen, HIGH);
tone(4,300,500);
digitalWrite(ledred, LOW);
digitalWrite(ledblue, LOW);
digitalWrite(ledgreen, LOW);
digitalWrite(buzzer, LOW);
lcd.clear();
dht.begin();
}
void loop() {
delay(500);
float h = dht.readHumidity();
// celcius reading
float t = dht.readTemperature();
if(h > 70 && t > 30){
digitalWrite(ledred, HIGH);
digitalWrite(ledblue, LOW);
digitalWrite(ledgreen, LOW);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("WANHAFIZ ZAIM");
lcd.setCursor(0,1);
lcd.print("Temp: ");
lcd.setCursor(15,1);
lcd.print("C");
lcd.setCursor(6,1);
lcd.print(t);
lcd.setCursor(0,2);
lcd.print("Humidity: ");
lcd.setCursor(15,2);
lcd.print("%");
lcd.setCursor(9,2);
lcd.print(h);
lcd.setCursor(0,3);
lcd.print("HIGH");
tone(4,800,1000);
delay(1000);
lcd.clear();
delay(100);
}
else if(h < 30 && t < 20){
digitalWrite(ledred, LOW);
digitalWrite(ledblue, HIGH);
digitalWrite(ledgreen, LOW);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("WANHAFIZ ZAIM");
lcd.setCursor(0,1);
lcd.print("Temp: ");
lcd.setCursor(15,1);
lcd.print("C");
lcd.setCursor(6,1);
lcd.print(t);
lcd.setCursor(0,2);
lcd.print("Humidity: ");
lcd.setCursor(15,2);
lcd.print("%");
lcd.setCursor(9,2);
lcd.print(h);
lcd.setCursor(0,3);
lcd.print("LOW");
tone(4,800,1000);
delay(1000);
lcd.clear();
delay(100);
}
else {
digitalWrite(ledred, LOW);
digitalWrite(ledblue, LOW);
digitalWrite(ledgreen, HIGH);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("WANHAFIZ ZAIM");
lcd.setCursor(0,1);
lcd.print("Temp: ");
lcd.setCursor(15,1);
lcd.print("C");
lcd.setCursor(6,1);
lcd.print(t);
lcd.setCursor(0,2);
lcd.print("Humidity: ");
lcd.setCursor(15,2);
lcd.print("%");
lcd.setCursor(9,2);
lcd.print(h);
lcd.setCursor(0,3);
lcd.print("AVERAGE");
delay(1000);
lcd.clear();
delay(100);
}
}