骑士智能科技M5310模块连接华为OC平台实现数据交互

一、实验目的
使用骑士智能科技M5310模块加USB转串口,连接到华为OC平台上,并实现温湿度数据交互

二、准备工作
硬件:骑士智能科技M5310模块 + 移动NB卡、USB转串口、天线
软件:C:\AAA\NBIoT&LoraWAN\骑士智能科技技术资料\M5310开发板\M5310-华为COAP固件

三、概述
M5310模块内置华为海思Hi2110 NBIoT芯片,模块支持移动B8频段,可以通过LWM2M协议连接中国移动OneNet平台,也可通过COAP协议连接华为OC平台。本文档介绍如何让NB模块连接上华为OC平台,并实现温湿度数据交互。华为OC平台是一个强大的IoT平台,用户的NB设备(也就是南向设备)可在该平台进行注册,并且发出的数据会在该平台进行转发到北向服务。南向设备发出的二进制数据会在OC平台进行编解码,专程json格式数据发到北向应用服务,反之亦然。
对profile文件和编解码插件,我的理解是:南向设备上报的数据,要用编解码插件解析出来,而编解码插件和profile定义的结构一一对应,这样IoT平台才能正确识别上报的数据代表什么含义。所以我们需要在OC平台上创建profile(类似蓝牙协议中的profile结构),创建编解码插件,然后才能实现数据交互。

四、实验步骤
一、硬件连接
将USB转串口连接上骑士智能科技M5310模块,接线图如下,然后插入移动NB卡,注意卡的方向。
USB转串口 M5310模块
3V3 ----------------- VCC
GND ----------------- GND
TXD ----------------- RXD
RXD ----------------- TXD
二、申请OC账号
1.进入华为开发者平台网页:https://developer.huawei.com/ict/cn
2.按如下步骤,获取远程实验室OC平台账号(在获取账号之前,要先注册华为开发者论坛的账号):

骑士智能科技M5310模块连接华为OC平台实现数据交互_第1张图片
3.申请成功后,在对应的邮箱中会收到如下邮件:
骑士智能科技M5310模块连接华为OC平台实现数据交互_第2张图片
4.点“NB方案平台Portal链接”进入OC平台后,输入下方的登陆账号和密码,登陆成功后界面如下:
骑士智能科技M5310模块连接华为OC平台实现数据交互_第3张图片

三、烧写固件
1.安装UE Updater,这个软件用来给M5310模块烧写固件,也就是更新Hi2110代码。
安装软件位置:C:\AAA\NBIoT&LoraWAN\骑士智能科技技术资料\M5310开发板\UEUpdaterUI-3.22.0.14.msi
2.将USB转串口接上电脑,打开UE软件,导入固件,点Update,等待固件烧写结束,如下:
骑士智能科技M5310模块连接华为OC平台实现数据交互_第4张图片
3.烧写结束后,关闭UE软件,打开串口调试助手,选择串口号,波特率设置为9600,发送at+回车,观察接收框是否收到OK,收到OK表明固件烧写成功。
骑士智能科技M5310模块连接华为OC平台实现数据交互_第5张图片

四、OC平台创建profile和编解码插件
1,登陆进OC平台后,选择左侧的“Profile开发”->“Profile在线开发”->右上角“自定义产品”->右上角“创建全新产品”,填写相关信息,如下:
骑士智能科技M5310模块连接华为OC平台实现数据交互_第6张图片

2.在本次实验中,我们要上报温湿度传感器的数据,所以我定义的产品类型是这样的:
骑士智能科技M5310模块连接华为OC平台实现数据交互_第7张图片

3.接下来我们需要创建该产品的服务以及服务下的属性(听起来很像蓝牙协议中的profile->service->characteristic的概念),下面是我定义的一个湿度的服务,其中有三个属性值(当前湿度、今天最小湿度、今天最大湿度),以及两个命令字段
骑士智能科技M5310模块连接华为OC平台实现数据交互_第8张图片profile可参考C:\AAA\NBIoT&LoraWAN\如何接入华为OC参考资料\MultiSensor_eSDKK_v101,这是一份华为创建好的温湿度profile模板。

