#define BLYNK_TEMPLATE_ID "TMPL69hA3FK-Q"
#define BLYNK_TEMPLATE_NAME "sensor ultrasonik blynk"
#define BLYNK_AUTH_TOKEN "aAJ2kD7yLHyrtmI9qyrceEUj3gcb_lCv"
#define echoPin 18
#define trigPin 19
#define RED_LED 15
#define YELLOW_LED 2
#define BLUE_LED 4
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#include <Blynk.h>
char auth[] = BLYNK_AUTH_TOKEN;
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
BlynkTimer timer;
float measuredDistance = 0; // Declare measuredDistance at a global scope
void kirimData() {
Blynk.virtualWrite(V0, measuredDistance); // menulis nilai ke gauge
}
BLYNK_WRITE(V1) {
measuredDistance = param.asFloat(); // membaca nilai dari slider
Serial.print("Jarak: ");
Serial.print(measuredDistance);
Serial.println(" cm");
}
void setup() {
pinMode(echoPin, INPUT);
pinMode(trigPin, OUTPUT);
Serial.begin(115200);
Blynk.begin(auth, ssid, pass);
pinMode(RED_LED, OUTPUT);
pinMode(YELLOW_LED, OUTPUT);
pinMode(BLUE_LED, OUTPUT);
timer.setInterval(2000L, kirimData);
}
void loop() {
if (measuredDistance > 200) {
Serial.println("Jarak Jauh");
digitalWrite(RED_LED, HIGH);
digitalWrite(YELLOW_LED, LOW);
digitalWrite(BLUE_LED, LOW);
} else if (measuredDistance > 100 && measuredDistance <= 200) {
Serial.println("Jarak Sedang");
digitalWrite(RED_LED, LOW);
digitalWrite(YELLOW_LED, HIGH);
digitalWrite(BLUE_LED, LOW);
} else if (measuredDistance < 100) {
Serial.print("Jarak Dekat");
digitalWrite(RED_LED, LOW);
digitalWrite(YELLOW_LED, LOW);
digitalWrite(BLUE_LED, HIGH);
}
delay(1000);
Blynk.run();
timer.run();
}