陈少博 卞宇皓 陈酉杰 廖俊杰 宋志强
摘要:为了实现更加快速、高效的空气质量监测,采用M702七合一空气质量检测模块和ATK-LORA-01LoRa无线传输模块,设计了一套基于树莓派和C++ Builder的空气质量监测系统。在PC端下达指令,即可使树莓派控制传感器实时采集数据,再经由无线传输模块传输到PC端,最后通过C++ Builder开发软件实现数据的可视化与储存。开发的系统可与无人机等硬件结合实现远程监测,弥补了基站监测无法进入高危环境内部监测的缺陷,有较高的应用价值。
关键词:空气质量监测;树莓派;无线数据传输;C++ Builder
中图分类号:TP273 文献标识码:A
文章编号:1009-3044(2022)13-0113-03
1 引言
近些年,各种天气、环境灾害频发不断,人们的生存环境每况愈下。这一系列的环境污染会直接影响人们的日常生活与身体健康[1],最为直观的就是雾霾现象和呼吸性疾病的增长情况。而近些年导致环境恶化的因素主要是随着社会经济的发展,工业自动化程度的提高,重工业的不断发展,各种机械设备的运作和大街上日益增多的汽车。这些机械的运作无时无刻不在燃烧着汽油和煤炭,向空气中释放着大量的氮氧化物、硫化物等污染气体。
环境的持续恶化,时刻提醒人们正面临严重的空气污染问题[2],环境治理刻不容缓。而对环境的实时监测在环境的治理中是重中之重的,目前国内所使用的空气质量监测系统是基于基站的大型监测系统,也叫作空气站。空气站在一些环保重点城市会根据城市区域建设若干个来保证对城市已建区域的覆盖,以此达到对整座城市的空气质量监测。但空气站占用面积较大,又是固定的站点无法移动,所以检测到的数据精确度不高,会与实际空气质量有一定误差。并且,目前空气站没有做到全国覆盖,对于一些突发的自然环境灾害和紧急污染事件就无法及时地做出数据监测,导致政府无法做到高效、正确地解决问题。空气站的建造成本昂贵,开发难度较高,维修成本不菲,因此也无法投入民用,已经不能满足当前环境监测的需求。
本文基于树莓派和C++ Builder开发了一套空气质量监测系统,在树莓派端实现了自主数据采集与数据无线传输,PC端由无线传输模块接收数据后,通过C++ Builder软件实现数据的实时显示与存储。树莓派便于携带与开发简单,弥补了传统监测系统的不足。
2 系统的结构与功能
空气质量监测系统主要由树莓派、空气质量检测模块、无线传输模块、PC机四部分组成,系统的结构如图1所示。
在本套系统中,树莓派是整个系统的核心,当PC端对树莓派发送开始监测的指令时,首先由树莓派控制M702七合一空气质量检测模块对空气中的各种成分进行数据采集并通过串口将采集到的数据传递给树莓派,再通过无线传输模块将采集到的数据发送至PC端。PC端会基于C++ Builder软件根据空气质量监测模块的通信协议进行软件设计,将检测到的数据转换为对应单位的十进制数,并且将其实时显示以达到空气质量的监测作用。
本系统中使用的无线传输模块是基于天线的无线串口模块,只需将两个模块的参数设置一样,通过杜邦线和USB转接线分别连接树莓派和PC端即可进行数据的无线传输。
在PC端所设计的空气质量监测软件,除了可以将监测数据转化为对应单位的十进制数据和实时显示数据之外,还具有将数据存储进数据库、导出数据和以报表形式查看等辅助功能。本系统后期还可将树莓派与无人机、遥控汽车等远程遥控设备相结合,操作人员可实现任何设定环境的远程实时空气质量监测,弥补了传统空气质量监测系统的不足。
3 系统硬件开发
3.1树莓派开发环境搭建
本次系统开发选择的是2019年最新发布的树莓派4B,树莓派4B开发板主要部件有CPU、内存芯片、USB、电源、千兆以太网口等,具有良好的运算与处理能力[3]。树莓派4B的CPU搭载1.5GHz,四核BroadcomBCM2711处理器,并且高达4GB RAM。此外,树莓派4B还提供了丰富的对外接口,包括两个USB2.0接口、两个USB3.0接口和40个针通用I/O接口等。
作为本次系统的核心部件树莓派,要对其进行开发环境的搭建才可以完成与空气质量检测模块、无线传输模块的应用。将准备好的SD读卡器插入计算机。使用SDFormatterSD格式化工具将SD卡进行格式化[4]。到官方网站下载操作系统,选择Raspbian Buster with desktop,点击Download ZIP,然后解压缩下载的安装包,得到a.img文件。接下来,使用Win32DiskImager硬盘镜像软件将下载的img文件写入SD卡。在映像文件选择之前解压得到的.img文件,选择SD卡驱动器盘符,单击“写入”,等待写入完成,关闭程序,此时SD卡已加载Raspbian操作系统,树莓派4B的开发环境就已经搭建完毕。
3.2 M702七合一空气质量检测模块
M702七合一传感器模块是一款性价比较高的数字串口输出传感器模块,采用UART串口电平输出模式(UART接口定义如表1所示),可对CO2、甲醛、TVOC、激光粉尘PM2.5、PM10颗粒物、温度、湿度共七种物质进行检测。该模块可对所处环境进行实时综合检测,具有較好的稳定性,非常方便使用。该款检测模块还具有较高的精确度,其中温度可以精确到0.1度,湿度可以精确到0.1%,并且它还可以每两秒通过UART信号输出七组传感器监测数据,其UART接口定义如表1所示。
模块与上位机连接的主通信口,采用了标准串行RS-485通信口。信息传输方式为异步,起始位为1位,数据位为8位,停止位为1位,无校验,数据传输缺省速率为9600b/s。
M702七合一空气质量检测模块的通信协议如表2所示。
由通信协议可知,校验和B17等于:B1+B2+…+B16的值,取低8位。当温度对应数据B13的bit7=1 时,代表温度为负,当B13的bit7=0 时,代表温度为正。
3.3 ATK-LORA-01无线串口模块
ATK-LORA-01是ALIENTEK推出的一款远距离LORA无线串口模块,具有小体积、微功率、功耗低、性能高等优点[5]。该模块采用高效ISM的频段射频SX1278扩频芯片[6]。模块的工作频率范围从410Mhz到441Mhz[7],并且模块以1Mhz频率作为步进通道,共有32个通道。模块还可以通过AT指令在线改变发射功率、串口速率、空中速率、工作模式等各种参数,且支持固件升级功能。该模块基于SMA天线,最高通信距离约达3000米且该模块的通信接口包括UART串口,8N1、8E1、8O1,从1200-115200共8种波特率。该模块通过1*6的排针同外部连接,模块连接如图2所示,树莓派开发板可通过杜邦线直接与模块对接,对模块进行测试。
该模块在使用时会根据MD0的配置与AUX引脚的状态进入不同的功能,本系统只用到其中的配置功能和通信功能,其他的暂不做阐述。当模块上电后,AUX进入空闲状态即AUX=0,若MD0=1则模块进入配置功能。此时可通过官方提供的ATK-LORA配置软件对模块进行配置,只需将两个模块的地址、信道和无线速率(非串口波特率)等一系列参数配置相同,保存配置即可。当MD0=0时,模块就进入了通信功能,此时只需将两个配置相同的模块分别连接树莓派和PC端,在传输方式选项中选择透明传输,即可进行通讯。并且在透明模式下两个模块都可以发送和接收数据,也可以将多个模块配置为相同参数进行点对多的无线数据传输,其工作示意图如图3所示。
4 系统软件设计
4.1树莓派数据传输软件设计
本项目中使用的M702七合一传感器模块采用UART串口电平输出模式,与树莓派上GPIO口连接即可进行通讯,因此应该首先在树莓派上配置UART串口。
树莓派4B拥有多组串口可以使用,各GPIO默认配置不同。在本项目中,需要树莓派连接M702传感器模块与LoRa模块,因此需要配置两组UART串口。默认配置的UART串口为GPIO14与GPIO15,这两个串口默认承担蓝牙功能,因此不使用,而是更改GPIO0、1、4、5四个串口的配置,将它们配置为两组UART串口,供温度监测模块和LoRa模块使用。
然后根据M702传感器模块和LoRa模块内置的通讯协议编写传输程序。当树莓派向传感器发送固定编码后,传感器会以平均两秒一次向树莓派发送数据。在树莓派上,可通过Python中的serial库函数来配置UART串口参数并每两秒进行一次发送、接收数据即可。同时还可以在同一个程序中同时控制两组UART串口收发数据,实现直接将数据不保存到本地通过LoRa模块传输到用户端。软件设计框架如图4所示。
4.2数据显示软件设计
C++ Builder是一款基于VCL库的可视化开发工具,集数据采集和显示为一体[8],在数据库设计和基础系统开发等方面表现出极其优异的性能。它还提供了一套可视化开发工具,如可视化窗口设计器、控制面板和集成编辑器等。只需要简单地把控件(Component)托到窗体(Form)上,定义它的属性,设置外观就可以快速地建立应用程序界面。
本次系统的数据显示界面便是基于C++ Builder软件进行开发。主要分为四个界面,界面一是软件的主界面,如图5所示。该界面包括数据显示界面和其他功能按钮,可以让操作人员实时查看传感器采集的数据。界面二为报表界面,点击界面一中的报表预览按钮即可自动跳转至该界面,主要功能为将通过LoRa模块传输过来的数据以报表的形式展现。界面三是数据删除界面,可以删除数据库中的冗余数据,实时更新数据。界面四是数据搜索界面,用户可以根据开始时间和结束时间搜索相应时间段的数据。
该软件可以通过串口与LoRa模块连接,当有数据通过LoRa模块传输过来时,该软件会先对收到的数据进行判断,若数据正确则自动将数据传输到后台,根据M702传感器的通信协议将数据转换为十进制数据,然后将十进制数据在界面一的数据显示界面进行显示,并且自动将数据存储到数据库。
5 结束语
本文开发的基于树莓派和C++ Builder的空气质量监测系统体积小、精确度高、开发难度低、开发成本低,充分利用了树莓派小巧便捷与开发性高的强大功能,大幅度降低了空气监测的成本,并且功能扩展性强,通过树莓派丰富的接口,后面还可以与其他硬件结合,实现更加优良的功能与应用。
参考文献:
[1] 刘玉媛,周明理.室内空气质量检测和传感器的运用[J].无线互联科技,2020,17(22):86-87.
[2] 马传彬,王志坤.空气质量检测与传感器的应用[J].电子世界,2017(11):143.
[3] 杜彬,宋坤伟.基于树莓派的微型智能空气质量检测系统的实现技术研究[J].太原学院学报(自然科学版),2018,36(1):33-37.
[4] 陈金立,周镕,陈宣,等.一种基于树莓派的气象数据监测教学实验设计[J].实验技术与管理,2021,38(6):189-192,198.
[5] 宋浩.基于LoRa技术的无线通信应用研究[J].信息与电脑(理论版),2019,31(23):150-151,155.
[6] 朱自強,姜作喜,彭巍巍.基于LoRa技术的远程无线通信方案的设计与实现[J].电子世界,2020(24):162-163.
[7] 石新龙,丁永辉.基于LoRa无线通信的农业环境监测系统设计[J].精密制造与自动化,2021(3):44-46,56.
[8] 谢敏.应用C++Builder实现实时数据采集、显示的方法[J].电子工程师,2006,32(1):68-70.
【通联编辑:谢媛媛】