#define BLYNK_TEMPLATE_ID "TMPL6FEtK4ao"
#define BLYNK_DEVICE_NAME "waterLEVEL"
#define BLYNK_AUTH_TOKEN "tXRxesOxBZOPRPSJr7poGk1tmyDzIzmQ"
#define BLYNK_PRINT Serial
#define merah 21
#define kuning 19
#define hijau 18
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
char auth[] = BLYNK_AUTH_TOKEN;
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
BlynkTimer timer;
#define trigPin 33
#define echoPin 32
int depth =20;
long duration;
int distance;
void waterlevel()
{
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = duration * 0.034 / 2;
Serial.print("Distance: ");
Serial.println(distance);
Blynk.virtualWrite(V1, distance);
delay(500);
}
void setup()
{
Serial.begin(115200);
pinMode(33, INPUT);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(merah, OUTPUT);
pinMode(hijau, OUTPUT);
pinMode(kuning, OUTPUT);
Blynk.begin(auth, ssid, pass);
delay(2000);
timer.setInterval(10L, waterlevel);
}
void loop()
{
if(distance>150)
{
digitalWrite(merah, LOW);
digitalWrite(kuning, LOW);
digitalWrite(hijau, HIGH);
}
else if (distance>100 & distance<150)
{
digitalWrite(merah, LOW);
digitalWrite(kuning, HIGH);
digitalWrite(hijau, LOW);
}
else if (distance<100)
{
digitalWrite(merah, HIGH);
digitalWrite(kuning, LOW);
digitalWrite(hijau, LOW);
}
Blynk.run();
timer.run();
}