#define BLYNK_TEMPLATE_ID "TMPL6jTxW381r"
#define BLYNK_TEMPLATE_NAME "Monitoring Kekeruhan Air Akuarium"
#include <WiFi.h>
#include <BlynkSimpleEsp32.h>
#include <ESP32Servo.h>
char auth[] = "8vhyaBMj-vGc6NRS633Ee8OD2eeMzW3Z";
const char* ssid = "Wokwi-GUEST";
const char* password = "";
const int SEN0189 = 34;
const int led = 2;
const int buzzer = 4;
const int relay = 32;
const int PinServo = 5;
Servo myservo;
BlynkTimer timer;
void send_data() {
int Value = analogRead(SEN0189);
int turbidity = map(Value, 0, 4095, 0, 100);
Serial.print("Kekeruhan Air: ");
Serial.print(turbidity);
Serial.println(" %");
Blynk.virtualWrite(V0, turbidity);
if (turbidity > 90) {
digitalWrite(led, HIGH);
digitalWrite(buzzer, HIGH);
digitalWrite(relay, HIGH);
myservo.write(0);
Blynk.virtualWrite(V1, 0);
Blynk.virtualWrite(V2, 255);
} else if (turbidity > 65) {
digitalWrite(led, LOW);
digitalWrite(buzzer, LOW);
digitalWrite(relay, HIGH);
myservo.write(0);
Blynk.virtualWrite(V1, 255);
Blynk.virtualWrite(V2, 0);
} else {
digitalWrite(led, LOW);
digitalWrite(buzzer, LOW);
digitalWrite(relay, LOW);
myservo.write(90);
Blynk.virtualWrite(V1, 255);
Blynk.virtualWrite(V2, 0);
}
}
void setup() {
Serial.begin(115200);
pinMode(SEN0189, INPUT);
pinMode(buzzer, OUTPUT);
pinMode(relay, OUTPUT);
pinMode(PinServo, OUTPUT);
pinMode(led, OUTPUT);
myservo.attach(PinServo);
WiFi.begin(ssid, password);
Blynk.begin(auth, ssid, password);
timer.setInterval(1000L, send_data);
}
void loop() {
Blynk.run();
timer.run();
}