发布时间: 2018-03-02 10:53:38
整体结构

· 获取IoT平台资源,下载并激活SoftRadio软件。 · 通过SP Portal在IoT平台上创建北向应用,获取appID/secret。 · 编写设备Profile文件,并上传至IoT平台。 · 编写编解码插件,并上传至IoT平台。 · 编写北向应用,调用鉴权接口。 · 编写北向应用,调用注册直连设备。 · 编写北向应用,调用修改设备信息。 · 南向设备绑定上线。 · 调用北向应用其他接口完善功能,如消息订阅、命令下发。 · 南向设备上报数据。 详细参考 http://developer.huawei.com/ict/forum/thread-26163.html
准备资源 平台资源申请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_0065817579SoftRadioSoftRadio模拟模组+基站+核心网,只能运行在PC端。 版本:V100R002C00SPC001。 中文版下载地址 http://developer.huawei.com/ict/cn/rescenter/CMDA_FIELD_NB_IOT?developlan=Other 下载安装成功后,请根据软件配套的《SoftRadio用户指南》指引进行License申请,并加载激活。 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”
Step 2 单击右上角“导入”图标,上传文件时选中Profile资源文件 MultiSensor_eSDK_v01.zip,设备类型、厂家ID和设备型号无须修改,单击“上传”。
上传编解码插件至OceanConnect平台与MultiSensor_eSDK_v01.zip配套的编解码插件已上传至IoT平台,您可直接使用,无须重复上传。 注意:在后续业务开发过程中,您需要根据业务需要开发自己的编解码插件并上传至OceanConnect平台。 上线设备 注册设备至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)。
Step 3 单击“我的设备”,查看对应设备是否注册成功。如果注册成功,可以看到设备处于“OFFLINE”状态。

方法二:通过GUI Demo注册设备
Step 1 解压IoT_OceanConnect_North_GUI_APPDemo.zip(简称GUI Demo)压缩包,打开application文件夹,直接双击运行Demo.jar文件。
Step 2 根据华为下发的OceanConnect平台资源邮件内容填写对应配置项后,单击“Login”按钮登录。

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”状态。使用SoftRadio绑定、上线设备请参照《SoftRadio用户指南》第8章完成各项配置,配置项信息从资源邮件中获取。SoftRadio的具体使用方法还请参考文档,下文只针对关键信息进行配置说明。
IoT平台设置:请根据资源邮件中的“SoftRadio对接信息”项填写IP地址和端口号。
设备管理:添加设备时,设备信息需要与步骤3.1中注册设备时的信息保持一致,可以在Profile详情页查看。

- 终端注册验证码:填写注册设备时的设备标识码(TEST$_MS01);
- 设备厂商:厂商ID,填写“eSDK”;
- 设备类型:填写“MultiSensor”;
- 型号:填写“v01”;
- 通讯协议:取固定值“CoAP”。

提交后,“绑定状态”显示为“已注册”。 点击按钮,即可与OceanConnect平台中注册的设备绑定在一起,“绑定状态”显示为“已激活”。此时,在OceanConnect平台中可以看到刚注册的设备由“OFFLINE”变为“ONLINE”状态。

COM设置:
“COM编号”选择与设备进行通信的虚拟串口对,其他选项保持默认。COM信息提交后,设备管理界面中的“串口状态”由“未设置”变为“已激活”。

