1. 引言
全面推行“河长制”,是我国加强水污染综合监管、治理的重要举措 [1] ,据此,各级政府部门深入推进水污染防治,实施重点流域的综合治理。近年来,水质检测方法被广泛研究,如电化学法、色谱法,直接光谱法等 [2] ,这些方法存在操作复杂,测量周期长,有二次污染等问题 [3] [4] 。而紫外–可见光吸收光谱法水质检测具有无二次污染、检测速度快、可靠性高、可实现原位在线测量等优点 [5] ,近年来成为一个重要的研究热点。根据Lambert-Beer定律及不同物质对不同光谱具有选择性吸收的特性,紫外–可见光吸收光谱法 [4] 可以实现对水质多参数的快速检测,可检测水质参数多达十余种,包括COD、NO3-N (硝酸盐氮)、PH、浊度等。对于水质监测系统的上位机编写,国内外学者选用了众多平台。国内赵小强 [6] 等和王诗源 [7] 等使用LabVIEW构建上位机软件,实现了对重要水质参数的监测和数据共享。李晋 [8] 等运用VB实现水质污染智能监测软件的设计。杨勇 [9] 等使用C#开发了直观的实时数据监控平台。国外Salam H. Ewaid [10] 等使用VB设计了用于评估灌溉水质的软件。Jeffery S. Horsburgh [11] 等使用ODM Tools Python让用户能够查询和导出,可视化和编辑存储在观测数据模型(ODM)数据库中的时间序列观测值。尽管上述平台编写的上位机具有界面简洁,操作简便等优点,但这些上位机具有平台移植性差、开发周期长、升级维护费用高等缺点。
本文设计了一种基于Qt的水质监测上位机软件,实现了对水质多参数的读取,查询和预警的功能。由于Qt及其扩展库的虚拟仪器不仅具备同样良好的图形用户接口,还具有更好的移植性、扩展性和灵活性等优点,被广泛应用于应用程序开发。
2. 水质多参数监测的测量原理和系统架构
2.1. 仪器的测量原理
本设计测量水质多参数主要是基于朗伯–比尔定律。朗伯–比尔定律的测量原理,如图1所示。可见,当一束光通过待测水体时,光的吸收程度与待测水体污染物的浓度和光走过的路程有关,两者均成正比关系。这也是我们水质监测的定量分析的理论依据 [4] 。

Figure 1. Schematic diagram of Lambert-Beer law measurement principle
图1. 朗伯-比尔定律测量原理示意图
朗伯–比尔定律的数学表达式为:
(1)
式中:A表示吸光度;I0表示入射光强度;I表示透射光强度;a表示比例系数;L表示光程长度;c表示测量溶液的浓度。
本设计应用小波光谱去噪算法,小波变换是将基本小波空间(时间)和频率通过伸缩和平移变换,与待测信号做内积,从中提取有效的信息。公式表示为:
(2)
其中,
,称为尺度因子,
为基本小波,
为位移。
小波去噪算法应用了Donoho提出的阈值收缩理论,其基本原理是根据小波系数的统计学规律提取有效信号集中在数值较大的系数中,而噪声信号的能量在小波域中相对分散,对应的是一些数值较小的小波系数。通过设置一个阈值,将小于阂值的系数置零,然后对信号进行重构,达到去除噪声的目的 [12] 。去噪流程如图2所示。

Figure 2. Flow chart of wavelet denoising
图2. 小波去噪流程图
2.2. 系统构架
水质多参数监测系统的总体框架图如图3所示。本系统包括检测端,云服务器端和用户端三个部分。通过探测LED阵列光源的多束单色光通过待测水体后的强度变化,将其传输至Arduino模块进行数据预处理,将处理后的数据传输到ZigBee模块。利用ZigBee模块将数据无线传输至云服务器端,通过Qt将云服务器端数据库信息读取,显示在软件界面上,同时实现数据历史查询,并与国家标准进行对比实现预警等功能。

Figure 3. Overall structure of the system
图3. 系统总体结构图
系统光电转换模块的功能是将透过待测水体传递过来的光信号通过特定器件转变成对应的且可被测量的电信号。从而将电信号进一步处理并进行相关的采集和计算。由于光电转换器件的质量直接决定了系统采样的精度和灵敏度,因此我们要求光电转换器件在365 nm波长处有良好的性能表现和稳定性,可以准确、快速地进行转换和输出。我们采用的光电传感器是紫外LED光电二极管GUVA-S12SD。GUVA-S12SD光电二极管是专门应用在240至370 nm波段的紫外光电二极管,其暗电流小于1 nA,并且在240至370 nm波段内响应度良好。因此,既能够与前置光源波长相匹配也能够满足设计要求。
数据的无线传输由ZigBee模块来实现,ZigBee数据传输流程如图4所示,首先协调器建立网络,等待终端设备加入网络,当加入网络成功后协调器存储网络地址,根据网络状态改变事件反馈的定时器触发,控制传感器节点实时采集水质数据,并将数据发送到协调器端,最后通过无线传输将水质数据发送至云服务器端 [13] 。

