3

ESP32 giao tiếp với PN532 sử dụng ESP-IDF

5/5 - (3 bình chọn)

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ị

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

Download example ESP32 giao tiếp với PN532

– Chú ý: nên đặt thư mục của dự án ngang hàng với thư mục esp-idf đã cài đặt

Example Folder

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

Menuconfig ESP32 giao tiếp với PN532

4. Build example pn532-esp-idf

idf.py build

Build

5. Nạp vào board

idf.py flash monitor

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!

thanhbinh89

3 Comments

  1. 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

  2. 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

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *