#define BLYNK_PRINT Serial
#define BLYNK_TEMPLATE_ID "TMPLVEkmXYd6"
#define BLYNK_DEVICE_NAME "ESP32 02"
// #define BLYNK_DEVICE_NAME "Smart City"
// #define BLYNK_AUTH_TOKEN "TCQMcklyJ3tFUv6D3SyEUYszZjKM5pG-"
#define ECHO_PIN 4
#define TRIG_PIN 2
#define LED_HIJAU 13
#define LED_KUNING 12
#define LED_MERAH 14
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
char auth[] = "TCQMcklyJ3tFUv6D3SyEUYszZjKM5pG-";
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
String level;
int g, y, r;
float readDistanceCM() {
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
int duration = pulseIn(ECHO_PIN, HIGH);
return duration * 0.034 / 2;
}
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
Serial.println("Hello, ESP32!");
Blynk.begin(auth, ssid, pass);
pinMode(LED_BUILTIN, OUTPUT);
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
pinMode(LED_HIJAU, OUTPUT);
pinMode(LED_KUNING, OUTPUT);
pinMode(LED_MERAH, OUTPUT);
}
void loop() {
float distance = readDistanceCM();
Serial.print("Jarak: ");
Serial.println(distance);
Blynk.virtualWrite(V0, distance);
if (distance >= 100){
digitalWrite(LED_HIJAU, HIGH);
digitalWrite(LED_KUNING, LOW);
digitalWrite(LED_MERAH, LOW);
level = "Aman";
g = 1;
y = 0;
r = 0;
} else if (distance < 100 && distance >= 50){
digitalWrite(LED_HIJAU, LOW);
digitalWrite(LED_KUNING, HIGH);
digitalWrite(LED_MERAH, LOW);
level = "Siaga";
g = 0;
y = 1;
r = 0;
} else if (distance < 50){
digitalWrite(LED_HIJAU, LOW);
digitalWrite(LED_KUNING, LOW);
digitalWrite(LED_MERAH, HIGH);
level = "Banjir";
g = 0;
y = 0;
r = 1;
};
Serial.println(level);
Blynk.virtualWrite(V4, level);
Blynk.virtualWrite(V3, g);
Blynk.virtualWrite(V2, y);
Blynk.virtualWrite(V1, r);
Blynk.run();
// put your main code here, to run repeatedly:
delay(100); // this speeds up the simulation
}