#include <Servo.h>
const int soilSensorPin = A0;
const int rainSensorPin = A1;
const int greenLedPin = 3;
const int redLedPin = 2;
const int servoPin = 5;
Servo waterServo;
float hujan, Tanah;
float hasilHujan, hasilTanah;
void setup() {
pinMode(greenLedPin, OUTPUT);
pinMode(redLedPin, OUTPUT);
pinMode(soilSensorPin, INPUT);
pinMode(rainSensorPin, INPUT);
waterServo.attach(servoPin);
waterServo.write(0);
Serial.begin(9600);
}
void loop() {
hasilHujan = analogRead(rainSensorPin);
hujan = ((hasilHujan / 1023.0) * 100);
hasilTanah = analogRead(soilSensorPin);
Tanah = ((hasilTanah / 1023.0) * 100);
Serial.print("Kelembaban Tanah: ");
Serial.print(Tanah);
Serial.println("%");
Serial.print("Hujan: ");
Serial.print(hujan);
Serial.println("%");
if (Tanah >= 40 && Tanah <= 60) {
digitalWrite(greenLedPin, HIGH);
digitalWrite(redLedPin, LOW);
Serial.println("Kelembaban Tanah Baik");
} else {
digitalWrite(greenLedPin, LOW);
digitalWrite(redLedPin, HIGH);
Serial.println("Kelembaban Tanah Tidak Baik");
}
if (hujan > 50) {
waterServo.write(180);
Serial.println("Saluran Air Terbuka (Hujan)");
} else {
waterServo.write(0);
Serial.print("Saluran Air Tertutup");
Serial.println("(Tidak Hujan)");
}
Serial.println("");
delay(1000);
}