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

智能推荐

js-选项卡原理_选项卡js原理-程序员宅基地

文章浏览阅读90次。【代码】js-选项卡原理。_选项卡js原理

设计模式-原型模式(Prototype)-程序员宅基地

文章浏览阅读67次。原型模式是一种对象创建型模式,它采用复制原型对象的方法来创建对象的实例。它创建的实例,具有与原型一样的数据结构和值分为深度克隆和浅度克隆。浅度克隆:克隆对象的值类型(基本数据类型),克隆引用类型的地址;深度克隆:克隆对象的值类型,引用类型的对象也复制一份副本。UML图:具体代码:浅度复制:import java.util.List;/*..._prototype 设计模式

个性化政府云的探索-程序员宅基地

文章浏览阅读59次。入选国内首批云计算服务创新发展试点城市的北京、上海、深圳、杭州和无锡起到了很好的示范作用,不仅促进了当地产业的升级换代,而且为国内其他城市发展云计算产业提供了很好的借鉴。据了解,目前国内至少有20个城市确定将云计算作为重点发展的产业。这势必会形成新一轮的云计算基础设施建设的**。由于云计算基础设施建设具有投资规模大,运维成本高,投资回收周期长,地域辐射性强等诸多特点,各地在建...

STM32问题集之BOOT0和BOOT1的作用_stm32boot0和boot1作用-程序员宅基地

文章浏览阅读9.4k次,点赞2次,收藏20次。一、功能及目的 在每个STM32的芯片上都有两个管脚BOOT0和BOOT1,这两个管脚在芯片复位时的电平状态决定了芯片复位后从哪个区域开始执行程序。BOOT1=x BOOT0=0 // 从用户闪存启动,这是正常的工作模式。BOOT1=0 BOOT0=1 // 从系统存储器启动,这种模式启动的程序_stm32boot0和boot1作用

C语言函数递归调用-程序员宅基地

文章浏览阅读3.4k次,点赞2次,收藏22次。C语言函数递归调用_c语言函数递归调用

明日方舟抽卡模拟器wiki_明日方舟bilibili服-明日方舟bilibili服下载-程序员宅基地

文章浏览阅读410次。明日方舟bilibili服是一款天灾驾到战斗热血的创新二次元废土风塔防手游,精妙的二次元纸片人设计,为宅友们源源不断更新超多的纸片人老婆老公们,玩家将扮演废土正义一方“罗德岛”中的指挥官,与你身边的感染者们并肩作战。与同类塔防手游与众不同的几点,首先你可以在这抽卡轻松获得稀有,同时也可以在战斗体系和敌军走位机制看到不同。明日方舟bilibili服设定:1、起因不明并四处肆虐的天灾,席卷过的土地上出..._明日方舟抽卡模拟器

随便推点

Maven上传Jar到私服报错:ReasonPhrase: Repository version policy: SNAPSHOT does not allow version: xxx_repository version policy snapshot does not all-程序员宅基地

文章浏览阅读437次。Maven上传Jar到私服报错:ReasonPhrase: Repository version policy: SNAPSHOT does not allow version: xxx_repository version policy snapshot does not all

斐波那契数列、素数、质数和猴子吃桃问题_斐波那契日-程序员宅基地

文章浏览阅读1.2k次。斐波那契数列(Fibonacci Sequence)是由如下形式的一系列数字组成的:0, 1, 1, 2, 3, 5, 8, 13, 21, 34, …上述数字序列中反映出来的规律,就是下一个数字是该数字前面两个紧邻数字的和,具体如下所示:示例:比如上述斐波那契数列中的最后两个数,可以推导出34后面的数为21+34=55下面是一个更长一些的斐波那契数列:0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584,_斐波那契日

PHP必会面试题_//该层循环用来控制每轮 冒出一个数 需要比较的次数-程序员宅基地

文章浏览阅读363次。PHP必会面试题1. 基础篇1. 用 PHP 打印出前一天的时间格式是 2017-12-28 22:21:21? //>>1.当前时间减去一天的时间,然后再格式化echo date('Y-m-d H:i:s',time()-3600*24);//>>2.使用strtotime,可以将任何字符串时间转换成时间戳,仅针对英文echo date('Y-m-d H:i:s',str..._//该层循环用来控制每轮 冒出一个数 需要比较的次数

windows用mingw(g++)编译opencv,opencv_contrib,并install安装_opencv mingw contrib-程序员宅基地

文章浏览阅读1.3k次,点赞26次,收藏26次。windows下用mingw编译opencv貌似不支持cuda,选cuda会报错,我无法解决,所以没选cuda,下面两种编译方式支持。打开cmake gui程序,在下面两个框中分别输入opencv的源文件和编译目录,build-mingw为你创建的目录,可自定义命名。1、如果已经安装Qt,则Qt自带mingw编译器,从Qt安装目录找到编译器所在目录即可。1、如果已经安装Qt,则Qt自带cmake,从Qt安装目录找到cmake所在目录即可。2、若未安装Qt,则安装Mingw即可,参考我的另外一篇文章。_opencv mingw contrib

5个高质量简历模板网站,免费、免费、免费_hoso模板官网-程序员宅基地

文章浏览阅读10w+次,点赞42次,收藏309次。今天给大家推荐5个好用且免费的简历模板网站,简洁美观,非常值得收藏!1、菜鸟图库https://www.sucai999.com/search/word/0_242_0.html?v=NTYxMjky网站主要以设计类素材为主,办公类素材也很多,简历模板大部个偏简约风,各种版式都有,而且经常会更新。最重要的是全部都能免费下载。2、个人简历网https://www.gerenjianli.com/moban/这是一个专门提供简历模板的网站,里面有超多模板个类,找起来非常方便,风格也很多样,无须注册就能免费下载,_hoso模板官网

通过 TikTok 联盟提高销售额的 6 个步骤_tiktok联盟-程序员宅基地

文章浏览阅读142次。你听说过吗?该计划可让您以推广您的产品并在成功销售时支付佣金。它提供了新的营销渠道,使您的产品呈现在更广泛的受众面前并提高品牌知名度。此外,TikTok Shop联盟可以是一种经济高效的产品或服务营销方式。您只需在有人购买时付费,因此不存在在无效广告上浪费金钱的风险。这些诱人的好处是否足以让您想要开始您的TikTok Shop联盟活动?如果是这样,本指南适合您。_tiktok联盟