Raspberry Pi RFID
Hướng dẫn này sẽ hướng dẫn bạn cách sử dụng RFID/NFC với Raspberry Pi. Hệ thống RFID/NFC bao gồm hai thành phần: một reader (bộ đọc) và một tag (thẻ). Hai loại RFID/NFC reader phổ biến nhất là RC522 và PN532. Hướng dẫn này sẽ sử dụng RC522 RFID/NFC reader, có giá rẻ và dễ sử dụng.
RC522 RFID/NFC reader có thể:
- Lấy UID của RFID/NFC tag
- Thay đổi UID của RFID/NFC tag (chỉ khi tag hỗ trợ chức năng này)
- Lưu trữ dữ liệu lên RFID/NFC tag
- Truy xuất dữ liệu từ RFID/NFC tag
Hướng dẫn này tập trung vào:
- Cách kết nối module RC522 với Raspberry Pi
- Cách lập trình Raspberry Pi để giao tiếp với module RC522 để đọc UID của RFID tag.
Phần Cứng Cần Thiết
| 1 | × | Raspberry Pi 5 | ||
| 1 | × | RFID/NFC RC522 Kit (reader + tags) | ||
| 1 | × | RFID Key Fob | ||
| 1 | × | RFID Card | ||
| 1 | × | dây jumper | ||
| 1 | × | (Khuyến nghị) Screw Terminal Block Shield for Raspberry Pi | ||
| 1 | × | (Khuyến nghị) Raspberry Pi Prototyping Base Plate & Breadboard Kit | ||
| 1 | × | (Khuyến nghị) HDMI Touch Screen Monitor for Raspberry Pi |
Or you can buy the following kits:
| 1 | × | DIYables Sensor Kit (30 sensors/displays) | ||
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Giới Thiệu Module RFID-RC522
Sơ Đồ Chân Module RFID-RC522
Module RFID-RC522 có 8 chân, một số là chân chung và các chân khác được chia sẻ giữa ba chế độ giao tiếp: SPI, I2C và UART. Chỉ có thể sử dụng một chế độ giao tiếp tại một thời điểm. Các chân bao gồm:
- Chân GND: Chân này cần được kết nối với GND (0V).
- Chân VCC: Chân này cần được kết nối với VCC (3.3V).
- Chân RST: Đây là chân reset và power-down. Khi chân này xuống mức thấp, chế độ hard power-down được kích hoạt. Ở cạnh lên, module sẽ được reset.
- Chân IRQ: Đây là chân ngắt có thể cảnh báo cho microcontroller khi có RFID tag vào gần phạm vi hoạt động.
- Chân MISO/SCL/TX: Chân này hoạt động như MISO khi giao diện SPI được kích hoạt, hoạt động như SCL khi giao diện I2C được kích hoạt và hoạt động như TX khi giao diện UART được kích hoạt.
- Chân MOSI: Chân này hoạt động như MOSI khi giao diện SPI được kích hoạt.
- Chân SCK: Chân này hoạt động như SCK khi giao diện SPI được kích hoạt.
- Chân SS/SDA/RX: Chân này hoạt động như SS khi giao diện SPI được kích hoạt, hoạt động như SDA khi giao diện I2C được kích hoạt và hoạt động như RX khi giao diện UART được kích hoạt.

※ Lưu ý:
- Các chân của module có thể được sắp xếp khác nhau tùy thuộc vào nhà sản xuất. Điều quan trọng là sử dụng các nhãn được in trên module, như được thể hiện trong hình trên từ DIYables.
- Đừng nhầm lẫn khi kết nối chân VCC với chân 5V, vì điều này có thể làm hỏng module.
- Thư viện MFRC522 chỉ hỗ trợ chế độ SPI, vì vậy hướng dẫn này sẽ tập trung vào giao tiếp SPI.
Cách Thức Hoạt Động Của RFID/NFC
RFID/NFC bao gồm hai thành phần: reader (bộ đọc) và tag (thẻ):
- Reader được tạo thành từ một module tần số radio và một anten tạo ra trường điện từ tần số cao.
- Tag thường là thiết bị thụ động, không cần nguồn điện. Nó có một microchip lưu trữ và xử lý thông tin, cũng như một anten để gửi và nhận tín hiệu. Tag được sử dụng để lưu trữ thông tin bao gồm UID (Unique ID) và dữ liệu.
Tag phải ở gần reader để có thể đọc được thông tin nó chứa. Quá trình đọc diễn ra như sau:
- Reader tạo ra trường điện từ làm cho các electron chảy qua anten của tag, cung cấp năng lượng cho chip.
- Chip bên trong tag sau đó phản hồi bằng cách gửi thông tin được yêu cầu trả lại cho reader dưới dạng tín hiệu radio.
- Reader phát hiện tín hiệu và chuyển đổi nó thành dữ liệu.
- Raspberry Pi đọc dữ liệu từ reader.
Sơ Đồ Kết Nối giữa Module RFID-RC522 và Raspberry Pi

This image is created using Fritzing. Click to enlarge image
Bảng Kết Nối Module RFID/NFC RC522 và Raspberry Pi
| RC522 RFID Reader | Raspberry Pi |
|---|---|
| SS | Pin 24 (GPIO8) |
| SCK | Pin 23 (GPIO11) |
| MOSI | Pin 19 (GPIO10) |
| MISO | Pin 21 (GPIO9) |
| IRQ | Không kết nối (có thể để trống) |
| GND | Bất kỳ chân GND nào |
| RST | Pin 31 (GPIO12) |
| VCC | Pin 1 hoặc Pin 16 (3.3V) |
Code Raspberry Pi RFID/NFC
Các Bước Nhanh
- Đảm bảo bạn đã cài đặt Raspbian hoặc bất kỳ hệ điều hành tương thích nào khác với Raspberry Pi trên Pi của bạn.
- Đảm bảo Raspberry Pi của bạn được kết nối với cùng mạng local với PC của bạn.
- Đảm bảo Raspberry Pi của bạn được kết nối internet nếu bạn cần cài đặt một số thư viện.
- Nếu đây là lần đầu tiên bạn sử dụng Raspberry Pi, hãy xem Raspberry Pi - Cài Đặt Phần Mềm
- Kết nối PC của bạn với Raspberry Pi qua SSH sử dụng SSH client tích hợp trên Linux và macOS hoặc PuTTY trên Windows. Xem cách kết nối PC với Raspberry Pi qua SSH.
- Đảm bảo bạn đã cài đặt thư viện RPi.GPIO. Nếu chưa, hãy cài đặt bằng lệnh sau:
- Kích hoạt giao diện SPI trên Raspberry Pi bằng cách làm theo hướng dẫn tại Raspberry Pi - cách kích hoạt giao diện SPI
- Đảm bảo bạn đã cài đặt thư viện spidev. Nếu chưa, hãy cài đặt bằng lệnh sau:
- Đảm bảo bạn đã cài đặt thư viện mfrc522. Nếu chưa, hãy cài đặt bằng lệnh sau:
- Tạo một file script Python rc522_rfid.py và thêm đoạn code sau:
- Lưu file và chạy Python script bằng cách thực thi lệnh sau trong terminal:
- Chạm các RFID/NFC tag khác nhau vào module RFID-RC522.
- Kiểm tra UID trên Serial Monitor.
Script chạy trong vòng lặp vô hạn liên tục cho đến khi bạn nhấn Ctrl + C trong terminal.
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.