学术论文投稿/征稿

欢迎您!请

登录 注册

手机学刊吧

学刊吧移动端二维码

微信关注

学刊吧微信公众号二维码
关于我们
首页 > 学术论文库 > 理工论文 基于树莓派与MQTT的智能网关设计*论文

基于树莓派与MQTT的智能网关设计*论文

15

2024-10-23 10:53:35    来源:    作者:liziwei

摘要:针对物联网环境终端节点数据传输协议多样化、网络服务中心化的问题,设计了一种基于MQTT协议的协处理网关。网关选取树莓派作硬件平台,以嵌入式可移动设备为基础,基于MQTT协议事件发布订阅的消息传输模型,构建了集成服务代理、数据管理、协议转换、状态监测等功能的系统结构,建立了由感知层、服务层、应用层的通信链路,并完成了网关系统整体配置与消息发布订阅模型的设计,实现了网关、感知设备和用户的双向通信。实验测试显示:智能网关能建立稳定的通信连接,准确完成数据的接收与发送,实现多点间的数据通信,数据传输过程稳定,在测

   摘要:针对物联网环境终端节点数据传输协议多样化、网络服务中心化的问题,设计了一种基于MQTT协议的协处理网关。网关选取树莓派作硬件平台,以嵌入式可移动设备为基础,基于MQTT协议事件发布订阅的消息传输模型,构建了集成服务代理、数据管理、协议转换、状态监测等功能的系统结构,建立了由感知层、服务层、应用层的通信链路,并完成了网关系统整体配置与消息发布订阅模型的设计,实现了网关、感知设备和用户的双向通信。实验测试显示:智能网关能建立稳定的通信连接,准确完成数据的接收与发送,实现多点间的数据通信,数据传输过程稳定,在测试过程中未出现信息丢失。MQTT协议结构的智能网关实现了消息双方在时间、空间及同步的解耦。网关缓解了中心化网络服务带来的堵塞,提高了数据的通用处理能力,提升了数据传输效率。

  关键词:智能网关;MQTT协议;树莓派;消息模型

  0引言

  随着物联网技术的快速发展,便携式电子产品、智能家电、环境信息监测等智能设备接入网络,为生活提供了极大的便利。各种传感器以及微小型嵌入式系统为设备提供了更深维度的数据交互,使得物体拥有自己的语言。然而在传统的物联网系统中,面临复杂的数据传输服务时,需要搭建复杂的基础设备,建立集中服务系统,联合多方开发才能完成设备入网,在数据迁移时无法保证稳定性。相比传统的中心化网络服务系统,小型化、便捷式的异构网络服务代理在物联网系统中更具优势。

  近年来,国内外学者对智能网关展开深入研究。文献将Web应用于物联网开发,基于MQTT协议利用EMQX服务器的Hook机制和管理机制,构建了一个设备汇聚、信息集中管理和显示的物联网监测平台。文献基于6LoWPAN与消息队列遥测传输的无线传感网络系统,实现了无线传感网络节点与IPv4网络的端到端通信。文献设计了多种协议自适应转换方案并设计搭建了边缘计算平台,基于MQTT协议构建了完整的消息转发系统。文献[8]提出了应用于海洋观测的MQTT协议数据推送方案,并在加密与验证方面对协议进行改进。综合文献发现,网关研究主要集中在3个方面:(1)MQTT协议在物联网网关系统中的设计与实现;(2)MQTT协议结合不同平台与网络在不同场景下的研究应用;(3)基于MQTT的异构网络系统的研究与设计。

  上述研究中,基于MQTT的应用系统大多采用大型服务群完成服务代理,当不同的自组网络加入主体网络时,网络转换数据传输复杂且传输量大,同时在系统部署及迁移上,造价成本过高。

  因此,本文基于MQTT设计了一种协处理智能网关系统,以嵌入式可移动平台为基础,构建了集成服务代理、数据管理、协议转换、状态监测等功能的系统结构模型,完成了网关系统整体配置与消息发布订阅模型的设计,实现了从发布端到订阅端消息稳定传输。嵌入式设备代理服务具有去中心化的特性,更加轻量高效。

  1网关原理解析
       1.1网关架构

  智能网关架构依赖于物联网架构体系,其网络结构分为4个部分:应用层、网络层、传输层和感知层。其中,应用层主要负责向用户展示数据,以及对设备进行控制指令的发送。网络层与传输层作为连接应用层与感知层的中间部分,负责传输和处理数据,是整个网络的中轴。感知层相对于上两层,更偏向于硬件模块,由众多传感器组成,负责收集数据和执行指令。这样的层级结构使得网关系统有巨大的扩容空间。

  1.2异构网络关系

  智能网关的感知层具有很强异构性,其核心是实现物与物的信息交互。部署在感知层与传输层,主要是由传感器、控制器、执行器等组建而成,传感器单元随机分布在监测区域,与处理单元以及通信单元自组连接。传感器节点进行本地信息的采集,控制单元对数据解析、存储以及运算,协作完成大规模的复杂任务。在自组网络中,通常只有部分节点负责收集数据和发布命令,受资源限制、自组结构、动态性强等特点,其传输形式多样,根据通信介质不同,组网设备通信方式有无线通信和有线通信两种。以无线传输为例,常见的通信方式有蓝牙、WiFi、ZigBee、NFC、IrDA等,为适配多种类型的感知节点,网关端需要支持多协议通信方式。

  1.3网络拓扑结构

  智能网关在系统中合理的拓扑结构,能够为系统提供实时可靠且高效的数据传输。网络拓扑结构指网络节点设备在网络中的连接形式。常见结构有星形拓扑结构、环形拓扑结构、树形拓扑结构。

  在星形拓扑中,每个节点通过点对点连接到中间节点。一个节点传输数据,首先向中间节点发出请求,建立连接通道,再向目标节点发送。这种集中式控制策略,中间节点控制所有信号通路,使得中间节点结构非常复杂,其他节点负担很小,只需满足点对点链路简单通信。在环形拓扑中,网络中存在很多中继器,中继器进行点对点连接,构成一个封闭的环形结构。链路是单向的,在数据的发送过程中,数据沿着某一方向环形发送。各个节点通过中继器连接到网络中,数据发送需加上控制信息,经过其他中继器后到达目的地。区别于星型结构与环形结构,树形结构有明确的主次层级管理系统。树形结构更适用于网关系统网络结构的组建。

  2智能网关系统框架结构

  2.1硬件平台结构

  采用树莓派作为智能网关硬件开发平台,结构如图1所示。树莓派基于ARM内核,板载USB接口以及以太网接口,扩展多路GPIO接口,配备无线网卡,支持多种通信协议。同时,支持基于Linux的多种操作系统,并继承了Linux良好的移植特性,支持Python等语言开发,便于系统应用的开发与定制。本文利用嵌入式设备便携、可扩展等特点,搭建完成了智能网关硬件平台,不仅减小了服务代理端的设备体积,而且在异构网络传输中缓解了数据在集中服务时带来的网络压力。