4 .profile开发完成后,需要创建编解码插件。点左侧“插件开发“->”插件开发“->右上角”添加插件“->右上角”新建插件“,选择刚刚创建好的profile->“新增消息”,这里我们要上报温度数据和湿度数据,所以我们需要新建两条消息,先来新建湿度的消息,然后添加字段,注意,字段的第一个字节一定要是地址域,也就是messageid(要勾选”标记为地址域“,其他字段不要勾选),然后再按照profile中定义的三个属性值添加好字段,最后,如果需要IoT平台对NB设备上报的数据做响应的话,要勾选”是否添加响应字段“,并设置响应数据。如下:
骑士智能科技M5310模块连接华为OC平台实现数据交互_第9张图片
5.同样的流程,再新建一个温度的消息,如下:
骑士智能科技M5310模块连接华为OC平台实现数据交互_第10张图片
6.接下来我们需要添加新增的消息和profile中属性值的映射关系,将右侧profile中的属性值拖过来,与新增的消息连接好,如下:
骑士智能科技M5310模块连接华为OC平台实现数据交互_第11张图片
7.映射建立好之后,如下(这里红框内为什么会交叉,我也想不明白,这里的交叉意味着后续的数据解析就会出错。后面再说)
骑士智能科技M5310模块连接华为OC平台实现数据交互_第12张图片
8.这里也可以将两个服务放在一个消息里,如下:然后发送AT+NMGS=6,000102030405,收到平台回复11223344:
骑士智能科技M5310模块连接华为OC平台实现数据交互_第13张图片
在平台的“历史数据”中,可以看到上报的数据:
骑士智能科技M5310模块连接华为OC平台实现数据交互_第14张图片
9.点击右上角”保存“,”部署“,然后回到OC平台主界面,可以看到插件已经新建好了:
骑士智能科技M5310模块连接华为OC平台实现数据交互_第15张图片
10.单击“我的设备 > 注册设备”,单击选中需要注册设备对应的Profile。在Profile详情页,填写“设备名称”和“设备标识码”,单击“注册”按钮注册设备。设备名称:用于区分不同设备,名称可自定义(如MultiSensor-02)。设备标识码:设备唯一标识。使用NB模组对接时,填写模组的IMEI号码。IMEI号为15位数,一般以86开头,贴于NB模组标签上,或可通过AT+CGSN=1指令查询得到。如下:
骑士智能科技M5310模块连接华为OC平台实现数据交互_第16张图片

五、终端入网
终端入网的详细步骤如下所示:
Step 1:终端上电,执行“AT+NRB”复位终端。如果返回OK,表示终端正常运行。
Step 2:执行“AT+CFUN=0”关闭功能开关。如果执行成功,返回OK。
Step 3:执行“AT+NTSETID=1,设备ID”设置设备ID。设备ID为NB模组的IMEI号,如果执行成功,返回OK。
Step 4:执行“AT+NCDP=IP, PORT”设置需要对接IoT平台的地址(申请OC平台账号时邮件下发的),端口为5683。如果执行成功,返回OK。如下:
在这里插入图片描述
Step 5:执行“AT+CFUN=1”开启功能开关。如果执行成功,返回OK。
Step 6:执行“AT+CGATT=1”进行终端入网。如果执行成功,返回OK。
Step 7:执行“AT+CGPADDR”查询终端是否获取到核心网分配的IP地址,如果获取到IP地址,表示终端入网成功。
Step 8:执行“AT+NNMI=1”设置下行数据通知功能,如果执行成功,返回OK。实际测试如下:
骑士智能科技M5310模块连接华为OC平台实现数据交互_第17张图片
执行“AT+NMGS=5,00012E1F63”发送上行数据,如果上行数据发送成功,返回OK。由于设置了 “AT+NNMI=1”,如果编解码插件中写了OceanConnect平台对上报数据的应答,则上行数据发送成功后会自动获取应答数据。上报数据的AT命令为:AT+NMGS=5,00012E1F63。具体解析如下:1. AT+NMGS=N,XXXXXXXXXX为上报数据的AT命令格式,其中“N”表示一共上报几个字节,后面为具体的上报字节内容,以十六进制字符串表示。这些需要提前在编解码插件中写好。2. 本例中,一共上报5个字节(实际用到4个字节),分别为“00”、“01”、“2E”、“1F”、“63”(无效字节)。其中,第一个字节“00”表示上报数据对应的messageid为Temperature(湿度),第二个字节“01”表示TemperatureMaxToday(当天湿度最大值),第三个字节“2E”表示TemperatureCur(当前湿度),第四个字节“1F”表示TemperatureMinToday(当天湿度最小值)。这些内容与profile文件和编解码插件是一一对应的。
由于本例中的编解码插件写了上报数据应答,在上报数据成功后会收到“+NNMI 1,02”的应答。

5.2 OceanConnect平台中查看数据
Step 1 登录OceanConnect平台,点击“我的设备”进入设备列表页,根据deviceId选择对应注册的在线设备,单击进入。
Step 2 在设备详情页,选择”历史数据”项,即可看到已经上报且被解析后的json数据。
骑士智能科技M5310模块连接华为OC平台实现数据交互_第18张图片

至此,我们成功实现南向的NB设备与IoT平台实现数据交互,实验结束。不过,我们创建的profile和编解码插件都是在线上开发的,华为也提供了线下开发的指导资料,下次尝试在线下开发。
参考资料:
https://developer.huawei.com/ict/forum/thread-25005.html
https://developer.huawei.com/ict/forum/thread-20193.html#pid5485
https://developer.huawei.com/ict/forum/thread-47321.html

你可能感兴趣的:(NBIoT)