#define BLYNK_PRINT Serial
#define BLYNK_TEMPLATE_ID "TMPLoqZvA84S"
#define BLYNK_TEMPLATE_NAME "Ketinggian Air Sungai"
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#define EchoPin 2
#define TrigPin 15
#define ledRed 14
#define ledYellow 12
#define ledGreen 13
long duration;
int distance;
char auth[] = "0hOeTzBbBiq3wMDuqWwJdVoCpJREeYmP";
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
BlynkTimer timer;
void setup()
{
Serial.begin(9600);
pinMode(TrigPin, OUTPUT);
pinMode(EchoPin, INPUT);
pinMode(ledRed, OUTPUT);
pinMode(ledYellow, OUTPUT);
pinMode(ledGreen, OUTPUT);
Blynk.begin(auth, ssid, pass);
timer.setInterval(2000L, sendSensor);
}
void sendSensor () {
digitalWrite(TrigPin, LOW);
delayMicroseconds(2);
digitalWrite(TrigPin, HIGH);
delayMicroseconds(10);
digitalWrite(TrigPin, LOW);
duration = pulseIn(EchoPin, HIGH);
distance = duration * 0.034 / 2;
Blynk.virtualWrite(V0, distance);
}
void loop() {
Serial.print("Ketinggian Air: ");
Serial.println(distance);
if(distance >=150){
digitalWrite(ledRed, LOW);
digitalWrite(ledYellow,LOW);
digitalWrite(ledGreen, HIGH);
delay(10);
}
else if (distance < 150 && distance >= 100){
digitalWrite(ledRed, LOW);
digitalWrite(ledYellow,HIGH);
digitalWrite(ledGreen, LOW);
delay(10);
}
else if (distance < 100){
digitalWrite(ledRed, HIGH);
digitalWrite(ledYellow,LOW);
digitalWrite(ledGreen, LOW);
delay(10);
}
else {
digitalWrite(ledRed, LOW);
digitalWrite(ledYellow,LOW);
digitalWrite(ledGreen, LOW);
delay(10);
}
Blynk.run();
timer.run();
}