image.png

  2.2软件系统结构

  网关在物联网层级结构处于网络层与传输层,负责协调系统中感知层与应用层数据交互。智能网关的软件系统结构如图2所示。
       与传统服务器不同的是,为了满足来自多种设备的服务请求,需要适配多种通信协议。客户端通过协议转换发布自定义的主题,不同的客户端通过主题订阅实现双方设备互联,在这种机制下,消息发布者与消息订阅者是通过中间代理间接通信。总体来讲,MQTT代理完成端到端的通信协议,身份识别、状态监测、主题类别等组建完整的系统功能。

  3智能网关协议模型

  3.1 MQTT通信模型

  MQTT是基于TCP/IP的一种消息发布订阅模式的应用层通信协议,具有轻量、开销较小、易于实现等特点,适用于小型传输,尤其在低带宽、嵌入式设备中应用广泛。

  MQTT通信模型包含发布者、订阅者、MQTT Broker 3种服务类别。用户动态创建主题,以MQTT Broker为中心,发布/订阅客户端通过网络连接到服务端,发布应用消息给其他客户端,或请求接收相关应用消息,从而建立复杂的传感网络。MQTT协议以主题为单位完成通信,通过主题类别对消息进行分类。消息主题形式灵活多样,支持管理层级的剥离分解,可实现对指定层级的过滤处理。通信模型原理如图3所示。

