#define BLYNK_TEMPLATE_ID "TMPL6OIXME4ZT"
#define BLYNK_TEMPLATE_NAME "UTS IOT TEORI"
#define BLYNK_AUTH_TOKEN "LwzFMl-0AkdgZ_l5k0ydW5mTOY0hH8PX"
#define BLYNK_PRINT Serial
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
const int trigPin = 5;
const int echoPin = 18;
const int merah = 14;
const int kuning = 12;
const int hijau = 13;
const int buzzer = 19;
#define SOUND_SPEED 0.0343
long duration;
float distanceCm;
long tinggi_Air = 0;
long tinggi_sensor = 20;
char auth[] = BLYNK_AUTH_TOKEN;
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
void setup(){
Serial.begin(115200); delay(100);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(merah, OUTPUT);
pinMode(kuning, OUTPUT);
pinMode(hijau, OUTPUT);
pinMode(buzzer, OUTPUT);
Blynk.begin(auth, ssid, pass);
}
void loop() {
Blynk.run();
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distanceCm = duration * SOUND_SPEED / 2;
tinggi_Air = tinggi_sensor - distanceCm;
int persentase = (float)tinggi_Air / tinggi_sensor * 100;
Serial.print("Tinggi Air: ");
Serial.print(tinggi_Air);
Serial.print("cm Persentase: ");
Serial.print(persentase);
Serial.println("%");
Blynk.virtualWrite(V0, persentase);
Blynk.virtualWrite(V4, tinggi_Air);
if (persentase < 50) {
digitalWrite(hijau, HIGH); // LED hijau menyala
digitalWrite(kuning, LOW); // LED kuning mati
digitalWrite(merah, LOW); // LED merah mati
//buzzer
noTone(buzzer);
Blynk.virtualWrite(V1, 1); // Menyalakan LED hijau di Blynk
Blynk.virtualWrite(V2, 0); // Mematikan LED kuning di Blynk
Blynk.virtualWrite(V3, 0); // Mematikan LED merah di Blynk
} else if (persentase >= 50 && persentase < 80) {
digitalWrite(hijau, LOW); // LED hijau mati
digitalWrite(kuning, HIGH); // LED kuning menyala
digitalWrite(merah, LOW); // LED merah mati
//buzzer
tone(buzzer,1000);
delay(500);
noTone(buzzer);
Blynk.virtualWrite(V1, 0); // Mematikan LED hijau di Blynk
Blynk.virtualWrite(V2, 1); // Menyalakan LED kuning di Blynk
Blynk.virtualWrite(V3, 0); // Mematikan LED merah di Blynk
} else {
digitalWrite(hijau, LOW); // LED hijau mati
digitalWrite(kuning, LOW); // LED kuning mati
digitalWrite(merah, HIGH); // LED merah menyala
//buzzer
tone(buzzer,1000);
Blynk.virtualWrite(V1, 0); // Mematikan LED hijau di Blynk
Blynk.virtualWrite(V2, 0); // Mematikan LED kuning di Blynk
Blynk.virtualWrite(V3, 1); // Menyalakan LED merah di Blynk
}
delay(1000);
}