#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#define BLYNK_TEMPLATE_ID "TMPLihC17efn"
#define BLYNK_DEVICE_NAME "Ketinggian Air"
#define BLYNK_AUTH_TOKEN "xlRqClq2J-5qLNDI91wBjt3NeruwLR6o"
#define LED_merah 4
#define LED_kuning 5
#define LED_hijau 18
#define echo 2
#define trig 15
#define BLYNK_PRINT Serial
char auth[] = "xlRqClq2J-5qLNDI91wBjt3NeruwLR6o";
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
BlynkTimer timer;
void setup()
{
Serial.begin(9600);
Blynk.begin(auth, ssid, pass);
timer.setInterval(2000L, sendSensor);
//LED
pinMode(LED_merah, OUTPUT);
pinMode(LED_kuning, OUTPUT);
pinMode(LED_hijau, OUTPUT);
digitalWrite(LED_merah, LOW);
digitalWrite(LED_kuning, LOW);
digitalWrite(LED_hijau, LOW);
pinMode(trig, OUTPUT);
pinMode(echo, INPUT);
}
float distance() {
digitalWrite(trig, LOW);
delayMicroseconds(2);
digitalWrite(trig, HIGH);
delayMicroseconds(10);
digitalWrite(trig, LOW);
int duration = pulseIn(echo, HIGH);
return duration * 0.034 / 2;
}
void sendSensor()
{
float jarak = distance();
Blynk.virtualWrite(V0, jarak);
Blynk.virtualWrite(V1, jarak);
Serial.println("Ketinggian Air");
Serial.println(jarak,0);
if(jarak < 100){
digitalWrite(LED_merah, HIGH);
digitalWrite(LED_kuning, LOW);
digitalWrite(LED_hijau, LOW);
Blynk.virtualWrite(V0, jarak);
Blynk.virtualWrite(V1, jarak);
Serial.println("Ketinggian Air");
Serial.println(jarak,0);
}else if (jarak > 100 && jarak < 150){
digitalWrite(LED_merah, LOW);
digitalWrite(LED_kuning, HIGH);
digitalWrite(LED_hijau, LOW);
Blynk.virtualWrite(V0, jarak);
Blynk.virtualWrite(V2, jarak);
Serial.println("Ketinggian Air");
Serial.println(jarak,0);
}else if ( jarak > 150){
digitalWrite(LED_merah, LOW);
digitalWrite(LED_kuning, LOW);
digitalWrite(LED_hijau, HIGH);
Blynk.virtualWrite(V0, jarak);
Blynk.virtualWrite(V3, jarak);
Serial.println("Ketinggian Air");
Serial.println(jarak,0);
}
}
void loop()
{
Blynk.run();
timer.run();
}