Cara Mengirim Notifikasi Sensor Jarak Ke Aplikasi Blynk Dengan ESP8266
Exif_JPEG_420

Cara Mengirim Notifikasi Sensor Jarak Ke Aplikasi Blynk Dengan ESP8266

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