#define BLYNK_PRINT Serial
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#define BLYNK_TEMPLATE_ID "TMPL2p7jThzR"
#define BLYNK_TEMPLATE_NAME "Sensor Banjir"
#define BLYNK_AUTH_TOKEN "XNY_eMrTqCAoX7xRwjRHG-WDABDgrNVa"
#define ECHO_PIN 15
#define TRIG_PIN 2
#define buzzer 4
float distance =0.0;
int a = 0;
char auth[] = BLYNK_AUTH_TOKEN;
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
BlynkTimer timer;
void setup() {
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
Blynk.begin(auth, ssid, pass);
timer.setInterval(1000L, sendSensor);
Blynk.virtualWrite(V0, "-");
Blynk.virtualWrite(V1, "-");
Blynk.virtualWrite(V2, "-");
Blynk.virtualWrite(V3, 0);
}
void loop() {
sendSensor();
Blynk.run();
timer.run();
}
BLYNK_WRITE(V3) {
int newValue = param.asInt(); // Membaca nilai dari widget slider
distance = newValue; // Mengganti nilai variabel a dengan nilai baru
}
void sendSensor()
{
if (a == 0){
if (distance <= 0 && distance <= 20){
Blynk.virtualWrite(V1, "Aman");
Blynk.virtualWrite(V0, "Buzzer OFF");
noTone(buzzer);
Blynk.virtualWrite(V2,distance);
}
if (distance > 20 && distance <= 50){
Blynk.virtualWrite(V1, "Siaga 1");
Blynk.virtualWrite(V0, "Buzzer ON");
Blynk.virtualWrite(V2,distance);
delay(1);
tone (buzzer, 150);
delay(500);
noTone(buzzer);
}
if (distance > 50){
Blynk.virtualWrite(V1, "BAHAYA!!");
Blynk.virtualWrite(V0, "Buzzer ON");
Blynk.virtualWrite(V2,distance);
delay(1);
tone (buzzer, 300);
delay(5000);
noTone(buzzer);
}
delay(100);
}
}