“【向标签内写入内容】”的版本间的差异

来自Microduino Wikipedia
跳转至: 导航搜索
 
第2行: 第2行:
 
|-
 
|-
 
|
 
|
通过测试程序向NFC标签写内容:'''注意:该程序只能读ISO14443A四个字节的标签'''
+
在获得一张新的mifare标签时,需要将其格式化为ndef数据格式
*所需要准备的硬件有:Microduino FT232R、Microduino Core、Microduino NFC
+
*1)所需硬件:【[[Microduino-Core/zh]]】,【[[Microduino-USBTTL/zh]]】或【[[Microduino-USBTTL-C/zh]]】,【[[Microduino-Module NFC/zh]]】(带读卡器)
*准备的软件有:Adafruit_NFCShield_I2C库、Arduino IDE;
+
*2)所需软件:Microduino IDE 1.6.7或以上版本。下载如下程序到核心模块Core中(复制粘贴到IDE中,直接下载,或在文件→示例→NFC中)
*解压下载库文件和测试程序,将解压后的库文件拷贝到Arduino IDE 的libraries文件夹中;
+
*3)首先使用示例中的“mifareclassic_formatndef”将卡片格式化为ndef数据格式。
*打开”Microduino_Write_cards”测试程序,编译通过后,板卡选择Microduino Core (Atmega328P@16M,5V),直接下载即可;
+
[[file:Classic formatndef.png|center|600px|thumb]]
*打开串口监视器,选择好波特率,成功串口会返回一些数据,并提示“Please press 'f' to format.....”、“Please press 'r' to Rewrite data......”;
+
将卡片放在读卡器上,确认模块与读卡器连接好。打开串口等待提示,当出现“press any key to continue”时在串口输入任意字符即可进入之后步骤。
*步骤一:输入’f’,格式化标签内容数据,可以看到格式化进程;
+
*4)值得注意的是:默认格式化密码为:
*步骤二:输入’r’,重新写入内容,写入成功可以返回”Writing URI to sector 1 as an NDEF Message”等数据。如果写入失败,可从步骤一重新开始执行,直到数据写入成功。
+
<source lang="cpp">
*完毕可以用带有NFC标签手机测试
+
uint8_t keya[6] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
*写入数据内容有三个:
+
</source>
**网络地址
+
初始写入内容在如下代码处更改
***const char * url = "microduino.cc";
+
<source lang="cpp">
***uint8_t ndefprefix = NDEF_URIPREFIX_HTTP_WWWDOT;
+
const char * url = "www.microduino.cn";
**邮箱
+
uint8_t ndefprefix = NDEF_URIPREFIX_HTTP_WWWDOT;
***const char * url = "mail@example.com";
+
 
***uint8_t ndefprefix = NDEF_URIPREFIX_MAILTO;
+
// for an email address
**电话号码
+
//const char * url = "mail@example.com";
***const char * url = "51508987";
+
//uint8_t ndefprefix = NDEF_URIPREFIX_MAILTO;
***uint8_t ndefprefix = NDEF_URIPREFIX_TEL;
+
 
用户可在程序中选择,把注释的”//”删除即可,并且能定义自己的内容。
+
// for a phone number
 +
//const char * url = "+1 212 555 1212";
 +
//uint8_t ndefprefix = NDEF_URIPREFIX_TEL;
 +
</source>
 +
*5)打开示例中的“readMifare”示例
 +
在程序中找到如下程序段,该段程序会向卡片中写入“50274895mcokie8”字符串(不包括引号)。之后程序会再次读出该字符串。
 +
<source lang="cpp">
 +
// If you want to write something to block 4 to test with, uncomment
 +
        // the following line and this text should be read back in a minute
 +
        memcpy(data, (const uint8_t[]){ '5', '0', '2', '7', '4', '8', '9', '5', 'm', 'c', 'o', 'k', 'i', 'e', '8' }, sizeof data);
 +
        success = nfc.mifareclassic_WriteDataBlock (4, data);
 +
</source>
 +
打开串口开始运行程序,会看到如下返回。
 +
*6)该示例中包括:写入数据,读出数据,读出卡片ID,输入密码(keya数组)等功能。
 +
[[file:Readmifare.png|center|600px|thumb]]
 
*'''[[Microduino-Module NFC/zh | 返回Microduino-NFC模块页面]]'''
 
*'''[[Microduino-Module NFC/zh | 返回Microduino-NFC模块页面]]'''
 
|}
 
|}

2018年6月20日 (三) 10:54的最新版本

在获得一张新的mifare标签时,需要将其格式化为ndef数据格式

Classic formatndef.png

将卡片放在读卡器上,确认模块与读卡器连接好。打开串口等待提示,当出现“press any key to continue”时在串口输入任意字符即可进入之后步骤。

  • 4)值得注意的是:默认格式化密码为:
uint8_t keya[6] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};

初始写入内容在如下代码处更改

const char * url = "www.microduino.cn";
uint8_t ndefprefix = NDEF_URIPREFIX_HTTP_WWWDOT;

// for an email address
//const char * url = "mail@example.com";
//uint8_t ndefprefix = NDEF_URIPREFIX_MAILTO;

// for a phone number
//const char * url = "+1 212 555 1212";
//uint8_t ndefprefix = NDEF_URIPREFIX_TEL;
  • 5)打开示例中的“readMifare”示例

在程序中找到如下程序段,该段程序会向卡片中写入“50274895mcokie8”字符串(不包括引号)。之后程序会再次读出该字符串。

// If you want to write something to block 4 to test with, uncomment
        // the following line and this text should be read back in a minute
        memcpy(data, (const uint8_t[]){ '5', '0', '2', '7', '4', '8', '9', '5', 'm', 'c', 'o', 'k', 'i', 'e', '8' }, sizeof data);
        success = nfc.mifareclassic_WriteDataBlock (4, data);

打开串口开始运行程序,会看到如下返回。

  • 6)该示例中包括:写入数据,读出数据,读出卡片ID,输入密码(keya数组)等功能。
Readmifare.png