#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <DHTesp.h>
#define DHTPIN 8
#define LEDPIN 10
DHTesp dht;
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
lcd.begin(16, 2);
lcd.backlight();
dht.setup(DHTPIN, DHTesp::DHT22);
pinMode(LEDPIN, OUTPUT);
lcd.setCursor(0, 0);
lcd.print("DHT22 Sensor");
delay(2000);
}
void loop() {
TempAndHumidity data = dht.getTempAndHumidity();
// Periksa apakah pembacaan gagal dan tampilkan pesan kesalahan
if (isnan(data.humidity) || isnan(data.temperature)) {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Gagal membaca");
lcd.setCursor(0, 1);
lcd.print("sensor!");
return;
}
// Tampilkan suhu dan kelembaban pada LCD
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Temp: ");
lcd.print(data.temperature, 1);
lcd.print(" C");
lcd.setCursor(0, 1);
lcd.print("Hum: ");
lcd.print(data.humidity, 1);
lcd.print(" %");
// Kontrol LED berdasarkan suhu
if (data.temperature > 30 && data.humidity <40) { // Jika suhu lebih dari 30°C
digitalWrite(LEDPIN, HIGH); // Nyalakan LED
} else {
digitalWrite(LEDPIN, LOW); // Matikan LED
}
delay(2000); // Tunggu 2 detik sebelum pembacaan berikutnya
}