如何进行端到端开发? | 我的物联网成长记

雨花茶 2019-11-07

如何进行端到端开发? | 我的物联网成长记

作者 | 我是卤蛋 

【摘要】 自从华为物联网平台推出以来,很多开发者都在后台咨询小编设备如何上云等问题,我忍不住了,花了两天两夜,整理出“如何进行端到端开发”,帮助您快速了解设备上云全流程。

开始之前,先了解物联网平台的整体方案。使用物联网平台构建一个完整的物联网解决方案主要包括3部分:物联网平台、业务应用和设备。

---------------------------整体方案---------------------------

如何进行端到端开发? | 我的物联网成长记

  • 物联网平台:作为连接业务应用和设备的中间层,屏蔽了各种复杂的设备接口,实现设备的快速接入;同时提供强大的开放能力,支撑行业用户快速构建各种物联网业务应用。

  • 设备:可以通过固网、2/3/4G、NB-IoT、Wifi等多种网络接入物联网平台,并使用LWM2M/CoAP、MQTT协议、或ONVIF协议将业务数据上报到平台,平台也可以将控制命令下发给设备。

  • 业务应用:通过调用物联网平台提供的API,实现设备管理、数据上报、命令下发等业务场景。

因此,基于物联网平台去实现一个端到端的物联网解决方案时,需要在开发中心(测试环境)进行产品开发、在设备管理服务控制台(商用环境)进行上线和日常管理:

开发操作

开发说明

产品开发

开发者在进行设备接入前,基于开发中心进行相应的开发工作,包括平台侧开发、设备侧开发、应用侧开发、自助测试、产品发布,是真实设备接入到设备管理服务的前提条件。

上线(转商用)

基于设备管理服务提供的控制台,将真实设备接入到设备管理服务中,并对接用户开发的应用服务器,实现设备的远程监控和控制。

日常管理

真实设备接入后,基于设备管理服务提供的控制台或者API接口,进行日常的应用管理和设备管理。

---------------------------开发中心与设备管理服务的差异---------------------------

如上面讲到的,在实现物联网方案过程中,会使用到开发中心和设备管理服务,那这两个平台有啥区别呢?

开发中心

开发中心是基于设备管理服务提供的物联网一站式开发工具,帮助开发者快速进行Profile(产品模型)和编解码插件的开发,同时提供在线自助测试、产品发布等多种能力,端到端指引物联网开发,帮助开发者提升集成开发效率、缩短物联网解决方案建设周期。

设备管理服务

设备管理是在设备接入基础上,提供了更丰富完备的设备管理能力,简化海量设备管理复杂性,节省人工操作,提升管理效率。当用户在开通设备管理服务时,系统默认一起开通设备接入服务,即用户在使用设备管理服务时,包含设备接入服务的能力。

开发中心和设备管理服务有哪些差异?

  • 两者所在的物联网平台环境不一样

    开发中心所在的平台环境为测试环境,设备管理服务所在的平台环境为商用环境。两个环境的设备数据不能互通,已对接测试环境的设备/应用要迁移商用环境,需要在商用环境重新创建应用和注册设备,并修改设备/应用中平台的接入信息。

  • 两者的设备数量限制不一样

    开发中心单个项目(应用)下最多可注册20个设备,设备管理服务单个应用下最多可注册1000万个设备。在其他的平台能力上,两者保持一致,例如开发中心和设备管理服务使用同样的API,更多的平台能力使用限制请查看使用限制

  • 两者的计费策略不一样

    开发中心为免费使用,设备管理为付费使用,设备管理服务的具体计费策略请查看计费详情

开发中心和设备接入服务是否有联系?

开发中心是基于设备管理服务的物联网开发工具,在开发中心上开发的产品(Profile文件和编解码插件)只适用于设备管理服务,不能在设备接入服务中导入和使用。

---------------------------产品开发---------------------------

开发者在进行设备接入前,基于开发中心进行相应的开发工作,是真实设备接入到设备管理服务的前提条件。

开发操作

开发说明

平台侧的开发

主要包括Profile的开发和编解码插件的开发。编解码插件的开发仅针对上报数据为二进制码流格式的设备,对于上报数据为JSON格式的设备不需要开发编解码插件。

设备侧的开发

主要为设备与物联网平台的集成对接开发,包括设备接入物联网平台、业务数据上报和对平台下发控制命令的处理。

应用侧的开发

主要为业务应用与物联网平台的集成对接开发,包括API接口的调用、业务数据的获取和HTTPS证书的管理。

自助测试

自助测试提供了端到端的测试用例,帮助开发者自助完成产品的基础能力测试,如数据上报、命令下发等。旨在通过物联网检测技术帮助开发者发现自身产品中存在的缺陷或问题,缩短产品上市时间。

产品发布

如果开发中心已经对接产品中心,则开发者在完成产品的自助测试后,可以把产品发布到产品中心。可以申请公开发布或私有发布。

平台侧开发

如何进行端到端开发? | 我的物联网成长记

开发操作

开发说明

创建项目

项目是物联网平台提供物联网应用和设备的调测空间,您可以根据场景的不同创建不同项目空间分别调测。

创建产品

在物联网平台中,某一类具有相同能力或特征的设备的合集被称为一款产品。产品包含Profile(产品模型)、编解码插件、测试报告等资源,其中产品信息被记录在Profile中。

开发profile

Profile(即产品模型)是用来描述一款产品中的设备“是什么”、“能做什么”以及“如何控制该设备”的文件。在物联网平台集成对接中需要先创建Profile,因为Profile里面定义了设备上报的数据和应用服务器下发的命令包含了哪些字段。Profile的开发手段有在线开发和离线开发两种。

开发编解码插件

