/**
ESP32 + DHT22 Example for Wokwi
https://wokwi.com/arduino/projects/322410731508073042
*/
#include "DHT.h"
#define DHTPIN 15
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
#include <LiquidCrystal_I2C.h>
#define I2C_ADDR 0x27
#define LCD_COLUMNS 20
#define LCD_LINES 4
LiquidCrystal_I2C lcd(I2C_ADDR, LCD_COLUMNS, LCD_LINES);
int ledY = 14;
int ledG = 12;
int ledR = 13;
int ledY2 = 25;
int ledG2 = 26;
int ledR2 = 27;
float h ;
float t;
void setup() {
Serial.begin(115200);
dht.begin();
lcd.init();
lcd.backlight();
pinMode(ledR, OUTPUT);
pinMode(ledG, OUTPUT);
pinMode(ledY, OUTPUT);
pinMode(ledR2, OUTPUT);
pinMode(ledG2, OUTPUT);
pinMode(ledY2, OUTPUT);
}
void loop() {
delay(2000);
lcd.setCursor(0, 0);
lcd.print("Monitor Comfort Zone");
h = dht.readHumidity();
// Read temperature as Celsius (the default)
t = dht.readTemperature();
Serial.print(F("Humidity: "));
Serial.print(h);
Serial.print(F("% Temperature: " ));
Serial.print(t);
Serial.println(F("°C "));
lcd.setCursor(0, 2);
lcd.print("Temp > ");
lcd.setCursor(7, 2);
lcd.print(t);
lcd.print(" C");
lcd.setCursor(0, 3);
lcd.print("Humidity > ");
lcd.setCursor(11, 3);
lcd.print(h);
lcd.print(" %hr");
if (h >= 70) {
digitalWrite(ledR, HIGH);
digitalWrite(ledG,LOW);
digitalWrite(ledY, LOW);
}
else if(h >= 40) {
digitalWrite(ledR, LOW);
digitalWrite(ledG,HIGH);
digitalWrite(ledY, LOW);
}
else{
digitalWrite(ledR, LOW);
digitalWrite(ledG,LOW);
digitalWrite(ledY, HIGH);
}
if (t >= 24) {
digitalWrite(ledR2, HIGH);
digitalWrite(ledG2,LOW);
digitalWrite(ledY2, LOW);
}
else if(t >= 20) {
digitalWrite(ledR2, LOW);
digitalWrite(ledG2,HIGH);
digitalWrite(ledY2, LOW);
}
else{
digitalWrite(ledR2, LOW);
digitalWrite(ledG2,LOW);
digitalWrite(ledY2, HIGH);
}
}