“(SKU:RB-03T019)RFID Serial Module V1.0”的版本间的差异
来自ALSROBOT WiKi
(以“<br/> 右 ==概述== :你想了解刷卡考勤系 统的工作原理么?你想了解公共汽车刷卡系统的工作方式 :RFID ...”为内容创建页面) |
(→==周边产品推荐) |
||
(未显示4个用户的10个中间版本) | |||
第1行: | 第1行: | ||
<br/> | <br/> | ||
[[文件:xv1.jpg|500px|有框|右]] | [[文件:xv1.jpg|500px|有框|右]] | ||
− | == | + | ==产品概述== |
− | + | 你想了解刷卡考勤系统的工作原理么?你想了解公共汽车刷卡系统的工作方式吗?<br/> | |
− | + | RFID 射频识别是一种非接触式的物体识别技术,它可以通过射频信号自动识别目标对象并获取相关数据,因此许多互动项目正是借用这一特性来实现对物体的识别的。通常来讲,一个最基本的 RFID 识别系统主要由以下三部分组成: <br/> | |
− | + | 标签是由耦合元件及芯片组成,每个标签具有唯一的电子编码,附着在物体上标识目标对象<br/> | |
− | + | 阅读器(Reader)是读取(有时还可以写入)标签信息的设备,可设计为手持式或固定式<br/> | |
− | + | 天线(Antenna)在标签和读取器间传递射频信号。 <br/> | |
− | + | ==规格参数== | |
− | + | ||
− | + | ||
− | + | ||
− | == | + | |
# 产品名称:RFID S hield Module v1.0 | # 产品名称:RFID S hield Module v1.0 | ||
# 产品货号:RB-03T019 | # 产品货号:RB-03T019 | ||
# 工作电压:DC3.3V/DC5V | # 工作电压:DC3.3V/DC5V | ||
# 功率消耗:最小电流:3uA;平均电流:70mA/5V、43mA/3.3V;峰值电流:小于 160mA | # 功率消耗:最小电流:3uA;平均电流:70mA/5V、43mA/3.3V;峰值电流:小于 160mA | ||
− | |||
# 接口类型:UART | # 接口类型:UART | ||
# 数据传输速率:19200bit/s | # 数据传输速率:19200bit/s | ||
# 读卡距离:0-5cm(取决于天线工作环境和卡的性能) | # 读卡距离:0-5cm(取决于天线工作环境和卡的性能) | ||
# 产品类型:无线射频通信 | # 产品类型:无线射频通信 | ||
− | |||
# PCB 工艺:FR4 双面沉金 | # PCB 工艺:FR4 双面沉金 | ||
# 固定孔尺寸:3.2mm | # 固定孔尺寸:3.2mm | ||
第30行: | 第24行: | ||
# 重量:22g | # 重量:22g | ||
# 产品尺寸:60.96mm x 38.10mm x 8.05mm | # 产品尺寸:60.96mm x 38.10mm x 8.05mm | ||
− | # | + | # 包装方式:防静电袋密封<br/> |
− | + | # 选配配件:Arduino UNO 控制器、USB-TTL 模块(FT232)等 | |
− | + | ==发货清单== | |
− | + | * RFID Shield Module v1.0*1 | |
− | + | * 4P 传感器连接线*1 | |
− | + | * 标签(蓝色门禁卡)*1 | |
− | == UART | + | == UART 接口通讯协议== |
:异步半双工,1 位起始位+8 位数据位+1 位停止位 | :异步半双工,1 位起始位+8 位数据位+1 位停止位 | ||
:波特率:19200bps | :波特率:19200bps | ||
第43行: | 第37行: | ||
:0x00 以区分命令头但长度字不增加 | :0x00 以区分命令头但长度字不增加 | ||
:长度字:指明长度字到数据域最后 1 字节的字节数 | :长度字:指明长度字到数据域最后 1 字节的字节数 | ||
− | : | + | :命令字:本条命令的含义 |
− | 命令字:本条命令的含义 | + | |
:数据域:此项可以为空 | :数据域:此项可以为空 | ||
:校验字:从长度字到数据域最后 1 字节的逐字节异或值 | :校验字:从长度字到数据域最后 1 字节的逐字节异或值 | ||
第50行: | 第43行: | ||
:失败:命令头+长度字+接收到的命令字取反+校验字 | :失败:命令头+长度字+接收到的命令字取反+校验字 | ||
:命令列表 | :命令列表 | ||
− | |||
[[文件:xv2.jpg|500px|有框|居中]] | [[文件:xv2.jpg|500px|有框|居中]] | ||
− | == | + | ==使用方法== |
− | : | + | ===使用硬件=== |
− | + | # [http://www.alsrobot.cn/goods-162.html USB-TTL 模块] * 1个 | |
− | + | # [http://www.alsrobot.cn/goods-401.html RFID Shield Module v1.0] * 1个 | |
− | + | # [http://www.alsrobot.cn/goods-90.html USB 数据通信线] * 1条 | |
+ | # [http://www.alsrobot.cn/goods-546.html Carduino UNO 控制器] * 1个 | ||
+ | # [http://www.alsrobot.cn/goods-147.html Sensor Shield for Arduino v5.0] * 1个 | ||
+ | ===需要软件=== | ||
+ | [http://pan.baidu.com/s/1pJ7WYO7?qq-pf-to=pcqq.c2c FT232 驱动程序下载]<br/> | ||
+ | [http://pan.baidu.com/s/1sjDZi6D AccessPort 串口调试助手下载地址]<br/> | ||
+ | ===读取ID=== | ||
+ | ====连接硬件==== | ||
+ | :如图所示,利用4P线将RFID Shield Module v1.0 与 USB-TTL 模块连接起来(注意:电源、地和信号的正确连接。其中RFID模块的TX对应连接USB-TTL模块的RX, | ||
+ | RFID模块的RX对应连接USB-TTL模块的TX)。 | ||
[[文件:xv3.jpg|500px|有框|居中]] | [[文件:xv3.jpg|500px|有框|居中]] | ||
− | + | :在硬件连接完成后,用串口调试工具打开 Serial Dongle 对应的串口,将波特率设置为 19200,然后以 HEX 格式发送读卡的命令 AA BB 02 20 22(一共 5 个字节): | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | :在硬件连接完成后,用串口调试工具打开 Serial | + | |
− | + | ||
[[文件:xv4.jpg|500px|有框|居中]] | [[文件:xv4.jpg|500px|有框|居中]] | ||
:如果此时没有卡在读卡器的作用范围之内,RFID 模块将通过串口返回 HEX 格式 | :如果此时没有卡在读卡器的作用范围之内,RFID 模块将通过串口返回 HEX 格式 | ||
的 AA BB 02 DF DD 0D 0A(7 个字节): | 的 AA BB 02 DF DD 0D 0A(7 个字节): | ||
[[文件:xv5.jpg|500px|有框|居中]] | [[文件:xv5.jpg|500px|有框|居中]] | ||
− | :如果此时有卡在读卡器的作用范围之内,RF ID 模块上的红色 LED | + | :如果此时有卡在读卡器的作用范围之内,RF ID 模块上的红色 LED 会点亮,同时通过串口返回 HEX 格式的 AA BB 06 20 FE 39 45 F5 51 0D 0A(11 个字节),其中 20 之后开始的 5 个字节 FE 39 45 F5 51 即是标签的 ID,不同的标签返回的 ID 值也是不一样的,而我们正是通过对该 ID 值的判断来区分不同的物体的。 |
− | + | ||
− | + | ||
− | + | ||
[[文件:xv6.jpg|500px|有框|居中]] | [[文件:xv6.jpg|500px|有框|居中]] | ||
− | :在得到了相应的标签的 ID 值后,我们就可以在 Arduino | + | ====使用Arduino识别==== |
− | + | :在得到了相应的标签的 ID 值后,我们就可以在 Arduino 中来进行识别了,硬件连接上依然是通过传感器扩展板上的 COM 接口来连接我们的串口 RFID 模块: | |
[[文件:xv7.jpg|500px|有框|居中]] | [[文件:xv7.jpg|500px|有框|居中]] | ||
− | :与之对应的 Arduino 代码如下所示,其中我们要检测的标签 ID 是 FE 39 45 F5 | + | :与之对应的 Arduino 代码如下所示,其中我们要检测的标签 ID 是 FE 39 45 F5 51,当 Arduino 检测到相应的标签后,会将 13 号数字 I/O 端口上的 LED 点亮 1 秒钟。 |
− | + | =====例子程序===== | |
− | + | <pre style='color:blue'> | |
− | + | int val = 0; | |
− | + | int ledPin = 13; | |
− | + | int status = 0; | |
− | + | unsigned char searchCMD[] = {0xAA, 0xBB,0x02, 0x20, 0x22}; | |
− | + | unsigned char searchRES[5]; | |
− | + | ||
− | + | ||
− | + | ||
− | <pre style='color:blue'> | + | |
− | + | ||
− | int val = 0; | + | |
− | int ledPin = 13; | + | |
− | int status = 0; | + | |
− | unsigned char searchCMD[] = {0xAA,0xBB,0x02,0x20,0x22}; | + | |
− | unsigned char searchRES[5]; | + | |
+ | void setup() | ||
+ | { | ||
+ | Serial.begin(19200); | ||
+ | pinMode(13, OUTPUT); | ||
+ | Serial.println("->WB Start"); | ||
+ | } | ||
+ | int searchCard() | ||
+ | { | ||
+ | Serial.write(searchCMD, 5); | ||
+ | delay(100); | ||
+ | status = 0; | ||
+ | while(true) { | ||
+ | if (Serial.available()>0) { | ||
+ | val = Serial.read(); | ||
+ | |||
+ | switch (status) { | ||
+ | case 0: // parse 0xAA | ||
+ | if (val == 0xAA) status = 1; | ||
+ | break; | ||
+ | case 1: // parse 0xBB | ||
+ | if (val == 0xBB) status = 2; | ||
+ | else return -1; | ||
+ | break; | ||
+ | case 2: | ||
+ | if (val == 0x06) status = 3; | ||
+ | else return -1; | ||
+ | break; | ||
+ | case 3: | ||
+ | if (val == 0x20) status = 4; | ||
+ | else return -1; | ||
+ | break; | ||
+ | case 4: | ||
+ | if (val == 0xFE) status = 5; | ||
+ | else return -1; | ||
+ | break; | ||
+ | case 5: | ||
+ | if (val == 0x39) status = 6; | ||
+ | else return -1; | ||
+ | break; | ||
+ | case 6: | ||
+ | if (val == 0x45) status = 7; | ||
+ | else return -1; | ||
+ | break; | ||
+ | case 7: | ||
+ | if (val == 0xF5) status = 8; | ||
+ | else return -1; | ||
+ | break; | ||
+ | case 8: | ||
+ | if (val == 0x51) status = 9; | ||
+ | else return -1; | ||
+ | break; | ||
+ | case 9: | ||
+ | searchRES[status - 4] = val; | ||
+ | status ++; | ||
+ | break; | ||
+ | case 10: | ||
+ | return 0; // read successfully | ||
+ | break; | ||
+ | default: | ||
+ | return -1; | ||
+ | break; | ||
+ | } | ||
+ | |||
+ | } | ||
+ | } | ||
+ | } | ||
− | void | + | void loop() |
− | { | + | { |
− | + | if (searchCard()!= -1) { | |
− | + | if (searchRES[0] == 0xFE && searchRES[1] == 0x39 && searchRES[2] == 0x45 && searchRES[3] == 0xF5 && searchRES[4] == 0x51) | |
− | + | digitalWrite(13, HIGH); | |
− | // | + | // delay(1000); |
− | + | else | |
− | + | digitalWrite(13, LOW); | |
− | + | // delay(1000); | |
− | + | } | |
− | + | } | |
− | + | ||
− | + | ||
− | delay( | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
</pre> | </pre> | ||
− | + | [[文件:xv8.jpg|500px|有框|居中]] | |
− | + | [[文件:xv9.jpg|500px|有框|居中]] | |
− | + | ==相关推荐== | |
− | + | [[文件:erweima.png|230px|无框|右]] | |
− | + | ===产品购买地址=== | |
− | + | [http://item.taobao.com/item.htm?spm=a1z10.3-c.w4002-3667083713.9.sCmZD6&id=18245895562 Arduino RFID 串口模块 ]<br/> | |
− | + | ===周边产品推荐=== | |
− | + | [http://www.alsrobot.cn/goods-162.html USB-TTL模块]<br/> | |
− | + | [http://www.alsrobot.cn/goods-227.html RS232-TTL转换器] | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | </ | + | |
− | + | ||
− | + | ||
− | // | + | |
+ | ===相关问题解答=== | ||
+ | [http://www.makerspace.cn/forum.php?mod=viewthread&tid=202&highlight=RFID 基于RFID模块与LCD2004液晶屏的Arduino门禁显示器] | ||
− | + | ===相关学习资料=== | |
− | + | [http://www.makerspace.cn/forum.php?mod=viewthread&tid=4263 借助Arduino做一个RFID门禁系统教程]<br/> | |
− | + | [http://www.makerspace.cn/portal.php 奥松机器人技术论坛] | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | </ | + | |
− | [ | + | |
− | + |
2015年10月28日 (三) 13:17的最后版本
目录 |
产品概述
你想了解刷卡考勤系统的工作原理么?你想了解公共汽车刷卡系统的工作方式吗?
RFID 射频识别是一种非接触式的物体识别技术,它可以通过射频信号自动识别目标对象并获取相关数据,因此许多互动项目正是借用这一特性来实现对物体的识别的。通常来讲,一个最基本的 RFID 识别系统主要由以下三部分组成:
标签是由耦合元件及芯片组成,每个标签具有唯一的电子编码,附着在物体上标识目标对象
阅读器(Reader)是读取(有时还可以写入)标签信息的设备,可设计为手持式或固定式
天线(Antenna)在标签和读取器间传递射频信号。
规格参数
- 产品名称:RFID S hield Module v1.0
- 产品货号:RB-03T019
- 工作电压:DC3.3V/DC5V
- 功率消耗:最小电流:3uA;平均电流:70mA/5V、43mA/3.3V;峰值电流:小于 160mA
- 接口类型:UART
- 数据传输速率:19200bit/s
- 读卡距离:0-5cm(取决于天线工作环境和卡的性能)
- 产品类型:无线射频通信
- PCB 工艺:FR4 双面沉金
- 固定孔尺寸:3.2mm
- 最大固定孔间距:55.88mm
- 最小固定孔间距:33.02mm
- 对角固定孔间距:64.90mm
- 工作温度:-20℃-+70℃
- 重量:22g
- 产品尺寸:60.96mm x 38.10mm x 8.05mm
- 包装方式:防静电袋密封
- 选配配件:Arduino UNO 控制器、USB-TTL 模块(FT232)等
发货清单
- RFID Shield Module v1.0*1
- 4P 传感器连接线*1
- 标签(蓝色门禁卡)*1
UART 接口通讯协议
- 异步半双工,1 位起始位+8 位数据位+1 位停止位
- 波特率:19200bps
- 发送数据格式:命令头+长度字+命令字+数据域+校验字
- 命令头:0xAA 0xBB,若后续数据中包含 0xAA,则随后补充 1 字节
- 0x00 以区分命令头但长度字不增加
- 长度字:指明长度字到数据域最后 1 字节的字节数
- 命令字:本条命令的含义
- 数据域:此项可以为空
- 校验字:从长度字到数据域最后 1 字节的逐字节异或值
- 成功:命令头+长度字+接收到的命令字+数据域+校验字
- 失败:命令头+长度字+接收到的命令字取反+校验字
- 命令列表
使用方法
使用硬件
- USB-TTL 模块 * 1个
- RFID Shield Module v1.0 * 1个
- USB 数据通信线 * 1条
- Carduino UNO 控制器 * 1个
- Sensor Shield for Arduino v5.0 * 1个
需要软件
FT232 驱动程序下载
AccessPort 串口调试助手下载地址
读取ID
连接硬件
- 如图所示,利用4P线将RFID Shield Module v1.0 与 USB-TTL 模块连接起来(注意:电源、地和信号的正确连接。其中RFID模块的TX对应连接USB-TTL模块的RX,
RFID模块的RX对应连接USB-TTL模块的TX)。
- 在硬件连接完成后,用串口调试工具打开 Serial Dongle 对应的串口,将波特率设置为 19200,然后以 HEX 格式发送读卡的命令 AA BB 02 20 22(一共 5 个字节):
- 如果此时没有卡在读卡器的作用范围之内,RFID 模块将通过串口返回 HEX 格式
的 AA BB 02 DF DD 0D 0A(7 个字节):
- 如果此时有卡在读卡器的作用范围之内,RF ID 模块上的红色 LED 会点亮,同时通过串口返回 HEX 格式的 AA BB 06 20 FE 39 45 F5 51 0D 0A(11 个字节),其中 20 之后开始的 5 个字节 FE 39 45 F5 51 即是标签的 ID,不同的标签返回的 ID 值也是不一样的,而我们正是通过对该 ID 值的判断来区分不同的物体的。
使用Arduino识别
- 在得到了相应的标签的 ID 值后,我们就可以在 Arduino 中来进行识别了,硬件连接上依然是通过传感器扩展板上的 COM 接口来连接我们的串口 RFID 模块:
- 与之对应的 Arduino 代码如下所示,其中我们要检测的标签 ID 是 FE 39 45 F5 51,当 Arduino 检测到相应的标签后,会将 13 号数字 I/O 端口上的 LED 点亮 1 秒钟。
例子程序
int val = 0; int ledPin = 13; int status = 0; unsigned char searchCMD[] = {0xAA, 0xBB,0x02, 0x20, 0x22}; unsigned char searchRES[5]; void setup() { Serial.begin(19200); pinMode(13, OUTPUT); Serial.println("->WB Start"); } int searchCard() { Serial.write(searchCMD, 5); delay(100); status = 0; while(true) { if (Serial.available()>0) { val = Serial.read(); switch (status) { case 0: // parse 0xAA if (val == 0xAA) status = 1; break; case 1: // parse 0xBB if (val == 0xBB) status = 2; else return -1; break; case 2: if (val == 0x06) status = 3; else return -1; break; case 3: if (val == 0x20) status = 4; else return -1; break; case 4: if (val == 0xFE) status = 5; else return -1; break; case 5: if (val == 0x39) status = 6; else return -1; break; case 6: if (val == 0x45) status = 7; else return -1; break; case 7: if (val == 0xF5) status = 8; else return -1; break; case 8: if (val == 0x51) status = 9; else return -1; break; case 9: searchRES[status - 4] = val; status ++; break; case 10: return 0; // read successfully break; default: return -1; break; } } } } void loop() { if (searchCard()!= -1) { if (searchRES[0] == 0xFE && searchRES[1] == 0x39 && searchRES[2] == 0x45 && searchRES[3] == 0xF5 && searchRES[4] == 0x51) digitalWrite(13, HIGH); // delay(1000); else digitalWrite(13, LOW); // delay(1000); } }
相关推荐
产品购买地址
周边产品推荐
相关问题解答
基于RFID模块与LCD2004液晶屏的Arduino门禁显示器