#include "LiquidCrystal_I2C.h"
LiquidCrystal_I2C lcd(0x27,16,2); // set the LCD address
const int sensorPin = A0; // Pin analog sensor kelembaban
const int relayPin = 7; // Pin relay
int statusRelay = HIGH; // Awalnya relay dalam keadaan ON
void setup() {
//Serial.begin(9600);
lcd.init(); //initialize the lcd
lcd.backlight(); //open the backlight //
lcd.begin(16, 2); // Inisialisasi LCD
pinMode(sensorPin, INPUT);
pinMode(relayPin, OUTPUT);
digitalWrite(relayPin, statusRelay);
lcd.setCursor(3, 0);
lcd.print("PPM_POLNAM");
lcd.setCursor(4, 1);
lcd.print("PNBP 2023");
delay(5000);
lcd.clear();
}
void loop() {
// Baca nilai kelembaban
int humidity = analogRead(sensorPin);
// Petakan nilai humidity ke perosentase
int humidityPercentage = map(humidity, 0, 1023, 0, 100);
// tampilkan humidity pada LCD
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("H:"+ String(humidityPercentage) + "%");
if (humidityPercentage >= 0 && humidityPercentage <= 30) {
lcd.setCursor(0, 1);
lcd.print("Kategori:Kering");
lcd.setCursor(6, 0);
lcd.print("|Pompa:ON");
digitalWrite(relayPin, HIGH);
statusRelay = HIGH;
} else if (humidityPercentage > 30 && humidityPercentage <= 70) {
lcd.setCursor(0, 1);
lcd.print("Kategori:Lembab");
lcd.setCursor(6, 0);
lcd.print("|Pompa:OFF");
digitalWrite(relayPin, LOW);
statusRelay = LOW;
} else {
lcd.setCursor(0, 1);
lcd.print("Kategori:Basah");
lcd.setCursor(6, 0);
lcd.print("|Pompa:OFF");
digitalWrite(relayPin, LOW);
statusRelay = LOW;
}
delay(1000);
}