[干货分享] 【零代码】利用已有Demo快速体验NB-IoT全流程(NB模组篇) 【转】

对于大多数NB-IoT开发者来说,如果能在正式开发之前,快速体验NB-IoT的上报数据和命令下发流程,有利于加深对华为NB-IoT解决方案的理解,对于后续的开发、调试工作将是事半功倍的。

按照本帖的操作流程指导,开发者可以利用已有Demo快速接入华为OceanConnect平台,零代码体验NB-IoT的数据上报和命令下发全流程。
基于模组进行NB-IoT业务流程体验,要求具备以下条件:
1. 已购买NB模组,对硬件有一定的了解。
2. 调试地有NB网络覆盖。


声明:由于利用NB模组调试涉及网络等不确定性问题,定位起来较为困难。如果在操作过程中无法确保入网成功,可提供模组日志给华为开发人员帮您排查。


1 准备资源

1.1 平台资源
申请OceanConnect平台资源的方式:https://www.huaweicloud.com/product/iot.html
1

1.2 NB模组
需自行向NB模组厂商购买。

目前NB-IOT模组(集成华为NB-IOT芯片)由两家合作伙伴提供,分别是上海移远和杭州利尔达。您可以直接向他们咨询获取模组,详细规格信息可以访问对应网站。
移远:http://www.quectel.com/cn/product/list/LPWAIoTModule.htm
利尔达: http://www.lierda.com/product/id/94/list.html

1.3 SIM卡
核心网注册的SIM卡一张,找运营商获取。

1.4 Profile文件Demo
MultiSensor_eSDK_v01.zip,请下载附件后上传至OceanConnect平台使用,无须修改。

1.5 编解码插件Demo
与MultiSensor_eSDK_v01.zip配套的编解码插件已由华为人员上传至OceanConnect平台,可直接使用 ,无须关注。

1.6 GUI Demo
模拟北向应用。
下载&使用方法:https://bbs.huaweicloud.com/forum/thread-13266-1-1.html 
1.7 串口助手
串口助手——SSCOM,可自行百度下载。

NB-IoT方案,创建应用时,以下选项不能有误:

  • “所属行业”必须选择“公用事业(NB-IoT)”。

  • “关联API包”必须勾选“基础API包”和“公用事业(NB-IoT)API包”,建议全部勾选。

  • “应用能力”必须选择“规则引擎”。

注意:
1. 如果下发OceanConnect资源邮件时,系统已创建好应用,可直接使用。
2. 如果创建应用时以上某项选择错误,需要删除应用后重新创建,修改无效。
 注册设备至平台
2 上传开发组件
 
2.1 上传profile文件至OceanConnect平台

将已下载的profile文件MultiSensor_eSDK_v01.zip上传至OceanConnect平台。具体方法如下:

Step 1 使用邮件中的“平台Portal链接”和“登录账号/密码”信息登录OceanConnect平台,选择菜单“Profile开发 > 导入Profile”。
图片.png
 
Step 2 单击右上角“导入”图标,上传文件时选中Profile资源文件MultiSensor_eSDK_v01.zip,设备类型、厂家ID和设备型号无须修改,单击“上传”。
图片.png
 
2.2 上传编解码插件至OceanConnect平台
与MultiSensor_eSDK_v01.zip配套的编解码插件已上传至IoT平台,您可直接使用,无须重复上传。
注意:在后续业务开发过程中,您需要根据业务需要开发自己的编解码插件并上传至OceanConnect平台
 
3 注册设备

Step 1 登录OceanConnect平台,单击“我的设备 > 注册设备”,即可看到应用下所有已上传的Profile,单击选中需要注册设备对应的Profile。
图片.png
 
Step 2 在Profile详情页,填写“设备名称”和“设备标识码”,单击“注册”按钮注册设备。


  • 设备名称:用于区分不同设备,名称可自定义(如MultiSensor-02)。
  • 设备标识码:设备唯一标识。使用NB模组对接时,填写模组的IMEI号码。IMEI号为15位数,一般以86开头,贴于NB模组标签上,或可通过AT+CGSN=1指令查询得到。
    图片.png

    注册设备成功后返回的设备ID和PSK码请牢记。


Step 3 单击“我的设备”,查看对应设备是否注册成功。如果注册成功,可以看到设备处于“OFFLINE”状态。

图片.png


4 终端入网

实现终端入网,需要在SSCOM中通过一系列AT指令来控制NB模组。SSCOM中的各项设置说明如下:

  • 串口号:选择与NB模组进行通信的实际物理com口,并确保打开串口。

  • 波特率:选择9600。NB模组内置的华为NB芯片仅支持波特率9600。

  • 发送AT指令时确保勾选“发送新行”,不勾选“DTR”和“RTS”。

  • 其他参数保持默认。

