// Kendali 3 Led dengan Sensor Suhu
#include <LiquidCrystal_I2C.h>//Menambahkan Library LCD
LiquidCrystal_I2C lcd(0x27,16,2);// Mengatur Alamat LCD
#include <DHT.h>
#define dhtpin 2 // ESP32 pin GPIO21 connected to DHT22 sensor
#define DHTTYPE DHT22
DHT dht(dhtpin, DHTTYPE);
#define led_red 14
#define led_blue 13
#define led_green 12
void setup() {
lcd.init();// Inisialisasi LCD
lcd.backlight();// Mengaktifkan Cahaya Latar LCD
lcd.setCursor(1,0);// Mengatur Posisi Teks pada LCD
lcd.print("KIPAS OTOMATIS"); // Menuliskan Teks Pada LCD
lcd.setCursor(2,1);// Mengatur Posisi Teks pada LCD
lcd.print("SENSOR SUHU"); // Menuliskan Teks Pada LCD
delay(5000); // Waktu Tunda
Serial.begin(9600);
pinMode(led_red, OUTPUT);
pinMode(led_blue, OUTPUT);
pinMode(led_green, OUTPUT);
dht.begin();
}
void loop() {
float tempC = dht.readTemperature();
int Kelembaban = dht.readHumidity();
lcd.setCursor(1,0);
lcd.print("T=");
lcd.print(tempC,2);lcd.write(0xdf);lcd.print("C ");
lcd.print("H=");
lcd.print(Kelembaban);lcd.print("% ");
if ( isnan(tempC)) {
Serial.println("Gagal membaca data dari sensor DHT!");
lcd.setCursor(0,0);
lcd.print("sensor eror ");
}
else if(tempC>35) {
digitalWrite(led_red, LOW);
digitalWrite(led_blue, HIGH);
digitalWrite(led_green, LOW);
Serial.println("SUHU DINGIN");
lcd.setCursor(0,1);
lcd.print("SUHU PANAS ");
} else if (tempC<25) {
digitalWrite(led_red, LOW);
digitalWrite(led_blue, LOW);
digitalWrite(led_green, HIGH);
Serial.println("SUHU SEDANG");
lcd.setCursor(0,1);
lcd.print("SUHU SEDANG ");
} else if (tempC=15) {
digitalWrite(led_red, HIGH);
digitalWrite(led_blue, LOW);
digitalWrite(led_green, LOW);
Serial.println("SUHU PANAS");
lcd.setCursor(0,1);
lcd.print("SUHU PANAS ");
}
delay(1000);
}