使用开发者Portal体验NB-IoT全流程

38人阅读 评论(0) 收藏 举报
分类:

开发者Portal旨在帮助应用开发者和设备开发者快速进行线上开发、调试工作。
无码化编解码插件开发、一键式插件部署、南向设备模拟器,您可以通过简便的操作就来体验整个NB-IoT全流程。
利用开发者设备的profile和demo快速体验开发者portal详见帖子:
http://developer.huawei.com/ict/forum/forum.php?mod=viewthread&tid=25753&page=1&extra=#pid106399

1 准备资源

1.1 平台资源
申请开发者portal资源的方式:
提交MAR合作电子流,通过审批后,会下发开发者portal资源。提交MAR合作电子流请参考:
http://developer.huawei.com/ilink/esdk/download/HW_484292

1.2 资料参考
在开发Profile和编解码插件之前,建议您先了解下Profile文档和编写编解码插件的使用过程。
下载并查看如下的开发文档。

Profile开发指南:登录OceanConnect资源中心,下载“通用文档”下面的“生态集成开发集成介绍”文档。
编解码开发与升级指南:登录OceanConnect资源中心,下载“开发指南”下面的“公共事业集成指导”,查看文中的“编解码库开发与升级指南”。

2 开发Profile

设备的Profile文件是用来描述设备类型和设备服务能力的文件。定义了同一类设备具备的服务能力,属性,命令等。

Step 1 登录开发者Portal,单击“Profile开发>产品”,单击页面右上角的“自定义产品”,转至“产品模板”页面。

  • 您可以使用模板定义您的产品,单击产品模板右上角的“立即使用”,这里的参数需要根据您的设备进行定义。
  • 您也可单击右上角的“创建全新产品”,直接定义您的产品,这里以创建全新产品为例。
    这里写图片描述

Step 2 根据实际填写“设备类型”、“设备型号”、“厂商ID”、“厂商名称”等数据。单击“确定”,添加产品完成。
- 设备类型(DeviceType):指示设备的类型。下拉选择类型。这里以WaterMeter为例。
- 设备型号(Model):指示设备的型号。这里以NBIoTDevice为例。
- 厂商ID(ManufacturerId):指示设备的厂商Id。这里以HuaweiSZ为例。
- 厂商名称(manufacturerName):指示设备的厂商名称。这里以HuaweiSZ为例
这里写图片描述
Step 3 在产品详情页面单击“新建服务”,根据界面提示信息,增加基本信息,属性或命令,单击“保存”。
- 新增服务基本信息,服务的名称采用驼峰的命名方式,这里以Battery为例。描述可选,有多个服务就新增多条服务。
这里写图片描述
- 新增属性
属性名(propertyName):指示属性名称。这里以batteryLevel为例。
属性类型(dataType):指示数据类型。取值范围:int、float、datetime、string、jsonObject、array。这里以int类型为例。
上报数据时,复杂类型数据格式如下:
DateTime:yyyyMMdd’T’HHmmss’Z’如:20151212T121212Z
jsonObject:自定义json结构体,平台不理解只透传。
最小(min)/最大值(max):指示最小/最大值。仅当dataType为int、float时生效,逻辑大于等于/小于等于。
步长(step):指示步长。暂不使用,可填0即可。
单位(unit):指示单位,英文,取值根据参数确定。如:温度单位:“°C”;百分比单位:“%”。
长度(maxLength):指示字符串长度。仅当dataType为string、datetime、jsonObject、array时生效。
枚举值(enumList):如烟感属性activityStatus可有如下取值[ “STANDBY”, “RECORDING”, “LIVING” ]。
访问模式(method):指示访问模式。R:可读;W:可写;E可订阅。取值范围:R、RW、RE、RWE、null。
这里写图片描述
本例按照如上方法,创建三个属性,分别为batteryLevel,batteryThreshold和batteryStatus。
新增命令
命令名称:指示设备可以执行的命令。如门磁的Lock命令、摄像头的VIDEO_RECORD命令。这里以SET_DIVICE_LEVEL为例。
这里写图片描述
命令名与参数 共同构成一个完整的命令,在页面上单击“新增字段”。
这里写图片描述
各字段的说明和属性中的字段类似,这里不再赘述。各字段更详细的命名规则请参考“资料参考”中的Profile开发指南。

