RFID——我们每天都在使用它们。 每次去超市、公共图书馆、书店或百货商店,我们都会接触到带有 RFID 标签的物品,RFID 是射频识别(Radio Frequency Identification)的缩写。首先,这些小标签使店主更容易进行库存管理,通过跟踪商品进货、移动和购买的流程。RFID 标签通常由一个可以存储几千字节的小型电子芯片和一个天线组成,天线通常呈紧密的螺旋形——有时是方形,有时是圆形。
本文介绍了我如何使用 Adafruit PN532 控制器扩展板来读取和写入 RFID 标签。
要在 RFID 标签上读取和写入信息,您需要一个由天线、无线电电路和一些数字电子元件组成的设备。这正是 Adafruit PN532 控制器扩展板 的作用。它连接到 Arduino 开发板,后者提供用于读取或写入数据的编程逻辑。
历史:RFID 阅读器有着丰富多彩的历史,可以追溯到冷战时期,当时发明家 Leon Theremin 构思了一种名为“The Thing”的被动监听设备,使苏联情报部门能够监听 1945 年至 1952 年间美国驻莫斯科大使馆办公室的对话。
硬件
为了开始探索 RFD/NFC 扩展板,我们需要以下物品
Adafruit 提供了关于扩展板组装和测试的 入门指南。我首先将连接器焊接到扩展板上
之后我才意识到这些连接器应该焊接到扩展板的另一侧。尽管犯了错误,但我还是使用了连接器的一侧,并将跳线焊接到另一侧进行连接。像往常一样,这次失误也是一个学习机会——我意识到扩展板实际上只需要五根线,而大多数连接器实际上是为了机械支撑。必要的线路是
- 用于模拟 4 和 5 连接器的两根线,支持 I2C 通信协议
- Arduino 的数字 2 号线连接到扩展板的中断线,以便在 RFID 标签进入扩展板天线的读取范围时通知 Arduino
- 另外两根线提供电源(5V 和 GND)
软件
在(笨拙但肯定地)处理完接线后,我继续进行软件阶段。
按照 快速入门指南 中的说明,我克隆了 Adafruit-PN532 库 的 GitHub 仓库。然后我将目录重命名为 "Adafruit_PN532" (Arduino IDE 的库导入功能不接受 "-" 符号,但接受 "_")。要导入库,我使用了“项目”->“导入库...”->“添加库...”菜单选项。导入后,您可以通过“文件”->“示例”->“Adafruit_PN532”菜单选项查看示例,如下图所示。
我在 IDE 中打开了 readMiFare 示例,考虑到我使用了带有 I2C 协议的扩展板,我按照 入门指南 中的指示,对代码进行了以下修改
注释掉这行代码
// Adafruit_PN532 nfc(PN532_SCK, PN532_MISO, PN532_MOSI, PN532_SS);
取消注释这行代码
Adafruit_PN532 nfc(PN532_IRQ, PN532_RESET);
然后我用新名称“readMiFare_for_Shield”保存了修改后的程序。然后我使用 USB 电缆将 Arduino 开发板连接到 Linux 笔记本电脑(也可以使用 Windows 或 Mac)。
连接电缆几秒钟后,在 "/dev" 目录下出现了一个新的串行设备,名称为 "/dev/ttyACM0" 或 "/dev/ttyACM1"。此时,我启动了 Arduino IDE,并在“工具”->“串口”菜单下选择了该串行设备。然后我使用 "CTRL+R" 快捷键编译程序,并使用 "CTRL+U" 快捷键将其上传到 Arduino 开发板。
这个具体的示例将初始化开发板,然后等待 RFID 标签进入天线的读取距离范围,此时它将读取标签的标头信息。可以通过使用快捷键 "CTRL+SHIFT+M" 打开串行监视器窗口来查看输出,输出结果将如下图所示
写入 RFID 标签
我使用了 mifareclassic_formatndef 示例来格式化 RFID MiFare 标签,并在其中存储一个短字符串,该字符串可以被手机或平板电脑的 NFC(近场通信)读取。我在 Arduino IDE 中打开了这个示例,注释掉了 用于 breakout 板的行,并取消注释了 用于带有 I2C 连接的扩展板的行。
运行示例时,您可以在串行监视器中看到成功消息(上图中的右侧窗口)。
结论
用于 Arduino 的 Adafruit PN532 NFC/RFID 控制器扩展板 是一个非常有趣的组件。提供的 说明 非常清晰和详细,但必须密切注意连接器的定位(请参阅我上面犯的新手错误)。之后,焊接就很简单了。也可以只连接五个必要的连接器,但代价是最终得到的装置机械强度较差。
使用 软件示例 非常容易,只需要修改几行代码,这些修改在 说明 中有明确的解释。
这是一个熟悉 RFID 和 NFC 的绝佳套件。对于教育项目和创客空间来说,它也是必备品。它也是一个很酷的工具,可以用来为您的下一个社区活动创建 SWAG 标签。
Adafruit Industries 在本文中提供了开源硬件。在作者试用硬件后,我们将其送回 Adafruit,让其他人也高兴一下。
2 条评论