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

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

1. 案例简介

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

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

接下来我们学习下怎么基于HaaS100 搭建RFID读卡器,读取卡片信息,并且上传到阿里云IOT平台上。

实验效果展示:

2. 基础知识

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

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

3. 物料清单

3.1 HaaS100 硬件


3.2 RFID读写器

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:帧结束符。

卡片序列号是我们关注的重要信息,我们通过串口读取卡片序列号信息后将其发送给阿里云IOT平台。

4. 案例实现

4.1 硬件连接

RFID模块通过UART接口跟HaaS100进行通信。

这个是HaaS100 硬件接口定义:

红框部分是串口2的引脚。

将RFID模块电源线,地线,串口RX,串口TX 4根线接到HaaS板子串口2上。

HaaS板引脚编号 HaaS板引脚说明 RFID模块
5 5V VCC
3 GND GND
10 UART2_RXD TX
12 UART2_TXD RX

4.2 接入阿里云IOT平台

首先登陆阿里云IOT平台

选择产品标签页,点击创建产品按钮,新建产品,填写产品信息。

选择添加功能

点击编辑草稿按钮,编辑自定义功能,记录下标识符信息后面代码中会用到。

编辑完成后点击左下角发布上线。

开始添加设备,选择设备标签页,点击添加设备按钮。
add.png

查看设备三元组信息:
记录下设备的三元组信息: product key/device name/device secret ,这些信息后面要填写到代码中。

4.3 软件实现

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

4.3.1 软件流程图

RFID相关代码在solutions/rfid_demo目录下。
image.png

4.3.2 HaaS100 串口通信部分

UART串口操作代码可以参考这个文件:solutions/rfid_demo/rfid_app.c
UART串口操作相关代码:

