Mengirim Notifikasi Dengan Sensor HC-SR04 Dan ESP8266 Melalui Aplikasi Blynk
Exif_JPEG_420

Mengirim Notifikasi Dengan Sensor HC-SR04 Dan ESP8266 Melalui Aplikasi Blynk

Untuk mengetahui jarak sensor ultrasonic (HC-SR04), kita memerlukan notifikasi yang terhubung pada sebuah perangkat. Contoh Handphone agar dapat mengetahui jarak dari sensor tersebut.

Alat Yang Diperlukan :

  • ESP8266
  • Kabel Jumper
  • Sensor HC-SR04
  • Buzzer

Wiring

Buzzer :

  • Pendek (Negatif) = GND
  • Panjang (Positif) = D3

Sensor HC-SR04 :

  • VCC = 5V (VV)
  • TRIG = PIN D1
  • ECHO = PIN D2
  • GND = GND

Setup Di Blynk Cloud seperti ini :

Penulisan Code Arduino IDE :

#define BLYNK_TEMPLATE_ID "TMPL61BCyPScs"
#define BLYNK_TEMPLATE_NAME "NOTIFULTRASONIC"
#define BLYNK_AUTH_TOKEN "dvZ9RINg16EssvLl7Ppf3xHdrhDIVAGG"

#define BLYNK_PRINT Serial

#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include <SimpleTimer.h>

char auth[] = BLYNK_AUTH_TOKEN;
char ssid[] = "nama wifi";
char pass[] = "password wifi";

#define TRIG_PIN D1
#define ECHO_PIN D2
#define BUZZER_PIN D3

long duration;
float distance;

const float distanceThresholdBuzzer = 15.0;
const float distanceThresholdNotification = 5.0;

SimpleTimer timer;

void checkDistance() {
  digitalWrite(TRIG_PIN, LOW);
  delayMicroseconds(2);
  digitalWrite(TRIG_PIN, HIGH);
  delayMicroseconds(10);
  digitalWrite(TRIG_PIN, LOW);

  duration = pulseIn(ECHO_PIN, HIGH);

  distance = (duration * 0.034) / 2;

  Blynk.virtualWrite(V1, distance);

  if (distance < distanceThresholdBuzzer) {
    int buzzerDelay = map(distance, 0, distanceThresholdBuzzer, 100, 1000);
    digitalWrite(BUZZER_PIN, HIGH);
    delay(buzzerDelay / 2);
    digitalWrite(BUZZER_PIN, LOW);
    delay(buzzerDelay / 2);
  } else {
    digitalWrite(BUZZER_PIN, LOW);
  }

  if (distance < distanceThresholdNotification) {
    Blynk.logEvent("object_near", "Peringatan! Objek terlalu dekat dengan sensor ultrasonic.");
  }
}

void setup() {
  Serial.begin(115200);

  Blynk.begin(auth, ssid, pass);

  pinMode(TRIG_PIN, OUTPUT);
  pinMode(ECHO_PIN, INPUT);
  pinMode(BUZZER_PIN, OUTPUT);

  digitalWrite(BUZZER_PIN, LOW);

  timer.setInterval(1000L, checkDistance);
}

void loop() {
  Blynk.run();

  timer.run();
}

Silahkan Mencoba!

Untuk mengetahui lebih lanjut mengenai Source Code Projek Kami atau pertanyaan lainnya seputar Arduino dan Jasa, teman teman dapat menghubungi Sosial Media kami sebagai berikut

Contact Here :