#include "DHTesp.h" // Mengimpor pustaka DHTesp untuk sensor DHT
#include <LiquidCrystal_I2C.h> // Mengimpor pustaka LCD I2C
DHTesp dhtSensor; // Membuat objek DHTesp untuk sensor DHT
LiquidCrystal_I2C lcd(0x27, 16, 2); // Mengatur alamat I2C dan ukuran layar (16x2)
void setup() {
// Memulai komunikasi Serial untuk debugging
Serial.begin(9600);
// Menginisialisasi sensor DHT pada pin 25 dengan tipe DHT22
dhtSensor.setup(25, DHTesp::DHT22);
// Menginisialisasi layar LCD
lcd.init(); // Memulai LCD
lcd.backlight(); // Menghidupkan lampu latar LCD
}
void loop() {
// Membaca data suhu dan kelembapan dari sensor DHT22
TempAndHumidity data = dhtSensor.getTempAndHumidity();
// Menampilkan data di Serial Monitor
Serial.println("Temp: " + String(data.temperature, 2) + "°C");
Serial.println("Humidity: " + String(data.humidity, 1) + "%");
Serial.println("---");
// Menampilkan suhu pada baris pertama LCD
lcd.setCursor(0, 0); // Set kursor ke baris pertama
lcd.print("Suhu: ");
lcd.setCursor(6, 0); // Set kursor setelah teks "Suhu: "
lcd.print(String(data.temperature, 2));
lcd.print(" C");
// Menampilkan kelembapan pada baris kedua LCD
lcd.setCursor(0, 1); // Set kursor ke baris kedua
lcd.print("Kelembaban: ");
lcd.setCursor(12, 1); // Set kursor setelah teks "Kelembaban: "
lcd.print(String(data.humidity, 1));
lcd.print("%");
// Menunggu 2000 ms sebelum pembacaan berikutnya
delay(2000);
}
/*
Catatan:
1. Layar LCD I2C dengan alamat 0x27 digunakan untuk menampilkan data suhu dan kelembapan.
2. Tampilan LCD diatur dalam dua baris:
- Baris pertama: "Suhu: xx.xx C"
- Baris kedua: "Kelembaban: xx.x%"
3. Nilai suhu dan kelembapan dibatasi:
- Suhu: 2 angka desimal.
- Kelembapan: 1 angka desimal.
4. Komunikasi Serial digunakan untuk debugging dan memverifikasi data dari sensor.
5. Delay 2 detik disesuaikan dengan pembaruan sensor DHT22 (sekitar 0.5 Hz).
*/