#include <ESP32Servo.h>
#define BLYNK_TEMPLATE_ID "TMPL6WjYr39jf"
#define BLYNK_TEMPLATE_NAME "p"
#define BLYNK_AUTH_TOKEN "trZ_FbZ3ibYBSCqFVO0I2dLBXWf8bnm9"
#define BLYNK_PRINT Serial
#include <BlynkSimpleEsp32.h>
char auth[] = BLYNK_AUTH_TOKEN;
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
#include <Wire.h>
#define AO 34
#define LEDHIJAU 26
#define LEDMERAH 14
Servo Kondisi;
int ldr;
int potPin = 32;
int clarifierPin = 27;
bool status = false;
BLYNK_WRITE(V0)
{
int pinValue = param.asInt();
if (pinValue == 1) {
status = true;
} else {
status = false;
}
}
void setup() {
Serial.begin(115200);
Kondisi.attach(25);
// Tambahkan inisialisasi pin untuk LED
pinMode(LEDHIJAU, OUTPUT);
pinMode(LEDMERAH, OUTPUT);
pinMode(clarifierPin, OUTPUT); // Set the clarifier pin as an output
Blynk.begin(auth, ssid, pass);
}
void loop() {
Blynk.run();
ldr = map(analogRead(AO), 0, 4096, 0, 100); // Memperbarui nilai kekeruhan air
if (status == true) {
Kondisi.write(100); // Mengatur kondisi netral
Serial.println("Netral");
digitalWrite(LEDHIJAU, LOW);
digitalWrite(LEDMERAH, LOW);
digitalWrite(clarifierPin, LOW); // Turn off clarifier
} else {
if (ldr < 20) {
// Mengirim status ke Blynk berdasarkan kondisi kekeruhan air
Blynk.virtualWrite(V1, "Keruh"); // Menggunakan Widget Display Value untuk menampilkan status kekeruhan
Kondisi.write(180);
Serial.println("Keruh");
digitalWrite(LEDHIJAU, LOW);
digitalWrite(LEDMERAH, HIGH);
analogWrite(clarifierPin, map(analogRead(potPin), 0, 4095, 0, 255)); // Adjust clarifier based on potentiometer value
} else {
Blynk.virtualWrite(V1, "Bersih");
Kondisi.write(0);
Serial.println("Bersih");
digitalWrite(LEDHIJAU, HIGH);
digitalWrite(LEDMERAH, LOW);
digitalWrite(clarifierPin, LOW); // Turn off clarifier
}
}
}