IoT设备物模型接入价值与实践(一)|学习笔记

本文涉及的产品
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
简介: 快速学习IoT设备物模型接入价值与实践(一)

开发者学堂课程【物联网平台实操入门IoT设备物模型接入价值与实践(一)】学习笔记与课程紧密联系,让用户快速学习知识

课程地址https://developer.aliyun.com/learning/course/1031/detail/15123


IoT设备物模型接入价值与实践{一)


内容介绍:

一、物模型概述

接入实践-简单设备物模型使用流程


一、物模型概述

首先在上课之前准备了三个问题,分别是未使用过物模型,希望了解详细的操作步骤、熟悉过物模型,希望了解物模型具体功能,比如?和当前业务场景问题,不知道物模型是否能解三个问题,可以对问题进行反馈,介绍的内容会有一些偏动,比如想要了解第二个问题熟悉过物模型,希望了解物模型具体功能需要写明想要了解的具体功能是什么。

在介绍过程中会着重介绍有疑问的地方,本节课讲的会比较偏实践,所以有一些操作步骤可能PPT篇幅有限,因此后续会将整理的资料包括代码放到PPT中。接下来进行本节课的内容,本节课的主题是设备物模型的接入价值与接入实践。首先讲物模型的概述,主要讲解两部分,一个是物模型的定义包括物模型发展的演进过程,可以帮助对物模型有大致的了解,后面会针对物模型不同的功能进行细致化接入步骤的介绍。

1、物模型价值与定义

在讲解物模型之前先学习什么是物模型以及物模型的价值,在开始成立物联网平台时初级的功能只是负责设备的接入主要是面向设备端,面向的客户群体或者是用户群体主要是硬件的开发者,开发者的接入功能中需要定义不同的数据格式,因为需要适配不同的用户协议,由于设备不同所以数据格式与数据协议都不同,所以主要是面向硬件开发者。伴随着物联网与互联网的发展,物联网平台使用的客户越来越多,在北向以物联网平台为中介线,南面设备叫南向,上面叫物联网平台的北向,有一些软件的开发者慢慢接入进来,软件开发者需要基于硬件开发者提供的数据格式包括接口来进行开发,因此在物联网初期物联网模型没有出来的时候硬件开发和软件开发的耦合度非常高,物模型应运而生。主要是解决在设备端对相同的设备提供标准的数据格式,统一数据规范,在SDK中也包装了统一的数据应用协议简化对硬件开发者的上云的一些步骤。在南向部分会提供一些通用的API,基于物模型用通用的API来实现北向应用的开发,所以物模型主要的目的是标准化数据规范为设备上云和应用的开发提高效率。所以物模型的定义是物理实体在云端的数字化模型,为了更加抽象从属性、事件、服务三个维度描述物理实体的功能,这便是物模型的定义。

image.png

2、物模型的演进趋势

接下来学习物模型的演进过程,物模型研发的一个目标是希望增加物模型的描述能力,提升建模效率从而覆盖更广的行业场景、在物模型初期接入的设备主要是生活智能家居的设备,它的设备比较简单,主要是希望能更快的接入到云,接入云之后在北向提供一些应用来对设备进行控制。对于简单的设备在2017年左右提出了物模型的概念并形成了标准化的品类,为简单的设备定义了Alink协议,包括SDK的封装支持简单设备快速上云,物模型初期限制相对来说会比较多一点,功能定义数量支持256,上云的数据要按照物模型的定义才会将数据存储下来。

随着数字化的推进覆盖到更多行业之后,一些行业大型设备希望接入到物联网平台中,将大型设备称为复杂的设备,复杂的设备有一个特征即需要上报的属性和功能很复杂,有可能有的设备属性达到1000多个。对于简单设备设计的物模型的规范不符合大型的设备,所以在这个阶段提出了功能模块的功能,可以通过扩展功能模块更好的描述大型设备,启用功能模块之后更符合实际物理世界描述设备的能力,比如大型的机械可能是分为不同的模块,通过模块扩展功能定义的个数。

