基于MQTT 和无线传感网络的大气质量监测系统研究与开发

2021-11-15 05:43冯毅琨白玉鹏侯志松
关键词:网关无线传感器

冯毅琨,白玉鹏,侯志松

(1.郑州大学软件与应用科技学院,河南 郑州 450002; 2.河南科技学院信息工程学院,河南 新乡 453003)

大气环境污染问题越来越受到人们的关注.对大气环境进行实时监测,是有效解决大气环境问题的前提.20 世纪60 年代初,欧美等发达国家在大气环境监测方面,开展了深入研究[1].英国森歌公司研制开发的Ambirak 空气质量监测系统,主要由计算机控制分析、全面故障诊断、信息记录等模块组成,能够自动监测大气环境质量[2].我国的大气环境质量监测工作起步较晚,但在大气环境监测方面也取得了长足的进展.中国环境科学研究院相关科研人员研发了可以对大气环境信息进行采集、处理和储存的TRM- ZS生态环境监测系统,检测效率得到了显著提高[3].中国科技大学利用互联网接入技术,采用B/S 网络结构模式,研制了远程水环境检测系统,能够有效监测河水的污染问题[4].

对于大气环境质量监测问题,虽然国内外在多方面进行了研究与设计,但仍然存在一些关键问题亟待解决,主要表现在:一是现有的大气环境质量监测系统,仍多采用有线通信方式,布线繁琐、成本较高,对于偏远地区环境监测不太适应;二是现在使用的监测仪器设备,往往体积较大,搬运不便,环境适应性较差.因此,利用物联网技术,有效融入大气环境监测系统,实现环境监测信息的网络化、智能化,是大气环境质量监测研究的方向.

本系统采用MQTT 协议安全有效的发布/ 订阅方式,以配置的方式管理环境数据采集传感器与网关设备的关联关系,简化了硬件安装部署难度,降低了硬件成本和人力投入;网关设备采用基于5G 的无线传输模式,可实时上报环境数据,解决了传统大气环境数据采集时效性差的问题.通过本系统,环境管理单位可实时、准确地掌握大气环境参数的动态变化趋势,及时地制定应对策略,有效地进行环境治理.

1 系统设计

大气质量监测系统研究与开发的目标,就是要实时采集区域大气环境质量数据,并建立相应的信息数据库,统计、处理、分析并自动绘制大气环境情况图形等,供大气环境综合治理者参考,本研究基于消息队列遥测传输(Message Queuing Telemetry Transport, MQTT)协议[5],通过在目标区域布设射频识别源、全球定位系统、传感器等各类信息传感设备,实时、精确地采集温度、湿度、PM2.5 数值等大气环境信息,并按照约定的协议,将网络节点与互联网连接起来,上传采集的大气环境数据信息至网络服务器,并进行数据分析和信息交换,从而智能化监测区域大气环境变化情况,为针对性地监测大气环境、治理大气污染提供数据基础.

因此,系统的设计,采用无线传感网络(Wireless Sensor Network, WSN)为基础的物联网信息平台,由感知层、传输层、平台层和应用层等核心组成.大气质量监控系统整体框架如图1 所示.

图1 大气质量监控系统框架Fig. 1 The framework of atmospheric quality monitoring system

1.1 结构框架设计

为实现大气质量检测设备快速组网,本系统采用感知层、网络层和应用层的三层体系架构.由无线传感网络控制设备、数据通信服务器和数据展示平台等组成,完成从数据采集、跨网段传递、存储、处理及结果反馈的过程[6-9].无线传感器控制设备在某个区域获取温度、适度和二氧化碳等大气环境参数之后,通过无线网络,传送至数据通信服务器,数据通信服务器将数据提供给数据展示平台,数据展示平台对区域大气环境数据进行统计和分析,并从不同视角动态显示当前大气环境信息.大气质量检测系统结构框图如图2 所示.

图2 系统结构框图Fig. 2 The structure of system architecture

1.1.1 无线传感网络 与传统的有线大气质量信息获取相比,无线传感器网络具有低成本、低功耗、性能可靠等优点.在本系统中,无线传感网络是大气质量监测系统中感知层的部分,设置有可以感知外界环境的传感器构成的若干个传感器节点,依靠这些节点,通过无线通信方式,进行大气环境质量信息的数据采集、预处理和传输,并最终传送给大气监测者.在大气质量监测系统中,无线传感器是系统的触手,主要用来获取大气环境信息.

1.1.2 数据通信服务器 数据通信服务器协调大气质量监测系统中的传输层和平台层,将物联网中的无线传感器接入到网络,为数据的传输提供一种可靠的通信方式;同时,把无线传感网络获取到的大气质量信息进行整合,并存放在系统平台的数据库中;最后汇聚各无线传感网络获取到的数据并传输至数据展示平台,为其他应用层的数据构建相对应的数据视图.

