风筝
发表于: 2022-4-1 09:48:27 | 显示全部楼层

在本篇文章中,我们将使用一款基于Arduino和PN532 NFC模块的开发板 - Maduino Zero NFC板。 Maduino Zero NFC板是基于Atmel的32位SAMD21 MCU和NXP近场通信控制器PN532的物联网解决方案。该开发板可用于支付应用、入口系统和安全系统项目。


Maduino Zero NFC基于Arduino框架,用户可以使用Arduino IDE对其进行快捷编程。本文将帮助您了解Maduino Zero NFC的基本用法以及硬件概述和编程。


RFID技术可以长距离使用,而NFC技术仅限于短距离。 NFC最适合用于在短距离内安全地传输一系列数据,因此它在访问控制和支付应用中很普遍。另一方面,RFID更适合具有大量移动部件的快速移动环境,并且最常用于车辆访问控制和资产管理目的。


什么是NFC?

近场通信(NFC),全称Near-Field Communication,是指允许彼此靠近的启用设备以无线方式共享数据的技术。 NFC技术从射频识别(RFID)技术演变而来,更加精细化。

NFC-Working.jpg


NFC根据电感耦合原理运行,至少对于短距离实施而言。这主要涉及读卡器设备通过使电流通过线圈来产生磁场。当标签(带有自己的线圈)被带到附近时,该场会在标签内感应出电流。然后,一旦初始握手完成,标签上存储的任何数据都会无线传输到读卡器。


Maduino Zero NFC开发板简介

Maduino Zero NFC是一款兼容Arduino的小型开发板,带有NFC(近场通信)功能。它基于ATSAMD21G18控制器PN532 NFC芯片进行设计,而Arduino Zero板实际上也采用的是该控制器,因此Maduino Zero NFC也可以用作Arduino Zero开发板。

Maduino-Zero-NFC.jpg


该开发板将成为帮助您与环境进行无线交互、驱动电机、解锁、控制继电器、从温度传感器读取数据的桥梁。这是因为它具有内置的NFC连接,开箱即用。

Arduino-PN532-NFC-1.jpg


该开发板具有Micro USB端口,可用于串行通信和供电。我们可以连接5V电源输入或太阳能电池板为锂电池充电。它还具有一个3.7V锂聚合物电池连接器和一个用于打开/关闭模块的电源开关。NFC天线带有IPX接口,用于扫描NFC标签。状态指示LED连接到 D2,同时带有一个电源指示LED。板上有一个SWD开关,用于下载引导加载程序。您可以按下板上的复位按钮来复位ATSAMD21G18 控制器。


在板的背面有一个SD卡插槽。您可以在插槽中插入SD卡并以文本格式存储必要的数据。


如何使用Maduino NFC开发板?

Maduino NFC板有一个Arduino Zero控制器和PN532 NFC芯片。要在Arduino IDE中使用该开发板,我们需要先设置Arduino IDE。


ATSAMD21G18A开发板支持包未预装在Arduino IDE中。因此,我们需要从Board Manager 安装“Arduino Zero Board”。


在Arduino IDE菜单中打开Boards Manager,选择菜单Tools-> Board-> Boards Manager... ,打开Boards Manager对话框。然后安装Arduino SAMD Boards(32-bits ARM Cortex-M0+)

Arduino-Zero.jpg


安装完成后,您现在可以选择Arduino Zero开发板,如下图所示。要对该开发板进行编程,需要连接Micro USB数据线。

Arduino-SAMD-Boards.png


接下来需要进行硬件连接,首先将NFC天线插入ANT1标识符的接口。然后将Micro USB电缆插入Maduino Zero NFC。使用4针排母将0.96寸I2C OLED显示屏连接到电路板。

Arduino-PN532-NFC-Board.jpg


将程序上传到开发板后,您可以使用3.7V锂电池供电,因为它工作在3.4V到4.2V之间。电池和MicroUSB都可以用来供电。连接Micro USB时,电路板由Micro USB供电,而拔下Micro USB 时,它会自动切换到电池。


硬件完成连接后,需要进行编程。从Arduino IDE菜单中选择Arduino Zero板。然后选择正确的串口号。现在您可以将以下代码上传到Maduino开发板。


使用Arduino IDE编译代码时,需要安装一些库文件。下载列出的库文件并通过库管理器将它们添加到Arduino IDE中:

1.   Adafruit PN532 库

2.   Adafruit GFX 库

3.   SSD1306 OLED库


文章末尾给出了本文使用的完整代码。下载并复制到Arduino IDE中,编译上传。


效果测试

代码上传成功后,就可以开始测试了。上电后OLED显示屏将打印输出固件版本为1.6,并请求扫描卡片。

pn532-firmware-version.jpg


现在将一些NFC卡放在Maduino Zero开发板的天线附近。 NFC卡可以是您的银行卡或旅行卡等。

NFC-Card.jpg


当您将卡放在天线附近时,它将读取字节长度以及UID 值并将它们显示在OLED屏上。

NFC-Scan-1.jpg


如果您不希望项目使用OLED显示屏,也可以在串口监视器上显示UID值和字节长度。

UID-Length-and-UID-Value.jpg


以上就是如何使用基于Arduino和PN532 NFC模块的Maduino Zero NFC开发板实现支付安全系统应用。本文使用的完整代码:

main.rar (1.43 KB, 下载次数: 8)

跳转到指定楼层
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题 714 | 回复: 1501



手机版|

GMT+8, 2024-12-21 20:55 , Processed in 0.048944 second(s), 8 queries , Gzip On, MemCache On. Powered by Discuz! X3.5

YiBoard一板网 © 2015-2022 地址:河北省石家庄市长安区高营大街 ( 冀ICP备18020117号 )

快速回复 返回顶部 返回列表