物联网云平台系统设计

article/2025/8/23 14:21:23

##物联网云平台系统设计

下面将谈到几个关键问题:

  • 设备如何接入网络?
  • 设备间如何通信?
  • 物联网数据的用途?
  • 如何搭建起一个物联网系统框架呢?它的技术架构又是怎么样呢?
  • 物联网终端软件系统架构?
  • 物联网云平台系统架构?

###1. 物联网设备如何接入到网络?

只有设备接入到网络里面,才能算是物联网设备。这里涉及到2个关键点:接入方式以及网络通信方式

####设备接入方式:
当前有2种接入方式

  1. 直接接入:物联网终端设备本身具备联网能力直接接入网络,比如 在设备端加入NB-IOT通信模组,2G通信模组。
  2. 网关接入:物联网终端设备本身不具备入网能力,需要在本地组网后,需要统一通过网关再接入到网络。 比如终端设备通过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实时操作内核一般包含的重要组件如下:

1. 任务调度
2. 任务间同步与通信
3. 内存分配
4. 中断管理
6. 时间管理
7. 设备驱动

以任务调度组件举例:
在嵌入式操作系统中,任务是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等

下面一张是来自百度物联网平台架构:
突出展示了物联网设备, 物联网云平台, 云计算平台是如何协同工作的,有较大的参考价值。

转载请注明出处

获取物联网设备端及web应用服务平台端源代码
https://www.adminiot.com.cn/modules/1.html

了解更多物联网技术资讯,物联网开放代码,IOT解决方案请访问
www.adminiot.com.cn

阿里云云产品通用代金券分享,最高1000元,助力大家一步上云,更低成本上云
点击获取阿里云代金券


http://chatgpt.dhexx.cn/article/YpUK1obh.shtml

相关文章

Java中数据类型详解

文章目录 一,数据类型的作用二,两种数据类型1,基本数据类型(1)第一类:整数型(2)第二类:浮点型(3)第三类:布尔型(4)第四类&…

JAVA基本数据类型及转换规则

JAVA基本数据类型及转换规则 java数据类型分为两大类: 一:基本数据类型 由程序设计语言系统所定义,不可再分的数据类型。在JAVA语言中,基本数据类型所占的内存空间大小是固定不变的,与所处的平台无关,基本…

JAVA基本数据类型及练习题

目录 8种基本数据类型 类型转换 题目 JAVA的数据类型分为:基本数据类型和引用数据类型。本篇博客会介绍基本数据类型及其使用的注意事项,其中包括隐式类型转换、显示类型转换、编译器的常量优化,结尾会给出10道练习题。 8种基本数据类型 …

java基础:java基本数据类型详解

1.java基本数据类型 java有八种基本数据类型: 4种整型 :byte,short,int,long2种浮点型:float,double (3.14F位浮点型,没有F默认为double)一种字符型&#x…

Java基础(一) 八大基本数据类型

Java基础(一) 八大基本数据类型 自从Java发布以来,基本数据类型就是Java语言的一部分,分别是byte, short, int, long, char, float, double, boolean. 其中: 整型:byte, short, int, long 字符型:char 浮点型&…

GitHub 宣布两个重磅消息:发布移动端、封存代码

By 超神经 AI 无处不在的时代,每天都有新的技术与研究成果出现。无论学术界还是商界,技术还是产品,AI 的新发现都源源不断,在带给我们全新视角的同时,也引起我们更深的思考。 想知道最近的 AI 动态吗?Hyper…

OpenAI 是如何被10亿美元收买了“非盈利”灵魂的?

编译 | 陈彩娴、琰琰 近日,一篇名为“How OpenAI Sold its Soul for $1 Billion”(OpenAI是如何因为 10 亿美元出卖自己的灵魂)的文章在 Reddit 上引起了热议。 文章作者 Alberto Romero 抨击知名的非营利机构OpenAI 为了金钱而出卖自己原有…

可怕!程序员要被革命了,微软推出自己会编程的 “AI 程序员” 插件

loonggg 读完需要 7分钟 速读仅需 3 分钟 大家好,我是校长。 这几天微软和 GitHub 推出了一款 AI 程序员智能插件,它自己会编程,会自动生成代码,有人说: 软件开发领域的「第三次工业革命」似乎正缓缓揭开序幕。 01 到底…

