ESP32 Cảm Biến Cửa

Cảm biến cửa (còn được gọi là entry sensor, contact sensor, hoặc window sensor) được sử dụng rộng rãi trong nhiều loại ứng dụng, đặc biệt là cho bảo mật. Nó được dùng để phát hiện/giám sát các lối vào (như cửa ra vào, cửa sổ ...). Hướng dẫn này sẽ chỉ bạn cách sử dụng ESP32 với cảm biến cửa.

Phần Cứng Cần Thiết

1×mô-đun phát triển ESP-WROOM-32
1×Alternatively, ESP32 Uno-form board
1×Alternatively, ESP32 S3 Uno-form board
1×Cáp USB Type-C
1×Cảm Biến Cửa
1×(Tùy chọn) DC Power Jack
1×breadboard
1×Dây Jumper
1×(Khuyến nghị) Screw Terminal Expansion Board for ESP32
1×(Khuyến nghị) Breakout Expansion Board for ESP32
1×(Khuyến nghị) Power Splitter for ESP32

Or you can buy the following kits:

1×DIYables ESP32 Starter Kit (ESP32 included)
1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)

Về Cảm Biến Cửa

Sơ Đồ Chân Cảm Biến Cửa

Cảm biến cửa có hai thành phần:

  • Một nam châm
  • Một reed switch, có hai dây
cảm biến cửa sơ đồ chân

Giống như switch/button, chúng ta KHÔNG cần phân biệt hai dây của reed switch.

Cách Hoạt Động của Cảm Biến Cửa

Nam châm và reed switch được lắp đặt trên cửa/cửa sổ như sau:

  • Nam châm là phần có thể di chuyển. Nó nên được gắn vào cửa/cửa sổ
  • Reed switch là phần cố định. Nó nên được gắn vào khung cửa

Hai thành phần này tiếp xúc khi cửa đóng.

  • Mạch reed switch đóng khi nó ở gần nam châm
  • Mạch reed switch mở khi nó ở xa nam châm
cảm biến cửa how it works

※ Lưu ý:

Giống như một ESP32 - Button (Nút Nhấn), chúng ta PHẢI sử dụng điện trở pull-up hoặc pull-down trên chân ESP32, chân này kết nối với reed switch

Nếu chúng ta kết nối reed switch như sau: một dây nối GND, dây còn lại nối chân input của ESP32 với điện trở pull-up:

  • Chân input của ESP32 ở mức LOW khi nam châm ở gần reed switch
  • Chân input của ESP32 ở mức HIGH khi nam châm ở xa reed switch

Vậy:

  • Nếu chân input của ESP32 ở mức LOW, cửa đang đóng
  • Nếu chân input của ESP32 ở mức HIGH, cửa đang mở
  • Nếu chân input của ESP32 chuyển từ LOW sang HIGH, cửa đang được mở
  • Nếu chân input của ESP32 chuyển từ HIGH sang LOW, cửa đang được đóng

Sơ Đồ Đấu Nối giữa Cảm Biến Cửa và ESP32

  • Cách kết nối ESP32 và cảm biến cửa sử dụng breadboard
ESP32 cảm biến cửa sơ đồ đấu dây

This image is created using Fritzing. Click to enlarge image

Nếu bạn chưa rõ cách cấp nguồn cho ESP32 và các linh kiện khác, xem: Cách Cung Cấp Nguồn Điện Cho ESP32.

how to connect ESP32 and cảm biến cửa

Cách Lập Trình Cảm Biến Cửa

  • Khởi tạo chân ESP32 thành chế độ digital input bằng hàm pinMode(). Ví dụ, chân GPIO19
pinMode(19, INPUT_PULLUP);
  • Đọc trạng thái của chân ESP32 bằng hàm digitalRead().
int doorState = digitalRead(19);

Code ESP32 - Kiểm Tra Trạng Thái Cửa Mở và Đóng

/* * Mã ESP32 này được phát triển bởi newbiely.vn * Mã ESP32 này được cung cấp để sử dụng công khai, không có ràng buộc. * Để xem hướng dẫn chi tiết và sơ đồ kết nối, vui lòng truy cập: * https://newbiely.vn/tutorials/esp32/esp32-door-sensor */ #define DOOR_SENSOR_PIN 19 // ESP32 pin GPIO19 connected to door sensor's pin int doorState; void setup() { Serial.begin(9600); // initialize serial pinMode(DOOR_SENSOR_PIN, INPUT_PULLUP); // set ESP32 pin to input pull-up mode } void loop() { doorState = digitalRead(DOOR_SENSOR_PIN); // read state if (doorState == HIGH) { Serial.println("The door is open"); } else { Serial.println("The door is closed"); } }

Các Bước Nhanh

  • Nếu đây là lần đầu bạn sử dụng ESP32, hãy xem ESP32 - Cài Đặt Phần Mềm.
  • Sao chép code trên và dán vào Arduino IDE.
  • Biên dịch và upload code lên board ESP32 bằng cách click nút Upload trên Arduino IDE
  • Di chuyển nam châm lại gần reed switch và sau đó di chuyển xa khỏi reed switch.
  • Xem kết quả trên Serial Monitor. Nó sẽ trông như thế này:
COM6
Send
The door is open The door is open The door is closed The door is closed The door is closed The door is closed The door is closed The door is open The door is open
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Code ESP32 - Phát Hiện Sự Kiện Mở Cửa và Đóng Cửa

/* * Mã ESP32 này được phát triển bởi newbiely.vn * Mã ESP32 này được cung cấp để sử dụng công khai, không có ràng buộc. * Để xem hướng dẫn chi tiết và sơ đồ kết nối, vui lòng truy cập: * https://newbiely.vn/tutorials/esp32/esp32-door-sensor */ #define DOOR_SENSOR_PIN 19 // ESP32 pin GPIO19 connected to door sensor's pin int currentDoorState; // current state of door sensor int lastDoorState; // previous state of door sensor void setup() { Serial.begin(9600); // initialize serial pinMode(DOOR_SENSOR_PIN, INPUT_PULLUP); // set ESP32 pin to input pull-up mode currentDoorState = digitalRead(DOOR_SENSOR_PIN); // read state } void loop() { lastDoorState = currentDoorState; // save the last state currentDoorState = digitalRead(DOOR_SENSOR_PIN); // read new state if (lastDoorState == LOW && currentDoorState == HIGH) { // state change: LOW -> HIGH Serial.println("The door-opening event is detected"); // TODO: turn on alarm, light or send notification ... } else if (lastDoorState == HIGH && currentDoorState == LOW) { // state change: HIGH -> LOW Serial.println("The door-closing event is detected"); // TODO: turn off alarm, light or send notification ... } }
  • Sao chép code trên và dán vào Arduino IDE.
  • Biên dịch và upload code lên board ESP32 bằng cách click nút Upload trên Arduino IDE
  • Di chuyển nam châm lại gần reed switch và sau đó di chuyển xa khỏi reed switch.
  • Xem kết quả trên Serial Monitor. Nó sẽ trông như thế này:
COM6
Send
The door-closing event is detected The door-opening event is detected
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Video Tutorial

Việc sản xuất video tốn rất nhiều thời gian. Nếu video hướng dẫn hữu ích cho việc học của bạn, hãy đăng ký kênh YouTube để ủng hộ. Nếu nhu cầu đủ cao, chúng tôi sẽ cố gắng làm thêm nhiều video.

Tài Liệu Tham Khảo Ngôn Ngữ

Bình Luận