#define BLYNK_PRINT Serial
#define BLYNK_TEMPLATE_ID "TMPL6D11OcSZ0"
#define BLYNK_TEMPLATE_NAME "Ultrasonik"
#define echoPin 15
#define trigPin 2
#include <BlynkSimpleEsp32.h>
#define LED_RED 2
#define LED_YELLOW 4
#define LED_BLUE 5
char auth[] = "L49SjNf8AiI2V_4aISTRagtERHGBqR_c";
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
BlynkTimer timer;
float ultrasonik() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
int durasiPantulan = pulseIn(echoPin, HIGH);
float distance = durasiPantulan * 0.034 / 2;
return distance;
}
void kirimData() {
float distance = ultrasonik();
Blynk.virtualWrite(V1, distance);
Serial.print("Jarak : ");
Serial.print(distance);
Serial.println("cm ");
// Ketinggian air
if (distance > 200) {
Serial.println("Jarak jauh");
digitalWrite(LED_RED, HIGH);
digitalWrite(LED_YELLOW , LOW);
digitalWrite(LED_BLUE, LOW);
} else if (distance > 100 && distance <= 200) {
Serial.println("Jarak sedang");
digitalWrite(LED_RED, LOW);
digitalWrite(LED_YELLOW, HIGH);
digitalWrite(LED_BLUE, LOW);
} else if (distance < 100)
Serial.println("Jarak dekat");
digitalWrite(LED_RED, LOW);
digitalWrite(LED_YELLOW, LOW);
digitalWrite(LED_BLUE, HIGH);
delay(1000);
}
BLYNK_WRITE(V0) {
int pinVal = param.asInt();
digitalWrite(LED_RED, pinVal);
}
void setup() {
pinMode(echoPin, INPUT);
pinMode(trigPin, OUTPUT);
Serial.begin(115200);
Blynk.begin(auth, ssid, pass);
pinMode(LED_RED, OUTPUT);
pinMode(LED_YELLOW, OUTPUT);
pinMode(LED_BLUE, OUTPUT);
timer.setInterval(2000L, kirimData);
}
void loop() {
Blynk.run();
timer.run();
}