Cảnh báo trộm bằng cảm biến PIR (HC-SR501) thông qua App Blynk sử dụng ESP8266

29 Tháng 05 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 PIR (HC - SR501) để làm một hệ thống cảnh báo khi có trộm đột nhập.

Hệ thống sẽ gửi thông báo về điện thoại khi có vật thể chuyển động. Bằng cách sử dụng NodeMCU ESP8266 với App Blynk.

 

app-bylnk-server-nodemcu-esp8266-pir-sr501

 

Để hiểu hơn về cấu tạo và cách hoạt động của cảm biến PIR (HC - SR501) 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ố tin nhắn trên App Blynk

Để hiển thị Tin nhắn chúng ta vào Widget Box (+) > Click vào Notification 

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é.

 

  blynk-Notification 

Cài đặt thông số PIR (HC - SR501)

  • Ở mục "NOTIFY WHEN HARDWARE GOES OFFLINE": Chuyển nút OFF Thành nút ON

  • Mục "PRIORITY": Chuyển HIGH thành LOW nhé.

 

blynk-pir

 

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

PIR (HC - SR501) 

Vin

VCC

D7

OUT

GND

GND

 

nguyen-ly-pir-sr501-esp8266

 

 

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

Tên linh kiện Số lượng
NodeMCU ESP8266 1
Dây cắm 3
Relay 1
Cảm biến PIR (HC-SR501) 1
Còi 220V 1

 Code:

#include <ESP8266WiFi.h>

#define BLYNK_PRINT Serial    // Comment this out to disable prints and save space
#include <BlynkSimpleEsp8266.h>
char auth[] = "90e6fc3ed332435587af6799fb58de88";

/* WiFi credentials */
char ssid[] = "Nha Tro 4";
char pass[] = "nguyennam";

/* HC-SR501 Motion Detector */
#define ledPin D0 
#define pirPin D7 // Input for HC-S501
int pirValue; // Place to store read PIR Value

void setup()
{
  digitalWrite(ledPin, LOW);
  Serial.begin(115200);
  delay(10);
  Blynk.begin(auth, ssid, pass);
  pinMode(ledPin, OUTPUT);
  pinMode(pirPin, INPUT);
  digitalWrite(ledPin, HIGH);
}

void loop()
{
  getPirValue();
  Blynk.run();
}

/***************************************************
 * Get PIR data
 **************************************************/
void getPirValue(void)
{
  pirValue = digitalRead(pirPin);
  if (pirValue) 
  { 
    Serial.println("==> co trom anh oi");
    Blynk.notify("Anh hùng có trộm đột nhập phòng anh ơi hihi");  
  }
  digitalWrite(ledPin, pirValue);
}

Thư viện

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

Giải thích Code

Các bạn thêm mã Token ("Enter you Auth Token") và điền các thông tin tài khoản ("wifi router name "và mật khẩu Wifi ("wifi router pass") vào nhé.

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 PIR (HC - SR501) 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 nhớ 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

 

Bình luận
5 bình luận:
binh-luan

Admin

30/10/2019

e xem app blynk đã connect chưa nhé. Xem trạng thái đã online chưa

binh-luan

Cao Anh Nhân

30/10/2019

582] Connected to WiFi [582] IP: 172.16.2.162 [582] ___ __ __ / _ )/ /_ _____ / /__ / _ / / // / _ \/ '_/ /____/_/\_, /_//_/_/\_\ /___/ v0.6.1 on NodeMCU [588] Connecting to blynk-cloud.com:80 [844] Ready (ping: 100ms).

binh-luan

Cao Anh Nhân

30/10/2019

Dạ em sửa được lỗi D0 rồi ạ (em sửa D0 thành 16 ứng với GPIO16 thì nó hết báo lỗi) Ad cho em hỏi tiếp ạ. Em chép y chang code của page về chạy thử. Thư viện cũng add đầy đủ, khi upload thì ko có lỗi gì. cảm biến vẫn nhận tín hiệu. Khi tín hiệu từ cảm biến vào thì led vẫn nháy và thông báo qua cổng nối tiếp COM vẫn hiện ra. Có thông báo kết nối thành công với Blynk-cloud luôn ạ. Nhưng thông báo vẫn ko hiện về điện thoại em ạ

binh-luan

Admin

29/10/2019

Cao Anh Nhân E chup hinh gui vào tin nhắn trên fanpage để hỗ trợ tốt nhất e nhé

binh-luan

Cao Anh Nhân

29/10/2019

cho em hỏi lúc chạy code nó báo không định dạng được D0 là sao ạ

Viết bình luận: