IOT物联网概述及应用层架构入门篇_iot物模型 如何对接-程序员宅基地

技术标签: 架构  网络  项目管理  物联网  

IOT物联网概述及应用层架构入门篇

本文是本着了解物联网原理及如何架构软件到具体案例的应用而梳理的一篇文章,学习了多位前辈的成果,有不足的地方请及时指正。

一、IOT是什么?

IOT即物联网,英文全称为Internet of Things。是指通过射频识别、红外感应器、全球定位系统、激光扫描器等信息传感设备,按约定的协议,把任何物品与互联网相连接,进行信息交换和通信,以实现对物品的智能化识别、定位、跟踪、监控和管理的网络。

该概念最早于1999年提出,曾被称为继计算机、互联网之后,世界信息产业发展的第三次浪潮,到现在已发展20余年。如今,在日常生活中,我们已经可以接触到非常多的物联网产品,如智能家电、智能门锁等,这些都是物联网技术比较成熟的应用。

二、IOT是如何实现的?

举一个例子:我们从某宝买了一枚智能灯泡,到货后我们需要做如下操作步骤:

**第一步:【通电】**将灯泡拧到了灯口;
**第二步:【应用】**扫描说明书的二维码下载APP;
**第三步:【配网】**按照说明通过APP和灯进行交互使设备联网;
**第四步:【鉴权】**设备连网后设备请求接入服务,应用层会根据鉴权规则确认设备是否可以接入,允许接入后设备即可成功使用服务。(如果成功,用户无法感知)
**第五步:【使用】**这时我们就可以在APP上控制灯的颜色、灯的亮度、灯的开关,充分享受物联网带来的便捷了。
*概念解释:

**配网:**指的是将设备连接到互联网上,有的设备通过家用Wi-Fi入网,比如家里的摄像头;有的通过蓝牙入网,比如手环;有的通过zigbee网关入网,比如智能路灯,具体的入网方式和设备所要处理的业务、位置有关,整体从耗电量、通信范围、数据上传下载量等多个维度平衡选择。
**鉴权:**指设备接入应用层的时候需要确认是不是拥有应用层发给你的标识,举个例子:你拿着身份证在国内可以畅行无阻;但在国外就是行不通的,因为国外不承认“身份证即为合法居民”这个规则,只有“护照”别人才会承认。
以上操作步骤的具体实现架构原理如下图:

https://pic1.zhimg.com/80/v2-66a9d68f86fd9208420f4623811884f0_720w.jpg

IOT基础构成层

三、IOT三个基础层展开说明

3.1 感知层

**感知层定义:**感知层即我们的智能设备层,可以类比为我们的视觉、味觉、嗅觉、听觉等。感知层帮我们度量、定义事和物,比如温度、湿度、雾霾指数、是否移动、光照度、气味等;主要的技术有传感器技术、射频识别技术、二维码技术等。

感知层包含的设备类型:目前接触的智能设备有两种

第一种:简单的单一感知能力的设备,如烟雾探测器、安装GPS的防丢水杯等;

第二种:传感器、摄像头等混合并实现联动的复杂设备。

现目前第一种设备的厂商较多;第二种设备是第一种设备的组合创新,这不仅考验厂家的设备硬件能力,也需要有相当的软件实力。

*概念解释:

射频识别技术:即radio frequency identification,简称RFID,是一种简单的无线系统,包含阅读器、标签、应用程序三部分。主要是标签,标签由耦合元件和芯片组成,每个标签都有唯一识别码,然后附着在物体上,然后通过天线与阅读器通信,阅读器通过收集到的信息传到应用程序上面进行计算,从而赋予物体“开口说话”的功能。
传感器:对于传统的定义为,能感受到被测量并按照一定的规则转换成可用输出信号的器件或装置。对于广义上的传感器,在此基础上还会加入微处理器、模数转换、通信模组、电路设计、嵌入式程序等能力,极大程度地提升传感器的智能化。

3.2 网络层

网络层定义:实现数据传输,把数据从感知层传输至应用层(平台层)。

网络层包含内容:网络层分为物接入互联网、互联网传输两部分。

1. 物接入互联网部分

在这里插入图片描述

物接入互联网方式明细表

2. 互联网传输部分

互联网传输目前有两种比较主流的通讯协议:MQTT和CoAP

MQTT(Message Queuing Telemetry Transport,消息队列遥测传输):是一个基于客户端-服务器的消息发布/订阅传输协议,可保持长连接,实现多对多异步通信;
CoAP(The Constrained Application Protocol,受限应用协议):是一种客户端-服务器单对单的协议,具备轻量低功耗的特点。

3.3 应用层

应用层定义:应用层就像我们的大脑,我们会对接收到的信息进行归类、判断并作出相应的动作或决定。

应用层的实现方式:目前实现方式大致可以分为两种

烟囱式的实现,即一套软件解决一类设备,优点是成本低、工期短,缺点是可扩展性差;
搭建SaaS、PaaS、IaaS架构,优点是可扩展性好,工期长,适应性较高,缺点是成本高。
烟囱式的实现:只沉淀单一类型的设备数据,不能做大数据化,主要以行业应用、闭环应用为主,一定程度上属于内联网、专用网。这种模式物体/信息共享难、应用系统间互联互通难,既难以适应规模化、协同化的发展要求,也难以引导和催生物联网更大的、潜在的发展。

云计算架构:SaaS、PaaS、IaaS实现

SaaS、PaaS、IaaS是云计算提出的架构,而云计算是实现物联网的技术之一,再延伸的说:人工智能依赖于大数据,大数据依赖于人联网、物联网,而这些都依赖于云计算。

所以从云计算的这个架构去看物联网是这样的:

SaaS(Software as a Service)强调应用即服务,我们用来控制灯、窗帘、音响的软件都属于SaaS层。即终端使用层。

PaaS(Platform as a Service)强调平台即服务,平台层不关心这个物是灯还是窗帘,只知道这类型的【物】有12个不同类型的属性,且这个类型的【物】连接了1324个具体的设备。哪个类型的【物】有XX个不同类型的属性,连接了XX个设备;物模型、物影子、规则引擎、物接入等这类抽象概念都在这一层实现。即平台方控制层。

IaaS(Infrastructure as a Service)强调基础设施即服务,灯的色温值是什么,电饭煲的煮饭方式是什么,窗帘是开是关,这些数据都是要存储在数据库中;PaaS层在几秒内要找到目标设备等这类动作是需要计算能力的;而承载这些数据库、计算能力的都是真实的硬件资源。IaaS层就是要调度、计算哪些工作需要多少资源,什么弹性伸缩、扩缩容都是这一层做的事情。即基础能量给予层。
在这里插入图片描述

云计算架构:SaaS、PaaS、IaaS实现

四、应用层所需的功能模块

在这里插入图片描述

物联网平台层整体产品架构参考
在这里插入图片描述
设备接入平台层的数据信息流转图

1. 产品管理

产品是设备的集合,通常是一组具有相同功能定义的设备集合。该模块以一种硬件产品为粒度,创建产品及配置产品相关信息。

产品信息管理:硬件产品的功能描述、性能参数、发布状态等信息管理;
组网拓扑管理:对于传感器、采集仪、网关,由于通讯方式不同,产品的组网拓扑便不同。此处描述各类产品入网的拓扑关系;
版本&固件管理:对产品的版本信息及固件进行管理;
物模型管理:物模型,即一类物理世界的实物(如传感器)在平台的数字化模型。物模型对该产品的上行数据、下行指令,上下行动作进行描述。简单来说,物模型就是该实体能对外提供什么信息以及能对它做什么,因此物模型是设备与平台之间的关键枢纽。

2. 设备管理

设备是硬件产品的最小单位,每个设备都对应一个唯一编码,从设备入库开始便记录相关信息,并且可以对设备进行资产分配、安全认证、配置操作等行为,最后对设备从入库到报废的全生命周期管理。

设备全生命周期管理:对设备的物理状态、健康状态、资产归属、调试日志进行记录,记录设备从入库到报废的全生命周期,便于问题追溯分析。
设备资产管理:对设备资产进行划分,便于控制用户设备权限。
虚拟设备:根据物模型构建虚拟设备,用于用户体验、真实设备受限时的模拟调试验证、批量压测验证平台性能等场景。
设备影子:每个设备有且只有一个设备影子,设备可以通过MQTT获取和设置设备影子来同步状态,用于存储设备上报状态、应用程序期望下发的配置,解耦应用于终端设备。一般用于网络不稳定、设备无法实时通信、一个设备在同一时间被反复请求等场景。

3. IoT设备接入

物联网平台支持海量多元异构数据的设备接入,通过简易的配置,便可建立设备与云平台之间的联系,实现稳定可靠的双向通信。

协议接入:使用MQTT协议接入数据,并根据场景定义不同topic进行消息发布订阅。
设备鉴权认证:以网关为单位,对接入数据topic做发布订阅鉴权认证,实现topic级别的权限隔离,提高接入安全性。
数据转换解析:对接入的异构数据进行格式统一,根据物模型对接入数据进行解析。
设备接入配置:此处的目的是把接入到平台的数据与具体的实体对象进行握手,以便于在应用中能够区分不同实体对象的数据。此处依赖于产品物模型与产品组网拓扑。需要注意的是,在应用层中,根据不同业务属性,可能会把实体对象做某些关系映射。
消息通信:当完成设备接入配置后,用户便能实现对设备的交互,包括数据上报、命令下发等。

4. 数据展示

该模块对物联网收集的数据,运用相应的可视化图表进行展示,以便于物联网监测数据能直观展示。此处功能与企业业务方向会紧密相关。

基础监测数据:对结构化数据进行基础图形表格数据展示。
系统集成数据:对视频监控、车流量等系统集成类进行数据展示。
数据可视化:安全监测领域主流的可视化系统,如BIM、GIS、视频融合、人员定位、可视化大屏等。
数据管理:对原始数据的数据维护、数据下载、文档管理等服务。

5. 数据分析

该模块对展示的数据加以分析,把物联网海量数据变成有价值的数据。此处功能与企业业务方向会紧密相关。

基础数据分析:包括同步分析、关联分析、同步分析、频谱分析、风玫瑰图分析;
高级数据分析:针对特定传感器的高级算法分析,包括索力算法分析、动态称重分析、深度测斜分析、柱体分析、索承结构分析;
报告报表分析:专业结构人员使用的分析工具,制作专业分析报告。

6. 规则引擎

规则引擎是指用户可以在物联网平台上可以配置某些规则,在判断条件满足规则后,平台会执行相应的动作来满足用户需求,灵活构建场景联动、报警等定制化业务场景。规则引擎所需要的元素如下:

1)触发条件

触发对象:可以是某个设备,某个测点,也可以是某个时刻,或某个事件;
触发条件:可以是简单的上下限判断,也可以是一个复杂的函数/算法判断;
触发时间:即时效性,可以是一直有效,或者规定时间内有效;
沉淀机制:避免设备上传相同数据导致重复触发规则。
2)执行动作

指令下发:即对制定设备发送指令;
发送通知:如短信、邮件、小程序、APP推送等;
产生报警:在运维报警监控界面产生一条报警记录;
执行时间:立即、或延时;
执行规则:执行某条规则;
规则状态开关:开启或关闭某条规则。
3)日志

每条状态为开启的规则,每次执行都要留有日志,存储触发时间、判断依据、执行动作记录等。

7. 运维服务

此模块为专业运维团队提供运维服务,是业务正常运作的关键。

运维监控:对项目运维情况进行监控,包括设备拓扑网络、运维报警监控、无效数据、设备报表分析;
设备调试:对设备进行远程在线调试;
OTA升级:上传新的升级包,并将OTA升级消息推送给设备,设备即可在线升级;
日志服务:包括设备全生命周期日志、用户操作日志等;
业务工单:支持业务运作的跨部门协作工单,此工单内容根据企业业务不同会有较大差异,此处不做具体展开说明。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_37892471/article/details/126004700

智能推荐

oracle 12c 集群安装后的检查_12c查看crs状态-程序员宅基地

文章浏览阅读1.6k次。安装配置gi、安装数据库软件、dbca建库见下:http://blog.csdn.net/kadwf123/article/details/784299611、检查集群节点及状态:[root@rac2 ~]# olsnodes -srac1 Activerac2 Activerac3 Activerac4 Active[root@rac2 ~]_12c查看crs状态

解决jupyter notebook无法找到虚拟环境的问题_jupyter没有pytorch环境-程序员宅基地

文章浏览阅读1.3w次,点赞45次,收藏99次。我个人用的是anaconda3的一个python集成环境,自带jupyter notebook,但在我打开jupyter notebook界面后,却找不到对应的虚拟环境,原来是jupyter notebook只是通用于下载anaconda时自带的环境,其他环境要想使用必须手动下载一些库:1.首先进入到自己创建的虚拟环境(pytorch是虚拟环境的名字)activate pytorch2.在该环境下下载这个库conda install ipykernelconda install nb__jupyter没有pytorch环境

国内安装scoop的保姆教程_scoop-cn-程序员宅基地

