基于HaaS100搭建云端一体RFID读卡器

简介: 无线射频识别即射频识别技术(Radio Frequency Identification,RFID)是自动识别技术的一种,该技术具有抗干扰性强以及无需人工识别的特点,所以常常被应用在一些需要采集信息的领域上,例如物流,仓储,防伪,身份识别等领域。如今,基于HaaS 100 也能够便捷搭建RFID读卡器,读取卡片信息,并且通过阿里云平台将其传到我们的手机上。

1、前言

无线射频识别即射频识别技术(Radio Frequency Identification,RFID)是自动识别技术的一种,通过无线射频方式进行非接触双向数据通信,利用无线射频方式对电子标签或射频卡进行读写,从而达到识别目标和数据交换的目的。

RFID技术具有抗干扰性强以及无需人工识别的特点,所以常常被应用在一些需要采集信息的领域上,例如物流,仓储,防伪,身份识别等领域。

接下来我们学习下怎么基于HaaS100 搭建RFID读卡器,读取卡片信息,并且通过阿里云平台将其传到我们的手机上。image.png

2、RFID射频识别系统的工作原理

电子标签进入天线磁场后,若接收到读写器发出的特殊射频信号,就能凭借感应电流所获得的能量发送出存储在芯片中的产品信息(无源标签),或者主动发送某一频率的信号(有源标签),读写器读取信息并解码后,送至中央信息系统进行有关数据处理。

典型的RFID系统主要由应用系统软件,RFID读写器,电子标签3部分构成。

image.png

3、RFID读写器介绍

image.png

TX522 是一款基于13.56MHz频率的Mifare卡读写模块,可以支持多种类型卡,TX522 Mifare卡读写模块具有天线一体化,识别距离达到80mm。可以通过UART接口跟HaaS100进行通信。

刷卡:
当检测到 RFID卡片靠近的时候;红色指示灯闪烁,并通过串口发送出卡片序列号相关的指令.

指令协议说明
数据通信以一帧为单位进行,格式如下:
数据通信帧结构:

第1字节:起始符;
第2字节:包号,默认:0x00;
第3字节:命令—上位机发送给IC卡读写器;
第4字节:此帧有效数据的长度。从紧接着的第1个字节开始,到倒数第3个字节结束,为有效字节。
第5字节 到 倒数第3字节: 有效数据。
倒数第2字节:校验和;
倒数第1字节:结束符;

刷卡。模块上的指示灯会亮,并且通过串口主动发送卡片序列号给上位机,此时上位机就会接收到卡片序列号的相关指令。
例如指令:20 00 01 08 04 00 00 00 A6 40 FE E4 0E 03。

20:起始符

00:包号

01:命令字节,模块主动输出卡片序列号时,该字节为0x00;其他指令为命令字

08:表示后面8个字节为有效数据位

04 00:表示卡片属性为S50卡

00 00:此2个字节无实际意义。

A6 40 FE E4 :表示卡片序列号。刷不同卡片,此4个字节会变。

0E:校验和。从包号(SEQNR)开始到数据(DATA)的最后一字节异或,然后再取反 得到。

03:帧结束符。

卡片序列号是我们关注的重要信息,我们通过串口读取卡片序列号信息后将其发送给阿里云,云端再将这个信息发送到我们的手机APP上。

4、硬件连接

RFID模块通过UART接口跟HaaS100进行通信。
这个是HaaS100 硬件接口定义:
image.png
将电源线,地线,串口RX,串口TX 4根线接到HaaS板子上。
image.png

5、接入阿里云IoT平台

请参考基于HaaS 100搭建智能家居应用创建自己的应用。
基于HaaS100快速搭建智能家居应用

需要注意的是在功能定义页面添加自定义功能:卡片序列号 CardID
image.png

在产品面板页面选择设备ID用于在手机上显示读取到的RFID卡片序列号。
image.png

6、HaaS 软件代码

接下来我们开始编写HaaS 上的软件代码,读取串口数据,从中提取出卡片序列号,通过linkkit SDK接口将序列号发送给阿里云IoT平台。

6.1、软件流程图
image.png

