ESP8266 RFID

Tutorial này hướng dẫn bạn cách sử dụng RFID/NFC với ESP8266. Hệ thống RFID/NFC bao gồm hai thành phần: một đầu đọc và một thẻ. Hai đầu đọc RFID/NFC phổ biến nhất là RC522 và PN532. Tutorial này sẽ sử dụng đầu đọc RC522 RFID/NFC, rẻ và dễ sử dụng.

Đầu đọc RC522 RFID/NFC có thể:

Hướng dẫn này tập trung vào:

Phần cứng cần chuẩn bị

1×ESP8266 NodeMCU ESP-12E
1×Recommended: ESP8266 NodeMCU ESP-12E (Uno-form)
1×USB Cable Type-A to Type-C (for USB-A PC)
1×USB Cable Type-C to Type-C (for USB-C PC)
1×RFID/NFC RC522 Kit (reader + tags)
1×RFID Key Fob
1×RFID Card
1×dây jumper
1×(Khuyến nghị) Screw Terminal Expansion Board for ESP8266
1×(Khuyến nghị) Power Splitter for ESP8266 Type-C

Or you can buy the following kits:

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

Về mô-đun RFID-RC522

Bố trí chân của mô-đun RFID-RC522

RFID-RC522 có tám chân, trong số đó một số chân là chung và các chân còn lại được dùng chung cho ba chế độ giao tiếp: SPI, I2C và UART. Chỉ có một chế độ giao tiếp có thể được sử dụng tại một thời điểm. Các chân là:

  • GND: phải được kết nối tới GND (0V)
  • VCC: phải được kết nối tới VCC (3.3)
  • RST: là một chân dùng để reset và power-down. Khi chân này ở mức thấp, tắt nguồn cứng được kích hoạt. Ở cạnh lên, module được reset.
  • IRQ: là một chân ngắt có thể thông báo cho vi điều khiển khi một thẻ RFID ở gần.
  • MISO/SCL/TX: hoạt động như MISO khi giao diện SPI được bật, hoạt động như SCL khi giao diện I2C được bật và hoạt động như TX khi giao diện UART được bật.
  • MOSI: hoạt động như MOSI khi giao diện SPI được bật.
  • SCK: hoạt động như SCK khi giao diện SPI được bật.
  • SS/SDA/RX: hoạt động như SS khi giao diện SPI được bật, hoạt động như SDA khi giao diện I2C được bật và hoạt động như RX khi giao diện UART được bật.
bố trí chân RFID-rc522

※ Lưu ý:

  • Cách bố trí các chân có thể khác nhau tùy theo nhà sản xuất. LUÔN làm theo nhãn được in trên mô-đun. Hình minh họa ở trên là cấu hình các chân của mô-đun từ nhà sản xuất DIYables.
  • Không nối chân VCC với chân 5V. Việc này có thể làm hỏng mô-đun của bạn.
  • Thư viện MFRC522 chỉ hỗ trợ chế độ SPI, vì vậy hướng dẫn này sẽ chỉ sử dụng giao tiếp SPI.

Cách thức hoạt động của RFID/NFC

RFID/NFC được cấu thành từ hai phần: đầu đọc và thẻ:

  • Đầu đọc được cấu thành từ một mô-đun tần số vô tuyến và một ăng-ten tạo ra trường điện từ ở tần số cao.
  • Thẻ thường là một thiết bị thụ động, không cần nguồn điện. Nó có một vi mạch để lưu trữ và xử lý dữ liệu, cũng như một ăng-ten để nhận và truyền tín hiệu. Thẻ được sử dụng để lưu trữ thông tin như UID (Mã nhận dạng duy nhất) và các dữ liệu khác.
hệ thống Arduino RFID nfc

Thẻ phải ở gần người đọc để có thể truy cập thông tin mà nó chứa. Quá trình đọc như sau:

  • Máy đọc tạo ra một trường điện từ, khiến các electron chảy qua ăng-ten của thẻ và cấp nguồn cho chip.
  • Mạch bên trong thẻ sau đó đáp lại bằng cách gửi lại thông tin được yêu cầu cho máy đọc dưới dạng tín hiệu vô tuyến.
  • Máy đọc phát hiện tín hiệu và chuyển đổi nó thành dữ liệu.
  • ESP8266 đọc dữ liệu từ máy đọc.

Sơ đồ kết nối giữa mô-đun RFID-RC522 và ESP8266

sơ đồ nối dây ESP8266 NodeMCU với rc522 RFID

This image is created using Fritzing. Click to enlarge image

Xem thêm Sơ đồ chân ESP8266Cách cấp nguồn cho ESP8266.

Nếu bạn sử dụng dây jumper nam-nữ, bạn có thể kết nối trực tiếp ESP8266 với mô-đun RFID-RC522. Tuy nhiên, nếu bạn sử dụng dây jumper nam-nam, bạn phải kết nối ESP8266 với mô-đun RFID-RC522 thông qua một breadboard.

Bảng kết nối của mô-đun RFID/NFC RC522 và ESP8266

RFID/NFC RC522 ESP8266
SS → D8 (SPI CS/SS)
SCK → D5 (SPI CLK)
MOSI → D7 (SPI MOSI)
MISO → D6 (SPI MISO)
IRQ not connected
GNDGND
RST → D2
VCC → 3.3V

Mã ESP8266 RFID/NFC

/* * Mã ESP8266 NodeMCU này được phát triển bởi newbiely.vn * Mã ESP8266 NodeMCU 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/esp8266/esp8266-rfid */ #include <SPI.h> #include <MFRC522.h> #define SS_PIN D8 // The ESP8266 pin D8 #define RST_PIN D2 // The ESP8266 pin D2 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 } } }

Hướng dẫn từng bước

Để bắt đầu với ESP8266 trên Arduino IDE, hãy làm theo các bước sau:

  • Xem bài hướng dẫn ESP8266 - Cài đặt phần mềm nếu đây là lần đầu bạn sử dụng ESP8266.
  • Kết nối các thành phần như được trình bày trong sơ đồ.
  • Kết nối bo mạch ESP8266 với máy tính của bạn bằng cáp USB.
  • Mở Arduino IDE trên máy tính của bạn.
  • Chọn bo mạch ESP8266 phù hợp, ví dụ NodeMCU 1.0 (ESP-12E Module), và cổng COM tương ứng của nó.
  • Nhấp vào biểu tượng Libraries ở thanh bên trái của Arduino IDE.
  • Tìm kiếm “MFRC522” và tìm thư viện do GithubCommunity cung cấp.
  • Nhấn nút Install để cài đặt thư viện MFRC522.
thư viện ESP8266 NodeMCU mfrc522
  • Sao chép mã và mở nó bằng Arduino IDE.
  • Nhấp vào nút Upload trên Arduino IDE để biên dịch và tải mã lên ESP8266.
  • Mở Serial Monitor.
  • Chạm một số thẻ RFID/NFC lên module RFID-RC522.
  • Kiểm tra UID trên Serial Monitor.
COM6
Send
Tap RFID/NFC tag on reader RFID/NFC tag Type: MIFARE 1KB UID: 3A C9 6A CB RFID/NFC tag Type: MIFARE Ultralight or Ultralight C UID: 04 64 34 5A 1E 4E 80
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.