物联网扫盲篇——物联网网关
物联网网关在物联网项目中扮演着怎样的角色?什么情况下的物联网项目里,才需要物联网网关呢?这篇文章里,作者尝试从物联网网关的作用、种类和选择等维度做了拆解分析,一起来看看,或许可以帮你了解物联网网关所真正扮演的“角色”。
在物联网项目中,物联网网关作为一个关键组件经常被提及。那么,物联网网关究竟扮演着怎样的角色?它具备哪些核心功能?同时,我们也注意到,并非所有物联网设备都需要网关。那么,我们究竟在何种情况下需要物联网网关呢?
首先,什么是物联网网关?
物联网网关类似我们常见的路由器,具有网络接入能力,但是功能比较简单,通讯速率要求不高,看重移动网络接入能力一般只是做数据透传使用,将物联网的数据转发到服务器上,做进一步分析和处理网关是物联网非常重要的组件,是传感层与网络层连接的纽带。
一、物联网网关扮演的角色
聊到物联网网关,必须先要了解网关在物联网中的应用和物联网架构。
其实物联网的架构之前也有讲到过,主要由感知层、网络层、平台层、应用层构成。 感知层可以主要由基础芯片、执行器、传感器等组成。
传感器根据根据应用场景,功能非常丰富。如我之前做的项目,主要是环保类的。包含了温湿度,压力,S02浓度、粉尘浓度、流量、O2含量等等,针对不同的项目需求可以配置不同的传感器。
传感器收集的数据通常需要传输到物联网平台以进行深度的大数据分析和可视化展示。在实际操作中,根据项目需求与用户网络环境,数据可以通过4G/5G、WIFI或局域网等多种方式上传至物联网平台。
然而,若每个传感器都配置4G/5G或WIFI功能,成本会相对较高。为了降低成本,在特定项目中,可能会选择有线连接或采用LORA、Zigbee等无线技术来满足区域内传感器的部署需求,并最终将数据传输至平台。
在这一背景下,物联网网关设备发挥着关键作用。以智能家居为例,我们可能会部署烟感、温湿度传感器、人体雷达和门禁报警等多种设备。这些设备可以利用Zigbee等无线传输技术在房屋内部进行数据传输,通过一个Zigbee网关进行集中管理和汇聚。随后,网关再通过WIFI或有线网口与外部网络连接,将收集到的数据传输至物联网平台,以便进行进一步的分析和应用。这种方式不仅降低了成本,还提高了数据传输的效率和可靠性。
二、物联网网关的作用
在一些智能办公,智能园区的项目中,我们可能采用lora或者有线的方式,连接各种有线,无线传感器,再通过物联网网关进行数据的汇聚上传到平台。那么为什么很多物联网项目中又没有网关呢?比如我们要监测一个城市范围内的气象信息,市政水位信息,工地扬尘等。这些监控点位跨度大,覆盖分散,一般直接采用NB-IoT,5G等方式直接回传数据,无线经过网关中转。综上所述,物联网网关的应用主要考虑以下几个方面。1)协议转换和标准化 在物联网生态系统中,众多设备和传感器协同工作,这些设备可能采用不同的通信协议和标准。为了确保这些数据的顺畅流通和统一处理,物联网网关扮演着至关重要的角色。它具备强大的协议转换功能,能够将来自不同设备的数据进行转换,使其能够被统一处理和管理。通过这种方式,物联网网关促进了设备之间的互操作性,为物联网系统的稳定运行提供了有力保障。2)数据聚合和处理
物联网网关可以收集来自多个设备和传感器的数据,进行聚合和处理。这有助于减少数据传输量,优化网络使用,并在本地对数据进行初步的处理和分析,降低云端处理的负担。
3)本地决策和响应
物联网网关不仅扮演着数据转换与统一处理的关键角色,更具备在本地执行决策的能力。这意味着,物联网网关可以根据实时设备状态和传感器数据,迅速作出相应的措施,而无需等待云端的指令。这种本地决策执行的特性不仅大幅提升了响应速度,还显著降低了对云服务的依赖,增强了系统的可靠性和自主性。在智能家居、工业自动化等场景中,物联网网关的这一功能尤为关键,它确保了系统在各种情况下的快速响应和稳定运行。
4)存储能力
网关中需要存储的信息分为两部分。
网关和设备的配置信息。存储这些信息是为了设备在运行过程中能够快速读取。物联网设备上传的,经了协议转换之后的通用格式的数据。这些数据是临时存储,避免网络故障等原因导致设备数据丢失。既然涉及到数据的存储与传输,那么不得不提的就是数据安全的问题。物联网网关需要做好以下的数据安全方面的事情:
完善的本地身份认证机制,防止网关设备被恶意修改配置或数据。数据的加密传输能力。支持专用传输通道,例如VPN或者运营商的专网接入。其他基础能力:网关还需要提供其他的配置管理的基础能力,包括但不限于设备管理、配置管理、在线升级等功能。
以上的这些是网关的传统功能。但是在现在这个”智能“时代,我们越来越看重设备的智能性,因此一个趋势就是越来越强调物联网网关的数据分析处理的能力。这个也就是我们经常听到的”边缘计算“。
我们知道,物联网的一大特性就是海量的接入设备。这就导致海量的数据涌入云平台。一方面这些数据会占用大量的网络带宽,另一方面对云平台的计算能力提出了很大的挑战。
另外,有一些原始数据是比较私密或敏感的,比如家庭摄像头拍摄的影像数据、工业场景中的一些数据。我们不希望这些原始数据被上传到云平台。
因此,目前的物联网中,在逐步尝试将原本在云平台上的计算任务,放到靠近数据原产地的设备上完成。这个过程称为将计算能力下沉到边缘设备,也称为边缘计算。
但是,很大物联网设备由于计算能力、能耗等的限制,是无法承担这些任务的,因此一个最轻量的解决方案就是在物联网网关中完成这些计算任务。
整个边缘计算的实现,还是基于分层的思路。在物联网网关中,完成初步的数据处理,或者需要快速响应的计算任务。云平台则负责大规模数据和复杂计算的任务,以及整体的协调控制。
三、网关的种类及选择
第1种,数据透传网关,简称DTU,仅支持数据透传功能,有一路或两路串口,可以直接应用于大部分的物联网场景,不过数据采集和自动控制都在服务器上实现,对服务器压力较大,适合单一或小型项目,并发量上不去。
第2种,数据采集网关,自带协议库,支持常见工业设备主要应用在工业互联网场景,可以采集PLC,DCS等设备
第3种,边缘计算网关,CPU和内存比较大,使用Linux操作系统,支持二次开发,要求使用者有一定的软件开发能力。
那么我们该如何选择物联网网关呢?
个人的经验:
1)先看功能,看功能是否满足你现有业务应用场景。
目前现在大部分的物联网项目还是数据透传模式,只需要透传功能,那么我们使用普通的DTU就行。如果设备比较多,并发量大,那么我们就需要有数据解析功能的网关,这样服务器只需要存储数据,压力会小很多。如果需要在现场做实时的自动控制,或者实现更高级的功能,那么我们就只能使用边缘计算网关了
2)看价格,现在的网关价格大多在800-2000不等,DTU则更加的便宜。具体对比可以通过某宝或者百度进行筛选对比一下
小结
物联网网关的作用就是设备和云平台之间的桥梁。我们可以把互联网网关放在网络环境(例如WiFi,4G)比较好的环境中。其他的物联网设备则采用LoRa等通信计算连接到物联网网关上,从而间接地实现设备的联网。
物联网网关主要具备四种能力:
协议转换和标准化、数据聚合和处理、本地决策和响应、存储能力。
选取物联网网关主要是先看功能再看价格。
目前的物联网中,在逐步尝试将原本在云平台上的计算任务,放到靠近数据原产地的设备上完成。这个过程称为将计算能力下沉到边缘设备,也称为边缘计算。
边缘计算的能力,对网关提出了新的要求…
本文由 @jerry潮 原创发布于人人都是产品经理,未经作者许可,禁止转载。
题图来自Unsplash,基于CC0协议。
该文观点仅代表作者本人,人人都是产品经理平台仅提供信息存储空间服务。
物联网设备网关技术架构设计TCP Gateway
《开源精选》是我们分享Github、Gitee等开源社区中优质项目的栏目,包括技术、学习、实用与各种有趣的内容。本期推荐的是物联网设备网关技术架构设计(Session 管理、心跳管理、数据上行、数据下行)TCP Gateway。
介绍
物联网设备网关技术架构设计(Session 管理、心跳管理、数据上行、数据下行)
说明
NioEventLoop 是 Netty 的 Reactor 线程,其角色:
Boss Group:作为服务端 Acceptor 线程,用于 accept 客户端链接,并转发给 WorkerGroup 中的线程。Worker Group:作为 IO 线程,负责 IO 的读写,从 SocketChannel 中读取报文或向 SocketChannel 写入报文。Task Queue/Delay Task Queue:作为定时任务线程,执行定时任务,例如链路空闲检测和发送心跳消息等。概要说明
TcpServer :提供TCP连接服务TcpSessionManager: 你可以添加监听事件,用于监听TCP会话创建、销毁等LogSessionListener:一个日志监听器,它和tcpSessionManager关联,监听器必须事先 SessionListenerTcpSender:TCP发送者,用户向客户端发送消息通知、实现下行逻辑ServerConfig: TCP 的配置管理类TcpConnector: TCP 容器,用于管理服务和客户端的连接NotifyProxy: 发送通知到代理类以上都是默认配置,你可以不修改,但是你可能需要换个TCP端口
.TCP网关的网络结构
基于Netty构建TCP网关的长连接容器,作为网关接入层提供服务API请求调用。
客户端通过域名+端口访问TCP网关,域名不同的运营商对应不同的VIP,VIP发布在LVS上,LVS将请求转发给后端的HAProxy,再由HAProxy把请求转发给后端的Netty的IP+Port。
LVS转发给后端的HAProxy,请求经过LVS,但是响应是HAProxy直接反馈给客户端的,这也就是LVS的DR模式。
TCP网关执行时序图
其中步骤一至步骤九是指 Netty 服务端的创建时序,步骤十至步骤十三是 TCP 网关容器创建的时序。
步骤一 :创建 ServerBootstrap 实例,ServerBootstrap 是 Netty 服务端的启动辅助类。步骤二 :设置并绑定 Reactor 线程池,EventLoopGroup 是 Netty 的 Reactor 线程池,EventLoop 负责所有注册到本线程的 Channel。步骤三 :设置并绑定服务器 Channel,Netty Server 需要创建 NioServerSocketChannel 对象。步骤四 :TCP 链接建立时创建 ChannelPipeline,ChannelPipeline 本质上是一个负责任的执行 ChannelHandler 的职责链。步骤五 :添加并设置 ChannelHandler,ChannelHandler 串行的加入 ChannelPipeline 中。步骤六 :绑定监听端口并启动服务端,将 NioServerSocketChannel 注册到 Selector 上。步骤七 :Selector 轮训,由 EventLoop 负责调度和执行 Selector 轮询操作。步骤八 :执行网络请求事件通知,轮询准备就绪的 Channel,由 EventLoop 执行 ChannelPipeline。步骤九 :执行 Netty 系统和业务 ChannelHandler,依次调度并执行 ChannelPipeline 的 ChannelHandler。步骤十 :通过 Proxy 代理调用后端服务,ChannelRead 事件过后,通过发射调度后端 Service。步骤十一 :创建 Session,Session 与 Connection 是相互依赖的关系。步骤十二 :创建 Connection,Connection 保存 ChannelHandlerContext。步骤十三 :添加 SessionListener,SessionListener 监听 SessionCreate 和 SessionDestory 等事件。程序运行案例步骤
1.配置本地Host
Window 地址 // C:\Windows\System32\drivers\etc\hosts
添加 127.0.0.1 iot-open.icloud.com
2.启动Server
位置: com.ibyte.iot.test.server.TestTcpServer
2.启动Client
位置: com.ibyte.iot.test.client.TcpClient
更多内容:https://gitee.com/ibyte/icloud-tcp-gateway
相关问答
力控物联网智能网关说明书?
产品名称:力控物联网智能网关1.产品概述:力控物联网智能网关是一种基于物联网技术的智能设备,旨在提供可靠稳定的连接和智能控制功能。它作为接入点,连接...
物联网智能网关装置有什么作用?
一、什么是物联网网关?网关就是为了不同协议之间转换难而诞生的一个产品,对内负责整个智能家居系统不同设备的协议转换,对外通过以太网或者WiFi进入互联网实...