Figure 4. ZigBee data transmission flow chart
图4. ZigBee数据传输流程图
3. 设计需求
水质多参数监测系统上位机软件的功能是提供人机交互界面,软件根据用户定义的指令,通过对数据库进行驱动加载,实现数据库链接,从云服务器中读取实时数据和历史数据,并将实时显示数据与国标对比实现监测预警。水质多参数监测上位机软件基本功能如图5所示。

Figure 5. Basic functions of PC software
图5. 上位机软件基本功能
上位机软件的主要功能包括:
1) 实时显示:
实现数据库最新数据的快速读取,包括检测地点、检测时间、数据序号、COD、PH、TURB、TOC等信息,根据用户指令,将对应的信息显示出来。
2) 历史查询:
根据工作模式的选择,对主界面进行切换,根据用户需求,将想要查询的地点,时间,以及对应的水质项目信息提取出来,现实在用户界面上。
3) 监测预警:
将实时读取的水质监测项目与国家标准做对比,如果超出国家标准,实现预警功能。
4. 水质多参数监测软件实现
Qt是一个跨平台的、易于扩展,可以实现真正的组件编程软件。我们常用的C++对象模型行之有效的为对象提供时刻支持。然而这种C++不便于移植的静态性质的对象模型在很多领域不适用。由于水质监测数据采集软件的图形用户界面编程是需要一个可移植性强的应用领域。恰好,Qt Creator和C++的速度相结合,可为水质监测领域提供面向对象的灵活性。Qt拥有完成多项任务的能力,这都源于其强大的信号与槽的对象通信机制,如图6所示,可实现点对点,一对多的操作,可查询、设计属性。还有强大的事件和事件过滤器,拥有一套标准的国际化语言翻译,让软件编程发行变得更加方便。以一种简单的逻辑方式,实现了对于控件和类的操作。QObject都展现了Qt的继承关系,通过软件编译,可用C++技术来实现。

Figure 6. Object communication mechanism between signal and slot
图6. 信号与槽的对象通信机制
在水质监测软件设计中,Qt编写的程序主要以界面的形式展现,各主界面都是以QWidget作为独立的容器窗口,将相应的功能部件放在容器中,编写代码实现相应的功能。同时,以QTabWidget标签来切换主界面,从而实现实时监测和历史查询功能的切换。该软件设计流程图如图7所示。
在启动程序中,最重要的部分是调用动态函数链接库dll对于数据的处理,动态函数链接库的主要功能是应用小波光谱去噪算法,去除噪声,提高数据测量的准确性。部分代码如图8所示。
根据软件设计流程,设计了基于QObject的简洁登陆界面,软件登陆界面如图9所示。
当输入账号和密码正确时,点击登录,UI界面将进入上位机运行界面,分为实时监测界面和历史查询界面,如图10所示。

Figure 8. Call of dynamic function link library
图8. 动态函数链接库的调用
本设计的界面主要是用来显示从数据库读取的水质相关数据,数据库记录文件包括检测地点、检测时间、数据序号、COD、PH、TURB、TOC等信息。通过刷新选择监测地点,再选定监测的参数,点击启动,通道配置部分IP设置,在数据采集存储到服务器后,访问服务器的IP地址,完成数据库的链接,并读取服务器中的MySQL数据库信息。通过代码将最新监测的水质信息显示在界面的textBrowser里,同时实现预警功能。部分代码如图11所示。
本设计拥有简单的显示界面,灵活的将水质监测的地点和监测项目通过按键选择的方式用最小的可视化界面展现在用户面前。结合数据库,十分简便的将监测信息显示出来。
5. 实验与软件测试
将水质多参数监测仪放入实际水体中进行测量,在实时监测中,当监测水体的监测参数超过国家标准时,界面数值显示以高亮红色预警。实时监测效果如图12所示。

Figure 12. Real-time monitoring operation interface diagram
图12. 实时监测运行界面图
选择历史查询主界面,历史查询界面来显示数据库的历史信息,以便分析数据走势,展现水质环境的变化。历史查询界面如图13所示。

Figure 13. History query running interface diagram
图13. 历史查询运行界面图
将本设计的软件打包放到不同的平台测试,都能稳定运行,解决了目前水质监测软件不能跨平台的现状。
6. 结论
本文基于跨平台的Qt图形库框架,设计和实现了一款界面简洁明了的水质多参数监测软件。该软件实现了水质监测数据的实时显示,历史查询和监测预警等功能。本设计软件界面简洁,用户界面友好,数据实时性好。文中阐述了上位机各功能模块的设计,并对各功能进行了测试,结果表明,系统操作简单,稳定可靠,能够有效地实现数据实时显示和预警。实现了设计预期目的,具有较好的市场应用价值。
基金项目
国家自然科学基金(61805029),重庆市社会事业与民生保障科技创新专项(cstc2017shmsA00004)资助。
NOTES
*通讯作者。