#include <Wire.h>
#include <LiquidCrystal_I2C.h> // Library untuk LCD I2C
#include <DHT.h> // Library untuk sensor DHT
#define DHTPIN 2 // Pin data sensor DHT22 terhubung ke pin digital 2
#define DHTTYPE DHT22 // Jenis sensor DHT (DHT11 atau DHT22)
DHT dht(DHTPIN, DHTTYPE);
LiquidCrystal_I2C lcd(0x27, 16, 2); // Inisialisasi objek LCD I2C dengan alamat 0x27, 16 kolom, dan 2 baris
void setup() {
Serial.begin(9600); // Inisialisasi komunikasi serial dengan baud rate 9600
lcd.init(); // Inisialisasi LCD
lcd.backlight(); // Nyalakan backlight LCD
dht.begin(); // Inisialisasi sensor DHT
}
void loop() {
delay(2000); // Tunggu 2 detik untuk membaca data sensor
float humidity = dht.readHumidity(); // Baca kelembaban udara
float temperature = dht.readTemperature(); // Baca suhu dalam derajat Celsius
if (isnan(humidity) || isnan(temperature)) { // Jika bacaan tidak valid
Serial.println("Failed to read from DHT sensor!");
return;
}
lcd.clear(); // Bersihkan layar LCD
lcd.setCursor(0, 0); // Set kursor ke baris pertama, kolom pertama
lcd.print("Temp: "); // Tampilkan teks "Temp: "
lcd.print(temperature); // Tampilkan nilai suhu
lcd.print(" C"); // Tampilkan satuan Celsius
lcd.setCursor(0, 1); // Set kursor ke baris kedua, kolom pertama
lcd.print("Humidity: "); // Tampilkan teks "Humidity: "
lcd.print(humidity); // Tampilkan nilai kelembaban
lcd.print(" %"); // Tampilkan satuan persen
Serial.print("Humidity: ");
Serial.print(humidity);
Serial.print(" %\t");
Serial.print("Temperature: ");
Serial.print(temperature);
Serial.println(" *C");
}