#include <DHTesp.h>
#include <LiquidCrystal_I2C.h>
int ldr;
DHTesp dhtSensor;
bool button1;
bool lastButtonState = HIGH;
bool displayMode = true; // true untuk DHT22, false untuk LDR
LiquidCrystal_I2C lcd1(0x27, 16, 2);
void setup() {
pinMode(27, INPUT_PULLUP);
pinMode(14, INPUT);
dhtSensor.setup(26, DHTesp::DHT22);
lcd1.init();
lcd1.backlight();
}
void loop() {
ldr = analogRead(14);
button1 = digitalRead(27);
// Deteksi perubahan tombol (falling edge)
if (button1 == LOW && lastButtonState == HIGH) {
displayMode = !displayMode; // Toggle mode tampilan
lcd1.clear(); // Bersihkan LCD saat pergantian mode
}
lastButtonState = button1;
if(displayMode) {
// Mode tampilan DHT22
TempAndHumidity data = dhtSensor.getTempAndHumidity();
lcd1.setCursor(0, 0);
lcd1.print("Suhu: ");
lcd1.print(String(data.temperature, 1));
lcd1.print((char)223); // Simbol derajat
lcd1.print("C "); // Spasi tambahan untuk membersihkan karakter sisa
lcd1.setCursor(0, 1);
lcd1.print("Lembab: ");
lcd1.print(String(data.humidity, 1));
lcd1.print("% "); // Spasi tambahan untuk membersihkan karakter sisa
} else {
// Mode tampilan LDR
lcd1.setCursor(0, 0);
lcd1.print("Nilai LDR: ");
lcd1.print(ldr);
lcd1.print(" "); // Spasi tambahan untuk membersihkan karakter sisa
lcd1.setCursor(0, 1);
lcd1.print(" "); // Bersihkan baris kedua
}
delay(500);
}