一款产品的设备上报数据时,如果“数据格式”为“二进制码流”,则该产品需要进行编解码插件开发;如果“数据格式”为“JSON”,则该产品下不需要进行编解码插件开发。

设备侧开发

如何进行端到端开发? | 我的物联网成长记

华为物联网平台支持终端设备直接接入,也可以通过工业网关或者家庭网关接入;支持多网络接入、原生MQTT协议接入、SDK接入,解决设备接入复杂多样化和碎片化难题,实现设备的快速接入,详见设备侧开发

  • 使用SDK接入:为了帮助设备快速连接到物联网平台,华为提供了Agent Lite SDK、Agent Tiny SDK和LiteOS SDK。支持TCP/IP协议栈的设备集成Agent Lite SDK或Agent Tiny SDK后,可以直接与物联网平台通信。不支持TCP/IP协议栈的设备例如蓝牙设备、ZigBee设备等需要利用网关将设备数据转发给物联网平台,此时网关需要事先集成Agent Lite SDK。 如果是智能设备,可以集成LiteOS操作系统,利用LiteOS与物联网平台通信。

  • 原生MQTT协议接入:支持设备通过MQTT原生协议接入。MQTT是一种基于发布/订阅范式的ISO标准消息协议,主要应用于计算能力有限,且工作在低带宽、不可靠的网络的远程传感器和控制设备,适合长连接的场景,如智能路灯等。

  • 使用模组接入:支持通过华为认证的Wifi、NB-IoT、2/3/4G模组直接接入物联网平台。模组厂商只需要将Agent Tiny SDK集成在现有的模组固件包中,这样模组就具备了接入华为物联网平台的能力。

应用侧开发

华为物联网平台面向全球各行各业提供物联网服务,并通过Restful API的形式对外开放物联网平台丰富的设备管理能力。应用开发人员基于API接口开发所需的行业应用,如智慧城市、智慧园区、智慧工业、车联网等行业应用,满足不同行业的需求。应用开发人员可以选择调用API接口、集成SDK两种方式进行应用服务器(简称为应用)的开发。具体详见应用侧开发

如何进行端到端开发? | 我的物联网成长记

---------------------------上线(转商用)---------------------------

当产品发布到产品中心后,我们在“开发中心”定义好的产品就可以在“设备管理服务”中使用了。由于开发中心所在的平台环境为测试环境,设备管理服务所在的平台环境为商用环境,两个环境的数据不能互通,已对接测试环境的设备/应用服务器要迁移商用环境。具体详见商用对接

如何进行端到端开发? | 我的物联网成长记

---------------------------云端日常管理---------------------------

真实设备接入后,用户就可以基于控制台或者API接口,进行日常的应用管理和设备管理。

如何进行端到端开发? | 我的物联网成长记

功能

简介

订阅推送

订阅:是指应用服务器通过调用物联网平台的API接口,向平台获取发生变更的设备业务信息(如设备注册、设备数据上报、设备状态等)和管理信息(软固件升级状态和升级结果)。

推送:是指订阅成功后,物联网平台根据应用服务器订阅的数据类型,将对应的变更信息推送给指定的URL地址。

授权应用

IoT平台支持应用授权操作,包括同一个用户下的不同应用之间的授权、两用户下的不同应用之间授权,且两应用之间可以相互授权,即被授权的可以通过控制台查看和操作授权应用下的所有设备,如创建规则、批量任务操作等。

数据上报

当设备完成和物联网平台对接后,一旦设备上电,设备基于在设备定义上的业务逻辑进行数据采集和上报,可以是基于周期或者事件触发。

命令下发

为能有效地对设备进行管理,设备的产品模型中定义了物联网平台可向设备下发的命令,应用服务器可以调用物联网平台开放的API接口向单个设备或批量设备下发命令,或者用户通过物联网平台直接向单个设备下发命令,配置或修改设备的服务属性值,以实现对设备的远程控制。

设备配置更新

物联网平台提供设备配置更新功能,即用户可通过控制台对单个设备或批量设备的设备属性值进行修改,满足用户频繁、快捷、方便的管理设备的诉求。

设备影子

设备影子是一个JSON文件,用于存储设备的在线状态、设备最近一次上报的设备属性、应用服务器期望下发的配置。每个设备有且只有一个设备影子,设备可以获取和设置设备影子以此来同步状态,这个同步可以是影子同步给设备,也可以是设备同步给影子。

规则引擎

指用户可以在物联网平台上可以对接入平台的设备设定相应的规则,在条件满足所设定的规则后,平台会触发相应的动作来满足用户需求。包含设备联动和数据转发两种类型。

群组与标签

群组是一系列设备的集合,用户可以对应用下所有设备,根据区域、类型等不同规则进行分类建立群组,以便处理对海量设备的批量管理和操作。

物联网平台支持定义不同的标签,并对设备打标签,通过标签,可以快速筛选设备。

设备监控

提供查看设备详情、设备状态管理、查看报表、查看操作记录、查看审计日志、告警管理、设备消息跟踪等设备监控与运维能力,提升设备的可维护性。

远程诊断

支持用户对接入的设备进行远程维护操作,快速定位问题及恢复业务,减少近端维护引入的高成本。当前支持的远程维护操作包括设备的运行日志收集、重启模组。

固件升级

用户可以通过OTA的方式对支持LWM2M协议的设备进行固件升级,升级协议为LWM2M协议。

软件升级

用户可以通过OTA的方式支持对LWM2M协议的设备进行软件升级,升级协议为PCP协议。

看到这,您了解如何玩转物联网平台了么,如果还有疑惑,没关系,我们有更详细的宝典,请从这里开始

关于华为物联网可参加学习免费课程视>>>>>《IoT七天开发训练营》或联系华为IoT小助手(微信号:huawei-iot)获取更多课程。