Step 4 【可选】单击产品详情右上角的“导出该产品Profile”,可以直接生成Profile文件并把文件导出至本地某个位置。
这里写图片描述
说明:若您自己线下编写的profile文件,则单击“Profile开发> 导入Profile”,可把已写好的Profile文档导入平台,如下图所示。
这里写图片描述

3 开发编解码插件

开发完Profile文件后,可以在界面上通过图形化的方式完成设备与平台之间的消息映射。在平台中预集成了编解码插件的模板,可以根据设备类型和接入协议在插件模板中选择模板修改开发编解码插件。

登录开发者Portal,单击“插件开发”,单击右上角的“添加插件”,转到“插件模板”页签,单击“查看”,您可以查看各个模板的内容。

若您的业务和模板中类似,可使用模板再根据实际来修改。
若您不需要使用模板,则可自己新建插件。下面以新建插件来说明如何开发编解码插件。使用模板的类似修改即可。
这里写图片描述
Step 1 单击页面右上角的“新建插件”,进入设计插件页面。
说明:您可以单击右上角的“新手指导”,查看插件的实现原理。

Step 2 新增消息。单击“新增消息”,输入消息的名称(这里以Battery为例)、描述和消息类型(包括数据上报、命令下发和命令下发响应)。
这里写图片描述
Step 3 添加字段。单击“添加字段”,添加上报数据的字段。名字:建议和profile文件中设置的保持一致。便于和profile文件中的字段进行对应。

数据类型:包括int8u,int16u,int24u,int32u,string,variablelength string,array,variant。与profile中的相对应。

长度:指示该字段占多少字节长度。若长度为1,则在上报码流时,这个字段占一位,即一个16进制的数值。本例均以长度为1为例。

默认值:该字段在码流中的参考值。
偏移值:当前字段到本条消息码流起始位置的字节数,比如设置为2-3,则这个字段在码流中的第2-3位。
说明:每个消息必须有消息地址域。地址域为标识唯一此消息唯一ID的字段,即唯一标识不同的消息。地址域的名称必须为messageId,且只有地址域的名称可以为messageId。
我们要模拟数据上报,命令下发的完整过程,需要创建“数据上报”、“命令下发”和“命令下发响应”三种类型的消息。
这里写图片描述
Step 4 导入Profile文件。在页面右侧“设备Profile”区域,单击“更多操作”下的“选择Profile”,选择上述第二章节中开发的Profile。
这里写图片描述
说明:若您需要修改Profile,则可单击“更多操作”下的“更换Profile”。

Step 5 建立profile属性、命令与消息的映射关系。根据自己定义的profile,来设计插件中的消息。通过拖拉服务中的属性或命令,与消息中的字段进行关联。属性对应于数据上报中的字段列表。有多个服务就新增多个消息。为便于理解,字段名称建议和属性名设置为相同。
注意,命令下发的消息名称必须和Profile中的相同。
这里写图片描述
这里写图片描述
Step 6 完成映射关系后,单击页面右上角的“部署”,部署成功后,系统会将您的设计结果自动生成编解码插件包。

4 注册设备

开发部署成功后,您可以将您的设备接入到IoT平台。
Step 1 登录开发者Portal,单击“我的设备”,进入设备列表页面。单击右上角的“注册设备”,转向注册设备页面,选择您需要注册设备的Profile。
这里写图片描述
Step 2 单击Profile,进入Profile详情页面,在页面底部填写设备名称和设备标识码,这里的设备名称和设备标识码均以HuaweiSZ为例,单击“注册”,完成设备的注册。

其中,在真实场景中,设备标识码为IMEI号。如果设备是在线状态,表示设备已经成功的接入到平台。
这里写图片描述
说明:可以单击设备后面的修改或删除按钮,对设备进行修改。

5 添加非NB设备模拟器(可选步骤)

您无需真实设备,通过模拟设备的Json消息来完成与北向应用的调试。若使用码流来模拟,则可跳过该步骤。

Step 1 登录开发者Portal,单击“模拟器 > 非NB设备模拟器”,进入非NB设备模拟器列表页面。单击右上角的“设备模拟器”,弹出“创建设备模拟器”的页面,如下图所示。
这里写图片描述
Step 2 选择您需要模拟的设备型号(即自己创建的设备),进入页面后,输入和“注册设备”章节注册的相同验证码(VerificateCode),这里即为HuaweiSZ。

