在线水质监测云端管理系统设计
2020-11-05刘宇航
刘宇航
(沈阳化工大学,辽宁 沈阳110142)
随着现代化建设的大力发展、生活水平的不断提高也加剧了地表水环境的污染,我国当前已将发展在线水质监测作为保障水安全和治理水污染的重要技术方案。而目前的水质质量监测工作主要是以实验室的仪器分析、人工的现场采样为主。虽然在实验室中的检测分析手段完备,但实验室监测存在采样误差大、检测数据分散、监测频次低、不能及时反映水质污染变化情况等缺点,而且无法实现多台检测设备远程在线监测的需求,因此本文结合了物联网的技术,让管理者通过浏览器的形式实现对水质的远程在线监测。
1 B/S 模式系统结构
考虑到系统对远程监测功能的需求,相较于传统的C/S 模式,需要运行专门的客户端软件并且不能跨平台使用,而本文所选取的B/S 模式- 浏览器/服务器模式,可以实现在随时随地都可以通过浏览器对检测设备的控制。系统结构如图1,浏览器主要负责用户与后台的交互,Web 服务器作为中间事务处理的节点,既要响应浏览器客户端发来的访问请求,又要连接数据库执行相对应的数据请求,并最终将结果返还给客户端,在浏览器页面上以图形界面的方式展示出来[1,2]。Web 服务与物联网技术的融合,可以将物联网中的不同物联网对象,比如各种控制系统和各类传感器节点,成功的联系起来,将Web 服务作为统一的接口,下与水质监测设备连接,为采集的数据提供上传处理的接口,上与应用层相连接,为用户提供简单的界面管理操作的接口,最终可实现用户获取到不同控制系统设备及应用上层应用所提供的服务[3]。
图1 系统结构
2 云服务器平台环境搭建
云平台采用在Linux 系统下安装MQTT Broker 并部署Web应用,服务器后台业务逻辑基于Tornado 框架完成对下层物联网网关上传的数据进行分析处理。
其中MQTT(消息队列遥测传输协议),是一种基于发布/订阅模式的“轻量级”通讯协议,该协议建立在TCP/IP 协议的基础之上,能用很少的代码和有限的带宽,为检测设备的远程连接提供实时可靠的数据交互服务,是一种低带宽占用、低开销的即时通讯协议[4];Tornado 是用Python 语言编写的一个Web 服务器兼Web 应用框架,它有较为出色的抗负载能力,在处理严峻的网络流量时优势明显,在创建和编写时有足够的轻量级,能够简单快速地编写高速的Web 应用[5,6],十分适用于物联网技术中。负责和云平台通信、维护数据库,同时完成对多浏览器前端的访问请求响应。后台程序使用Python 语言编写,页面前端利用HTML 和CSS 语言装载并渲染网页内容,利用JavaScript来响应用户输入,并完成与后端数据库的交互。以MySQL 数据库为数据存储系统。
3 Web 前端页面设计
在前端页面开发设计中分两大模块,分别是前台信息展现模块和后台管理模块。前台信息展现模块主要功能是展现信息供用户浏览,该模块页面渲染在后台完成,大部分为静态文本。对于后台管理模块, 主要采用了 MVVM 架构,即Model-View-ViewModel 它将视图UI 和业务逻辑分开,使得应用软件UI 层实现可定制化和细节化通过angularJS 框架来实现[7]。用户前端展示页面则通过Ajax 技术实现页面异步刷新,简单来讲,Ajax 技术是能够实现对局部网页刷新并且不重新加载整个网页的技术[8,9]。
Ajax 工作原理如图2 所示。使用Noed.js 作为JavaScript 运行环境,软件作为包管理工具,Umi 项目模板作为前端开发框架。设计时将页面分为导航栏、内容区、底栏这三块,并将网页功能分为多个组件,包括检测金属光源、检测状态、采样设置,以及浓度/吸光度曲线图组件、报警表格组件,主要编辑的文件内拆解Ul 组件。
图2 Ajax 工作原理
在页面中需要确定各子组件布局及位置,各组件中需嵌套设备数据的相应变化。实时监测功能将参数处理成可视化数据,在后端程序可根据检测需求,采用线性回归或者拟合方式的算法对数据进行处理,进而发送到前端界面,通过曲线图或折线图等易分析的方式呈现数据的变化,让管理者直观的得到是否满足检测需求的结果。
4 管理系统界面功能说明
元素灯及背景灯后面为单选框,默认为“关”的状态,当选择为“开”的状态时,立即与下位机检测设备通讯,对设备的系统灯或背景灯进行操作。
采样模式为下拉菜单,可分为自动和手动两种方式。自动模式为首先管理者设置采样次数,当采样次数达到设定值,自动计算将所有的采样值求单次,自动在右侧表格生成相应数据,且只需在第一次采样前按下“采样”按钮。手动模式为每次采样前均需按下“采样”按钮,达到采样次数后需按下“计算”按钮。
对样品采样前,需先建立标样的浓度/吸光度曲线,可以手动输入已知标样的浓度和吸光度,标样表可以滚动添加行数据,建立曲线方式由下侧的拟合方式或回归方式(下拉菜单)确定。
采样时,每完成一次采样,吸光度的最大值就填入采样表格的相应位置,通过与之前建立好的标样曲线对比,就会得到水质监测的重金属浓度。
5 结论
目前传统的水质检测过程监控一般由现场操作员站技术人员进行现场监控[10]。本课题借助于物联网技术的发展及在工业领域的应用,在传统现场监控系统的基础上,实现远程的浏览器控制监测,赋予其新的功能,解决水质监测过程中产生的实时数据的采集、传输与存储、在线展示的问题。从而极大地提高了监测过程中的效率同时节省生产成本和人力。