#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#define BLYNK_TEMPLATE_ID "TMPL6NH-sl75r"
#define BLYNK_TEMPLATE_NAME "DHT22"
#define BLYNK_AUTH_TOKEN "QFkyvN6RGeSSynYDYH0gav2rDiPTCWUi"
#define BLYNK_PRINT Serial //deklarasi untuk menampilkan keterangan mulai
#define Echo 15
#define Trig 2
#define Merah 14
#define Kuning 12
#define Hijau 13
#define buzzer 26
BlynkTimer timer;
float jarak = 0;
int nada;
char auth[] = BLYNK_AUTH_TOKEN;
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
void setup(){
Serial.begin(115200);
Serial.println("Selamat datang di sistem tandon air otomatis");
Blynk.begin(auth,ssid,pass);
pinMode(Echo, INPUT);
pinMode(Trig, OUTPUT);
pinMode(Merah, OUTPUT);
pinMode(Kuning, OUTPUT);
pinMode(Hijau, OUTPUT);
}
float readUltrasonic(){
digitalWrite(Trig, LOW);
delayMicroseconds(2);
digitalWrite(Trig, HIGH);
delayMicroseconds(10);
digitalWrite(Trig, LOW);
//echo pin dengan sinyal HIGH
int duration = pulseIn(Echo,HIGH);
float dist_cm = duration *0.034 /2;
return dist_cm;
}
void loop(){
float waterLevel = readUltrasonic();
Serial.println("Batas ketinggian air adalah: ");
Serial.println(waterLevel);
if(waterLevel > 150){
digitalWrite(Hijau, HIGH);
digitalWrite(Kuning, LOW);
digitalWrite(Merah, LOW);
Blynk.virtualWrite(V0,waterLevel);
}
else if(waterlevel >100 && waterLevel <=150){
digitalWrite(Kuning, HIGH);
digitalWrite(Hijau, LOW);
digitalWrite(Merah, LOW);
Blynk.virtualWrite(V0,waterLevel);
}
else if(waterlevel <=50){
digitalWrite(Merah, HIGH);
digitalWrite(Hijau, LOW);
digitalWrite(Kuning, LOW);
Blynk.virtualWrite(V0,waterLevel);
}
Blynk.run();//menjalankan perintah yang ada dilibrary blynk
}