Step 3 单击“创建”,完成创建您的设备模拟器。单击您创建的设备模拟器,进入详情页面,可以设置设备的状态为在线或离线,如下图所示。
这里写图片描述

6 上报数据

非NB设备模拟器
Step 1 单击“模拟器 > 非NB设备模拟器”,进入非NB设备模拟器列表页面。
Step 2 单击自己创建的设备模拟器,进入详情页面,单击需要上报数据的服务,输入各个字段的值(这里以batteryLevel取值1,batteryThreshold取值3,batteryStatus取值2为例)。如下图所示。
这里写图片描述
Step 3 选择发送模式(这里以手动发送模式为例)后,单击“发送”,则在页面右侧弹出发送数据的详细消息。如下图所示。
这里写图片描述
Step 4 单击“我的设备”,进入自己的设备详情页面,单击“历史数据”页签,可以看到上报的数据。此时,上报数据即成功。如下图所示。
这里写图片描述

NB设备模拟器(码流)

Step 1 单击“模拟器 > NB设备模拟器”,进入NB设备模拟器列表页面,单击“绑定设备”,在弹出框中输入第四章节注册设备时的验证码,单击“确定”即绑定设备。如下图所示。
Step 2 进入NB设备模拟器测试页面,输入十六进制码流00010203,单击“发送”,则在页面右侧弹出发送成功的消息。如下图所示。

本例中,一共上报4个字节,分别为“00”、“01”、“02”、“03”。其中,第一个字节“00”表示messageId,第二个字节“01”表示上报数据对应的“batteryLevel”字段,第三个字节“02”表示batteryThreshold字段,第四个字节“03”表示batteryStatus字段。这些内容与profile文件和编解码插件是一一对应的。
这里写图片描述
Step 3 单击“我的设备”,进入自己的设备详情页面,单击“历史数据”页签,可以看到上报的数据。此时,上报数据即成功。如下图所示。
这里写图片描述

7 命令下发

Step 1 单击“我的设备”,进入设备列表页面。单击设备右侧的命令下发图标,弹出命令下发界面,根据界面信息,选择命令,输入命令参数的值。如下图所示。
这里写图片描述
Step 2 单击“发送”,若发送成功,则会在页面右侧显示下发数据的详细消息。此时单击设备,查看历史命令,消息状态为“已送达”状态。如下图所示。
这里写图片描述

8 消息订阅

北向应用除了通过RESTful类型的数据查询接口,获取设备的当前数据和历史数据外,还可以通过消息订阅的方式来获取实时数据。

当南向设备上报数据到达平台时,平台将检索是否有订阅存在,如果存在,则向对应的callbackUrl推送POST消息。

消息订阅除了可以订阅消息外,还可以订阅设备绑定消息、设备删除消息、规则时间、命令响应等。更详细的可以参见API接口参考

下面详细介绍整个订阅流程,这里以获取设备数据为例进行介绍。
Step 1 首先要搭建服务器(这里以tomcat为例)。
配置https服务器具体步骤可参考:
http://developer.huawei.com/ict/forum/thread-25457.html

Step 2 写一个简单的RESTful接口webapp,部署到服务器,将服务器映射到公网,调试Post接口能调通。
tomcat+restful接收https推送消息和校验证书可参考如下帖子中:
http://developer.huawei.com/ict/forum/forum.php?mod=viewthread&tid=47157

Step 3 把Step1中制作好的CA证书(按照Step1中制作的证书为tomcat.pem)上传到IoT平台。登录开发者Portal平台,单击“对接信息”,单击“上传”,选择制作好的CA证书(这里为tomcat.pem),上传即可。
这里写图片描述

