#include <Arduino.h>
#include <LiquidCrystal_I2C.h> // Library untuk LCD
#include <DHT.h> // Library untuk Sensor Suhu
// --- Pengaturan Sensor DHT ---
#define DHTPIN PA0
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
// --- Pengaturan LCD I2C ---
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
lcd.init();
lcd.backlight();
lcd.clear();
dht.begin();
lcd.setCursor(0, 0);
lcd.print("Membaca sensor..");
delay(1500);
}
void loop() {
// Tunggu 2 detik sebelum pembacaan berikutnya
delay(2000);
// Baca suhu dan kelembapan
float suhu = dht.readTemperature();
float lembap = dht.readHumidity();
// Cek jika pembacaan gagal
if (isnan(suhu) || isnan(lembap)) {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Sensor Error!");
return;
}
// Siapkan buffer untuk memformat teks
char line1[17]; // 16 karakter + 1 null terminator
char line2[17];
// Format teks untuk baris 1 (Suhu) dan baris 2 (Kelembapan)
sprintf(line1, "Suhu: %2.1f%cC", suhu, (char)223);
sprintf(line2, "Lembap: %2.1f%%", lembap);
// Bersihkan layar dan tampilkan data baru
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(line1);
lcd.setCursor(0, 1);
lcd.print(line2);
}