Arduino UNO R4 Cảm Biến Cửa

Hướng dẫn này sẽ chỉ cho bạn cách sử dụng Arduino UNO R4 và cảm biến cửa để giám sát trạng thái mở hoặc đóng của cửa ra vào hoặc cửa sổ. Chúng ta sẽ học cách lắp đặt cảm biến cửa và kết nối nó với Arduino, sau đó cách lập trình Arduino để đọc trạng thái từ cảm biến cửa.

Arduino UNO R4 cảm biến cửa

Linh Kiện Cần Thiết

1×Arduino UNO R4 WiFi hoặc Arduino UNO R4 Minima
1×(Tùy chọn) DIYables STEM V4 IoT, tương thích với Arduino Uno R4 WiFi
1×Arduino UNO R4 Minima (Thay thế)
1×Cáp USB Type-C
1×Cảm Biến Cửa
1×(Khuyến nghị) Screw Terminal Block Shield for Arduino UNO R4
1×(Khuyến nghị) Breadboard Shield for Arduino UNO R4
1×(Khuyến nghị) Enclosure for Arduino UNO R4
1×(Khuyến nghị) Power Splitter for Arduino UNO R4
1×(Khuyến nghị) Prototyping Base Plate & Breadboard Kit for Arduino UNO

Or you can buy the following kits:

1×DIYables STEM V4 IoT Starter Kit (Arduino 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ó hai phần:

  • Một công tắc reed switch với hai đầu nối kim loại
  • Một nam châm
cảm biến cửa sơ đồ chân

Giống như một công tắc hoặc nút nhấn thông thường, chúng ta KHÔNG cần phân biệt giữa hai chân của reed switch.

Cách Hoạt Động

Nam châm được cố định vào cửa ra vào hoặc cửa sổ (phần chuyển động), và reed switch được cố định vào khung cửa (phần không chuyển động). Khi cửa đóng, hai phần này sẽ gần nhau.

  • Khi nam châm ở gần reed switch, mạch reed switch đóng.
  • Khi nam châm xa reed switch, mạch reed switch mở.
cảm biến cửa how it works sơ đồ chân

※ Lưu ý:

Reed switch KHÔNG cung cấp tín hiệu LOW hoặc HIGH trực tiếp. Nó chỉ hiển thị trạng thái mở hoặc đóng. Cách chúng ta kết nối nó với Arduino UNO R4 sẽ ảnh hưởng đến việc chân có đọc được LOW, HIGH hay có giá trị trôi nổi (không thể dự đoán được). Để ngăn chặn giá trị trôi nổi này, chúng ta cần kết nối điện trở pull-up hoặc pull-down với chân trên Arduino UNO R4.

Nếu chúng ta kết nối một chân của reed switch với GND, và chân còn lại với một chân input trên Arduino UNO R4 có điện trở pull-up (có thể là tích hợp sẵn hoặc thêm riêng):

  • Khi nam châm ở gần reed switch, chân input của Arduino UNO R4 đọc được LOW.
  • Khi nam châm xa reed switch, chân input của Arduino UNO R4 đọc được HIGH.

Do đó:

  • Để biết cửa đang mở hay đóng, hãy xem chân input của Arduino UNO R4:
    • Nếu chân hiển thị LOW, cửa đang đóng.
    • Nếu chân hiển thị HIGH, cửa đang mở.
  • Để biết khi nào cửa mở hoặc đóng, hãy theo dõi sự thay đổi trạng thái của chân input Arduino UNO R4:
    • Sự thay đổi từ LOW sang HIGH có nghĩa là cửa đang mở.
    • Sự thay đổi từ HIGH sang LOW có nghĩa là cửa đang đóng.

Sơ Đồ Đấu Nối

Arduino UNO R4 cảm biến cửa sơ đồ đấu dây

This image is created using Fritzing. Click to enlarge image

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

  • Chân Arduino UNO R4 được thiết lập thành chế độ đầu vào số bằng cách sử dụng hàm pinMode(). Ví dụ, chân 9.
pinMode(9, INPUT_PULLUP);
  • Đọc trạng thái của chân Arduino UNO R4 bằng hàm digitalRead().
int door_state = digitalRead(9);

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

/* * Mã Arduino UNO R4 này được phát triển bởi newbiely.vn * Mã Arduino UNO R4 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/arduino-uno-r4/arduino-uno-r4-door-sensor */ #define DOOR_SENSOR_PIN 9 // The Arduino UNO R4 pin connected to door sensor's pin int door_state; void setup() { Serial.begin(9600); // initialize serial pinMode(DOOR_SENSOR_PIN, INPUT_PULLUP); // set arduino pin to input pull-up mode } void loop() { door_state = digitalRead(DOOR_SENSOR_PIN); // read state if (door_state == HIGH) { Serial.println("The door is open"); } else { Serial.println("The door is closed"); } }

Các Bước Thực Hiện

Làm theo các hướng dẫn sau từng bước:

  • Nếu đây là lần đầu tiên bạn sử dụng Arduino Uno R4 WiFi/Minima, hãy tham khảo hướng dẫn về Arduino UNO R4 - Cài Đặt Phần Mềm.
  • Đấu nối các linh kiện theo sơ đồ được cung cấp.
  • Kết nối bo mạch Arduino Uno R4 với máy tính của bạn bằng cáp USB.
  • Khởi động Arduino IDE trên máy tính của bạn.
  • Chọn bo mạch Arduino Uno R4 phù hợp (ví dụ: Arduino Uno R4 WiFi) và cổng COM.
  • Sao chép code ở trên và mở trong Arduino IDE.
  • Nhấn nút Upload trong Arduino IDE để tải code lên Arduino UNO R4.
  • Đưa nam châm lại gần reed switch và sau đó di chuyển nó ra xa reed switch.
  • Kiểm tra kết quả trên Serial Monitor.
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 Arduino UNO R4 - Phát Hiện Sự Kiện Mở Cửa và Đóng Cửa

/* * Mã Arduino UNO R4 này được phát triển bởi newbiely.vn * Mã Arduino UNO R4 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/arduino-uno-r4/arduino-uno-r4-door-sensor */ #define DOOR_SENSOR_PIN 9 // The Arduino UNO R4 pin connected to door sensor's pin int door_state; // current state of door sensor int prev_door_state; // previous state of door sensor void setup() { Serial.begin(9600); // initialize serial pinMode(DOOR_SENSOR_PIN, INPUT_PULLUP); // set arduino pin to input pull-up mode door_state = digitalRead(DOOR_SENSOR_PIN); // read state } void loop() { prev_door_state = door_state; // save the last state door_state = digitalRead(DOOR_SENSOR_PIN); // read new state if (prev_door_state == LOW && door_state == HIGH) { // state change: LOW -> HIGH Serial.println("The door opening is detected"); // TODO: turn on alarm, light or send notification ... } else if (prev_door_state == HIGH && door_state == LOW) { // state change: HIGH -> LOW Serial.println("The door closing is detected"); // TODO: turn off alarm, light or send notification ... } }
  • Sao chép code và mở trong Arduino IDE.
  • Nhấn nút Upload trong Arduino IDE để chuyển code vào Arduino UNO R4 của bạn.
  • Đưa nam châm lại gần reed switch, sau đó di chuyển nó ra xa reed switch.
  • Kiểm tra kết quả trên Serial Monitor.
COM6
Send
The door closing is detected The door opening 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.

Bài hướng dẫn liên quan