// Batara novriadii, ariyandicipta : Monitoring level air
// menggunakan sensor ultrasonik berbasis blynk
#include <WiFi.h>
#include <BlynkSimpleEsp32.h>
#define BLYNK_TEMPLATE_ID "TMPL6qCd4nVex"
#define BLYNK_TEMPLATE_NAME "MonitoringWater"
#define BLYNK_AUTH_TOKEN "4KqZlGnbXim316evRSEA_HOE2uEkDR_q"
char auth[] = "6uiwhUZedJRsiKPZPrk8GIf1S6FTGgKT";
char ssid[] = "Wokwi-GUEST"; //nama hotspot yang digunakan
char pass[] = ""; //password hotspot yang digunakan
#define triggerPin 2
#define echoPin 15
#define LED1 25
#define LED2 26
#define LED3 27
long durasi;
int jarak;
void setup() {
Blynk.begin(auth, ssid, pass);
{
Serial.print(".");
delay(500);
}
pinMode(triggerPin, OUTPUT);
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
pinMode(echoPin, INPUT);
Serial.begin(9600);
}
void loop() {
Blynk.run();
digitalWrite(triggerPin, LOW);
delayMicroseconds(2);
digitalWrite(triggerPin, HIGH);
delayMicroseconds(10);
digitalWrite(triggerPin, LOW);
durasi = pulseIn(echoPin, HIGH);
jarak = durasi*0.034/2;
Blynk.virtualWrite(V3, jarak);
if(jarak > 80){
Serial.println("Jarak lebih dari 80cm");
digitalWrite(LED1, HIGH);
digitalWrite(LED2, LOW);
digitalWrite(LED3, LOW);
}else if(jarak <= 80 && jarak >= 40){
Serial.println("Jarak berada diantara 40cm hingga 80cm");
digitalWrite(LED2, HIGH);
digitalWrite(LED1, LOW);
digitalWrite(LED3, LOW);
}else if(jarak < 40){
Serial.println("Jarak kurang dari 40cm");
digitalWrite(LED3, HIGH);
digitalWrite(LED2, LOW);
digitalWrite(LED1, LOW);
}
}