Untuk mengetahui jarak dari sebuah sensor ultrasonic, kita perlu notifikasi yang terhubung pada sebuah perangkat contohnya handphone agar lebih mudah untuk mengetahui jarak dari sensor ultrasonic.
Alat Yang Di Butuhkan :
-ESP8266
-Sensor Ultrasonic(HCSR04)
-Buzzer
-Kabel Jumper pendek
Wiring :
HCSR04 :
VCC > 5V (ESP8266)
Trigger Pin > D1 (ESP8266)
Echo Pin > D2 (ESP8266)
GND > GND (ESP8266)
Buzzer :
Negatif(Pendek) > GND (ESP8266)
Positif(Panjang) > D3 (ESP8266)
Set Up Blynk.cloud :




Codingan :
#define BLYNK_TEMPLATE_ID "TMPL6KDj1Hf7w"
#define BLYNK_TEMPLATE_NAME "NOTIFULTRASONIC"
#define BLYNK_AUTH_TOKEN "9Y9q5bRK2SAf700SDk0Tico9V_5Pys_O"
#define BLYNK_PRINT Serial
// Library yang diperlukan
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include <SimpleTimer.h>
// Informasi Wi-Fi dan Auth Token Blynk
char auth[] = BLYNK_AUTH_TOKEN; // Ganti dengan token Blynk Anda
char ssid[] = "lab-robotika"; // Ganti dengan nama Wi-Fi Anda
char pass[] = "lab-robotika"; // Ganti dengan password Wi-Fi Anda
// Pin untuk sensor ultrasonik dan buzzer
#define TRIG_PIN D1
#define ECHO_PIN D2
#define BUZZER_PIN D3
// Variabel jarak
long duration;
float distance;
// Batas jarak dalam cm
const float distanceThresholdBuzzer = 15.0; // Buzzer aktif jika jarak < 15 cm
const float distanceThresholdNotification = 5.0; // Notifikasi aktif jika jarak < 5 cm
// Timer untuk Blynk
SimpleTimer timer;
void checkDistance() {
// Aktifkan sensor ultrasonik
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
// Baca durasi sinyal echo
duration = pulseIn(ECHO_PIN, HIGH);
// Hitung jarak dalam cm
distance = (duration * 0.034) / 2;
// Kirim data jarak ke Blynk
Blynk.virtualWrite(V1, distance);
// Cek apakah jarak kurang dari threshold untuk buzzer
if (distance < distanceThresholdBuzzer) {
// Hitung intensitas buzzer berdasarkan jarak
int buzzerDelay = map(distance, 0, distanceThresholdBuzzer, 100, 1000); // Semakin dekat, semakin cepat bunyi
// Aktifkan buzzer dengan pola bertahap
digitalWrite(BUZZER_PIN, HIGH);
delay(buzzerDelay / 2);
digitalWrite(BUZZER_PIN, LOW);
delay(buzzerDelay / 2);
} else {
// Matikan buzzer
digitalWrite(BUZZER_PIN, LOW);
}
// Cek apakah jarak kurang dari threshold untuk notifikasi
if (distance < distanceThresholdNotification) {
// Kirim notifikasi ke Blynk
Blynk.logEvent("object_near", "Peringatan! Objek terlalu dekat dengan sensor ultrasonic.");
}
}
void setup() {
// Inisialisasi serial monitor
Serial.begin(115200);
// Inisialisasi Blynk
Blynk.begin(auth, ssid, pass);
// Inisialisasi pin
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
pinMode(BUZZER_PIN, OUTPUT);
// Pastikan buzzer mati pada awalnya
digitalWrite(BUZZER_PIN, LOW);
// Atur timer untuk mengecek jarak setiap 100 ms
timer.setInterval(1000L, checkDistance);
}
void loop() {
// Jalankan Blynk
Blynk.run();
// Jalankan timer
timer.run();
}
Selamat Mencoba !!
Jika anda berminat menggunakan jasa labrobotika, silahkan hubungi admin: WHATSAPP


