Giới thiệu về Module PN532
Module này được xây dựng từ IC NXP PN532, IC rất phổ biến trong các ứng dụng NFC.
- Lõi vi điều khiển 80C51 với ROM 40 Kbyte và RAM 1 Kbyte.
- Hỗ trợ chế độ đọc / ghi RFID.
- Làm việc như thẻ RFID hoặc thẻ ảo.
- Khoảng cách liên lạc 5cm đến 7cm.
- Giao tiếp SPI, I2C và UART.
- Ngắt pin IRQ.
- Tần số 13,56 MHz.
- Điện áp hoạt động: + 2.7V đến + 5.5V.
- Nhiệt độ hoạt động: -30ºC đến + 85ºC
Mục tiêu bài viết
Các thư viện nguồn mở giúp lập trình ESP32 giao tiếp với Module PN532 (NFC Reader) sử dụng ESP-IDF còn hạn chế, chủ yếu là các thư viện dùng trên Arduino IDE như: Adafruit-PN532, PN532, Seeed-Studio
Bài viết này sẽ hướng dẫn các bạn dùng một Example ESP-IDF giao tiếp với Module PN532.
Chuẩn bị
- ESP32 NodeMCU
- PN532 NFC Module
- Thẻ NFC 13.56MHz
- Cáp USB Micro
- Cài đặt ESP-IDF
Kết nối ESP32 với Module PN532
- NodeMCU (D32) <-> PN532 (SCK)
- NodeMCU (D25) <-> PN532 (SS)
- NodeMCU (D26) <-> PN532 (MOSI)
- NodeMCU (D33) <-> PN532 (MISO)
Tiến hành
1. Cài đặt ESP-IDF, Hướng dẫn cài đặt ESP-IDF trên Window
2. Download example PN532-ESP-IDF
– Chú ý: nên đặt thư mục của dự án ngang hàng với thư mục esp-idf đã cài đặt
3. Mở ESP-IDF Command Prompt (cmd.exe) và đi tới thư mục pn532-esp-idf
cd ..\pn532-esp-idf
4. Cấu hình các chân giao tiếp Software SPI ESP32 Board với NFC Module.
idf.py menuconfig
– PN532 Configuration > PN532_SCK number > PN532_SS number > PN532_MISO number > PN532_MOSI number
4. Build example pn532-esp-idf
idf.py build
5. Nạp vào board
idf.py flash monitor
6. Đặt thẻ NFC của bạn gần Module và quan sát UID của thẻ được thể hiện trên màn hình.
Video hướng dẫn ESP32 giao tiếp với PN532
Mời các bạn tiếp tục theo dõi các bài hướng dẫn lập trình ESP32.
Chúc các bạn thành công!
Đang cần, cảm ơn nhé!
Chào bạn, mình thấy UID của bạn in ra đến 5 byte trong khi UID của thẻ Mifare là loại Single Size UID với 4 byte. 4 byte trong 5 byte UID ở code của bạn xử lý đều đúng là Single Size UID, nhưng byte thứ 5 thì bạn tính thế nào để có giá trị đó thế ạ ? Xin cảm ơn
Hi, I tried the code on sparkfun ESP32. I got no errors but when I open the serial terminal, I get this message and it keeps repeating:
Guru Meditation Error: Core 1 panic’ed (InstrFetchProhibited). Exception was unhandled.
Any ideas?
Also I’m using Adafruit PN532