6.2、HaaS100 串口通信部分
UART串口操作说明:
https://help.aliyun.com/document_detail/161062.html?spm=a2c4g.11186623.6.574.73d4c806uT1bKl
具体代码可以参考这个文件:application/example/example_legacy/uart/uart.c

int application_start(int argc, char *argv[])

{

printf("uart sample application started...\n");

uart_dev_t uart_demo;

uart_demo.port = 2;

uart_demo.config.baud_rate = 9600;

uart_demo.config.mode = MODE_TX_RX;

uart_demo.config.flow_control = FLOW_CONTROL_DISABLED;

uart_demo.config.stop_bits = STOP_BITS_1;

uart_demo.config.parity = NO_PARITY;

uart_demo.config.data_width = DATA_WIDTH_8BIT;

ret = hal_uart_init(&uart_demo);

int i;

int ret;

char rev_buf[1];

int rev_length;

while (1) {

ret = hal_uart_recv_II(&uart_demo, rev_buf, sizeof(rev_buf), &rev_length, AOS_WAIT_FOREVER);

if (ret != 0) {

  printf("recv data from uart error\r\n");

  break;

}

for(i = 0; i < rev_length; i++) {

  printf("%02x ", rev_buf[i]&0xff);

}

printf("\r\n");

}

return 0;

}
6.3、往阿里云IoT平台发送数据
我们使用linkkit 组件中的IoT_Linkkit_Report接口将读取的卡片序列号DeviceID发送给阿里云IoT平台。

linkkit_event.c

void user_post_data(uint8_t value)

{

int res = 0;

char property_payload[30] = {0};

HAL_Snprintf(property_payload, sizeof(property_payload), "{\"DeviceID\": %s}", "123987");

res = IOT_Linkkit_Report(EXAMPLE_MASTER_DEVID, ITM_MSG_POST_PROPERTY,

                            (unsigned char *)property_payload, strlen(property_payload));

}

linkkit_main:

while (1) {

user_post_data();

}

7、端云联调

7.1、下载软件版本
编译,烧写步骤可以参考HaaS100快速开始
7.2、设备配网
通过命令行配网,串口输入如下指令可完成配网:

netmgr -t wifi -c {ssid} {password}

7.3、设备与云智能APP绑定
安装的云智能APP,保证手机更设备连接同一个APP.点击右上角红色标注"+" 按钮,开始设备查找。
image.png

约数秒钟后找到设备,如下图,点击完成。

image.png

至此绑定完成。
7.4、演示效果图片
当有RFID卡片靠近读卡器时,我们会在手机上看到卡片的序列号。
image.png

8、总结

本文档介绍了如何基于HaaS100 搭建RFID读卡器,读取卡片信息,并且通过阿里云物联网平台将数据传到我们的手机上,其中涉及到了HaaS 串口操作和给阿里云IoT发送数据。
RFID模块除了可以读卡上的数据外还可以给卡写入数据,还有更多的功能大家可以一起挖掘和探索。
HaaS100除了串口外还可以通过i2c、spi 等接口链接外面的传感器或者其他设备。
通过本文档介绍的这个流程,大家可以打造更多的应用场景,一起可以行动起来,亲手制作一套属于自己的智能设备吧!

9、开发者技术支持

如需更多技术支持,可加入钉钉开发者群,或者关注微信公众号
image.png
更多技术与解决方案介绍,请访问阿里云AIoT首页