1.1.3 数据展示平台 数据展示平台可以实现应用层上的相关功能需求.平台在收集各类相关数据后,按照用户需求,将存储在数据库中的各项大气环境监测数据进行分类、处理和分析,并给出数据分析结果.用户可以通过大气环境动态分析,为监测大气环境质量和大气污染治理提供便捷可靠的数据支撑.同时,展示平台还能够预留深度学习接口,对历史数据进行训练,形成大气环境预测模型,满足预测的、认知的或复杂的分析业务逻辑,为系统平台向人工智能过渡提供特定的数据基础.

1.2 技术框架

智能网关主要负责获取无线传感网络中的环境数据,同时实现与广域网的链接.在本系统中,智能网关的数据传输主要由MQTT 协议实现.MQTT 是由一种基于轻量级代理的发布/ 订阅模式的消息传输协议,核心功能运行于TCP 协议栈上,从而实现了有序、可靠和双向连接的数据传输方式,其工作原理如图3 所示.在本系统中,数据通信服务器的搭建主要由一种安全智能且基于消息队列遥测传输的消息推送系统来完成,这样的系统可以充分满足用户的功能定制,增强安全机制.

图3 MQTT 协议工作原理Fig. 3 Operating principle of the MQTT protocol

MQTT 服务由消息代理服务器和客户端组成.客户端与代理服务器之间采用MQTT 协议实现信息交换.为应对消息传递的多种模式,该协议定义了三种角色,分别是消息代理服务器、订阅者和发布者.消息代理服务器使用RabbitMQ 应用中间件,该中间件是一款开源消息代理软件,完整地实现了MQTT 协议,并提供编程工具箱,使设备与设备之间的通信变得更加简单.消息代理服务器端包含以下几种功能:①管理主题:用户通过身份信息验证后,按照主题接收消息,同时允许其他用户合法订阅该主题;②管理用户:同时接收订阅者和发布者的身份注册并加以管理和维护;③管理消息:按照配置方式储存发布者发布的消息,然后将消息转发给合法并有需求的订阅者,订阅者在完成注册后,提交所要订阅的主题,通过消息代理服务器的身份确认后即可接收该主题的相关消息.

1.3 系统功能模块

本系统主要包括3 个方面:①用户管理、角色管理、权限管理等系统管理模块,主要用于添加系统用户,为用户分配特定的权限,保障用户的安全访问;②包括设备管理、规则管理等业务管理模块,主要用于配置传感器网络,配置传感器数据规则等;③包括数据展示、历史数据查询等数据业务模块,用于查询传感器获得的数据,并以适当的方式进行展示.按照模块对系统业务进行划分,大气质量监测系统管理端功能结构如图4 所示.

图4 系统功能Fig. 4 The functions of atmospheric quality monitoring system

管理端功能根据使用权限分为普通用户和管理员两类:①用户前台主要是查看大气环境监测历史数据和展示的数据、查看当前环境数据的展示图,或者查看某一个时间段内的历史数据;②管理员用户主要负责系统的配置、用户管理以及权限分配;负责整个系统的管理,包括用户管理、角色管理、权限管理、设备管理、区域管理和设备配置等关键模块,其中数据查询模块和普通用户相近.

2 系统实现

大气环境监测和大气污染情况综合治理的模块实现采用Python 语言[10]、Flask 开源技术框架和MySQL数据库;以消息队列遥测传输协议作为核心通信协议;硬件平台使用基于Linux 的树莓派[11],保证系统的效率和安全性[12-13].

2.1 数据库实现

数据存储平台采用开源数据库MySQL.系统的数据表包括用户、角色、权限、设备和传感器数据等.其中,设备相关的表有设备类型表、采集数据表等;采集数据表可分为温度、湿度和PM2.5 等.系统主要的数据库表见表1、表2、和表3.

表1 设备类型表Tab.1 Device type table and its columns

表2 设备表Tab.2 Device table and its columns

表3 传感器数据表Tab.3 Sensor data table and its columns

2.2 数据采集与转发

本系统采用树莓派作为无线传感网络网关;操作系统采用Ubuntu Linux.网关设备通过UART 接口读取传感器数据,进而根据不同传感器协议进行数据格式转换[14-15],将获得的实时数据汇总至大气质量监控系统平台.无线传感网络网关的实现方式如下:

(1)数据采集功能实现步骤

步骤1:导入GPIO 模块;

步骤2:将GPIO 引脚设置为BOARD 模式;

步骤3:设置GPIO 引脚通道作为输入;

