当前位置:网站首页>物联网系统框架学习
物联网系统框架学习
2022-07-06 09:16:00 【忘尘的世界】
物联网架构介绍
问题咨询及项目交流请加群:
群名:IT项目交流群
群号:245022761
物联网系统框架学习
下面将谈到几个关键问题:
- 设备如何接入网络?
- 设备间如何通信?
- 物联网数据的用途?
- 如何搭建起一个物联网系统框架呢?它的技术架构又是怎么样呢?
- 物联网终端软件系统架构?
- 物联网云平台系统架构?
1. 物联网设备如何接入到网络?
只有设备接入到网络里面,才能算是物联网设备。这里涉及到2个关键点:接入方式以及网络通信方式。
设备接入方式:
当前有2种接入方式
- 直接接入:物联网终端设备本身具备联网能力直接接入网络,比如 在设备端加入NB-IOT通信模组,2G通信模组。
- 网关接入:物联网终端设备本身不具备入网能力,需要在本地组网后,需要统一通过网关再接入到网络。 比如终端设备通过zigbee无线组网,然后各设备数据通过Zigbee网关统一接入到网络里面。常用到本地无线组网技术有Zigbee,Lora,BLE MESH, sub-1GHZ等。
在物联网设备里面,物联网网关是一个非常重要的角色。一个处在本地局域网与外部接入网络之间的智能设备。主要的功能是网络隔离,协议转化/适配以及数据网内外传输。
一个典型的物联网网关架构如下:
网络通信方式
常用的通信网络主要存在2种方式:
1.移动网络(主要户外设备用)
移动网络2G/3G/4G/5G/NB-IOT等
2.宽带(主要户内设备用)
WIFI,Ethernet等
物联网设备接入网络后如何开展M2M,M2C通信?
物联网设备终端接入网络后,只是物联网应用的开始。 设备接入网络后,设备与设备之间需要互相通信, 设备与云端需要互相通信。 只有互通,物联网的价值才展现出来。 既然要互通,则需要一套物联网通信协议。只有遵循该套协议的设备相互间能够通信,能够交换数据。
常用的物联网通信协议有哪些? 主要有如下协议:MQTT,COAP等,他们有个共同点都是基于消息模型来实现的。设备与设备之间,设备与云端之间通过交换消息来实现通信,消息里面携带了通信数据。
物联网设备之间,设备与云平台能够交换数据后,接下来要干怎么呢?
21世纪,什么最重要?数据。 有了大量的物联网设备数据后, 针对数据,人类可以去挖掘里面的规律,挖掘里面的商业价值,对设备未来的状态进行预测等等。
对于物联网数据应用,分几个层次来讲
1. 基础应用:监控
通过物联网收集到设备数据后, 如果设备数据状态超过预设的状态则自动第一时间报警,管理员第一时间开展处理,可以通过远程操作,下达命令。把问题解决在萌芽状态。
2.进阶应用: 报表统计
通过统计方法, 对设备的历史运行数据进行统计分析。可以按不同维度分析出不同报告。然后以图表或者大屏方式展现在管理员面前。 管理员可以快速直观的了解到整个物联网设备运行状况。
3.高级应用: 数据挖掘/机器学习
这部分需要从数据里面挖掘出有价值的东西出来。比如通过一段时间时间设备数据的连续跟踪分析并结合人类过往的设备运维经验,通过机器学习方式预测设备发生故障概率,以及发生故障后可能的引起原因,并给出维修方案。刚才举的例子,是物联网高级应用里面的冰山一角。 通过引入现在火热的AI技术。 物联网就能变成智能物联网了。 也许在不久的将来, 人与设备可以自由对话,设备与设备之间也能够对话并自动做出最优决策。
综合所述,物联网的价值在于提高生产效率,管理效率,极大促进社会生产力的提高。
如何搭建起一个物联网系统框架呢?它的技术架构又是怎么样呢?
物联网终端设备软件系统架构
常见系统框架的总结下来主要存在如下2种: 带RTOS的(处理复杂的业务场景,场景里面通过需要多个事务并行协同完成工作)和不带RTOS的(通常处理的业务场景较单一)
不带RTOS设备终端系统框架:
带RTOS设备终端系统框架:
RTOS是什么? 实时多任务操作系统,有了它,在终端设备里面可以并行运行多个任务。每个任务负责一个事务。通过并行化运行,响应实时性及效率就得到提升。RTOS实时操作内核一般包含的重要组件如下:
任务调度
任务间同步与通信
内存分配
中断管理
时间管理
设备驱动
以任务调度组件举例:
在嵌入式操作系统中,任务是CPU上最小运行单元。通常一个稍微复杂点IOT APP是由多个任务协同完成。比如有的任务负责处理用户事件输入以及UI显示,有的任务负责处理数据通信,有的任务负责业务逻辑处理。
既然一个系统中有多个任务在跑,而CPU资源确是单一的,这样导致每个时刻只能由一个任务在CPU上跑。 因此为了每个任务都能够在CPU上有运行机会,就涉及到了任务调度概念。 任务调度需要按照一定的规则来,那一般是按照哪些规则来的? 我们常见的调度方式有3种: 一个基于优先级调度的, 一个是基于时间片调度的, 一个是把优先级和时间片结合在一起调度。
以优先级调度举例,在定义任务的时候,给每个任务分配一个优先级,在运行的时候,高优先级的任务都会优先被运行。 直到没有高优先级任务后,低优先级任务才会被运行。 假如低优先级任务获得CPU资源后,这是如果有高优先级任务就绪怎么办呢? 两种处理方式:1. 继续运行 2. 抢占式。 高优先级抢占CPU资源进入运行状态。
其他组件就不一一列举了。
物联网云平台系统架构
物联网云平台系统架构主要包含四大组件:
- 设备接入
- 设备管理
- 规则引擎
- 安全认证及权限管理
设备接入
设备接入主要都干些什么呢?
1.包含多种设备接入协议,最主流的是MQTT协议。有些云计算厂商也在MQTT协议上精简协议变成独有的接入协议。
2.并发连接管理,维持可能是数十亿设备的长连接管理。如果应对数十亿的设备连接管理? 目前开放出来的MQTT代理服务器大都是单机版,最多也就是并发连接十几万设备。因此如果要管理数十亿的连接,需要用到负载均衡,用到分布式架构。在云平台需要部署分布式MQTT代理服务器。
设备管理
一般以树形结构的方式管理设备,包含设备创建管理以及设备状态管理等等。根节点以产品开始, 然后是设备组,再到具体设备。
主要包含如下管理:
产品注册及管理
产品下面的设备增删改查管理
设备消息发布
OTA设备升级管理等
规则引擎
物联网云平台通常是基于现有云计算平台搭建的。 一个物联网成熟业务除了用到物联网云平台提供功能外,一般还需要用到云计算平台提供功能,比如云主机,云数据库等。用户可以在云主机上搭建web 行业应用服务。
规则引擎主要作用是把物联网平台数据通过过滤转发到其他云计算产品上。
比如可以把设备上报的数据转发到table store数据库产品里。规则引擎一般使用方式:类SQL语言,通过编写SQL语言,用户可以过滤数据、处理数据,并把数据发到其他云计算产品,或者其他云计算服务。
安全认证及权限管理
物联网云平台为每个设备颁发唯一的证书,需要证书通过后才能允许设备接入到云平台。云平台最小授权粒度一般是做到设备级。我们所说的证书一般分为2种:一种是产品级证书,一种是设备级证书。 产品级证书拥有最大的权限,可以对产品下所有的设备进行操作。 设备级证书,只能对自己所属的设备进行操作,无法对其他设备进行操作。
因此每个接入云平台的设备都在本地存储一个证书(其实存在形式是一个KEY,有多个字符串构成)。每次与云端建立连接时,都要把证书带上。以便云端安全组件核查通过。
云计算产品
大数据计算产品, 云基础服务(高性能服务器,云数据库,云网络)等
物联网应用
智慧城市, 智慧农业,工业4.0等
下面一张是来自华为云Ocean Connect物联网平台架构(端、边、管、云、应用):
边栏推荐
- Linux yum安装MySQL
- What does usart1 mean
- {one week summary} take you into the ocean of JS knowledge
- L2-004 这是二叉搜索树吗? (25 分)
- 【CDH】CDH5.16 配置 yarn 任务集中分配设置不生效问题
- encoderMapReduce 随手记
- Come and walk into the JVM
- UDS learning notes on fault codes (0x19 and 0x14 services)
- 数据库面试常问的一些概念
- Those commonly used tool classes and methods in hutool
猜你喜欢
Vert. x: A simple login access demo (simple use of router)
MySQL and C language connection (vs2019 version)
【yarn】Yarn container 日志清理
double转int精度丢失问题
Redis面试题
FTP文件上传文件实现,定时扫描文件夹上传指定格式文件文件到服务器,C语言实现FTP文件上传详解及代码案例实现
Learn winpwn (2) -- GS protection from scratch
Pytoch Foundation
Valentine's Day flirting with girls to force a small way, one can learn
Vs2019 use wizard to generate an MFC Application
随机推荐
Word typesetting (subtotal)
Vs2019 use wizard to generate an MFC Application
Gallery之图片浏览、组件学习
mysql实现读写分离
Antlr4 uses keywords as identifiers
牛客Novice月赛40
error C4996: ‘strcpy‘: This function or variable may be unsafe. Consider using strcpy_s instead
Are you monitored by the company for sending resumes and logging in to job search websites? Deeply convinced that the product of "behavior awareness system ba" has not been retrieved on the official w
[蓝桥杯2021初赛] 砝码称重
Those commonly used tool classes and methods in hutool
【yarn】CDP集群 Yarn配置capacity调度器批量分配
Detailed explanation of express framework
How to configure flymcu (STM32 serial port download software) is shown in super detail
Solution to the practice set of ladder race LV1 (all)
【presto】presto 参数配置优化
MySQL START SLAVE Syntax
Vs2019 first MFC Application
AcWing 242. A simple integer problem (tree array + difference)
Kept VRRP script, preemptive delay, VIP unicast details
UDS learning notes on fault codes (0x19 and 0x14 services)