#define SOIL_PIN A0 // Sensor tanah terhubung ke Pin Analog A0
#define RELAY_PIN 12 // Relay pompa terhubung ke Pin Digital 12
// Batas kelembapan tanah (dalam persen)
const int BATAS_KERING = 30; // Jika di bawah 30%, pompa menyala
const int BATAS_BASAH = 70; // Jika di atas 70%, pompa mati
void setup() {
Serial.begin(9600);
pinMode(RELAY_PIN, OUTPUT);
digitalWrite(RELAY_PIN, LOW); // Pastikan pompa mati di awal
Serial.println("Sistem Penyiram Otomatis Arduino Dimulai...");
}
void loop() {
// Membaca nilai analog dari sensor (0 - 1023 untuk Arduino Uno)
int nilaiAnalog = analogRead(SOIL_PIN);
// Konversi nilai analog ke persentase (0% - 100%)
// Pada Wokwi, nilai 1023 dianggap kering dan 0 dianggap sangat basah
int kelembapanPersen = map(nilaiAnalog, 1023, 0, 0, 100);
// Tampilkan data ke Serial Monitor
Serial.print("Nilai Sensor: ");
Serial.print(nilaiAnalog);
Serial.print(" | Kelembapan: ");
Serial.print(kelembapanPersen);
Serial.println("%");
// Logika Penyiraman Otomatis
if (kelembapanPersen < BATAS_KERING) {
digitalWrite(RELAY_PIN, HIGH); // Nyalakan relay (pompa menyala)
Serial.println("STATUS: Tanah Kering! Menyiram tanaman...");
}
else if (kelembapanPersen > BATAS_BASAH) {
digitalWrite(RELAY_PIN, LOW); // Matikan relay (pompa mati)
Serial.println("STATUS: Tanah Basah! Pompa dimatikan.");
}
delay(1000); // Tunggu 1 detik sebelum membaca ulang sensor
}