ESP32 RFID/NFC

Hướng dẫn này sẽ chỉ bạn cách sử dụng ESP32 với đầu đọc RFID/NFC RC522 để đọc thông tin từ thẻ RFID/NFC.

Linh Kiện 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×Bộ Kit RFID/NFC RC522 (đầu đọc + thẻ)
1×Thẻ RFID Key Fob
1×Thẻ RFID Card
1×breadboard (bo mạch thí nghiệm)
1×Dây Jumper
1×DC Power Jack (tùy chọn)
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)

Giới Thiệu Về Module RFID-RC522

Sơ Đồ Chân

RFID-rc522 module sơ đồ chân

Module RFID-RC522 có 8 chân, một số chân được chia sẻ giữa ba giao diện giao tiếp: SPI, I2C, UART. Tại một thời điểm, chỉ có thể sử dụng một chế độ giao tiếp. Các chân bao gồm:

  • Chân GND: kết nối chân này với GND (0V)
  • Chân VCC: kết nối chân này với VCC (3.3V)
  • Chân RST: là chân để reset và tắt nguồn. Khi chân này ở mức thấp, chế độ tắt nguồn cứng được kích hoạt. Khi có xung tăng, module sẽ được reset.
  • Chân IRQ: là chân ngắt có thể cảnh báo ESP32 khi thẻ RFID vào trong phạm vi phát hiện.
  • Chân MISO/SCL/TX: hoạt động như:
    • Chân MISO nếu giao diện SPI được kích hoạt
    • Chân SCL nếu giao diện I2C được kích hoạt
    • Chân TX nếu giao diện UART được kích hoạt
  • Chân MOSI: hoạt động như MOSI nếu giao diện SPI được kích hoạt
  • Chân SCK: hoạt động như SCK nếu giao diện SPI được kích hoạt
  • Chân SS/SDA/RX: hoạt động như:
    • Chân SS nếu giao diện SPI được kích hoạt
    • Chân SDA khi giao diện I2C được kích hoạt
    • Chân RX khi giao diện UART được kích hoạt

    ※ 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 các nhãn được in trên module. Hình ảnh trên hiển thị sơ đồ chân của module từ nhà sản xuất DIYables.
    • Module RFID-RC522 hoạt động với 3.3V. Không kết nối chân VCC của module RFID-RC522 với 5V. 5V có thể làm hỏng module RFID-RC522.
    • Hướng dẫn này sử dụng giao diện SPI để giao tiếp giữa ESP32 và module RFID-RC522.

Sơ Đồ Kết Nối

ESP32 RFID rc522 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.

Bảng kết nối giữa Module RFID/NFC RC522 và ESP32

Module RFID/NFC RC522 ESP32
Chân SS → (29) GPIO5
Chân SCK → (30) GPIO18
Chân MOSI → (37) GPIO23
Chân MISO → (31) GPIO19
Chân IRQ (không kết nối)
Chân GNDGND
Chân RST → (11) GPIO27
Chân VCC → 3.3V

Code ESP32 RFID/NFC

/* * 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-rfid-nfc */ #include <SPI.h> #include <MFRC522.h> #define SS_PIN 5 // ESP32 pin GPIO5 #define RST_PIN 27 // ESP32 pin GPIO27 MFRC522 rfid(SS_PIN, RST_PIN); void setup() { Serial.begin(9600); SPI.begin(); // init SPI bus rfid.PCD_Init(); // init MFRC522 Serial.println("Tap an RFID/NFC tag on the RFID-RC522 reader"); } void loop() { if (rfid.PICC_IsNewCardPresent()) { // new tag is available if (rfid.PICC_ReadCardSerial()) { // NUID has been readed MFRC522::PICC_Type piccType = rfid.PICC_GetType(rfid.uid.sak); Serial.print("RFID/NFC Tag Type: "); Serial.println(rfid.PICC_GetTypeName(piccType)); // print UID in Serial Monitor in the hex format Serial.print("UID:"); for (int i = 0; i < rfid.uid.size; i++) { Serial.print(rfid.uid.uidByte[i] < 0x10 ? " 0" : " "); Serial.print(rfid.uid.uidByte[i], HEX); } Serial.println(); rfid.PICC_HaltA(); // halt PICC rfid.PCD_StopCrypto1(); // stop encryption on PCD } } }

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

  • Nếu đây là lần đầu tiên bạn sử dụng ESP32, hãy xem ESP32 - Cài Đặt Phần Mềm.
  • Nhấp vào biểu tượng Libraries trên thanh bên trái của Arduino IDE.
  • "MFRC522" vào ô tìm kiếm, sau đó tìm thư viện của GithubCommunity
  • Cài đặt thư viện bằng cách nhấp vào nút Install.
ESP32 mfrc522 thư viện
  • Sao chép code trên và dán vào Arduino IDE.
  • Biên dịch và tải code lên bo mạch ESP32 bằng cách nhấp nút Upload trên Arduino IDE
  • Mở Serial Monitor trên Arduino IDE
how to open serial monitor on Arduino ide
  • Chạm một số thẻ RFID/NFC lên module RFID-RC522
  • Xem UID được in trên Serial Monitor
COM6
Send
Tap an RFID/NFC tag on the RFID-RC522 reader RFID/NFC tag Type: MIFARE 1KB UID: 2B B8 59 B1 RFID/NFC tag Type: MIFARE Ultralight or Ultralight C UID: 15 75 46 7A 2C 5B 7E
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ình Luận