#include <ESP32Servo.h>
#define FLAME_SENSOR 32
#define RELAY_POMPA 19
#define SERVO_SCAN 13
#define SERVO_WATER 14
Servo servoScan;
Servo servoWater;
int pos = 0; // posisi servoScan
int step = 1; // arah gerakan servo (1 = maju, -1 = mundur)
bool fireDetected = false;
void setup() {
Serial.begin(115200);
pinMode(FLAME_SENSOR, INPUT);
pinMode(RELAY_POMPA, OUTPUT);
servoScan.attach(SERVO_SCAN);
servoWater.attach(SERVO_WATER);
digitalWrite(RELAY_POMPA, LOW); // pompa mati di awal
servoScan.write(0);
servoWater.write(90); // posisi netral awal
Serial.println("Sistem Deteksi & Penyemprot Api Siap!");
}
void loop() {
int flameState = digitalRead(FLAME_SENSOR);
// Cek status api
if (flameState == LOW) { // ubah ke HIGH jika sensor kamu aktif HIGH
fireDetected = true;
} else {
fireDetected = false;
}
if (fireDetected) {
Serial.println("🔥 Api Terdeteksi!");
digitalWrite(RELAY_POMPA, HIGH); // nyalakan pompa
servoWater.write(pos); // arahkan semprotan sesuai posisi servo scan
delay(1000);
} else {
// Jika tidak ada api
digitalWrite(RELAY_POMPA, LOW); // matikan pompa
servoWater.write(90); // servo water kembali ke posisi netral
// lanjutkan scanning
pos += step;
servoScan.write(pos);
delay(15);
// ubah arah jika sampai ujung
if (pos >= 180 || pos <= 0) {
step = -step;
}
}
}
Output Stepdown
Input Stepdown
Adaptor 12V