步骤4:设置初始化为高电平;

步骤5:软件实现上/ 下拉;

步骤6:边缘检测,该函数是对一个引脚进行监听;

步骤7:清除资源并退出.

(2)数据采集终端通过网络上报数据,系统收到数据后,根据数据类型进行处理,并保存到相对应的数据表中.使用Python 编写程序进行测试MQTT 的发布和订阅功能,步骤如下

步骤1:安装MQTT 模块,并导入到编写的Python 程序中创建实例;

步骤2:连接MQTT 代理服务器,MQTT 服务器部署在系统的阿里云服务器(也可以是任何支持公网访问的服务器)上,在本机上编写Python 程序进行测试即可;

步骤3:通过publish 函数发布信息,指出采集数据类型;

步骤4:通过subscribe 函数订阅主题,完成传感器数据的接收,同一个主题没有发布信息的时候等候消息;

步骤5:信息处理,数据成功获取后,根据系统配置的数据规则,实现数据转换,将获取的大气环境信息存储在系统平台的数据库中,并传递给数据展示平台.

2.3 管理平台

大气质量监测系统由系统管理、组织结构、设备信息和数据管理与展示四个模块组成.

系统管理模块实现了基于角色的权限管理功能,负责系统权限管理与分配、对人员进行权限和数据分配,指定特定人员的职责.

组织结构模块实现人员的管理,主要负责组织内部门和人员的管理;以及项目基础数据管理.

设备信息模块负责管理设备类型信息、传感器类型,以及数据网关与传感器之间的映射关系.

数据管理与展示模块实现原始数据的规则转换和存储,并按照指定查询条件以图、表等可视化方式进行直观展示.

系统平台采用Flask 框架实现.在应用过程中,首先,根据组织内人员结构,合理划分人员权限;管理人员登录系统后,按照传感器设备和网关设备部署情况,配置设备之间的关联关系和数据上报规则;设备启动后,将按照指定的数据上传规则,定时上报环境数据;平台接收原始数据,并将原始数据转化为真实有效的环境参数,最终以图表的方式直观展示.

3 系统验证测试

系统运行时,需要在设备管理模块中配置设备的关联关系和数据上报规则.在该模块中,用户可查看当前系统的设备列表,管理配置设备,从指定设备中获取数据等.在设备管理界面点击“新增”按钮,可以添加传感器控制设备,如图5 所示.系统调试成功后,连接对应的传感器.传感器通过物联网网关按照指定的规则上报传感器数据,系统平台收到数据后,根据配置的数据规则进行转换,将原始数据转化为真实数据,并保存至数据库中.

图5 设备列表Fig.5 The device list

系统获取的环境数据以结构化的方式保存在MySQL 数据库中,查看不便.为了清晰地展示大气环境参数的变化情况,本文将数据以折线图的方式动态展示,直观的显示环境的变化情况.在数据管理模块中,在相应的环境参数上点击“图表展示”,即可打开该参数的可视化数据展示图.

以安装在新乡某区域的数据采集节点为例,该节点部署了一个网关设备和三个数据采集传感器,传感器为温度传感器、湿度传感器和PM2.5 传感器.系统运行一段时间后,在数据管理模块中,分别打开数据图表,可获得三类环境参数的历史数据的变化图,如图6 所示.

图6 PM2.5 和温湿度历史数据展示Fig.6 PM2.5 and temperature and humidity historical data display diagram

展示图真实直观地显示了近7 d 的环境变换趋势和对照关系.因此,通过在某个区域部署环境数据采集传感器和物联网网关设备,能够将需要观测区域的大气环境监测数据传输给系统平台并自动统计,进而将环境数据显示为图表形式,为大气环境监测部门治理大气环境提供依据.

4 小结

本文采用MQTT 协议,通过基于树莓派的无线物联网网关,设计并开发了基于MQTT 协议的大气质量监测系统,实现了对目标区域大气质量的远程监测和无线数据远程传输,进而采用基于Python 的Flask开源架构开发了基于Web 的数据展示和分析平台,在一定程度上解决了当前大气监测中存在的一些问题,实现了大气环境质量的无线远程监测、统计和分析,为大气污染综合治理及开发大气环境的智能化监测系统提供了参考.

猜你喜欢
网关无线传感器
制作二氧化碳传感器
智能燃气表物联网运行体系网关技术研究
基于FPGA的工业TSN融合网关设计
大规模低轨卫星网络移动性管理方案
大师操刀,通勤首选 KEF Mu3真无线降噪耳机
一种主从冗余网关的故障模式分析与处理
《无线互联科技》征稿词(2021)
舰船测风传感器安装位置数值仿真
氧传感器的基本检测
无线追踪3