image.png

  3.2 MQTT报文格式

  MQTT协议通过交换预定义的MQTT控制报文来通信,报文格式由固定报头、可变报头、有效载荷3部分组成。报文格式结构组成如图4所示,固定报头用于描述报文信息,是报文必须包含的内容。可变报头与有效载荷用于消息信息的存放,可为空。MQTT协议可根据数据的重要程度,利用QoS设置不同等级的服务质量,从低到高依次可取值为0、1、2。

image.png

  4网关软件系统设计

  本文设计的智能网关软件系统由3个部分组成,包含软件总体设计,消息发布订阅以及通信接口设计。

  4.1软件总体设计

  网关利用多进程之间的切换协调端到端的数据传输,具体工作流程过程如图5所示。

image.png

  感知终端通过串口、SPI等通信接口与树莓派网关相连,采集终端节点数据;发布端开启连接请求,连接完成后,发送主题至代理服务器。MQTT Broker实现发送端主题与订阅端主题的管理与匹配。在订阅端关联主题后,MQTT代理服务器推送其订阅主题消息。终端节点最终再次通过通信接口接收信息,完成数据通信。

  4.2消息发布/订阅

  消息发布/订阅流程如图6所示。首先,导入paho-mqtt支持库与初始化连接配置,设置代理地址、端口、连接延时以及节点名称,创建客户端并将初始化属性配置客户端对象,开始连接Broker,如果连接成功,创建loop_start独立线程,开启发送;发布过程与订阅过程略有差别,除了初始化客户端与连接Broker以外,在客户端初始化过程中,需要绑定回调函数并关联发送端消息主题,在确认订阅主题与发布主题一致后,接着来自发布端的消息,完成传输订阅。

  4.3感知器通信接口设计

  感知器节点通过GPIO与树莓派实现数据传输。由于感知端通信接口的差异化,在终端数据传输中,需根据感知器节点的通信接口配置通信方式。树莓派支持多种通信协议,如串口、SPI、IIC等。本文采用的终端通信方式为串口与SPI接口,其通信过程如图7所示。

image.png

  5实验与测试

  5.1网关配置

  本文采用Mosquitto进行服务代理,为确保数据传输的安全性,采用用户验证登录方式进行访问,系统配置说明如图8所示。其配置流程为:(1)修改配置支持非匿名登录;(2)指定用户信息存放位置;(3)创建用户信息。

  其中配置指令为allow_anonymous false、pass‐word_file/etc/mosquitto/passwd.conf用于流程(1)和(2)的配置,指令sudo mosquitto_passwd-c/etc/mosquitto/pass‐wd.conf liu用于创建用户信息。配置完成,启动MQTT服务代理。

  5.2功能测试

  开启两个不同终端,同时执行shell脚本完成客户端任务,执行mos_sub.sh开启订阅,mos_pub.sh开启发布。测试结果如图9所示,结果显示订阅端能够准确地接收到来自发布端的主题消息。

  为确定数据传输的稳定性,让发布端发起500~3 000次的消息推送,所得测试结果如表1所示。数据在传输过程中丢失率为0,传输时间随着采样数的增加逐渐变长。

image.png

