承接上文介绍了雾计算的简单的应用和由来,下文将会介绍物联网的一个重要技术 - 边缘计算(Edge computing)。下文将会阐述边缘计算的由来,并介绍它与物联网的关系,而且会利用无人驾驶作为用例,介绍云计算的短处和边缘计算的应用。
先定义一下边缘计算(wikepedia,2019):
这里提到很多艰涩的专业名词,例如是“分散式运算”,“节点”等,其实只是描述:边缘技术是一种技术将大型应用程式的一部分转移到(即分散式运算)日常设备中处理(即边缘节点中)。
在云计算的典型结构中(如上图),通常可分为“云(云层) - 网(雾层) - 端(边缘)”三层。“端”这一层覆盖所有终端的应用程式,亦通常是被管理的角色。当云计算一计算出结果,就会到透过“网”层,将指令发送到“端”层的应用程式执行,而应用程式收到数据后,则会发送到“云”层作计算。
而边缘计算则可以想像为给予“端”层一定程度的“自治”。在边缘计算的架构中,终点被赋予简单的存储和计算能力(与雾计算不同,这里重点是“简单”的功能) ,令它能偶尔脱离云的管理,并根据环境数据作出回应。
增加终端系统简单的计算和存取能力看似一小步,但其实这个布局有着莫大的好处,当中包括:
- 低延迟:数据由近场产生,能快速回应
- 独立性:在没有网络连接下,系统亦能运作
- 合规性:无需传送用户资料,保护个人数据
- 简化数据:终端先处理部份数据,数据简化后才向云服务器传输
- 安全性:数据传输减少,减少网络安全风险
无人驾驶是边缘计算其中一个经典用例,亦是一个很好例子说明云计算的短处和为什么需要边缘计算。
下图展示的是常用的云计算架构,当中包括1)一架智能汽车(客户端),并且正在使用无人驾驶功能,2)互联网(Internet),用作传输数据,以及3)云服务(云计算)服务器),用作提供无人驾驶服务。
假设汽车正在以60ms-1的速度行驶,并在起始位置感测到前方3m有阻碍物。由于汽车正在使用云计算的架构,汽车本身并没有分析的功能,汽车会将感测到的影像 传送到云服务器中作分析(步骤1)。
很不幸地,由于汽车现在在北区甚远,信息在005s后才能到云服务 无上停驶,但也要经过005s才能将指令发送到汽车上执行(步骤2)。
在这段发送信息到回收指令的过程中(~01s),汽车会继续以均速行驶(60ms-1),并到6m后(= 60ms-1×01s)才会收到指令停下来 。而且会撞到在3m前的路人,酿成车祸。
汽车在起始位置感测到前方3m有阻碍物,会立刻执行停车指令(步骤1)。然后再发送影像和决策内容到云服务器中作进阶分析(步骤2),以改善无人驾驶性能。 (注:这里看似与雾计算方式相似,但在过程中,应用程式没有作任何的数据分析,只根据感应器内容作出回应。若然是雾计算的话,感应器信息会发送到雾服务中,再作分析,然后通知终端设备作出回应。)
由此可见,云服务器距离数据产生的位置较远,因此会造成较大的延迟。而无人驾驶这些需要实时作出决策的活动,则很大机会需要使用边缘计算,使计算的服务靠近产生数据的源头,做到计算更接近实际行动。
随着科技的进步,数据传输速度的快速提升,不少日常物品,例如是家用电器,车辆等,都已经嵌入感测器,并透过网络接结与互联网交换资讯,形成了庞大的物件网络(即物联网)。
物件会在运行时会收集到大量的环境数据。有些人会问,为什么不把数据都在本地(local drive)处理,其他数据再传到云服务做储存。这可能是其中一个可以实行的方法,但如果所有数据都在本地处理,物件本身要设有很多的存储装置和处理服务器。这会大大增加电力消秏和物件重量,增加成本。
因此,最好的方法是结合云计算和边缘计算的优势做出最佳的配置。在一些决定物件重大安全性的事件(例如如上文无人驾驶例子的刹车)可将决定的主导权放到边缘上,其他没有急切性的事情,则放到云服务器低成本集中处理。透过云与边缘的良好分工,大大减少成本,亦能提高运算效率。有很多通信模块只有TCP功能,没有MQTT功能,比如WIFI,W5500等模块,还有一些NBIOT模块,但是又想连接阿里云物联网平台,官方提供了 *** 作系统,需要自己移植,很麻烦,比较难看得懂。就在想有没有一些简单一定的方法。
心想MQTT是基于TCP的,能否使用TCP转MQTT?因此就想使用TCP协议然后转MQTT协议连接阿里云物联网平台,经过试验证明是可以的。
首先我们先分析一下如何登陆接入Onenet平台。
先从它数据格式开始分析。首先我们要从后台取出三个信息,我们以这个为例。
我们把产品ID,设备名称,设备秘钥,简称三要素 (具体是什么看你自己的设备)
其实阿里云物联网平台的MQTT协议用的就是标准的,不过它加入了自己的认证方式。
MQTT协议需要上传四个参数,报活时间,clientID,用户名,密码。
那么阿里云的就在clientID,用户名,密码做了手脚。
clientID比较长,按照一定的格式
用户名:设备名和秘钥组成
密码:使用了加密串进行了加密,有sha1或者MD5加密方式
下面我们来介绍一下
MQTT接入都是发十六进制的数据。
么我们发送的时候就是这样子的一串数据
0x74 0x00 0x04 0x4d 0x51 0x54 0x54 0x04 0xC0 0078 0033 0x61 0x62 0x63 0x7c 0x73 0x65 0x63 0x75 0x72 0x65 0x6d 0x6f 0x64 0x65 0x3d 0x33 0x2c 0x73 0x69 0x67
0x6e 0x6d 0x65 0x74 0x68 0x6f 0x64 0x3d 0x68 0x6d 0x61 0x63 0x73 0x68 0x61 0x31 0x2c 0x74 0x69 0x6d 0x65 0x73 0x74 0x61 0x6d 0x70 0x3d 0x31 0x32 0x30 0x7c 0009
0x35 0x36 0x37 0x38 0x26 0x31 0x32 0x33 0x34 0028 0x32 0x32 0x32 0x37 0x35 0x30 0x44 0x45 0x44 0x46 0x45 0x34 0x46 0x37 0x37 0x34 0x30 0x30 0x32 0x45 0x45 0x38 0x37 0x45 0x45 0x44 0x32 0x39 0x43 0x46 0x44 0x30 0x36 0x33 0x38 0x43 0x35 0x46 0x36 0x36
十六进制解释
数据长度:0x74
协议数据长度 0x00 0x04
协议类型: 0x4d 0x51 0x54 0x54
协议数据: 0x04 0xC0
keepAlive数据:0078
ClientID长度:0033
ClientID: 0x61 0x62 0x63 0x7c 0x73 0x65 0x63 0x75 0x72 0x65 0x6d 0x6f 0x64 0x65 0x3d 0x33 0x2c 0x73 0x69 0x67 0x6e 0x6d 0x65 0x74 0x68 0x6f 0x64 0x3d 0x68 0x6d 0x61 0x63 0x73 0x68 0x61 0x31 0x2c 0x74 0x69 0x6d 0x65 0x73 0x74 0x61 0x6d 0x70 0x3d 0x31 0x32 0x30 0x7c
用户名:0009
用户名: 0x35 0x36 0x37 0x38 0x26 0x31 0x32 0x33 0x34
密码长度:0028
密码: 0x32 0x32 0x32 0x37 0x35 0x30 0x44 0x45 0x44 0x46 0x45 0x34 0x46 0x37 0x37 0x34 0x30 0x30 0x32 0x45 0x45 0x38 0x37 0x45 0x45 0x44 0x32 0x39 0x43 0x46 0x44 0x30 0x36 0x33 0x38 0x43 0x35 0x46 0x36 0x36复制代码上面的就是连接服务器的连接包
下面呢,我们来做个发布包(上传数据到服务器)
0x30 0x1D 0009 2f7379732f706f7374 0x7b 0x70 0x61 0x72 0x61 0x6d 0x73 0x3a 0x7b 0x74 0x65 0x6d 0x70 0x3a 0x31 0x30 0x7d 0x7d
十六进制数据解释
数据头:0x30
数据长度:0x1D
TopicName数据长度:0009
TopicName数据内容:2f7379732f706f7374
主体json数据: 0x7b 0x70 0x61 0x72 0x61 0x6d 0x73 0x3a 0x7b 0x74 0x65 0x6d 0x70 0x3a 0x31 0x30 0x7d 0x7d复制代码以上就是连接阿里云的数据包格式及发布数据的格式,由于时间问题没有做订阅的数据包分析,下一次更新订阅的内容。
IoT是Internet of Things的缩写,字面翻译是"物体组成的因特网",准确的翻译应该为"物联网"。物联网(Internet of Things)又称传感网,简要讲就是互联网从人向物的延伸。
用于物联网终端系统平台的 *** 作系统,就是IoT OS
如今,超过250亿台“物体”连接到互联网上,预计到2025年,这个数字将翻一番。工业物联网(IIoT)以一种爆炸式的方式迅速发展。工业物联网(IIoT)设备、标准和通信协议的激增,使得对IIoT的有效管理变得非常具有挑战性。如何定义工业物联网 (IIoT) 平台?
工业物联网平台 是一种工业物联网软件,它使组织能够安全地管理工业物联网生态系统中所有连接的人、系统和对象。
在界定工业物联网平台时,我们应该认识到,物联网已经创造了一个新的整合水平。随着成千上万的工业物联网设备接入网络,企业需要管理比以往更多的端点。然而,这不是一个简单的设备问题,工业物联网实际上是一个由人、系统和对象组成的数字生态系统。这就需要一个工业物联网平台来安全有效地管理生态系统的每一个元素。
工业物联网平台有哪些不同类型?
虽然工业物联网平台研发的初衷是对工业物联网的设备和数据进行管理和控制,但为了适应不同的用例,已经开发了许多不同类型的平台。事实上,工业物联网平台很难分类,反而工业物联网平台供应商正在改进其平台产品,以满足客户需求和特定的业务需求。
工业物联网平台将提供不同的功能组合,包括工业物联网的端点管理和连接、物联网数据的采集、接收和处理、数据的可视化和分析,以及将物联网数据集成到业务流程和工作流中。在比较不同类型的平台时,应根据组织的业务需求和特定的IT基础设施,并将其与工业物联网的解决方案相匹配。
工业物联网平台应该具备哪些特点?
因此,最好的工业物联网平台因组织而异,单个平台功能集无法为每个用例提供足够的解决方案。但是,任何一个工业物联网平台都应该具备以下特点:
安全
安全性是工业物联网平台的核心,它不仅可以保护所有物联网端点免受外部网络攻击,还可以处理来自组织内部的潜在恶意活动。
连接性
每一个工业物联网设备都必须快速、安全地进行配置,并对其生命周期的所有阶段进行管理,包括在设备配置、注册、激活、挂起、未挂起、删除和按需重置时对其进行跟踪和授权。
集成
集成是工业物联网面临的最大挑战之一。工业物联网平台允许物联网设备与不同的企业应用、云服务、移动应用和传统系统无缝、安全地连接和共享信息。
识别
工业物联网平台可以支持最广泛的物联网设备。无论在工业物联网架构中的任何地方,都能自动感知物联网设备的存在,建立安全连接,并能快速建立设备凭据,或在需要时自动分配。
分析
物联网设备大大增加了组织中的数据量。分析工业物联网应该是工业物联网平台最强大的功能之一。它可以对工业物联网数据进行适当的可视化和分析,为改进数据驱动的决策提供实际的见解。
管理多个工业物联网传感器很简单,但如今,企业拥有数十万台工业物联网设备来执行遍及组织内部的众多任务。工业物联网设备有多种形状和尺寸,没有通用的工业物联网标准或连接方式。管理一个工业物联网网络意味着能够监控一系列异构的工业物联网设备。
如今,工业物联网(IIoT)平台为工业物联网在几乎所有行业的快速发展提供了解决方案。工业物联网平台能够将设备和企业应用软件完美融合,使数据在互联的人、系统和对象之间无缝、安全地流动。
基于Spring Cloud的开源可分布式物联网(IOT)平台,用于快速开发、部署物联设备接入项目,是一整套物联系统解决方案
模块划分,四层架构
IOT 平台架构
Demo
源码获取源码地址关注后私信回复“iot平台”
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)