//Enter data according to your Blynk Device
#define BLYNK_TEMPLATE_ID "TMPL6TlCyTcjO"
#define BLYNK_TEMPLATE_NAME "Ultra Sonic"
#define BLYNK_AUTH_TOKEN "z4Qqv3MXF8JLHR4Y6KAXaFjSEnHdHU-_"
#include <WiFi.h>
#include <BlynkSimpleEsp32.h>
#include <NewPing.h>
// Pengaturan WiFi
char auth[] = "z4Qqv3MXF8JLHR4Y6KAXaFjSEnHdHU-_"; // Isi dengan auth token Blynk Anda
char ssid[] = "Wokwi-GUEST"; // Masukkan WiFi SSID anda
char pass[] = ""; // Masukkan WiFi password anda
// Pin yang digunakan
#define TRIGGER_PIN 8 // Pin trigger sensor ping HCSR04
#define ECHO_PIN 9 // Pin echo sensor ping HCSR04
const int ledPin = 10; // Pin untuk LED
// Variabel global
NewPing sonar(TRIGGER_PIN, ECHO_PIN); // Objek NewPing untuk sensor ping HCSR04
int distance = 0; // Variabel untuk menyimpan jarak yang terdeteksi
BlynkTimer timer;
// Fungsi untuk membaca jarak menggunakan sensor ping HCSR04
void readDistance() {
distance = sonar.ping_cm(); // Membaca jarak dalam satuan cm
// Periksa apakah nilai jarak valid (tidak tak terhingga dan tidak 0)
if (distance > 0 && distance < 400) { // Jarak batas diatur sesuai spesifikasi HCSR04
Serial.print("Distance: ");
Serial.print(distance);
Serial.println(" cm");
Blynk.virtualWrite(V5, distance); // Mengirim nilai jarak ke pin V5 di Blynk
// Jika jarak kurang dari atau sama dengan 50 cm, nyalakan LED
if (distance <= 20) { // jarak ini boleh disesuaikan dengan kebutuhan
digitalWrite(ledPin, HIGH); // Nyalakan LED
} else {
digitalWrite(ledPin, LOW); // Matikan LED
}
} else {
Serial.println("Invalid distance value"); // Debugging pesan
}
}
void setup() {
// Mulai serial
Serial.begin(9600);
// Mengatur pin LED sebagai OUTPUT
pinMode(ledPin, OUTPUT);
// Menghubungkan ke jaringan WiFi
Blynk.begin(auth, ssid, pass);
// Mengatur interval pembacaan jarak dengan timer (500ms)
timer.setInterval(500L, readDistance); // 500L = 500 milidetik
}
void loop() {
Blynk.run();
timer.run();
}