发布时间: 2018-04-01 09:32:38
准备资源
平台资源 申请OceanConnect平台资源的方式有两种: 1. 提交MAR合作电子流,通过审批后,在审批意见中会下发OceanConnect平台资源的获取方式。提交MAR合作电子流请参考:http://developer.huawei.com/ilink/esdk/download/HW_484292 2. 预约远程实验室。预约远程实验室操作可参考:http://developer.huawei.com/ict/cn/doc/IoT-Platform-North-HelloWorld/index.html/zh-cn_topic_0065817579 Profile文件Demo MultiSensor_eSDK_v01.zip,请下载附件后上传至OceanConnect平台使用,无须修改。 编解码插件Demo 与MultiSensor_eSDK_v01.zip配套的编解码插件已由华为人员上传至OceanConnect平台,可直接使用 ,无须关注。 GUI Demo 模拟北向应用。下载地址:https://github.com/Huawei/IoT_OceanConnect_North_GUI_APPDemo 虚拟串口工具 虚拟串口——VPSD,可自行百度下载。作用及使用方法参考:http://developer.huawei.com/ict/forum/thread-19237.html 上传开发组件 上传profile文件至OceanConnect平台 https://117.78.47.187:8093/#/login 将已下载的profile文件MultiSensor_eSDK_v01.zip上传至OceanConnect平台。具体方法如下: Step 1 使用邮件中的“平台Portal链接”和“登录账号/密码”信息登录OceanConnect平台,选择菜单“Profile开发 > 导入Profile”。 此步骤目的是为了告诉OceanConnect会有哪个设备连接上它,profile是描述了设备和服务的信息
Step 2 单击右上角“导入”图标,上传文件时选中Profile资源文件 MultiSensor_eSDK_v01.zip,设备类型、厂家ID和设备型号无须修改,单击“上传”。
上传编解码插件至OceanConnect平台 与MultiSensor_eSDK_v01.zip配套的编解码插件已上传至IoT平台,您可直接使用,无须重复上传。 注意:在后续业务开发过程中,您需要根据业务需要开发自己的编解码插件并上传至OceanConnect平台。 注册设备 以下提供两种注册设备的方法,通过GUI Demo注册的方法适合所有平台,界面化注册只适合开发者Portal平台,请根据平台资源情况择其一参考。 方法一:通过OceanConnect平台注册设备 http://developer.huawei.com/ict/forum/thread-25749.html Step 1 登录OceanConnect平台,单击“我的设备 > 注册设备”,即可看到应用下所有已上传的Profile,单击选中需要注册设备对应的Profile。 Step 2 在Profile详情页,填写“设备名称”和“设备标识码”,单击“注册”按钮注册设备。 设备名称:用于区分不同设备,名称可自定义(如MultiSensor-01)。 设备标识码:设备唯一标识。使用SoftRadio对接时,可自行定义“TEST$_XXXX”格式的注册码。“TEST$_”之后可以是数字、字母和特殊符号或其组合(如TEST$_MS01)。 注册设备成功后返回的设备ID和PSK码请牢记。 Step 3 单击“我的设备”,查看对应设备是否注册成功。如果注册成功,可以看到设备处于“OFFLINE”状态。 方法二:通过GUI Demo注册设备 Step 1 解压IoT_OceanConnect_North_GUI_APPDemo.zip(简称GUI Demo)压缩包,打开application文件夹,直接双击运行Demo.jar文件。 Step 2 根据华为下发的OceanConnect平台资源邮件内容填写对应配置项后,单击“Login”按钮登录。
注意:如果Demo.jar文件无法打开,请确认本机是否配置了JDK开发环境。
Step 3 在“Module
Choose”选项框中,“Solution”选择“NB-IoT”,“Module”选择“Device Manager”。
Step 4 在“Register Direct Device”框中填写各参数。各参数含义及设置方法如下:
Node ID:设备唯一标识。使用SoftRadio对接时,可自行定义“TEST$_XXXX”格式的注册码。“TEST$_”之后可以是数字、字母和特殊符号或其组合(如TEST$_MS01)。
Verify Code:与Node ID保持一致。(同为TEST$_MS01)。
Time out:设备注册至平台的过期时间,单位为秒。真实设备必须在设置的时间内上线,否则会因过期而被IoT平台删除。建议直接填写“0”(设备不会过期)。
Step 5 单击“Register”按钮注册设备至OcaenConnect平台。
注册成功后会返回deviceId。deviceId是OcaenConnect平台对于设备的唯一标识,请妥善保存,以备调用后续接口时使用。
Step 6 在“Modify Device Info”框中,根据Profile文件中的信息,按照以下要求填写各参数后,单击“Modify”按钮设置设备信息,并保存至IoT平台。
Device ID:注册直连设备时返回的deviceId。固定值。
Manufacturer Id:与Profile文件中的manufacturerId保持一致。填写“eSDK”。
Manufacturer Name:与Profile文件中的manufacturerName保持一致。填写“eSDK_Huawei”。
Device Type:与Profile文件中的deviceType保持一致。填写“MultiSensor”
Model:设备型号 v01
Protocol Type:与Profile文件中的protocolType保持一致。NB-IoT方案统一填写“CoAP”。
说明:如果修改设备信息成功,可以在OcaenConnect平台中看到设备处于“OFFLINE”状态。
终端入网
实现终端入网,需要在SSCOM中通过一系列AT指令来控制NB模组。SSCOM中的各项设置说明如下:
串口号:选择与NB模组进行通信的实际物理com口,并确保打开串口。
波特率:选择9600。NB模组内置的华为NB芯片仅支持波特率9600。
发送AT指令时确保勾选“发送新行”,不勾选“DTR”和“RTS”。
其他参数保持默认。
终端入网的详细步骤如下所示:
Step 1:终端上电,执行“AT+NRB”复位终端。如果返回OK,表示终端正常运行。
Step 2:执行“AT+CFUN=0”关闭功能开关。如果执行成功,返回OK。
Step 3:执行“AT+NTSETID=1,863703032164886”设置设备ID。设备ID为NB模组的IMEI号,如果执行成功,返回OK。
Step 4:执行“AT+NCDP= 117.78.47.187, 5683”设置需要对接IoT平台的地址,端口为5683。如果执行成功,返回OK。
Step 5:执行“AT+CFUN=1”开启功能开关。如果执行成功,返回OK。
Step 6:执行“AT+NBAND=5”设置频段。如果执行成功,返回OK。频段信息可以咨询NB模组厂商。
Step 7:执行“AT+CGDCONT=1,“IP”,“APN”设置核心网APN。如果执行成功,返回 OK。核心网APN可联系运营商(与运营商网络对接时)或者OpenLab负责人(与OpenLab网络对接时)进行获取。(这一步可以不用,自动入网)
Step 8:执行“AT+CGATT=1”进行终端入网。如果执行成功,返回OK。
Step 9:执行“AT+CGPADDR=0”查询终端是否获取到核心网分配的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数据。
在实际应用中,数据到达OceanConnect平台后,可以通过两种方式在北向应用服务器中接收数据:
1. 调用数据查询类接口,查询OceanConnect平台中缓存的数据。
2.
调用订阅接口,设置好推送地址,数据到达OceanConnect平台后会按照既定的IP地址主动将数据推送至北向应用服务器。
6 命令下发
Step 1 解压IoT_OceanConnect_North_GUI_APPDemo.zip(简称GUI Demo)压缩包,打开application文件夹,直接双击运行Demo.jar文件。
Step 2 根据华为下发的OceanConnect平台资源邮件内容填写对应配置项后,单击“Login”按钮登录。
注意:如果Demo.jar文件无法打开,请确认本机是否配置了JDK开发环境。 Step 3 在“Module Choose”选项框中,“Solution”选择“NB-IoT”,“Module”选择“Command Manager”。 在“Post Asyne Command”选项框中,输入deviceId,单击“Get Command”按钮,获取该deviceId对应设备所具备的服务和命令。
说明:这些服务和命令是在profile中定义好的。 Step 4 设置具体参数,选择需要下发的服务和命令后,单击“Post Command“。各参数含义及设置方法如下: Service:设备提供的服务ID,只能从下拉框中选择。以“Temperature“为例。 Command:该服务所具备的命令,只能从下拉框中选择。选定后会出现该命令可选的参数名(如Period或Value)。以“HIGH_TEMPERATURE_WARNING“为例,参数选择”Value”。 Value:参数名对应的参数值。以设置“50“为例。 Expire Time:命令的超期时间,单位为秒。如果在设置时间内,命令还缓存在平台没有下发就会超期作废。以设置“200“为例。 Step 5 登录OceanConnect平台,在设备详情页的“历史命令“项中,可以查看刚下发的命令状态。分为两种情况: 1) 如果此时NB模组处于connect态,命令会立即下发,命令状态为“已送达”。 2) 如果此时NB模组处于非connect态,命令会缓存下发,命令状态为“等待”。这种情况下,需要上报一条数据激活设备,才能收到下发的命令。 Step 6 参照“5.1 SSCOM中发送数据“,发送一条AT命令:AT+NMGS=5,00012E1F63,此时刷新历史命令,可以看到命令状态切换为“已送达”,表明命令已下发。