#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include "DHT.h"
#define DHTPIN 15
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
LiquidCrystal_I2C lcd(0x27, 16, 2); // Pastikan alamat benar
void setup() {
Serial.begin(115200);
Wire.begin(16, 2);
// Memulai sensor DHT22
dht.begin();
// Memulai LCD dan mengatur tampilan awal
lcd.begin(16, 2);
lcd.setBacklight(1); // Menyalakan backlight LCD
lcd.setCursor(0, 0);
lcd.print("Suhu DHT22:"); // Menampilkan teks pembuka di layar LCD
}
void loop() {
// Menunggu beberapa detik sebelum membaca ulang data sensor
delay(2000);
// Membaca suhu dalam Celcius
float temperature = dht.readTemperature();
// Membaca kelembaban (humidity)
float humidity = dht.readHumidity();
// Memeriksa apakah pembacaan sensor gagal
if (isnan(temperature) || isnan(humidity)) {
// Menampilkan pesan error jika pembacaan gagal
Serial.println("Gagal membaca dari sensor DHT!");
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Gagal Membaca");
lcd.setCursor(0, 1);
lcd.print("Sensor DHT");
return;
}
// Menampilkan suhu dan kelembaban pada Serial Monitor
Serial.print("Suhu: ");
Serial.print(temperature);
Serial.print(" C, Humidity: ");
Serial.print(humidity);
Serial.println(" %");
// Menampilkan hasil pembacaan suhu dan kelembaban di LCD
lcd.clear(); // Bersihkan tampilan LCD sebelum menampilkan data baru
lcd.setCursor(0, 0); // Posisi cursor di baris pertama
lcd.print("Suhu: ");
lcd.print(temperature);
lcd.print(" C");
lcd.setCursor(0, 1); // Posisi cursor di baris kedua
lcd.print("Humidity: ");
lcd.print(humidity);
lcd.print(" %");
}