int rfid_uart_init(void) {    int port_id = 2;    int ret = 0;    char dev_name[16] = {0};    snprintf(dev_name, sizeof(dev_name), "/dev/ttyUART%d", port_id);    fd = open(dev_name, 0);    if(ret != 0) {        printf("open uart error\r\n");        return ret;    }    ret = ioctl(fd, IOC_UART_SET_CFLAG, B9600 | CS8);    if(ret != 0) {        close(fd);        printf("ioctl uart error\r\n");        return ret;    } } static void task_recvdata_entry(void *arg) {    int  i = 0;    int  ret = 0;    char rfid_data_buf[50] = {0};    int  rev_length = 0;    char params[30];    char rfid_deviceid[12];    while (1) {        ret = read(fd, rfid_data_buf, sizeof(rfid_data_buf));        if (ret > 0) {            printf("read length:%d\r\n", ret);            for (i = 0; i < ret; i++) {                printf("%02x ", rfid_data_buf[i]);            }         } }

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37

4.3.3 往阿里云IOT平台发送数据

我们使用send_property_post接口将读取的卡片序列号DeviceID发送给阿里云IOT平台。

//card_id 这个字符串是之前在阿里云IOT平台添加自定义功能时的标志符。 //rfid_deviceid 里存储的是通过串口读到的RFID序列号。 snprintf(params, sizeof(params), "{\"card_id\": \"%s\"}", rfid_deviceid); send_property_post(params);

  • 1
  • 2
  • 3
  • 4
  • 5

4.4 端云联调

4.4.1 下载软件版本

开发环境的搭建请参考《aos-studio使用说明之搭建开发环境》,其中详细的介绍了AliOS Things 3.3的IDE集成开发环境的搭建流程。

RFID的代码下载请参考《aos-studio使用说明之创建工程》

> 选择解决方案: “rfid使用示例”或者“rfid demo”

> 选择开发板: Haas100 board configure

源码下载完成后将在阿里云IOT平台获取的设备信息填写到文件solutions//rfid_demo/rfid_demo.c中。

char *product_key       = "";    char *device_name       = "";    char *device_secret     = "";

  • 1
  • 2
  • 3

– 编译固件可参考《aos-studio使用说明之编译固件》

– 烧录固件可参考《aos-studio使用说明之烧录固件》

4.4.2 设备配网

HaaS启动后通过串口命令行配网,输入如下指令可完成配网:

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

  • 1

ssid, password 替换成你自己的网络热点信息。

4.4.3 演示效果图片

当有RFID卡片靠近读卡器时,我们会在串口log里看到RFID卡片数据信息:

在IOT平台上可以看到卡片的序列号。

5. 总结

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

开发者支持

HaaS官方:https://haas.iot.aliyun.com/
HaaS技术社区:https://blog.csdn.net/HaaSTech
开发者钉钉群和公众号见下图,开发者钉钉群每天都有技术支持同学值班。
在这里插入图片描述

相关文章
|
传感器 安全 芯片
蓝牙耳机仓设计的单芯片解决方案
对于一款优秀的TWS耳机来说,除了耳机本身的音频配置,充电仓也是极为重要的一环。因为与传统有线耳机由设备电池供电不同,缺少了耳机仓,TWS耳机就完全的失去了充电的途径,设备在耗尽电量基本就告别使用了,因此再好的耳机配置也需要充电仓的电量补充以达到最佳效果。 基本概述 SY8801是一款专为蓝牙耳机充电仓所设计的芯片,其核心是一款SOC芯片。芯片内部集成充电模块和放电模块,充电电流和放电截止电流外部可以调节。SY8801利用输出的电源和地可以实现耳机仓和耳机之间的通讯。芯片集成了标准的I2C接口和中断信号,方便实现芯片和MCU之间的通讯。同时芯片还提供了负载检测和负载插入识别。 SY880
132 1
|
开发框架 物联网 开发者
《HaaS物联网设备云端一体开发框架:AliOS Things》电子版下载
本书主要对 HaaS 开发框架中的技术进行详细的介绍,全书覆盖了从 HaaS 硬件生态及积木、物联网操作系统、物联网设备端轻应用开发、物联网设备上云到物联网应用开发新模式的全链路知识,并且结合的都是行业应用新案例,呈现的是通过项目实战积累的技术经验和解决方案,参考价值高。
152 15
《HaaS物联网设备云端一体开发框架:AliOS Things》电子版下载
|
开发框架 物联网 开发者
《HaaS物联网设备云端一体开发框架:AliOS Things》电子版地址下载
本书主要对 HaaS 开发框架中的技术进行详细的介绍,全书覆盖了从 HaaS 硬件生态及积木、物联网操作系统、物联网设备端轻应用开发、物联网设备上云到物联网应用开发新模式的全链路知识,并且结合的都是行业应用新案例,呈现的是通过项目实战积累的技术经验和解决方案,参考价值高。
98 1
《HaaS物联网设备云端一体开发框架:AliOS Things》电子版地址下载
|
开发框架 物联网 开发者
《HaaS物联网设备云端一体开发框架:AliOS Things》电子版地址
本书主要对 HaaS 开发框架中的技术进行详细的介绍,全书覆盖了从 HaaS 硬件生态及积木、物联网操作系统、物联网设备端轻应用开发、物联网设备上云到物联网应用开发新模式的全链路知识,并且结合的都是行业应用新案例,呈现的是通过项目实战积累的技术经验和解决方案,参考价值高。
168 0
《HaaS物联网设备云端一体开发框架:AliOS Things》电子版地址
|
开发框架 物联网 开发者
《HaaS物联网设备云端一体开发框架:AliOS Things》下载
本书主要对 HaaS 开发框架中的技术进行详细的介绍,全书覆盖了从 HaaS 硬件生态及积木、物联网操作系统、物联网设备端轻应用开发、物联网设备上云到物联网应用开发新模式的全链路知识,并且结合的都是行业应用新案例,呈现的是通过项目实战积累的技术经验和解决方案,参考价值高。
132 0
《HaaS物联网设备云端一体开发框架:AliOS Things》下载
|
开发框架 物联网 开发者
《HaaS物联网设备云端一体开发框架:AliOS Things》电子版
本书主要对 HaaS 开发框架中的技术进行详细的介绍,全书覆盖了从 HaaS 硬件生态及积木、物联网操作系统、物联网设备端轻应用开发、物联网设备上云到物联网应用开发新模式的全链路知识,并且结合的都是行业应用新案例,呈现的是通过项目实战积累的技术经验和解决方案,参考价值高。
136 0
《HaaS物联网设备云端一体开发框架:AliOS Things》电子版
|
开发框架 物联网 开发者
《HaaS物联网设备云端一体开发框架:AliOS Things》下载
本书主要对 HaaS 开发框架中的技术进行详细的介绍,全书覆盖了从 HaaS 硬件生态及积木、物联网操作系统、物联网设备端轻应用开发、物联网设备上云到物联网应用开发新模式的全链路知识,并且结合的都是行业应用新案例,呈现的是通过项目实战积累的技术经验和解决方案,参考价值高。
116 0
 《HaaS物联网设备云端一体开发框架:AliOS Things》下载
|
开发框架 架构师 物联网
大咖说·图书分享 | HaaS 物联网设备云端一体开发框架
物联网开发和嵌入式开发有何区别?做物联网开发有哪些门槛?如何降低门槛?本期大咖说,阿里巴巴三位作者携新作《HaaS物联网设备云端一体开发框架》展开分享。
247 0
大咖说·图书分享 | HaaS 物联网设备云端一体开发框架
|
开发框架 安全 物联网
阿里云AIoT发布HaaS可穿戴式解决方案 用云端一体快速搭建儿童智能手表
近日,阿里云AIoT宣布发布全新的可穿戴式解决方案,通过HaaS的云端一体功能,帮助智能手表厂商快速推出智能化的儿童手表,由典型的40天可以缩短到2周左右。目前,该方案已经在多家业内厂商里实现落地,并完成了几十万套手表的落地。
370 14
阿里云AIoT发布HaaS可穿戴式解决方案 用云端一体快速搭建儿童智能手表
|
物联网 黑灰产治理 Python
HaaS云端一体物联网开发训练营打卡引导
阿里云AIoT “HaaS云端一体物联网开发训练营” 首期开营!在这里你不但可以学习到物联网行业理论、开发基础、轻应用开发和云端一体开发等内容。按要求完成学习任务还可免费获得HaaS板、天猫精灵方糖R。名额有限,先到先得。
2750 15
HaaS云端一体物联网开发训练营打卡引导