Step 4 调用订阅接口,订阅接口传入的callbackURL即部署的服务器地址(这里callbackurl:https://ip:port/RESTfulWS/rest/UserInfoService/subscriber1),平台会把消息推送到服务器上。

a. 下载北向LiteDemo并导入到Eclipse中:
http://developer.huawei.com/ict/cn/rescenter/CMDA_FIELD_OCEAN_CONNECT?developlan=Other
这里写图片描述
b. 修改全局参数。在Constant.java中设置平台的基本信息和callbackURL。具体修改如下:

BASE_URL:设置为OceanConnect的平台地址,如https://218.4.33.71:8743

APPID和SECRET:设置为应用的appID和密钥。

CALLBACK_BASE_URL:部署的服务器IP和端口号,如https://172.31.26.81:8743

DEVICE_APPID_CALLBACK_URL等地址为完整的callbackURL,这里为CALLBACK_BASE_URL+”RESTfulWS/rest/UserInfoService/subscriber1”。

订阅的消息类型有deviceAdded、deviceInfoChanged、deviceDataChanged等类型。可根据需要选择类型,这里以订阅设备数据变化(notifyType为deviceDataChanged)为例。
这里写图片描述
c. 调用订阅接口。右键单击SubscribeNotification.java文件,选择“Run As > Java Application”。若成功,则在控制台Console中会返回201,如下图所示:
这里写图片描述
Step 5 触发推送操作,此时我们上报数据,则在服务器日志中可以查看到推送的消息。
进入服务器log目录,输入如下命令:
tail -f catalina.out
则可以看到服务器中收到了推送消息,如下图所示:
这里写图片描述
从这里可以看到推送的数据和平台上或调用查询设备历史数据中的是一致的。
说明:如上只是简单的流程体验。如果使用过程中遇到问题需要咨询,或者发现开发者portal的问题请提单给华为开发人员 。提单地址:
https://devcenter.huawei.com

查看评论

.NET Framework给应用程序颁发许可证(中)

by Kenn Scribner翻译:邹建强编译许可证文件  在把所有许可证文件留下前,我应该提一下lc.exe。lc.exe或者说许可证编译器(license compiler),是一个工具,用于装...
  • ego
  • ego
  • 2003-09-19 00:01:00
  • 1422

物联网【无码化】体验NB-loT全流程

无 码化编解码插件开发、一键式插件部署、南向设备模拟器,您可以通过简便的操作就来体验整个NB-IoT全流程。对于大多数NB-IoT开发者来说,如果能在正式开发之前,快速体验NB-IoT的上报数据和命令...
  • piaoliuxiaoyujing
  • piaoliuxiaoyujing
  • 2018-04-16 16:58:14
  • 33

NB-IoT终端开发流程

NB-IoT终端开发流程
  • NBIoT
  • NBIoT
  • 2017-02-06 15:07:19
  • 2388

NB-IOT UE的小区接入过程

NB-IOT UE的小区接入过程如下:NPSS/NSSS/NPBCH的时频资源,可以参考:点击打开链接下面详细介绍一下MIB-NB/SIB1-NB的获取过程。MIB-NB传输在sharetechnot...
  • hzgdiyer
  • hzgdiyer
  • 2018-02-23 17:27:53
  • 220

NB-iot开发平台

我们设计了一款基于移远BC95的NB最小系统NB100,NB100包含了天线射频、供电、SIM卡座、ESD防护等电路。接上电源、串口即可使用。用户只需要注重上层应用,可以最快的速度推出NB产品!其实早...
  • prike
  • prike
  • 2018-01-08 23:40:15
  • 985

NB_IoT模块调试流程

  • 2017年08月16日 14:10
  • 157KB
  • 下载

Portal技术介绍

Portal技术介绍 目  录 Portal Portal简介 Portal扩展功能 Portal的系统组成 使用本地Portal服务器的Portal认证系统 系统组成 认...
  • lanmolei814
  • lanmolei814
  • 2014-11-13 23:04:11
  • 2114

wireshark解析NB-IoT注网流程

wireshark的新版本可以解析NB-IoT的信元消息,当然存储的消息格式需要先转换程wireshark可以分析的.pcap格式。通过wireshark的解析格式可以了解协议流程及各个信元的含义。 ...
  • DreamBitByBit
  • DreamBitByBit
  • 2017-11-27 23:50:07
  • 300

NB-IOT基础模型搭建思路

因为NB-IOT模型是在对LTE,LTE模块加入一些NB-IOT的协议以及对其物理层面进行改造,我们就能够得到一个相对简单的OPNET的模型。 从浅到深具体应在四个大的方面进行改造: 1.    ...
  • qq_18832565
  • qq_18832565
  • 2017-05-30 12:46:32
  • 1059

Java Web轻量级开发全体验.邓子云_源码

  • 2013年12月11日 11:56
  • 46.99MB
  • 下载
    个人资料
    等级:
    访问量: 4282
    积分: 95
    排名: 151万+
    文章存档
    最新评论