雷竞技注册
项目

使用Arduino读取和写入NFC标签

2015年10月27日经过亚历山大Fonseca.

学会使用Arduino读取NFC标签并写入其信息!近场通信协议是电子设备可以用于在彼此之间进行通信和传输数据的电子设备。

使用Arduino读取NFC标签并向它们写入信息!

什么是nfc?

近场通信是电子设备用于在彼此之间进行通信和传输数据的协议。近场通信设备必须非常靠近彼此,通常在10cm之间,但范围可以根据正在发送的设备和标签的大小而变化。NFC标签不需要电源输入。它们在两个小环天线之间使用两个之间的磁感应。这些天的标签携带96到4,096个字节的信息。

零件清单

重要的是NFC标签是可重写的,否则这将不起作用。

要测试我们在标签上写的是成功的,我们可以使用Arduino或使用NFC的手机进行测试。运行Android的大多数智能手机都应该能够读取NFC标签,并且我将使用Nexus 5进行测试。不幸的是,对于iPhone用户来说,支持NFC的唯一iPhone是iPhone 6和6S,但他们不支持读数的NFC标签只需使用Arduino测试您的标记已写入的内容。iPhone仅使用他们的NFC能力为Apple Pay,因此您无法使用它们来读取标签或其他任何东西。

一旦我们把所有的部分放在一起,我们需要安装两个库,使读取和写入标签成为可能。图书馆是唐/ ndef.看到了鲁迪奥的,我们将主要使用的是don的,因为如果你有Seeedstudio NFC屏蔽,就会使用Seeedstudio的库。我们将把它作为一个库来安装,以防万一。您必须使用Arduino的“Add .zip库”在Sketch >> Include库下下载和安装这两个库。确保将两个库分别安装在默认Arduino目录下,否则会出现编译错误。

启动IDE,您应该有一个新的草图文件。将您的新文件保存在您选择的任何名称下,例如“读取NFC标记”。您将拥有的第一个文件将是标题文件,它们将是以下内容。他们会在void setup()之前。

#include  #include  #include  //以下文件包含在安装的库中#include  pn532_i2c pn532_i2c(电线);nfcadapter nfc = nfcadapter(pn532_i2c);//表示您使用的屏蔽

阅读NFC标签

这些标题文件非常重要,项目不会在没有它们的情况下工作。之后您想编写以下代码。

void setup(void){serial.begin(9600);serial.println(“NFC标签阅读器”);//使用串行监视器nfc.begin()使用的标题;} void循环(void){serial.println(“\ nscan您的nfc shield \ n上的nfc标签”);//命令,以便其他人会知道该怎么做(nfc.tagpresent()){nfctag tag = nfc.read();serial.println(tag.gettagtype());serial.print(“UID:”); serial.println(tag.getuidstring());//如果(tag.hasndefmessage())//如果标记有邮件{ndefmessage message = tag.getndefmessage();serial.print(此标记中的“\ nthis消息”);serial.print(message.getRecordCount()); Serial.print(" NFC Tag Record"); if (message.getRecordCount() != 1) { Serial.print("s"); } Serial.println("."); // If you have more than 1 Message then it wil cycle through them int recordCount = message.getRecordCount(); for (int i = 0; i < recordCount; i++) { Serial.print("\nNDEF Record ");Serial.println(i+1); NdefRecord record = message.getRecord(i); int payloadLength = record.getPayloadLength(); byte payload[payloadLength]; record.getPayload(payload); String payloadAsString = ""; // Processes the message as a string vs as a HEX value for (int c = 0; c < payloadLength; c++) { payloadAsString += (char)payload[c]; } Serial.print(" Information (as String): "); Serial.println(payloadAsString); String uid = record.getId(); if (uid != "") { Serial.print(" ID: ");Serial.println(uid); // Prints the Unique Identification of the NFC Tag } } } } delay(10000); }

nfc_read.zip.

将此代码保存并使用附加的屏蔽保存并上传此代码,您可以开始测试您的标记具有哪些消息(如果有的话)。将程序上传到Arduino时,打开串行监视器,您应该看到一条消息,说明“NFC标签读取器”,下面的消息,告诉您“扫描NFC盾牌上的NFC标签”。当我这样做时,我在我的串行监视器上得到它:

注意,它提供了NFC标签的唯一标识,并告诉我在标签上所写的信息。在这个标签上,我有一个简单的欢迎信息和Arduino Twitter的链接。Arduino成功读取了我标签上的信息。下面的视频展示了我的Nexus 5如何读取标签并显示信息。

在NFC标签上写作

现在能够在标签上写一条消息,此过程类似,除非我们将要更改代码一点点。Void Setup()之前的标题将保持相同,但这将是您要编写和上传到Arduino的代码。

void setup(){serial.begin(9600);serial.println(“NFC标签编写器”);//串行监视器消息nfc.begin();void循环(){serial.println(“\ n您要记录这些消息的NFC标签!”);//串行监视器的命令(nfc.tagpresent()){ndefmessage message = ndefmessage();message.addtextrecord(“我的第一个nfc标签写入”);//您要录制Message.addUrireCord的短信(“http://allaboutcircues.com”);//网站您要录制Message.addtextRecord(“去的方式,它运作了!”);//为您录制布尔成功= nfc.write(消息)的ednding消息;如果(成功){serial.println(“好工作,现在用手机阅读它!”); // if it works you will see this message } else { Serial.println("Write failed"); // If the the rewrite failed you will see this message } } delay(10000); }

write_nfc.zip.

这段代码在标签上保存了三条信息:一个介绍文本说“我的第一个NFC标签写入”,然后是一个链接到AllAboutCircuits,最后是一个结尾信息说“做得好,它工作了!”

当我在手机上扫描标记时,我现在可以获得两条消息和链接。您可以更改代码以说出消息上的任何内容,并将您指导到另一个链接。在进行任何更改时,请确保使用Arduino或智能手机检查标记信息。与NFC一起工作!

自己尝试一下这个项目吧!得到bom。

7评论