#define BLYNK_TEMPLATE_ID "TMPLaXSkSE8v"
#define BLYNK_TEMPLATE_NAME "pendeteksi ketinggian air"
#include <wifi.h>
#include <wifiClient.h>
#include <BlinkSympelEsp32.h>
#define Echo 15
#define Trig 4
#define merah 14
#define kuning 12
#define hijau 13
char ssid[] = "PangayouwFams";
char pass [] = "Turu2023";
BlynkTimer timer;
float distance = 0;
float ketinggian = 0;
void ukur_jarak() {
digitalWrite(Trig, LOW);
delay(2);
digitalWrite(Trig, HIGH);
delay(10);
digitalWrite(Trig, LOW);
int duration = pulseIn(Echo, HIGH);
distance = duration * 0.034 / 2;
ketinggian = 350 - distance;
Serial.print("Jarak : ");
Serial.print(distance);
Serial.print(" CM");
Serial.print("Ketinggian Air : ")
Serial.print(ketinggian);
Serial.print(" CM");
}
void kirim_blynk() {
Blynk.virtualWrite(V0, ketinggian);
Blynk.virtualWrite(V4, ketinggian);
if (distance < 100) {
Blynk.virtualWrite(V1,0);
Blynk.virtualWrite(V2,0);
Blynk.virtualWrite(V3,0);
}
else if (distance >= 100 && distance <=150){
Blynk.virtualWrite(V1,0);
Blynk.virtualWrite(V2,0);
Blynk.virtualWrite(V3,0);
}
else if (distance >150){
Blynk.virtualWrite(V1,0);
Blynk.virtualWrite(V2,0);
Blynk.virtualWrite(V3,0)
}
}
void setup(){
Serial.begin(115200);
Blynk.begin(auth, ssid, pass);
pinMode (Trig, OUTPUT);
pinMode (Echo, INPUT);
pinMode (merah, OUTPUT);
pinMode (kuning, OUTPUT);
pinMode (hijau, OUTPUT);
timer.setInterval(2000L, kirim_blynk);
}
void loop(){
digitalWrite(merah, LOW);
digitalWrite(kuning, LOW);
digitalWrite(hijau, LOW);
ukur_jarak();
int ketinggian = 350 - distance;
Serial.print("Jarak : ");
Serial.print(distance);
Serial.print(" CM");
if (distance >100 && distance < 150)
{
Serial.println("waspada");
digitalWrite(kuning, HIGH);
}
else if (distance >0 && distance <100)
{
Serial.println("Bahaya");
digitalWrite(merah, HIGH);
}
else {
Serial.println("Aman");
digitalWrite(hijau, HIGH);
}
Blynk.run();
timer.run();
delay(500);
}