集团站切换校区

验证码已发送,请查收短信

复制成功
微信号:togogoi
添加微信好友, 详细了解课程
已复制成功,如果自动跳转微信失败,请前往微信添加好友
打开微信
图标

学习文章

当前位置:首页 > >学习文章 > >

{华为物联网}快速体验NB-IoT

发布时间: 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远程通信,也可以用在运行状态监控、故障分析处理、程序升级等环境中,通过虚拟串口,所有这一切只需要在办公室即可完成。

虚拟串口的运用领域十分广泛,不仅仅局限于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文件和编解码插件是一一对应的。


OceanConnect平台中查看数据· 

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中可以不包含这些文件。

编解码插件

南向设备

北向应用


上一篇: {华为HCIE-RS} License 的定义

下一篇: {华为物联网}华为物联网开发能力

十五年老品牌
微信咨询:togogoi 咨询电话:18922156670 咨询网站客服:在线客服

相关课程推荐

在线咨询 ×

您好,请问有什么可以帮您?我们将竭诚提供最优质服务!