image.png

  6结束语

  本文设计了一种以树莓派嵌入式系统为基础的协处理智能网关,网关采用MQTT作为系统数据传输协议,配置Mosquitto作为中间服务代理,通过客户验证登录方式访问的形式,确保数据传输的安全性,并设计多种通信接口作为感知端节点数据接入,实现多个客户端之间的消息订阅与发布。实验测试发现,网关能够准确地完成数据的传输,且数据传输过程稳定,在上千次的传输过程中未出现信息丢失。相比传统C/S模型,MQTT协议结构的智能网关实现了消息双方在时间、空间及同步的解耦。网关缓解了中心化网络服务带来的堵塞,提高了数据的通用处理能力,提升了数据传输效率。基于其单次数据传输量小、轻量便捷等特点,适用于智能家居、工业制造、能源电力、交通物流等多种场景。

       参考文献:

  [1]杨毅宇,周威,赵尚儒,等.物联网安全研究综述:威胁、检测与防御[J].通信学报,2021,42(8):188-205.

  [2]施巍松,张星洲,王一帆,等.边缘计算:现状与展望[J].计算机研究与发展,2019,56(1):69-89.

  [3]李继蕊,李小勇,高雅丽,等.物联网环境下数据转发模型研究[J].软件学报,2018,29(1):196-224.

  [4]欧阳丽炜,王帅,袁勇,等.智能合约:架构及进展[J].自动化学报,2019,45(3):445-457.

  [5]郭翠娟,暴宁,荣锋.基于MQTT的物联网平台研究与设计[J].计算机工程与设计,2022,43(8):2378-2384.

  [6]阳旺,樊振宇,吴帆.基于6LoWPAN与MQTT的无线传感网络设计[J].国防科技大学学报,2019,41(1):161-168.

  [7]于海飞,张爱军.基于MQTT的多协议物联网网关设计与实现[J].国外电子测量技术,2019,38(11):45-51.

  [8]侯敏,刘倩,杨华勇,等.基于MQTT协议的海洋观测数据推送系统[J].计算机工程与应用,2019,55(20):227-231.

  [9]刘远聪.基于物联网智能控制技术网关的设计与研究[J].机电工程技术,2016,45(12):42-46.

  [10]吴俊辉,吴桂初,陈冲,等.基于MQTT协议的物联网网关设计[J].温州大学学报(自然科学版),2019,40(4):54-61.

  [11]张洪,高东祥,修伟杰,等.基于数字孪生的发酵仓监控系统构建[J].轻工机械,2024,42(3):80-84.

  [12]王岩,褚泽帆,符伟杰,等.基于Cortex-A9的物联网网关的通信协议设计[J].电子设计工程,2019,27(13):88-92.

  [13]王文斌,张鑫,赵玉,等.基于Modbus通信协议的物联网网关设计[J].单片机与嵌入式系统应用,2020,20(11):59-62.

  [14]丘源,经本钦,李精华.基于ESP8266WiFi模块和MQTT协议的物联网传感节点设计[J].物联网技术,2019,9(6):24-26.

  [15]陈海明,崔莉.面向服务的物联网软件体系结构设计与模型检测[J].计算机学报,2016,39(5):853-871.

  [16]朱钦鸿,鲍敏.基于物联网的异构数据动态解析系统设计[J].计算机时代,2023(11):100-103.

  [17]陈亮,李峰,任保全,等.软件定义物联网研究综述[J].电子学报,2021,49(5):1019-1032.

  [18]费叶琦,周徐孝,齐加胜,等.基于树莓派和云平台的平移窗智能语音控制系统设计[J].机电工程技术,2021,50(11):171-174,182.

  [19]于金刚,耿云飞,杨海波,等.基于MQTT协议的消息引擎服务器的设计与实现[J].小型微型计算机系统,2016,37(10):2238-2243.

  [20]杨鹏.基于MQTT协议的信息推送平台系统的设计与实现[D].成都:电子科技大学,2015.