文章浏览阅读5.2k次,点赞19次,收藏28次。选择scoop纯属意外,也是无奈,因为电脑用户被锁了管理员权限,所有exe安装程序都无法安装,只可以用绿色软件,最后被我发现scoop,省去了到处下载XXX绿色版的烦恼,当然scoop里需要管理员权限的软件也跟我无缘了(譬如everything)。推荐添加dorado这个bucket镜像,里面很多中文软件,但是部分国外的软件下载地址在github,可能无法下载。以上两个是官方bucket的国内镜像,所有软件建议优先从这里下载。上面可以看到很多bucket以及软件数。如果官网登陆不了可以试一下以下方式。_scoop-cn

Element ui colorpicker在Vue中的使用_vue el-color-picker-程序员宅基地

文章浏览阅读4.5k次,点赞2次,收藏3次。首先要有一个color-picker组件 <el-color-picker v-model="headcolor"></el-color-picker>在data里面data() { return {headcolor: ’ #278add ’ //这里可以选择一个默认的颜色} }然后在你想要改变颜色的地方用v-bind绑定就好了,例如:这里的:sty..._vue el-color-picker

迅为iTOP-4412精英版之烧写内核移植后的镜像_exynos 4412 刷机-程序员宅基地

文章浏览阅读640次。基于芯片日益增长的问题,所以内核开发者们引入了新的方法,就是在内核中只保留函数,而数据则不包含,由用户(应用程序员)自己把数据按照规定的格式编写,并放在约定的地方,为了不占用过多的内存,还要求数据以根精简的方式编写。boot启动时,传参给内核,告诉内核设备树文件和kernel的位置,内核启动时根据地址去找到设备树文件,再利用专用的编译器去反编译dtb文件,将dtb还原成数据结构,以供驱动的函数去调用。firmware是三星的一个固件的设备信息,因为找不到固件,所以内核启动不成功。_exynos 4412 刷机

Linux系统配置jdk_linux配置jdk-程序员宅基地

文章浏览阅读2w次,点赞24次,收藏42次。Linux系统配置jdkLinux学习教程,Linux入门教程(超详细)_linux配置jdk

随便推点

matlab(4):特殊符号的输入_matlab微米怎么输入-程序员宅基地

文章浏览阅读3.3k次,点赞5次,收藏19次。xlabel('\delta');ylabel('AUC');具体符号的对照表参照下图:_matlab微米怎么输入

C语言程序设计-文件(打开与关闭、顺序、二进制读写)-程序员宅基地

文章浏览阅读119次。顺序读写指的是按照文件中数据的顺序进行读取或写入。对于文本文件,可以使用fgets、fputs、fscanf、fprintf等函数进行顺序读写。在C语言中,对文件的操作通常涉及文件的打开、读写以及关闭。文件的打开使用fopen函数,而关闭则使用fclose函数。在C语言中,可以使用fread和fwrite函数进行二进制读写。‍ Biaoge 于2024-03-09 23:51发布 阅读量:7 ️文章类型:【 C语言程序设计 】在C语言中,用于打开文件的函数是____,用于关闭文件的函数是____。

Touchdesigner自学笔记之三_touchdesigner怎么让一个模型跟着鼠标移动-程序员宅基地

文章浏览阅读3.4k次,点赞2次,收藏13次。跟随鼠标移动的粒子以grid(SOP)为partical(SOP)的资源模板,调整后连接【Geo组合+point spirit(MAT)】,在连接【feedback组合】适当调整。影响粒子动态的节点【metaball(SOP)+force(SOP)】添加mouse in(CHOP)鼠标位置到metaball的坐标,实现鼠标影响。..._touchdesigner怎么让一个模型跟着鼠标移动

【附源码】基于java的校园停车场管理系统的设计与实现61m0e9计算机毕设SSM_基于java技术的停车场管理系统实现与设计-程序员宅基地

文章浏览阅读178次。项目运行环境配置:Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。项目技术:Springboot + mybatis + Maven +mysql5.7或8.0+html+css+js等等组成,B/S模式 + Maven管理等等。环境需要1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。_基于java技术的停车场管理系统实现与设计

Android系统播放器MediaPlayer源码分析_android多媒体播放源码分析 时序图-程序员宅基地

文章浏览阅读3.5k次。前言对于MediaPlayer播放器的源码分析内容相对来说比较多,会从Java-&amp;amp;gt;Jni-&amp;amp;gt;C/C++慢慢分析,后面会慢慢更新。另外,博客只作为自己学习记录的一种方式,对于其他的不过多的评论。MediaPlayerDemopublic class MainActivity extends AppCompatActivity implements SurfaceHolder.Cal..._android多媒体播放源码分析 时序图

java 数据结构与算法 ——快速排序法-程序员宅基地

文章浏览阅读2.4k次,点赞41次,收藏13次。java 数据结构与算法 ——快速排序法_快速排序法