虚拟串口技术应用(1) 何为虚拟串口
虚拟串口是用操作系统的虚拟驱动技术产生的串口(COM口),相对于计算机本身的硬件串口(COM1等)来说虚拟串口并不对应一个物理上的串口,但是计算机应用软件可以像硬件串口一样地使用虚拟串口,对于串口软件来说虚拟串口和硬件串口并没有区别。
(2) 虚拟串口的应用场景
在很多应用环境中,终端设备的管理、通信等接口普遍为串行接口方式,这些接口通常用于本地数据通信。随着通信网络建设的飞速发展和以太网技术的普及,更多跨网、跨地区的数据通信需求逐渐增加,传统的串口通信方式已无法适应新的用户需求和传输网络环境,但是大量的工控设备、复式终端等仍然采用串口通信方式,并且会继续使用很长时间,为了使这些基于串口的设备能够适应新的网络环境,一种有效的方式是采用虚拟串口以及串口-网络转换模块配合,实现串口设备信息的网络传输。这样既能够方便的解决串口终端设备的网络通信问题,又极大程度的保护了用户的原有投资。
(3) 虚拟串口的应用实例对比
可编程序控制器(PLC)是目前广泛运用于工业自动化的器件,通常情况,将一条数据电缆连接于PLC和主机的串口(例如COM1)之间,编程软件会通过串口找到下位设备(PLC),从而完成对PLC的程序写入或运行监控。在这里,COM1是计算机的一个实际的串口;当PLC与电脑相隔甚远(设备所在地与制造商之间的距离),我们将无法使用通常的方式来进行上述操作。为此,我们让主机与PLC之间通过Intenet完成通讯,PLC端需要安装一只无线远程模块,主机使用虚拟串口通过Intenet对远程模块收发数据;而PLC则使用远程模块通过Intenet对主机收发数据。下图为以上两种情况的对比。

虚拟串口的运用领域十分广泛,不仅仅局限于PLC远程通信,也可以用在运行状态监控、故障分析处理、程序升级等环境中,通过虚拟串口,所有这一切只需要在办公室即可完成。
数据上报 SoftRadio中发送数据 在SoftRadio中,可以直接发送AT命令模拟设备上报数据,具体操作如下: Step 1 在“设备管理”页面,单击按钮进入“信令跟踪”页面。 Step 2 在“发送AT命令”后的文本框中输入“AT+NMGS=5,00012E1F63”,点击“发送”按钮。
发送成功后,可以在“信令跟踪”窗口看到设备、SoftRadio与OceanConnect平台之间的信令交互过程。

如果编解码插件中写了OceanConnect平台对上报数据的应答,则数据发送成功后会自动获取到应答数据(如截图中的“Payload:01”)。 上报数据的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文件和编解码插件是一一对应的。
Step 1 登录OceanConnect平台,点击“我的设备”进入设备列表页,根据deviceId选择对应注册的在线设备,单击进入。 Step 2 在设备详情页,选择”历史数据”项,即可看到已经上报且被解析后的json数据。 在实际应用中,数据到达OceanConnect平台后,可以通过两种方式在北向应用服务器中接收数据: 1. 调用数据查询类接口,查询OceanConnect平台中缓存的数据。 2. 调用订阅接口,设置好推送地址,数据到达OceanConnect平台后会按照既定的IP地址主动将数据推送至北向应用服务器。 命令下发 GUI Demo中下发命令 Step 1 登录GUI Demo。 Step 2 在“Module Choose”选项框中,“Solution”选择“NB-IoT”,“Module”选择“Command Manager”。 在“Post Asyne Command”选项框中,输入deviceId,单击“Get Command”按钮,获取该deviceId对应设备所具备的服务和命令。


说明:这些服务和命令是在profile中定义好的。
Step 3 设置具体参数,选择需要下发的服务和命令后,单击“Post Command“。各参数含义及设置方法如下:
Service:设备提供的服务ID,只能从下拉框中选择。以“Temperature“为例。
Command:该服务所具备的命令,只能从下拉框中选择。选定后会出现该命令可选的参数名(如Period或Value)。以“HIGH_TEMPERATURE_WARNING“为例,参数选择”Value”。
Value:参数名对应的参数值。以设置“50“为例。
Expire Time:命令的超期时间,单位为秒。如果在设置时间内,命令还缓存在平台没有下发就会超期作废。以设置“200“为例。

OceanConnect平台中查看命令状态
Step 1 登录OceanConnect平台,在设备详情页的“历史命令“项中,可以看到刚下发的命令处于“等待”状态。此时需要上报一条数据模拟激活设备,命令才能下发。

Step 2 在SoftRadio中上报一条数据:AT+NMGS=5,00012E1F63。此时刷新历史命令,可以看到命令状态切换为“已送达”,表明命令已下发。

在SoftRadio中同时能看到命令下发经编解码插件编码后的码流(如截图中的“Payload:0001013200”)。