图片.png
终端入网的详细步骤如下所示:
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平台的地址,端口为5683。如果执行成功,返回OK。 
Step 5:执行“AT+CFUN=1”开启功能开关。如果执行成功,返回OK。 
Step 6:执行“AT+NBAND=频段”设置频段。如果执行成功,返回OK。频段信息可以咨询NB模组厂商。 
Step 7:执行“AT+CGDCONT=1,“IP”,“APN”设置核心网APN。如果执行成功,返回 OK。核心网APN可联系运营商(与运营商网络对接时)或者OpenLab负责人(与OpenLab网络对接时)进行获取。
Step 8:执行“AT+CGATT=1”进行终端入网。如果执行成功,返回OK。 
Step 9:执行“AT+CGPADDR”查询终端是否获取到核心网分配的IP地址,如果获取到IP地址,表示终端入网成功。 
Step 10:执行“AT+NNMI=1”设置下行数据通知功能,如果执行成功,返回OK。

5 数据上报
 
5.1 串口工具中上报数据
执行“AT+NMGS=5,00012E1F63”发送上行数据,如果上行数据发送成功,返回OK。由于设置了 “AT+NNMI=1”,如果编解码插件中写了OceanConnect平台对上报数据的应答,则上行数据发送成功后会自动获取应答数据。

上报数据的AT命令为:AT+NMGS=5,00012E1F63。具体解析如下:

1.     AT+NMGS=N,XXXXXXXXXX为上报数据的AT命令格式,其中“N”表示一共上报几个字节,后面为具体的上报字节内容,以十六进制字符串表示。这些需要提前在编解码插件中写好。
2.     本例中,一共上报5个字节,分别为“00”、“01”、“2E”、“1F”、“63”。其中,第一个字节“00”表示上报数据,第二个字节“01”表示上报数据对应的serviceId为Humidity(湿度),第三个字节“2E”表示HumidityCur(当前湿度),第四个字节“1F”表示HumidityMinToday(当天湿度最小值),第五个字节“63”表示HumidityMaxToday(当天湿度最大值)。这些内容与profile文件和编解码插件是一一对应的。

由于本例中的编解码插件写了上报数据应答,在上报数据成功后会收到“+NNMI 1,01”的应答。

5.2 OceanConnect平台中查看数据
 
Step 1 登录OceanConnect平台,点击“我的设备”进入设备列表页,根据deviceId选择对应注册的在线设备,单击进入。
Step 2 在设备详情页,选择”历史数据”项,即可看到已经上报且被解析后的json数据。
图片.png
 
在实际应用中,数据到达OceanConnect平台后,可以通过两种方式在北向应用服务器中接收数据:
1.     调用数据查询类接口,查询OceanConnect平台中缓存的数据。

2.     调用订阅接口,设置好推送地址,数据到达OceanConnect平台后会按照既定的IP地址主动将数据推送至北向应用服务器。

6 命令下发

 

Step 1 解压IoT_OceanConnect_North_GUI_APPDemo.zip(简称GUI Demo)压缩包,打开application文件夹,直接双击运行Demo.jar文件。

 
Step 2 根据华为下发的OceanConnect平台资源邮件内容填写对应配置项后,单击“Login”按钮登录。
图片.png
注意:如果Demo.jar文件无法打开,请确认本机是否配置了JDK开发环境。
 
Step 3 在“Module Choose”选项框中,“Solution”选择“NB-IoT”,“Module”选择“Command Manager”。 在“Post Asyne Command”选项框中,输入deviceId,单击“Get Command”按钮,获取该deviceId对应设备所具备的服务和命令。
图片.png说明:这些服务和命令是在profile中定义好的。

 

Step 4 设置具体参数,选择需要下发的服务和命令后,单击“Post Command“。各参数含义及设置方法如下:
  •    Service:设备提供的服务ID,只能从下拉框中选择。以“Temperature“为例。
  •   Command:该服务所具备的命令,只能从下拉框中选择。选定后会出现该命令可选的参数名(如Period或Value)。以“HIGH_TEMPERATURE_WARNING“为例,参数选择”Value”。

  •   Value:参数名对应的参数值。以设置“50“为例。

  •   Expire Time:命令的超期时间,单位为秒。如果在设置时间内,命令还缓存在平台没有下发就会超期作废。以设置“200“为例。
    图片.png

 
Step 5 登录OceanConnect平台,在设备详情页的“历史命令“项中,可以查看刚下发的命令状态。分为两种情况:
1) 如果此时NB模组处于connect态,命令会立即下发,命令状态为“已送达”。
2) 如果此时NB模组处于非connect态,命令会缓存下发,命令状态为“等待”。这种情况下,需要上报一条数据激活设备,才能收到下发的命令。
Step 6 参照“5.1 SSCOM中发送数据“,发送一条AT命令:AT+NMGS=5,00012E1F63,此时刷新历史命令,可以看到命令状态切换为“已送达”,表明命令已下发。

关于IoT平台的各命令状态,请参阅:https://bbs.huaweicloud.com/forum/thread-13244-1-1.html 

7 着手开发

在利用Demo熟悉数据上报和命令下发流程,并理解业务后,可以着手进行自身业务的开发。

主要需要开发的四大组件包括:profile,编解码插件,南向设备,北向应用。具体开发方法和参考文档、Demo请查阅:https://support.huaweicloud.com/devg-IoT/iot_02_3003.html

在Demo体验或实际开发过程中,遇到任何技术问题,建议通过论坛寻求帮忙,都会有专业的华为技术人员帮您解答。



8 附件

MultiSensor_eSDK_v01.zip




MultiSensor_eSDK_v01.zip 3.73 KB,下载次数:41