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

作者 | 我是卤蛋

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

开始之前,先了解物联网平台的整体方案。使用物联网平台构建一个完整的物联网解决方案主要包括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)获取更多课程。

原文地址:https://www.cnblogs.com/hwiot/p/11809937.html

时间: 2024-10-30 16:26:41

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

【我的物联网成长记3】如何开发物联网应用?【华为云技术分享】

[摘要] 物联网应用是设备管理.故障监测.数据分析的重要工具.本文介绍如何基于物联网平台开发应用,包括API.SDK和图形化开发三种方式. -------------------整体方案------------------- 物联网应用是企业和开发者进行设备管理.告警&故障监测.业务监控.数据分析的重要工具.物联网平台屏蔽了设备接入的复杂性和协议的差异性,解耦应用与设备,为上层应用提供统一格式的数据,简化终端厂商开发的同时,也让应用提供商聚焦于自身的业务开发.基于华为物联网平台的应用开发方案如下

菜鸟窝React Native 系列教程-1.移动端开发趋势与未来

菜鸟窝React Native 系列教程-1.移动端开发趋势与未来 课程持续更新中..... 我是RichardCao,现任新美大酒店旅游事业群的Android Developer.如果你也有兴趣录制RN视频,请加入下面QQ群找我. 下载地址:https://pan.baidu.com/s/1c1XmE56 密码:shhw 首发地址:菜鸟窝-ReactNative学习板块 交流QQ群:576089067 课程目录:菜鸟窝React Native 系列教程

WIFI物联网平台微信端开发分享

本文由企鹅圈原创成员Hunter_Zhu贡献. 本篇文章是基于近期一个项目微信端开发过程的一个总结.文中主要介绍了云智易平台下微信端开发的流程.该平台提供的主要功能以及此次H5开发使用到的一些UI组件.能够帮助企鹅仔高速对该平台微信开发有个了解. 本文介绍的微信硬件物联网开发思路不局限于某个平台.对市场上全部的平台,如机智云也是适用的,特此说明. 一.创建微信应用,配置微信server 在云智易开发平台中,开发人员须要在应用管理中创建一个微信应用,填写微信公众号的基本信息:APPID, APPS

一起学Google Daydream VR开发,快速入门开发基础教程一:Android端开发环境配置一

原文因涉及翻墙信息,被强制删除,此文为补发! 准备工作 进入Google Daydream开发者官网,开启准备工作,官网地址:https://vr.google.com/daydream/developers/ -------------------------------------------------------------------------------------------------------------------- Google Daydream开发者网址: https

移动端开发的知识系统介绍

移动端开发1. 移动端适配:http://suqing.iteye.com/blog/1982733http://www.douban.com/note/261319445/ http://www.woshipm.com/ucd/150207.html<meta name="screen-orientation" content="portrait"><!-- 强制竖屏 --><meta name="x5-orientatio

移动端开发用touch事件还是click事件

前端开发现在包含了跨浏览器,跨平台(不同操作系统)和跨设备(不同尺寸的设备)开发. 在移动开发的过程中,到底选取touch事件还是click事件?对了,请不要鄙视click,click在移动端开发用着也是不错的. 首先,我先说一下touch事件在开发中存在的两个问题: 1.touch事件在某些场景下存在点击穿透的问题. 2.touchstart事件时触摸屏幕就会触发,touchend事件是手指离开屏幕就会触发,而有时候,我们仅仅是只想滑动屏幕,却会触发这两个事件. 1问题的原因:移动端事件触发的

移动端开发适配总结

移动端开发适配2种方案总结 针对移动端适配的方案~ 一: 第一种方案是:所有的单位使用rem来适配:首先在页面上设置html的font-size的大小:如下我项目中的设置: html { font-size: 100px; } @media(min-width: 320px) { html { font-size: 100px; } } @media(min-width: 360px) { html { font-size: 112.5px; } } @media(min-width: 400p

移动端开发备忘

这是一些移动端开发的备忘记录. <meta> 元素 <meta name=“viewport” content=“width=device-width, initial-scale=1.0,maximum-scale=1.0, user-scalable=no”/> width:宽度(数值 / device-width)(范围从200 到10,000,默认为980 像素) height:高度(数值 / device-height)(范围从223 到10,000) initial-s

如何进行SuperMap iServer服务端开发

有时候在进行地图应用开发时,可能单纯的客户端无法满足要求(如功能和性能等因素),这时就需要进行iServer的服务端开发.SuperMap iServer 6R/7c的服务端开发步骤如下: 一.在Eclipse中新建一个Dynamic Web Project 此过程截图略去 二.引用iServer所需的各类jar包 经测试后发现,必须引用iServer/WEB-INF/lib下的所有jar包,否则运行时会出现一些奇怪的错误.这些jar包所在的位置为[iServer安装目录]\webapps\is