#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <DHT.h>
// Definisikan pin dan tipe untuk sensor DHT
#define DHTPIN 2 // Pin digital tempat DHT22 dihubungkan
#define DHTTYPE DHT22 // Tipe DHT22 yang digunakan
// Inisialisasi objek DHT
DHT dht(DHTPIN, DHTTYPE);
// Inisialisasi objek LCD dengan alamat I2C dan ukuran
LiquidCrystal_I2C lcd(0x27, 20, 4); // Ganti 0x27 dengan alamat I2C LCD Anda jika berbeda
void setup() {
Serial.begin(9600); // Mulai komunikasi serial untuk debugging
dht.begin(); // Mulai sensor DHT
lcd.begin(20, 4); // Mulai LCD dengan 20 kolom dan 4 baris
lcd.backlight(); // Nyalakan backlight LCD
// Tampilkan judul pada baris pertama
lcd.setCursor(0, 0);
lcd.print("Suhu & Kelembapan");
}
void loop() {
// Baca nilai kelembapan dan suhu
float humidity = dht.readHumidity();
float temperature = dht.readTemperature();
// Output ke serial untuk debugging
Serial.print("Humidity: ");
Serial.print(humidity);
Serial.print(" %, Temp: ");
Serial.print(temperature);
Serial.println(" C");
// Periksa kegagalan pembacaan
if (isnan(humidity) || isnan(temperature)) {
lcd.clear();
lcd.setCursor(0, 1);
lcd.print("Gagal baca DHT!");
} else {
// Tampilkan kelembapan dan suhu pada LCD
lcd.clear();
lcd.setCursor(0, 1);
lcd.print("Kelembapan: ");
lcd.print(humidity);
lcd.print(" %");
lcd.setCursor(0, 2);
lcd.print("Suhu: ");
lcd.print(temperature);
lcd.print(" C");
}
delay(2000); // Tunggu 2 detik untuk pembacaan berikutnya
}