如何使用Arduino使用PN532 RFID/NFC阅读器

How to Use the PN532 RFID/NFC Reader with Arduino

PN532是一个多功能的RFID/NFC读取器模块,支持多种通信模式和标准,非常适合身份验证,无接触式付款和IoT项目。本教程将指导您通过将PN532模块与Arduino接口,以读取RFID/NFC标签。

你需要什么

  1. PN532 RFID/NFC模块
  2. Arduino董事会(例如Uno,Mega,Nano)
  3. 面包板
  4. 跳线
  5. RFID/NFC标签(例如Mifare卡)
  6. 安装了带有Arduino IDE的计算机

步骤1:了解PN532模块

PN532模块支持三种通信模式:

  1. I2C (许多模块的默认值):使用SDA和SCL线。
  2. spi:使用MOSI,MISO和SCK线条。
  3. UART(序列):使用TX和RX引脚。

在本教程中,我们将使用 I2C模式,因为它更简单地设置和广泛支持。

I2C模式下的PN532 PINOUT

别针 功能
VCC 电源(3.3V/5V)
gnd 地面
SDA I2C数据线
SCL I2C时钟线

步骤2:将PN532接线到Arduino

以下是如何将PN532模块连接到I2C模式下的Arduino Uno:

PN532针 Arduino Pin
VCC 5V
gnd gnd
SDA A4
SCL A5

笔记: 如果您的模块具有模式选择跳线,请将其设置为I2C模式。

步骤3:安装所需的库

要简化与PN532模块的交互,请安装以下库:

  1. Adafruit PN532图书馆
  2. Adafruit Busio库 (PN532库的依赖性)

安装步骤:

  1. 打开Arduino IDE。
  2. 草图 > 包括库 > 管理库.
  3. 搜索“ Adafruit PN532”,然后单击 安装.
  4. 搜索“ Adafruit Busio”,然后单击 安装.

步骤4:上传代码

这是一个示例草图,可以从RFID/NFC标签中读取数据:

#include <Wire.h>
#include <Adafruit_PN532.h>

#define SDA_PIN A4
#define SCL_PIN A5

Adafruit_PN532 nfc(SDA_PIN, SCL_PIN);

void setup() {
  Serial.begin(9600);
  Serial.println("PN532 RFID/NFC Reader Test");

  nfc.begin();

  uint32_t versiondata = nfc.getFirmwareVersion();
  if (!versiondata) {
    Serial.println("Didn't find PN532 module. Check connections.");
    while (1);
  }

  Serial.println("Found PN532 module.");
  nfc.SAMConfig(); // Configure the module in normal mode
  Serial.println("Waiting for an NFC card...");
}

void loop() {
  uint8_t success;
  uint8_t uid[] = { 0 }; // Buffer to store UID
  uint8_t uidLength;     // Length of the UID

  // Check if an NFC card is present
  success = nfc.readPassiveTargetID(PN532_MIFARE_ISO14443A, uid, &uidLength);

  if (success) {
    Serial.println("Found an NFC card!");
    Serial.print("UID Length: ");
    Serial.print(uidLength, DEC);
    Serial.println(" bytes");
    Serial.print("UID Value: ");
    for (uint8_t i = 0; i < uidLength; i++) {
      Serial.print(" 0x");
      Serial.print(uid[i], HEX);
    }
    Serial.println("");
    delay(1000); // Wait 1 second
  }
}

步骤5:测试设置

  1. 通过USB将Arduino连接到您的计算机。
  2. 打开Arduino IDE并选择正确的 木板港口工具 菜单。
  3. 单击将代码上传到Arduino 上传.
  4. 打开串行监视器(工具 > 串行监视器)并将波特率设置为 9600.
  5. 将RFID/NFC标签放置在PN532模块附近。串行显示器应显示标签的UID(唯一标识符)。

故障排除

  • 未检测到的模块: 仔细检查接线并确保将模式跳线设置为I2C。
  • 未检测到标签: 确保标签兼容(例如,为此示例的mifare卡)。
  • 读数不稳定: 使用较短的跳线,并确保对模块的稳定功率。

PN532模块的应用

  1. 访问控制系统
  2. 非接触式支付系统
  3. 明智的库存管理
  4. 需要安全身份验证的物联网设备

结论

您已成功将PN532 RFID/NFC模块与Arduino连接并读取RFID/NFC标签。这个多功能模块为您的项目中的安全身份验证和数据交换提供了无尽的可能性。尝试其他功能,例如写入标签或点对点通信,以构建更高级的应用程序!

发表评论

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.