相关文章
|
移动开发 安全 物联网
HaaS100低功耗蓝牙体验
HaaS100主芯片是一块高性能SoC,其内置了蓝牙4.2双模芯片,支持BLE低功耗蓝牙。HaaS100的提供低功耗蓝牙host协议栈组件---ble_host。 ble_host组件支持BLE低功耗蓝牙的中心与外设角色,支持GATT连接与数据交互的同时也支持SMP安全机制以增强安全性,另外蓝牙标准profile诸如电池服务(BAS),设备信息服务(DIS),人机交互服务(HIDS)等等也都已集成,属于功能完备的蓝牙Host协议栈。
HaaS100低功耗蓝牙体验
|
安全 芯片
启明云端ESP32-S2 摄像头 WIFI方案应用于智能猫眼
同时,还有将智能猫眼与指纹锁数据互通,用于记录核实来访人员的指纹信息和面目人脸信息,进一步加强安全防范。所以智能猫眼方案常与智能门锁集成一起应用。
482 0
启明云端ESP32-S2 摄像头 WIFI方案应用于智能猫眼
|
5月前
|
传感器 安全 芯片
蓝牙耳机仓设计的单芯片解决方案
对于一款优秀的TWS耳机来说,除了耳机本身的音频配置,充电仓也是极为重要的一环。因为与传统有线耳机由设备电池供电不同,缺少了耳机仓,TWS耳机就完全的失去了充电的途径,设备在耗尽电量基本就告别使用了,因此再好的耳机配置也需要充电仓的电量补充以达到最佳效果。 基本概述 SY8801是一款专为蓝牙耳机充电仓所设计的芯片,其核心是一款SOC芯片。芯片内部集成充电模块和放电模块,充电电流和放电截止电流外部可以调节。SY8801利用输出的电源和地可以实现耳机仓和耳机之间的通讯。芯片集成了标准的I2C接口和中断信号,方便实现芯片和MCU之间的通讯。同时芯片还提供了负载检测和负载插入识别。 SY880
56 1
|
传感器 大数据 测试技术
蓝牙智能跳绳解决方案|学习笔记
快速学习蓝牙智能跳绳解决方案
180 0
蓝牙智能跳绳解决方案|学习笔记
|
开发框架 架构师 物联网
大咖说·图书分享 | HaaS 物联网设备云端一体开发框架
物联网开发和嵌入式开发有何区别?做物联网开发有哪些门槛?如何降低门槛?本期大咖说,阿里巴巴三位作者携新作《HaaS物联网设备云端一体开发框架》展开分享。
198 0
大咖说·图书分享 | HaaS 物联网设备云端一体开发框架
|
传感器 数据采集 芯片
【平头哥蓝牙Mesh网关开发套件试用体验】项目:蓝牙无线传感器
本项目用两块PHY6220蓝牙开发板,实现了蓝牙无线传感器
507 0
【平头哥蓝牙Mesh网关开发套件试用体验】项目:蓝牙无线传感器
|
传感器 算法 物联网
国产芯片WiFi物联网智能插座—电耗采集功能设计
国产芯片WiFi物联网智能插座—电耗采集功能设计
国产芯片WiFi物联网智能插座—电耗采集功能设计
|
开发框架 安全 物联网
阿里云AIoT发布HaaS可穿戴式解决方案 用云端一体快速搭建儿童智能手表
近日,阿里云AIoT宣布发布全新的可穿戴式解决方案,通过HaaS的云端一体功能,帮助智能手表厂商快速推出智能化的儿童手表,由典型的40天可以缩短到2周左右。目前,该方案已经在多家业内厂商里实现落地,并完成了几十万套手表的落地。
266 0
阿里云AIoT发布HaaS可穿戴式解决方案 用云端一体快速搭建儿童智能手表
|
自然语言处理 运维 监控
阿里云企业物联网平台推出千里传音播报服务 高效打造云端一体智能硬件
作为阿里云Cloud AIoT Native架构的基础平台,近日,阿里云企业物联网平台正式推出了IoT 云端一体应用——千里传音播报服务。该应用是阿里云AIoT针对带有语音播报能力的AIoT设备,提供的云端一体的解决方案,为播报提醒类设备应用提供从播报语料合成,语料管理,语料推送到设备,播报设备管理等完善功能,配合集成了端侧播报能力的HaaS设备,帮助用户高效完成播报类设备的开发和长期运行。
317 0
阿里云企业物联网平台推出千里传音播报服务 高效打造云端一体智能硬件
|
机器学习/深度学习 人工智能 自然语言处理
HaaS云端一体智能语音交互方案
智能语音交互作为物联网领域的一个重要生态成员,是一种全新的交互方式,它能够解放双手,随时提供服务,无须借助任何按键。近年来智能家居逐渐走入千家万户,产业市场规模不断增长。智能家居产品种类繁多,很多家庭有着智能门锁、扫地机器人、智能电视、智能洗衣机、智能电冰箱等不同类型的智能家居产品,这些产品需要一个交互性好的控制中心,基于智能语音交互技术的智能音箱脱颖而出。
993 0