#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <DHT.h>
// Definisikan pin dan tipe sensor
#define DHTPIN 12
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
LiquidCrystal_I2C lcd(0x27, 16, 2);
// Definisikan pin LED
#define LEDPIN 15
void setup() {
// Inisialisasi LCD dan LED
lcd.init();
lcd.backlight();
pinMode(LEDPIN, OUTPUT);
digitalWrite(LEDPIN, LOW);
// Inisialisasi sensor DHT
dht.begin();
// Mulai komunikasi serial untuk debugging
Serial.begin(115200);
}
void loop() {
// Baca suhu dan kelembaban
float humidity = dht.readHumidity();
float temperature = dht.readTemperature();
// Cek apakah pembacaan valid
if (isnan(humidity) || isnan(temperature)) {
Serial.println("Gagal membaca dari sensor DHT!");
return;
}
// Tampilkan hasil di Serial Monitor
Serial.print("Suhu: ");
Serial.print(temperature);
Serial.print(" °C, Kelembaban: ");
Serial.print(humidity);
Serial.println(" %");
// Tampilkan hasil di LCD
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Suhu: ");
lcd.print(temperature, 1); // Menampilkan dengan satu angka desimal
lcd.print(" C");
lcd.setCursor(0, 1);
lcd.print("Kelembaban: ");
lcd.print(humidity, 1); // Menampilkan dengan satu angka desimal
lcd.print(" %");
// Kontrol LED berdasarkan suhu
if (temperature > 30.0) {
digitalWrite(LEDPIN, HIGH); // Nyalakan LED
} else {
digitalWrite(LEDPIN, LOW); // Matikan LED
}
// Tunggu 2 detik sebelum pembacaan berikutnya
delay(2000);
}