同时为了简化大型设备的接入过程有AI设备认证中心,可以将一些通用的上云的配置沉淀到设备认证中心中,通过hardthingcode可以将上云的配置拷贝,针对大型设备还有一个能力需要提升上云的效率,上云只支持256通道的容量即一个带宽,为了支持复杂设备的上云在通道侧支持数据聚合压缩可以支撑万级属性的并发写入的上云,同时也可通过扩展模块表达大型设备的表达能力,所以可以支持万级属性的定义。

最近两年物模型数字化覆盖的场景更加广泛,有些客户提出希望用模型描述复杂的业务场景也是当前在做的一个功能,这便是数字孪生的能力。

基于大型设备之上希望复杂场景描述设备的关系结构,不同设备之节点属性的计算规则,通过配置不同的规则凸显数据的聚合运算。在描述完复杂设备之后提供批量控制设备的能力,这是正在做的产品在压测阶段,在上线之后每个孪生实例可以支持万级设备节点,同时每个函数可以配置多种计算的规则,内置了多种函数内置多种函数的能力,可以支持节点数据的递归运算,等上线可以进行反馈有问题及时反馈,根据反馈对性能进行迭代升级,这是物模型演变的趋势。

image.png


二、接入实践-简单设备物模型使用流程

1、简单设备物模型使用流程

本次介绍的主要功能点一个是简单设备接入一个是复杂设备接入,关于数组孪生的部分后面在进行推进介绍以及资料附录。

首先讲解简单设备接入的实践,无论是简单设备还是复杂设备物模型的整体研发流程主要分为以下几个部分,通过配置的方式简化在物联网开发的一些编码,提升研发的效率。

image.png

整个研发流程分为四个部分一个是云端的配置主要包括创建产品、配置物模型、创建设备。

在第二阶段提供设备开发调试的能力主要是提供不同语言的SDK,集成SDK后SDK内部会封装一些设备上下型的topic,更加方便用户的使用。第三部分是介绍平台在处理数据的运行规则。第四部分是介绍平台数据应用的一些应用。

首先讲解云端配置,创建云端配置的第一步是创建一个产品,这是当前用的比较多的标准流程。创建产品输入的参数比较简单输入产品名称。

需要特别说明的是品类是ICA标准数据平台定义的标准的品类,品类是物联网平台联合一些伙伴主导成立的组织,主要是对日常用的比较多的物模型沉淀,只要选中品类之后会将品类下定义的物模型进行到产品中,直接拷贝到产品中所以还可以基于品类对物模型进行修改,当前品类已经覆盖10个领域包括智慧城市、智慧生活、工业,品类总数达到700多个。

数据格式中的ICA标准数据格式也是为了简化物模型开发的过程,因此定义了一些标准的数据格式,数据格式主要是Json的数据格式,如果使用不同的协议也可以自定义格式,配置脚本转换为标准的数据格式之后可以上云进行数据的加工处理。

创建产品后面新增加了数据校验级别的选项,选项是前段时间新增的功能,针对智能生活的简单设备当时是强建的逻辑,即定义的物模型数据包括第一个int值必须在定的义最大值最小值,必须在最小值之内。

但是有些客户强调这是不需要的因此提供了弱化数据的能力提供了其他数据增值的服务。因此提供了弱校验和免校验的能力,弱校验是只校验功能定义和数据类型。免校验是解决用户提前创建物模型数据直接上云的情况。

image.png

云端配置还有一个创建产品的方式叫做设备认证中心。设备认证中心的目的是联合硬件厂商、解决方案提供商等合作伙伴,构建AIoT生态。

主要由合作伙伴提供设备,提交的设备信息包括上云的一些配置信息,配置信息包括物模型定义、数据脚本、Topic定义、设备驱动,提交完后内部会进行审核,审核完成后会发布到AIoT的设备中心的平台去,目前已认证的数据截图比较晚,应该已认证的设备超过1000+,现在的硬件伙伴有100多个,行业有四个。

主要是发布到平台之后其他感兴趣的用户就可以从界面上搜索到可以进行购买,购买的设备如果认证通过会生成AliThingCode,只要拿到AliThingCode之后就可以将上传的信息拷贝到产品中,购买的用户只要收到设备后或者是有类似的设备只要接入进来就可以达到即插即用的目的。