程序员提前下班的福音来了!GitHub、OpenAI 联手推出 AI 代码生成神器

整理 | 苏宓 出品 | CSDN(ID:CSDNnews) 编程门槛正在降低,编程效率正在提升,我们距离「人人都能成为开发者」的目标更近一步。这不,微软正式宣布发布了一个人工智能代码建议方案——GitHub Copilot&#xf…

2020 最好的Linux网络监控工具(翻译)

前言 虽然这个清单包含开源的和闭源的产品,但它着重于介绍基于 Linux 的网络监控工具, 少数常用工具只能在 Windows,Pandora 或其他系统上运行,但是大多数网络监视工具都在Linux系统上运行,因为 Linux 通常是 IT 专家…

MySQL高可用管理工具:orchestrator

orchestrator 是一个MySQL高可用复制拓补的管理和可视化工具,同时也是GitHub官方在使用的一个复制拓补管理工具,它允许: 1)发现: orchestrator主动发现拓补结构并读取基本的MySQL信息,如复制状态和配置。…

GitHub 源代码疑遭泄漏

聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士团队 TypeScript的开发者Resynth 发布题为《GitHub 源代码泄漏》的文章指出,GitHub.com 的所有源代码被公开。 (泄漏者在 Readme 中指出,文档包括日…

2020 最好的Linux网络监控工具

前言 虽然这个清单包含开源的和闭源的产品,但它着重于介绍基于 Linux 的网络监控工具, 少数常用工具只能在 Windows,Pandora 或其他系统上运行,但是大多数网络监视工具都在Linux系统上运行,因为 Linux 通常是 IT 专家的…

网络地址转换(NAT)技术是否拖慢了互联网的发展?(2020 修订版)

2020 年修订版前言:看到有人还是对 IPv4 和 IPv6 的关系搞不清楚,好像只要有了 IPv6 就可以不要 IPv4 了,我只好把老文章祭出来了,当时也是我们接触 IPv6 的开始,两年下来,有些地方做了一些修订。 --- 正文…

Nat. Mach. Intell. | 人工智能的透明度和可重复性

今天给大家介绍多伦多大学的研究人员发表在nature machine intelligence上的一篇文章。文章指出McKinney等人利用AI在乳腺癌筛选上的工作,缺乏研究方法和代码实现的细节,阻碍了透明且可重复(transparent and reproducible)的AI研究…

网络安全学习中的工具

1> Nmap Nmap,也就是Network Mapper,最早是Linux下的网络扫描和嗅探工具包。 系统管理员可以利用nmap来探测工作环境中未经批准使用的服务器,但是黑客会利用nmap来搜集目标电脑的网络设定,从而计划攻击的方法。 其基本功能有三…

p2p网络测试工具_(官方更新)IPFS的网络层——libp2p在2020的发展

如果您在分散的点对点空间中执行任何操作,您可能听说过 libp2p - 用于对等应用程序的模块化网络堆栈。 libp2p 由许多模块化库组成,p2p 网络开发人员可以从中选择和重用所需的协议,同时便于应用程序之间的升级和互操作。这有助于 Web3 开发人…

NAT会话穿越应用程序(STUN)(RFC-5389)

RFC文档链接 摘要 NAT会话穿越应用程序 (STUN) 是一种协议,在处理网络地址转换(Network Address Translator, NAT)穿越时充当其他协议的工具。终端可以使用它来确定NAT分配给它的IP地址和端口。它还可以用来检查两端之间的连通性,并作为keep-alive协议…

教你用 CSS 实现超真实的 3D 相册,让你的照片立体感 UPUP

前言 现如今网页越来越趋近于动画,相信大家平时浏览网页或多或少都能看到一些动画效果,今天我们来做一个有意思的动画效果,通过 css3 实现 3d 效果的立方体相册,下面一起看看吧。 实现思路 首先我们要确定好 html 的结构以及要使…

HTML+CSS实现3D立体相册

程序员的浪漫&#xff0c;话不多说上代码。 HTML: <body><div id"cube"><!--外层盒子--><ul><li><img src"./imgs/1.jpg" ></li><li><img src"./imgs/2.jpg" ></li><li>&l…