#include <LiquidCrystal.h>
#include <DHT.h>
#define DHTPIN 2
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);
int lm35Pin = A0;
int redLED = 3;
int yellowLED = 4;
int greenLED = 5;
int buzzer = 6;
void setup() {
lcd.begin(16, 2);
dht.begin();
pinMode(redLED, OUTPUT);
pinMode(yellowLED, OUTPUT);
pinMode(greenLED, OUTPUT);
pinMode(buzzer, OUTPUT);
}
void loop() {
float temp = analogRead(lm35Pin) * (5.0 / 1023.0) * 100.0; // LM35: 10mV/°C
float hum = dht.readHumidity();
lcd.setCursor(0, 0);
lcd.print("Temp: ");
lcd.print(temp);
lcd.print((char)223);
lcd.print("C");
lcd.setCursor(0, 1);
lcd.print("Hum: ");
lcd.print(hum);
lcd.print("% ");
// Conditions
bool tempHigh = temp > 35;
bool humLow = hum < 40;
if (tempHigh && humLow) {
digitalWrite(buzzer, HIGH);
digitalWrite(redLED, HIGH);
digitalWrite(yellowLED, LOW);
digitalWrite(greenLED, LOW);
} else if (tempHigh) {
digitalWrite(redLED, HIGH);
digitalWrite(yellowLED, LOW);
digitalWrite(greenLED, LOW);
digitalWrite(buzzer, LOW);
} else if (humLow) {
digitalWrite(yellowLED, HIGH);
digitalWrite(redLED, LOW);
digitalWrite(greenLED, LOW);
digitalWrite(buzzer, LOW);
} else {
digitalWrite(greenLED, HIGH);
digitalWrite(redLED, LOW);
digitalWrite(yellowLED, LOW);
digitalWrite(buzzer, LOW);
}
delay(1000);
}