后面的介绍是基于AIoT设备认证中心创建的物模型进行介绍的,因此举出的例子是在AIoT认证中心搜到的监控器,输入到AliThingCode会将产品创建出来。

定义的产品是烟感报警器,报警器会将物模型带到topic信息和一些脚本都会拷贝到新的产品里来,可以看到已经将原来的事件服务拷贝进来,物模型如果不符合要求可以点击编辑草稿进行编辑可以对导入的物模型进行编辑或新增或者是修改、删除都是支持的。

需要注意的是弱校验类型只会校验标识符是否存在,数据类型是否合法是否符合物模型的定义,下面还会设置取值范围,取值范围不在校验之中。还有一点需要特备注意的是物模型为了开发方便和运行,将开发和运营进行了隔离,因此可以在控制台上看到有一个编辑草稿的功能,实际是进入编辑草稿之后进入物模型定义不会立即生效是有一个发布按钮的,在编辑完之后整体提交的时候左下角会有一个发布的按钮,只有等发布之后物模型才会变形为运行态,才能被线上已发布的接口查询到。

物模型区分编辑态和运行态之后提供了两套完备的接口支持物模型的查询,两套接口是一一对应的,用运行态的接口查草稿态的物模型是查不到的,因此可以看出两个状态是隔离的,这是特别需要注意的。

image.png

云端配置进入第三个阶段就是创建设备,实际是想提升通过配置的方式简化操作,提升研发的效率,所以在创建设备的过程中输入的信息要尽量少一些,要创建单个设备选择对应的产品输入产品的名称,如果想要对设备进行单独备注可以添加备注名,点击创建就可以创建一个设备出来。同时也支持批量添加的能力,所以也会提供模板,按照模板填入信息,按照模板的定义将设备批量的创建出来,模板最大支持1万台订单的创建,基本满足所有客户的需求。

image.png

2、设备开发调试

第二阶段是设备开发调试的功能,因此设备开发调试也是基于标准的数据格式包括协议,封装不同语言的SDK降低并且提供了一些通用的方法。

image.png

比如设备注册、设备初始化、属性上报、事件上报等通用方法,因此并不需要感知数据上云的格式,全是按照标准进行上报的,用起来也比较简单,举例先定义了之前拷贝的产品中有三个物模型属性的定义,将三个物模型的标识符写出,同时进行赋值,调用thingpropertyPost的方法会将三个属性全部上报,首先上报的基础是提供GBK的demo的文件,文件需要前置完成一些配置,配置的信息包括设置的三元组的信息,配置正确之后就可以把设备按smoke的属性上报,需要注意的是上报的属性功能定义必须是物模型已经定义好的与物模型定义保持一致,同时因为是封装的属性上报服务如果需要自己开发对应的能力定义的topic必须跟物模型topic保持一致。在代码运行完之后可以看到在物联网控制台里边在设备下可以看到有一个物模型数据的模块,运行状态下可以查询刚刚上报的数据比如像电池的电量是上报的第一个属性以及二氧化碳的浓度也可以在控制台上查询。

同时在控制台上提供了设备在线调试的能力,想以设备服务调用的方式介绍在线调试的功能并且根据日志服务定义当前的错误,如果使用标准的SDK,SDK是Java版本的,所以SDK实现监听服务处理器的实践非常简单,首先是将所有的服务查询出来,查询到之后轮询注册监听服务器,这里是注射的versionUp的服务监听器收到服务调用的输入参数简单进行输入versionUp.inputparars,在进行设备开发时中间便是预留的需要实现的逻辑,例子中简单写了一个回执,在物模型定义的时候没有将seccess字段定义到里面,在服务调用的时候,服务端这样实现代码会将seccess字段调用成功会返回一个seccess等处的字段,这是设备端的编码完成之后可以本地启动注册设备建立连接,就可以监听北向的服务调用的请求。

image.png

在线调试是在进行设备调试的功能,这是模拟的北向服务调动能力,可以看一下提前定义的物模型,物模型里的versionUp定义的有一个Url是没有seccess字段的,下面会有一个按钮发起服务调动会产生报错,在描述url的时候信息里面多了一个seccess字段因此数据服务里边会报错。后边将seccess字段添加完,添加完之后是一个字符串类型,之后发起了数据调试的能力可以看到日志调试完之后显示物模型的调动服务成功,数据已将写入到平台里面。

