1、广东技术师范大学学报2022 年第 6 期 Journal of Guangdong Polytechnic Normal University No.6,2022基于 MQTT 物联网协议的校园共享设备数据采集方案设计与优化吴展斌1,陈汉营2(1.华南师范大学附属中学,广东 广州 510630;2.暨南大学 信息科学技术学院,广东 广州 510630)摘 要:针对 当 前 智 慧 校 园 环 境 中 面临 的智能共享设备数据采集与 监测难题,本文提 出了一种面向以共享箱柜为主体的各类校园共享设备的基于 MQTT 协议的数据采集方案.并以此为基础,提出了基 于 MQTT 协 议 结 合 服 务
2、 器 端 数 据 监 测 并 提 高 各 类 校 园 共 享 设 备 利 用 率 的 方 案.经 实 际 运 行 测 试 表明,该方案有效地解决了校园共享设备数据采集传输存储实时性要求高而并发量大的难题,提高了共享设备利用率.关键词:智慧校园;物联网;数据采集;MQTT 协议;连接池中图分类号:1 概述近年来,在以教育数字化相关规划和要求为指导、以“协调、创新、共享、开放”可持续发展理念为目标、以新一代信息化、数字化应用技术为基础的背景下,各级各类学校积极推进落实 基 于 云 计 算、大 数 据、物 联 网 技 术 的 智 慧 校园管理措施,以高标准实践推进校园信息化建设.通过建设数字化智慧校
3、园,打造与时俱进的信息化环境,从而提升高校的数字化管理服务水平,实现高校数字化的跨越式发展,逐渐实现高校教育水平的现代化.智慧校园的主要特征是基于物理和信息系统的深度融合,利用新一代信息技术实现校园高度网络化和智能化.新一代智慧校园环境由很多重要的信息系统构成,其中,智慧校园物联网就是智慧校园环境的基础.智慧校园物联网的数据采集、数据传输和数据监测利用,是构建智慧物理系统和实现信息化智慧校园的必要条件1.在校园日常学习和活动中,共享箱柜等校园共享设备的应用随处可见,共享设备的数据采集交互需求大,迫切需要设计优良的数据采集监测方案,在实际应用中,共享设备数据传输频率高、终端数量大,也导致服务器传
4、输和数据存储并发性大,容易造成数据延迟和丢失,需要探索出更稳定更高效的数据采集和存储方法2.2 智慧校园物联网环境中数据采集监测面临的问题以 当 前 校 园 的 信 息 化 的 情 况 来 说,校 园信息化建设中物联网的数据采集交互技术,已普遍应用于校园服务场景,起到了很重要的作用.然而,当前的物联网设备数据采集、传输、存储应用过程中,还存在很多不足,从而影响当前飞速发展的数字化校园建设.通过实践中的观察和分析可发现,当前存在于校园物联网设备数据采集、传输、存储过程的不利因素,主要有以下三个方面:(1)数字化校园物联网设备的数据在采集、收稿日期:2022-09-20基金项目:国家自然科学基金项
5、目(61875076);国家自然科学基金项目(62171202).作者简介:吴展斌,华南师范大学附属中学网络工程师.陈汉营,暨南大学信息科技学院实验师.DOI:10.13408/ki.gjsxb.2022.06.004吴展斌,等:基于 MQTT 物联网协议的校园共享设备数据采集方案设计与优化 第 6 期16传输、存储交互中,同时涉及到物理层、网络层与传输层,同时,对于规模大的高校也存在跨校区网络的问题,存在不同的网络层级和区域,从而使整个数据采集、传输、存储系统的集成难度与管理成本大;(2)智慧校园物联网的设备种类多,各类共享柜等应用设备终端数量大,数据传输频率高,导致服务器传输和数据存储并发
6、性大,需要根据业务情况在服务器端,对数据存储并发性进行优化;(3)在 建 设 业 务 类 型 繁 多 的 校 园 数 字 应用系统过程中,为了适配不同类型的共享智能设 备、传 输 协 议、数 据 接 口,实 现 数 据 采 集、传输、存储交互功能的开发时就会出现各类问题,相 应 地 提 高 了 系 统 开 发 的 技 术 门 槛 和 建 设 成本,造成校园数字化平台的建设存在较多的阻碍.本应用涉及的校园共享设备种类多样,除了包括校园中常用的宿舍楼和教学楼的共享储物箱、图书馆的共享书柜、校门口外卖共享柜,还有各类实验室共享仪器等共享设备.针对以上存在的问题,在校园新的信息化建设中,整体规划部署校
7、园共享设备管理系统(网 络 结 构 和 设 备 类 型 如 图 1 所 示).由 图 1 可见,校园信息系统中的设备种类多、场景分散,校 园 人 员 密 集,带 宽 相 对 局 限,需 要 一 种 低 开销、实时可靠的通讯方式.MQTT 协议最大优点在于,可以以有限的带宽,为远程设备提供实时可靠的消息服务;该即时通讯协议低开销、低带宽占用,适合其在物联网、小型移动设备等方面广泛的应用;且该协议具备遗嘱消息,这对于容易掉线的校园共享设备而言非常有用,适用于定制数据防丢机制.总体来看,MQTT 协议较为适合本建设的实际要求.下文尝试基于 MQTT 物联网协议的校园共享设备数据采集传输应用框架,自定
8、义协议规则,探索数据采集方案3,并提出对该框架下的MQTT 数据采集存储过程进行优化的具体方法,以应对广泛存在的智慧校园共享设备数据采集场景,以及为更多的校园设备数字化建设提供有用的借鉴参考4.3 校园共享设备数据采集传输框架的设计实现3.1 数据采集传输框架的分层设计基 于 以 上 存 在 于 智 慧 校 园 共 享 设 备 应 用领域中的数据采集难题,本文主要有针对性地探讨基于 MQTT 协议的校园共享设备管理系统数 据 采 集 框 架5.总 体 上,此 数 据 采 集、传 输、存储应用框架,主要包括四个业务分层(如图 2所示).第一层,框架系统中的基础层为设备物理层、传感层,主要包括校园
9、网络应用中常用的共图 1 校园共享设备管理系统框架图 吴展斌,等:基于 MQTT 物联网协议的校园共享设备数据采集方案设计与优化 第 6 期17享箱柜(如宿舍图书馆的共享储物箱)、外卖共享柜和各类实验室共享仪器等共享设备.在基础层中,设备自身的内容数据和信号数据,先将其缓存到终端内存中,在 MQTT 传输流程中定义为 client 角色,然后,定义原始数据包格式,准备向框架中的更高分层传输.第二层,网络连接层的作用就是把各应用流程中的设备与校园边缘服务器、数据中心存储进行联接.作为 终 端 到 MQTT 服 务 器 数 据 库的中间环节,通过此网络联接层,实现智慧校园的信息数据结构与管理结构的
10、扁平化发展,从而让校园的设备信息网络朝着规整科学的方向发展.第 三 层,校 园 应 用 数 据 汇 总 层 作 用 就 是实现在业务流程不断数字化的基础上,让校园设 备 传 感 层、连 接 层 所 收 集 的 数 据,可 以 通 过MQTT 服务程序将采集到的数据进行初步拆分、存储,存储目标为校园网边缘服务器、云数据中心等;当然,还可跨校区,跨局域网、跨系统,传到校园其他应用系统上.从而,不断通过分析数据、数据接口扩展,支撑第四层的数据调用.第四层,框架系统的最顶层就是智能校园用户层与可视化层,该层的作用,就是为平台提供更加个性化以及智能化的体验服务.提高系统可视化管理,优化系统运作模型和资源
11、配置,提升学校日常管理效率,丰富学生在校园活动中的体验6.3.2 系统部署搭建实现结 合 框 架 层 级 结 构,在 实 现 过 程 中,底 层MQTT 开 发 工 具 采 用 nodeJS 和 mosca 插 件 包;在网络处理层使用 MQTTServer 类,进行数据包的发送和接收控制管理,包括监测数据的时间间隔控制等,对于有跨校区的校园,在该层扩展边缘服务器,初步采集和处理区域数据;在数据融合层,使用 spring MVC 框架,对数据层、控制层和视图层进行分离处理,另外,为了方便向第三方提供数据接口调用和后续场景扩展,使用restful 风格实现接口;系统的用户可视化层使用 H5、ec
12、hart 等 BI 技术工具实现.3.2.1 基于 node.js 的 MQTT 应用部署搭建本 节 简 要 介 绍 采 用 Node.js 来 部 署MQTT服务器的基本流程.(1)安 装 部 署 node.js 基 础 模 块 和 相 关 依赖.先 安 装 node.js 框 架;在 对 node 有 初 步 了解 的 情 况 下,以 下 直 接 列 出 linux 环 境 下 部 署MQTT 模块的主要命令:npm install mqtt-savenpm install mosca-save图 2 基于 MQTT 协议的校园共享设备网络分层框架图吴展斌,等:基于 MQTT 物联网协议的
13、校园共享设备数据采集方案设计与优化 第 6 期18(2)使 用MQTT.js 创 建 一 个 客 户 端.可参 考 上 述 工 具 中 MQTT.js 文 档 中 给 出 的example,它有个实例,连接到 mosquitto 的一个MQTT 测 试 用 server,subscribe 订 阅,publish发 表,client.on(connect)表 示 连 接 已 建 立,client.on(message)收 到订 阅 的消 息,其 他 更多 api 接口等的用法,可参考相应工具文档.(3)建 立MQTT 服 务 端(broker).MQTT本质上是 client 之间通过一个中间
14、人即 broker,来 进 行 相 互 通 信,之 后 通 过 websocket 进 行 连接的 web 端也是一个 client.服务端的搭建使用mosca,该开发工具开源免费.通过以上基本步骤,则实现了搭建运行实例.后续我们根据共享设备的数据业务要求,对数据格式和数据流程进行细化实现.3.2.2 共享设备终端的配置部署共 享 设 备 通 过 WIFI 或 4G 等 方 式 接 入 校园 网 络,可 在 设 备 终 端 设 置 MQTT 的 broker 代理 服 务 器 地 址,以 client 角 色 订 阅、发 布 数 据包.考虑到设备量大或校园跨校区的情形,还可以对终端进行分组,设
15、置不同的 MQTT 服务器地址,实现更大的弹性和并发性功能.3.2.3 数据汇总和设备管理层的实现在 数 据 管 理、设 备 管 理 层,采 用 基 于 java底 层 的 spring MVC 开 发 框 架,对 数 据 层、控 制层和视图层进行分离处理,另外,为了方便向第三方提供数据接口调用和后续场景扩展,使用restful 风格接口 API 实现设计.3.2.4 用户可视化层的实现系统的用户可视化层使用 CSS3、Jquery 等H5 技术工具实现.Echart 等图表化 BI 插件,可实现可视化交互开发和展现优秀的图形用户交互界面,同时可用来开发数据监测图表、动态数据流展示页面.在本应
16、用实践中,使用普通配置的服务器(内 存 8G 以 内,Linux 操 作 系 统),可 以 支 撑 上千的设备并发数据交互,每天产生的数据量达1000 万条以上,极少发生数据包丢失情形,系统运行稳定.可见,以 MQTT 协议为 基础、业务场景自定义规则的校园共享设备系统数据采集处理方案,可以实现良好的可靠性与普适性.4 MQTT 数据传输性能分析与优化在实际的校园信息化应用中,各类校园学生日常需求应用场景对数据的采集应用有严格的要求,一方面需要确保数据采集交互的实时性、稳定性,一方面,根据原始数据进行监测分析,完善数据监测模型,用于优化共享设备资源的配置(本文以研究校园共享箱柜为主).结合上述,具体到校园共享设备应用环境,需要优化校园共享设备管理系统中协议的数据采集与传输存储过程的性能及系统数据监测模型7.前面所介绍的基于 MQTT 的校园设备数据采集与传输框架,包含了设备的信号数据、内容数据的采集监测8,具体来说,可以将数据业务流程总结为以下三个不同的点.4.1 校园设备终端 MQTT 数据采集效率优化在 建 设 实 验 过 程 中,由 于 MQTT 服 务 器 端接收传输和数据存储