Arduino Hệ thống khóa cửa RFID/NFC
Trong hướng dẫn này, chúng ta sẽ học cách làm hệ thống khóa cửa RFID/NFC bằng Arduino, Bộ kit RFID/NFC RC522, và khóa điện từ hoặc khóa solenoid.
※ Lưu ý:
Chúng tôi cũng có thêm các bài hướng dẫn khác Arduino - Hệ thống khóa cửa sử dụng mật khẩu.
Phần cứng cần chuẩn bị
| 1 | × | Arduino Uno R3 | ||
| 1 | × | USB 2.0 cable type A/B (for USB-A PC) | ||
| 1 | × | USB 2.0 cable type C/B (for USB-C PC) | ||
| 1 | × | RFID/NFC RC522 Kit (reader + tags) | ||
| 1 | × | RFID Key Fob | ||
| 1 | × | RFID Card | ||
| 1 | × | Solenoid Lock | ||
| 1 | × | (Hoặc) Electromagnetic Lock | ||
| 1 | × | Relay | ||
| 1 | × | 12V Power Adapter | ||
| 1 | × | DC Power Jack | ||
| 1 | × | dây jumper | ||
| 1 | × | (Khuyến nghị) Screw Terminal Block Shield for Arduino Uno | ||
| 1 | × | (Khuyến nghị) Breadboard Shield for Arduino Uno | ||
| 1 | × | (Khuyến nghị) Enclosure for Arduino Uno | ||
| 1 | × | (Khuyến nghị) Prototyping Base Plate & Breadboard Kit for Arduino UNO |
Or you can buy the following kits:
| 1 | × | DIYables STEM V3 Starter Kit (Arduino included) | ||
| 1 | × | DIYables Sensor Kit (30 sensors/displays) | ||
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Về Mô-đun RFID/NFC RC522 và Khóa điện từ
Nếu bạn chưa biết về Mô-đun RFID/NFC RC522, Khóa điện từ và Khóa Solenoid (các chân kết nối, cách hoạt động, cách lập trình ...), hãy tìm hiểu về chúng trong các bài hướng dẫn sau:
Các thành phần của hệ thống
Hệ thống khóa cửa bao gồm hai phần chính:
- Khóa cửa: Arduino + đầu đọc RFID/NFC + ổ khóa điện từ
- Chìa khóa cửa: thẻ RFID/NFC

Có một số loại đầu đọc RFID/NFC có thể làm việc với Arduino. Bài hướng dẫn này sử dụng RFID-RC522 làm đầu đọc RFID/NFC vì nó rẻ.
Cách hoạt động của khóa cửa RFID/NFC
- Một số thẻ có UID được thiết lập trong mã Arduino đóng vai trò như các khóa được ủy quyền.
- Người dùng chạm thẻ RFID/NFC lên đầu đọc RFID/NFC.
- Đầu đọc đọc UID từ thẻ.
- Arduino nhận UID từ đầu đọc.
- Arduino so sánh UID đã đọc với các UID được định sẵn.
- Nếu UID khớp với một trong các UID được định sẵn, Arduino vô hiệu hóa khóa từ để mở cửa.
Sơ đồ đấu dây
- Khóa cửa RFID RC522 với khóa solenoid

This image is created using Fritzing. Click to enlarge image
- Khóa cửa RFID RC522 với khóa điện từ

This image is created using Fritzing. Click to enlarge image
Để đơn giản nhất, các chân của mô-đun RC522 được kết nối trực tiếp với các chân của Arduino. Tuy nhiên, điều này có thể khiến Arduino không hoạt động đúng trong một số trường hợp vì các chân đầu ra của Arduino có thể phát ra 5V, trong khi các chân của mô-đun RC522 hoạt động bình thường ở 3.3V. Vì vậy, nên điều chỉnh điện áp giữa các chân của Arduino và các chân của mô-đun RC522. Để biết hướng dẫn chi tiết hơn, vui lòng tham khảo Arduino - RFID/NFC (nhận diện bằng tần số vô tuyến / giao tiếp trường gần). Sơ đồ dưới đây trình bày cách điều chỉnh từ 5V xuống 3.3V bằng điện trở:

This image is created using Fritzing. Click to enlarge image
※ Lưu ý:
Thứ tự các chân có thể khác nhau tùy theo nhà sản xuất. Luôn sử dụng nhãn được in trên mô-đun. Hình ở trên cho thấy sơ đồ chân của các mô-đun từ nhà sản xuất DIYables.
Mã Arduino - Phím đơn
Hướng dẫn từng bước
Vì UID thường không được in trên thẻ RFID/NFC, bước đầu tiên chúng ta cần làm là tìm ra UID của thẻ. Điều này có thể được thực hiện bằng cách:
- Sao chép mã ở trên và mở bằng Arduino IDE
- Nhấn Upload trên Arduino IDE để tải mã lên Arduino
- Mở Serial Monitor
- Chạm một thẻ RFID/NFC lên module RFID-RC522
- Lấy UID trên Serial Monitor
Sau khi có UID:
- Cập nhật UID ở dòng 18 của mã ở trên. Ví dụ, thay đổi byte keytagUID[4] = {0xFF, 0xFF, 0xFF, 0xFF}; thành byte keytagUID[4] = {0x3A, 0xC9, 0x6A, 0xCB};
- Tải lại mã lên Arduino lần nữa
- Chạm thẻ RFID/NFC lên mô-đun RFID-RC522
- Xem đầu ra trên Serial Monitor
- Kiểm tra khóa điện từ, nó nên được mở khóa
- Chạm một thẻ RFID/NFC khác lên module RFID-RC522
- Xem đầu ra trên Serial Monitor
※ Lưu ý:
- Để dễ kiểm tra, thời gian mở khóa được đặt là 2 giây, nên được tăng lên trong sử dụng thực tế hoặc trình diễn
- Cần cài đặt thư viện MFRC522. Xem Arduino - RFID/NFC (nhận diện bằng tần số vô tuyến / giao tiếp trường gần)
Mã Arduino - Nhiều phím
Hãy tưởng tượng một căn phòng chỉ cho phép người quản lý và thư ký mở khóa cửa.
Trong trường hợp này, chúng ta cần sử dụng hai thẻ RFID/NFC: một cho người quản lý và thẻ còn lại cho thư ký. Chúng ta phải chỉ định UID của hai thẻ trong mã nguồn.
Thực hiện các bước tương tự như ở trên, sau đó lần lượt chạm từng thẻ lên module RFID-RC522. Kết quả trên Serial Monitor trông như bên dưới:
Bạn có thể mở rộng mã ở trên cho ba, bốn hoặc nhiều thẻ hơn.
※ Lưu ý:
Trong đoạn mã ở trên, các khóa được gán cứng. Trên thực tế, nó nên có thể thêm/xóa khóa một cách động thông qua một chế độ đặc biệt. Nếu vậy, các khóa nên được lưu vào bộ nhớ EEPROM. Số lượng khóa có thể được lưu tùy thuộc vào kích thước của EEPROM. Mã sẽ trở nên phức tạp. Nếu bạn muốn xây dựng một hệ thống như vậy, chúng tôi cung cấp một dịch vụ lập trình. Xin đừng ngần ngại liên hệ với chúng tôi.
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.