#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
const int redLedPin = 32;
const int blueLedPin = 33;
const int greenLedPin = 25;
const int buzzerPin = 26;
void setup()
{
Wire.begin(23, 22);
Serial.begin(9600);
lcd.init();
lcd.backlight();
pinMode(redLedPin, OUTPUT);
pinMode(blueLedPin, OUTPUT);
pinMode(greenLedPin, OUTPUT);
pinMode(buzzerPin, OUTPUT);
}
void loop()
{
int16_t sensorValue = analogRead(34);
float humidityPercent = map(sensorValue, 2165, 3135, 0, 100);
String msg;
if (humidityPercent < 40){
msg = "KERING";
digitalWrite(redLedPin, HIGH);
digitalWrite(blueLedPin, LOW);
digitalWrite(greenLedPin, LOW);
tone(buzzerPin, 300);
} else if (humidityPercent > 60) {
msg = "BASAH";
digitalWrite(redLedPin, LOW);
digitalWrite(blueLedPin, LOW);
digitalWrite(greenLedPin, HIGH);
tone(buzzerPin, 1000);
} else {
msg = "BAIK";
digitalWrite(redLedPin, LOW);
digitalWrite(blueLedPin, HIGH);
digitalWrite(greenLedPin, LOW);
noTone(buzzerPin);
}
lcd.clear();
lcd.print("Kelembapan Tanah");
lcd.print(msg);
lcd.setCursor(0, 1);
lcd.print("Presentase : ");
lcd.print(humidityPercent);
lcd.print("%");
delay(500);
}