#include "DHTesp.h"
#include <LiquidCrystal_I2C.h>
const int DHT_PIN = 27;
const int col = 16;
const int raw = 2;
const int LEDGREEN = 15;
const int LEDRED = 2;
const int LEDBLUE = 4;
LiquidCrystal_I2C lcd (0x27, col, raw);
DHTesp dhtSensor;
void setup() {
pinMode(LEDGREEN, OUTPUT);
pinMode(LEDRED, OUTPUT);
pinMode(LEDBLUE, OUTPUT);
Serial.begin(115200);
Serial.println("Welcome To ESP32");
dhtSensor.setup(DHT_PIN, DHTesp::DHT22);
lcd.init();
lcd.backlight();
lcd.setCursor(2,0);
lcd.print("Universitas");
lcd.setCursor(3,1);
lcd.print("Sriwijaya");
delay(1000);
lcd.clear();
}
void loop() {
TempAndHumidity data = dhtSensor.getTempAndHumidity();
Serial.println("Temperature:" + String(data.temperature,2)+ "°C");
Serial.println("Humidity: "+ String(data.humidity,1) + "%");
Serial.println("---");
lcd.clear();
lcd.setCursor(0,0);
lcd.print("SH : ");
lcd.setCursor(0,1);
lcd.print("KL : ");
lcd.setCursor(5,0);
lcd.print(data.temperature,1);
lcd.print((char)223);
lcd.print("C");
lcd.setCursor(5,1);
lcd.print(data.humidity,1);
lcd.print("%");
if (data.temperature >= 28 && data.temperature <= 33) {
digitalWrite(LEDGREEN, HIGH); // LED Hijau menyala (Normal)
digitalWrite(LEDRED, LOW); // LED Merah mati
digitalWrite(LEDBLUE, LOW); // LED Biru mati
} else if (data.temperature > 33) {
digitalWrite(LEDGREEN, LOW); // LED Hijau mati
digitalWrite(LEDRED, HIGH); // LED Merah menyala (Panas)
digitalWrite(LEDBLUE, LOW); // LED Biru mati
} else {
digitalWrite(LEDGREEN, LOW); // LED Hijau mati
digitalWrite(LEDRED, LOW); // LED Merah mati
digitalWrite(LEDBLUE, HIGH); // LED Biru menyala (Dingin)
}
delay(1000);
}