#include <LiquidCrystal_I2C.h>
#include <DHT.h>
#define pinDHT 32
#define tipeDHT DHT22
#define pinTombol 33
float suhu;
float kelembapan;
int counterTombol;
bool lastButtonState = HIGH;
LiquidCrystal_I2C lcd (0x27, 16, 2);
DHT dht (pinDHT, tipeDHT);
void setup()
{
lcd.init();
lcd.backlight();
pinMode(pinTombol, INPUT_PULLUP);
}
void loop()
{
suhu = dht.readTemperature();
kelembapan = dht.readHumidity();
bool statusTombol = digitalRead (pinTombol);
if (statusTombol == 0 && lastButtonState == HIGH)
{
counterTombol++;
delay (200);
}
lastButtonState = statusTombol;
//jika counter nya 0
if (counterTombol == 0)
{
lcd.setCursor(0,0);
lcd.print("Sensor Suhu dan");
lcd.setCursor(0,1);
lcd.print("Kelembapan DHT22");
}
//jika counter nya 1
else if (counterTombol == 1)
{
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Temp: ");
lcd.print(suhu);
lcd.print(" C");
delay(500);
}
//jika counter nya 2
else if (counterTombol == 2)
{
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Hum: ");
lcd.print(kelembapan);
lcd.print(" %");
delay(500);
}
//jika counter nya 3
else if (counterTombol == 3)
{
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Temp: ");
lcd.print(suhu);
lcd.print(" C");
lcd.setCursor(0,1);
lcd.print("Hum: ");
lcd.print(kelembapan);
lcd.print(" %");
delay(500);
}
//jika counter sudah lebih dari 3:
if (counterTombol > 3)
{
counterTombol = 0;
}
}