#define BLYNK_TEMPLATE_ID "TMPL6EmM6N_Z-"
#define BLYNK_TEMPLATE_NAME "IOT"
#define BLYNK_AUTH_TOKEN "PmXvTNNf1QuYO6YDYFYEwLHambGbuAyq"
#define TRIG_PIN 18 // ESP32 pin GIOP23 connected to Ultrasonic Sensor's TRIG pin
#define ECHO_PIN 5 // ESP32 pin GIOP22 connected to Ultrasonic Sensor's ECHO pin
#define BLYNK_PRINT Serial
float duration_us, distance_cm;
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
char auth[] = BLYNK_AUTH_TOKEN;
// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
boolean st;
BlynkTimer timer;
void cek_koneksi(){ //fungsi cek koneksi dg Blynk
st=Blynk.connected();//baca status koneksi
Serial.print("stat Blynk: ");
Serial.println(st);
if(st!=true)ESP.restart(); /*ESP restart function*/
}
void kirimSensor()
{
cek_koneksi();
// generate 10-microsecond pulse to TRIG pin
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
// measure duration of pulse from ECHO pin
duration_us = pulseIn(ECHO_PIN, HIGH);
// calculate the distance
distance_cm = 0.017 * duration_us;
Blynk.virtualWrite(V0, distance_cm);
// print the value to Serial Monitor
Serial.print("distanceA: ");
Serial.print(distance_cm);
Serial.println(" cm ");
}
void setup() {
// begin serial port
Serial.begin (9600);
// put your setup code here, to run once:
// configure the trigger pin to output mode
pinMode(TRIG_PIN, OUTPUT);
// configure the echo pin to input mode
pinMode(ECHO_PIN, INPUT);
Blynk.begin(auth, ssid, pass);
timer.setInterval(1000L, kirimSensor);
}
void loop() {
// put your main code here, to run repeatedly:
Blynk.run();
timer.run();
}