#include <LiquidCrystal_I2C.h>
#include <DHT.h>
#define DHTPIN A1
#define DHTTYPE DHT22
#define BUTTON_PIN_A 2
#define BUTTON_PIN_B 3
#define BUTTON_PIN_C 4
DHT dht(DHTPIN, DHTTYPE);
LiquidCrystal_I2C lcd(0x27, 16, 2);
int LDRPin = A0;
int sbA, sbB, sbC;
int buttonStateA = LOW, buttonStateB = LOW, buttonStateC = LOW;
void setup() {
Serial.begin(9600);
pinMode(LDRPin, INPUT);
Serial.println("Sistem Monitoring Suhu");
lcd.begin(16, 2);
dht.begin();
pinMode(BUTTON_PIN_A, INPUT);
pinMode(BUTTON_PIN_B, INPUT);
pinMode(BUTTON_PIN_C, INPUT);
lcd.setCursor(0, 0);
lcd.print("Sistem Monitor");
lcd.setCursor(0, 1);
lcd.print("Tanaman");
delay(2000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Anda Ingin Ukur");
lcd.setCursor(0, 1);
lcd.print("Apa?");
delay(2000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Tekan A Untuk");
lcd.setCursor(0, 1);
lcd.print("Suhu");
delay(2000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Tekan B Untuk");
lcd.setCursor(0, 1);
lcd.print("Kelembaban");
delay(2000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Tekan C Untuk");
lcd.setCursor(0, 1);
lcd.print("Ints. Cahaya");
delay(2000);
lcd.clear();
}
void loop() {
sbA = digitalRead(BUTTON_PIN_A);
sbB = digitalRead(BUTTON_PIN_B);
sbC = digitalRead(BUTTON_PIN_C);
buttonStateA = sbA;
buttonStateB = sbB;
buttonStateC = sbC;
if (buttonStateA == HIGH && buttonStateB == LOW && buttonStateC == LOW) {
float t = dht.readTemperature();
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Suhu= ");
lcd.print(t);
lcd.print(" C");
Serial.print("Suhu = ");
Serial.print(t);
Serial.println(" C");
} else if (buttonStateA == LOW && buttonStateB == HIGH && buttonStateC == LOW) {
float h = dht.readHumidity();
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Lembab = ");
lcd.print(h);
lcd.print(" %");
Serial.print("Kelembaban = ");
Serial.print(h);
Serial.println(" %");
} else if (buttonStateA == LOW && buttonStateB == LOW && buttonStateC == HIGH) {
int LDRStatus = analogRead(LDRPin);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Cahaya= ");
lcd.print(LDRStatus);
Serial.print("Intensitas Cahaya = ");
Serial.print(LDRStatus);
}
delay(70);
}