着手开发在利用Demo熟悉数据上报和命令下发流程,并理解业务后,可以着手进行自身业务的开发和集成。 主要需要开发的四大组件包括:profile,编解码插件,南向设备,北向应用。具体开发方法和参考文档、Demo请查阅:http://developer.huawei.com/ict/forum/thread-19827.html 在Demo体验或实际开发过程中,遇到任何技术问题,建议通过以下两种途径寻求帮忙,都会有专业的华为技术人员帮您解答。 1. 在论坛发帖提问。 2. 至https://devcenter.huawei.com提单跟踪。profilehttp://developer.huawei.com/ict/cn/doc/iot_devg_profile/index.html/zh-cn_topic_0036541424 设备的Profile文件是用来描述一款设备是什么、能做什么以及如何控制该设备的文件。该文件会被上传到华为IoT平台。
1. 设备能力 (Device Capability): 描述一款设备的能力特征,包括设备类型、厂商、型号、协议类型名称以及提供的服务类型。 如上图:彩灯的制造厂商:aeotec(制造商ID为0086),型号(0203-0062), 协议类型(z-wave) 其服务包括:开关(Swtich), 亮度(Brigthness), 颜色(Color),其中亮度为主服务(Master), 开关为必选服务(Mondatory),颜色为可选服务(Optional). 设备能力描述json文件固定命名devicetype-capability.json, { "devices": [ { "manufacturerId": "eSDK", "manufacturerName": "eSDK_Huawei", "model": "v01", "protocolType": "CoAP", "deviceType": "MultiSensor", "serviceTypeCapabilities": [ { "serviceId": "Humidity", "serviceType": "Humidity", "option": "Master" }, { "serviceId": "Temperature", "serviceType": "Temperature", "option": "Master" }, { "serviceId": "Battery", "serviceType": "Battery", "option": "Master" } ] } ] } 2. 服务(Service): 设备具有的某项服务(也可以理解为物理设备的功能模块或者虚拟设备提供的服务,如一个系统提供的天气预报服务),包括命令和属性。 如上图: 彩灯(Light Bulb)有三个服务(service),开关(Switch),亮度(Brightness),颜色(Color); 插座(Socket)有一个服务,开关(Switch); 其中,开关服务有SWITCH ON,OFF命令,有当前开关状态status (ON, OFF)等。 服务能力描述json文件固定命名servicetype-capability.json; { "services": [ { "serviceType":"Temperature", "description": "Temperature", "commands": [ { "commandName": "SET_REPORT_PERIOD_TEMPERATURE", "paras": [ { "paraName": "Period", "dataType": "int", "required": true, "min": 0, "max": 200, "step": 1, "maxLength": 10, "unit": null, "enumList": null } ], "responses": [ { "responseName": "SET_REPORT_PERIOD_TEMPERATURE_RSP", "paras": [ { "paraName": "result", "dataType": "int", "required": true, "min": -1000000, "max": 1000000, "step": 1, "maxLength": 10, "unit": null, "enumList": null } ] } ] }, { "commandName": "HIGH_TEMPERATURE_WARNING", "paras": [ { "paraName": "Value", "dataType": "int", "required": true, "min": 0, "max": 200, "step": 1, "maxLength": 10, "unit": null, "enumList": null } ], "responses": [ { "responseName": "HIGH_TEMPERATURE_WARNING_RSP", "paras": [ { "paraName": "result", "dataType": "int", "required": true, "min": -1000000, "max": 1000000, "step": 1, "maxLength": 10, "unit": null, "enumList": null } ] } ] } ], "properties":[ { "propertyName": "TemperatureCur", "dataType": "int", "required":true, "min":0, "max":100, "step":1, "maxLength":null, "method":"R", "unit":"%", "enumList":null }, { "propertyName": "TemperatureMaxToday", "dataType": "int", "required":true, "min":0, "max":100, "step":1, "maxLength":null, "method":"R", "unit":"%", "enumList":null }, { "propertyName": "TemperatureMinToday", "dataType": "int", "required":true, "min":0, "max":100, "step":1, "maxLength":null, "method":"R", "unit":"%", "enumList":null } ] } ] } 注意:在一些profile样例中您可能遇到命名为devicetype-display.json或servicetype-display.json的文件,这些文件是用于智慧家庭领域的一些场景中的,如果华为人员与您交流方案的时候没有涉及到,您的profile中可以不包含这些文件。 编解码插件 南向设备 北向应用
下一篇: {华为物联网}华为物联网开发能力