同样如果服务写入查询服务调用数据在物模型数据中也可以查看插入参数和输出参数都会进行展示。

3、设备运行和数据应用

接下来讲解设备运行平台的处理流程,物模型沉淀数据平台之后开发了相对应衔接的产品,只要使用物模型进行开发都可以使用标准的物模型数据上云,数据都可以被其他的相关的物联网产品进行无缝的对接都可以被接入进来。

首先看属性、事件、服务上报的数据经历了数据处理的流程包括数据加工,数据加工之前讲到有一些增值的服务,还有脚本数据转换的服务如果是自定义的协议可以转化为alink协议,同时数组孪生里增加了数据映射的功能即采集设备与实际云上建模的设备可以不是相同的设备,通过数据映射可以将采集的数据映射到实际的任意的物模型的节点。

同时还有增值服务包括之前提到的物模型级别校验,数组孪生里还提供了规则运算和时序分析。数据存储会将符合用户的全量数据、物模型规范数据和时序数据都会被存储下来以备各方面的需要。下面提供了相应的接口,接口列表会比给出的更加详细,之后会给附录介绍北向的API可以针对自己的业务场景进行自取,使用方式上还支持异步流转消息,只要按照规范定义物模型之后数据会流转到服务端进行后续的数据处理。

之前讲的比较多的是设备上下行的topic,像属性、事件上报的topic,事件上报的topic会进行简述,属性上报已经看到了同时提供物模型TSL模板的能力,存储出来的数据会和相关的产品进行无缝的对接,比如Studio进行北向的手机App应用的开发。

可以直接将应用查询到在Studio的应用中进行展示,同时还提供数据分析的能力,数据分析的能力后面会进行讲解。

image.png

相关实践学习
钉钉群中如何接收IoT温控器数据告警通知
本实验主要介绍如何将温控器设备以MQTT协议接入IoT物联网平台,通过云产品流转到函数计算FC,调用钉钉群机器人API,实时推送温湿度消息到钉钉群。
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
相关文章
|
6月前
|
消息中间件 边缘计算 物联网
【开源视频联动物联网平台】如何解决物联网协议多样性问题
【开源视频联动物联网平台】如何解决物联网协议多样性问题
109 0
|
物联网 API 开发工具
|
监控 物联网 Java
|
存储 监控 物联网
|
存储 SQL 数据采集
IoT设备数据的存储、解析和价值挖掘实践
本实践以一个道路交通场景下设备运营管理的真实需求为背景来介绍如何使用物联网平台的数据服务完成对设备数据的存储、备份、预处理和深度分析,以达到企业经营提效的效果。
23118 1
IoT设备数据的存储、解析和价值挖掘实践
|
存储 安全 网络协议
IoT亿级设备接入层建设实践
互联网的产品基本都需要解决终端的接入问题,每个接入层会因为终端数量、终端能力、网络环境等不同的因素有各自的设计特性。物联网场景下由于IoT设备的特点,不同的"物"特性催生了不同的IoT接入层。本文详细介绍了阿里云IoT在接入层的一些关键策略和设计。
1347 0
|
安全 物联网
更强交互,阿里云IoT发布屏显智能产品
阿里云推出了三大全新产品,帮助设备快速完成智能化升级。
462 15
更强交互,阿里云IoT发布屏显智能产品
|
存储 监控 物联网
oT 设备物模型接入价值与实践|学习笔记
快速学习 oT 设备物模型接入价值与实践。
298 1
oT 设备物模型接入价值与实践|学习笔记
|
物联网 Java 开发工具
IoT设备物模型接入价值与实践(二)|学习笔记
快速学习IoT设备物模型接入价值与实践(二)
IoT设备物模型接入价值与实践(二)|学习笔记
|
安全 网络协议 物联网
IoT设备接入基础(三)|学习笔记
IoT设备接入基础(三)|学习笔记
IoT设备接入基础(三)|学习笔记