Xác định khoảng cách khi đỗ xe bằng cảm biến HC-SRF04 sử dụng ESP8266 và App Blynk

11 Tháng 06 2019 | Đăng bởi: Cao Thanh Hùng

 

Nội dung bài viết hôm nay mình sẽ sử dụng cảm biến đo khoảng cách (HC - SRF04) để làm một hệ thống xác định khoảng cách trong bãi khi đỗ xe.

Hệ thống sẽ hiển thị khoảng cách về điện thoại khi cảm biến phát hiện vật cản. Bằng cách sử dụng NodeMCU ESP8266 với App Blynk.

 

 

Để hiểu hơn về cấu tạo và cách hoạt động của cảm biến (HC - SRF04) các bạn có thể tìm đọc bài viết về Arduino miễn phí dành cho người mới nhập môn.

Cấu hình thông số đo khoảng cách trên App Blynk

Để hiển thị Khoảng cách chúng ta vào Widget Box (+) > Click vào Gauge.

Nếu bạn chưa biết cách làm sao để tải App và tạo một Project trên Blynk các bạn xem bài viết bên dưới nhé.

 

Cài đặt thông số cảm biến đo khoảng cách (HC - SRF04)

  • Ở mục "Gauge": Đặt tên cho dự án ở đây mình đặt là "Khoảng Cách"

  • INPUT: Cấu hình cho PIN cần kết nối, ở đây mình chọn Virtual > V5 (0~1023) đổi lại (0~260).

  • LABELS: e.g: Temp:/pin/cm.

  • REFRESH INTERVAL: Vào Push chọn tốc độ đọc cảm biến nhiệt độ (sec).

 

   

 

Tiếp tục vào Widget Box (+) > Click vào nút LED để hiển thị sự thay đổi khoảng cách.

 

 

Ở mục LED Settings: Đặt tên là LED 0.

INPUT: Cấu hình cho PIN cần kết nối, ở đây mình chọn Virtual > V0 và nhấn OK.

Tương tự ta cài đặt thông số cho LED:

  • LED 1 PIN cần kết nối,chọn Virtual > V1.

  • LED 2 PIN cần kết nối,chọn Virtual > V2.

  • LED 3 PIN cần kết nối,chọn Virtual > V3.

  • LED 4 PIN cần kết nối,chọn Virtual > V4.

 

  

 

Như vậy là đã xong phần cài đặt, bước tiếp theo ta tiến hành upload chương trình và xem kết quả nhé.

 

Sơ đồ đấu nối

NodeMCU ESP8266

Cảm biến HC - SRF04

3V3

VCC (5V)

D1

TRIGGER

D2

ECHO

GND

GND

Các linh kiện cần thiết cho dự án

Tên linh kiện Số lượng
NodeMCU ESP8266 1
Cảm biến khoảng cách HC - SRF04 1

Code

#define TRIGGER D1
#define ECHO    D2

// NodeMCU Pin D1 > TRIGGER | Pin D2 > ECHO

#define BLYNK_PRINT Serial    // Comment this out to disable prints and save space
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>

// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = "90e6fc3ed332435587af6799fb58de88";

// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "Nha Tro 4";
char pass[] = "nguyennam";
void setup() {
  
  Serial.begin (9600);
  Blynk.begin(auth, ssid, pass);
  pinMode(TRIGGER, OUTPUT);
  pinMode(ECHO, INPUT);
  pinMode(BUILTIN_LED, OUTPUT);
}

void loop() {
  
  long duration, distance;
  digitalWrite(TRIGGER, LOW);  
  delayMicroseconds(2); 
  
  digitalWrite(TRIGGER, HIGH);
  delayMicroseconds(10); 
  
  digitalWrite(TRIGGER, LOW);
  duration = pulseIn(ECHO, HIGH);
  distance = (duration/2) / 29.1;

   if (distance <= 150) {
    Blynk.virtualWrite(V0, 255);
}
  else {
    Blynk.virtualWrite(V0, 0);
  }

 if (distance <= 100) {
    Blynk.virtualWrite(V1, 255);
}
  else {
    Blynk.virtualWrite(V1, 0);
  }

   if (distance <= 80) {
    Blynk.virtualWrite(V2, 255);
}
  else {
    Blynk.virtualWrite(V2, 0);
  }

   if (distance <= 40) {
    Blynk.virtualWrite(V3, 255);
}
  else {
    Blynk.virtualWrite(V3, 0);
  }

   if (distance <= 20) {
    Blynk.virtualWrite(V4, 255);
}
  else {
    Blynk.virtualWrite(V4, 0);
  }

  Serial.print(distance);
  Serial.println("Centimeter:");
  Blynk.virtualWrite(V5, distance);
  delay(200);
  Blynk.run();
}

Thư viện

  • Download thư viện "SimpleTimer.h": Tải ngay

  • Download thư viện "BlynkSimpleEsp8266.h": Tải ngay

Lời kết

Thật thú vị phải không các bạn, một ứng dụng thật đơn giản nhưng qua đó các bạn có thể sáng tạo riêng cho mình một dự án hay ho hơn, ví dụ có thể dùng cảm biến đo khoảng cách HC - SRF04 làm một mạch chống trộm. 

Trong quá trình chế tạo mọi thắc mắc các bạn để lại Comment bên dưới bài viết mình sẽ trả lời trong thời gian sớm nhất.

 

Tham gia cộng đồng Arduino KIT

  • Để nhận được nhiều kiến thức bổ ích, các bạn Đăng ký để nhận thông báo khi có bài viết mới nhé.

  • Tham gia Cộng đồng Arduino KIT để cùng nhau thảo luận và chia sẽ kiến thức về lập trình Arduino.

Nếu các bạn thấy bài viết bổ ích nhớ LikeShare cho mọi người cùng học nhé.

 

Chúc các bạn thành công.

Trân trọng.

Bài viết liên quan

 

 

Viết bình luận: