面向水环境监测的WSN远程监控中心设计❋
2015-08-07齐华,陈欢,刘军
齐 华,陈 欢,刘 军
(1.西安工业大学电子信息工程学院,西安710021;2.武警工程学院通信工程系,西安710086)
面向水环境监测的WSN远程监控中心设计❋
齐 华1,陈 欢1,刘 军2
(1.西安工业大学电子信息工程学院,西安710021;2.武警工程学院通信工程系,西安710086)
介绍了一种面向水环境监测的无线传感器网络远程监控中心设计方法,该方法基于Visual C++6.0开发平台,利用C++语言、MySQL数据库及ODBC数据库访问技术,采用功能模块化设计思想。首先对整个传感器网络系统结构作了简要介绍,然后介绍了监控中心软件设计的总流程,重点对通信模块、图形界面模块和数据库模块设计作了详细说明。实验结果表明,软件运行稳定,可准确对被测水域进行水质实时监测。
无线传感器网络;监控中心;软件设计
1 引 言
水是地球上一切生物赖以生存,也是人类生产生活不可或缺的最基本物质。目前,我国的“水”存在两大主要问题:一是水资源短缺;二是水污染严重。这要求我国的水污染防治战略应尽快实施调整,从末端治理转向源头控制和全过程控制,因此,对水质的实时监测显得极为重要。传统的水质监测方法[1]是人工采样后进行化学检测,这种方法工作量大、监测周期长、实时性差,无法及时发现河流等水体的污染,因此,传统的监测方法已不能满足现代水污染防治战略的要求,有时甚至会产生严重后果。近年来,随着无线传感器网络(Wireless Sensor Network,WSN)技术[2]的发展与环境监测工作的需要,使得无线传感器网络越来越广泛地应用于水环境监测。不得不提的是,对于应用者来说,关心的是无线传感器网络采集到的数据,而不是网络本身。因此,获取无线传感器网络采集到的各种物理信息并将信息实时显示于监控管理平台以便管理者分析做出决策是无线传感器网络成功应用的关键。
正是在这样的背景下提出了面向水环境监测的WSN远程监控中心设计,首先介绍了面向水环境监测的无线传感器网络整个系统结构,并详细阐述了远程监控中心的实现。
2 WSN系统结构
面向水环境监测的WSN系统结构如图1所示,主要由无线传感器网络和远程监控中心两部分组成。系统工作时,由分布在被测水域的大量传感器节点定时采集用户所需的水质参数(如PH值、浊度、化学需氧量、溶解氧、氨氮等),通过ZigBee技术将采集到的数据传输至网关节点,网关节点将接收到的数据进行融合处理得到被测水域各项水质参数的决策数据,并通过GPRS传送给数据服务器,远程监控中心从服务器获取数据,解析后以图形界面形式呈现给用户,同时将数据存储于数据库以便日后查询。
图1 面向水环境监测的WSN系统结构
3 监控中心总体功能设计
如图1所示,监控中心通过Internet从数据服务器获取无线传感器网络采集并融合处理后的水质数据包,提取解析后进行图形界面显示并储存。监控中心实现的功能有:①监听串行端口,读取水质数据包;②对读取的数据包进行解析、显示并绘制实时变化曲线;③将各参数与用户事先设定的阈值进行比对,判断超标情况决定是否报警,由各参数超标情况分析出总体水质状况;④存储数据;⑤历史数据查询;⑥参数设置,如:采样率、各项参数各级报警阈值、系统运行时间等。监控中心软件以Visual C++6.0为开发平台,采用C++语言、MySQL数据库以及ODBC数据库访问技术,软件的主体流程如图2所示。
4 监控中心主要模块设计
监控中心在各功能实现时以数据为主线采用模块化设计思想将系统分为通信模块、图形界面模块、数据库模块等三个主要功能模块,每个模块完成相应的功能。
图2 监控中心主体流程
4.1 通信模块
通信协议[3]分为底层通信协议和用户层通信协议,底层协议一般由计算机硬件提供商和设备厂家提供,在一般的通信编程中很少或者不用涉及。而用户通信协议是面向用户的,协议规定数据以何种格式和方式发送出去,或者如何从接收到的某种格式数据中提取出所需数据,以及在发送和接收过程中如何保证这些数据的准确性。本设计规定数据服务器发送给远程监控中心PC终端的数据格式如图3所示。
图3 接收参数的数据帧格式
其中起始码、网关节点编号、校验码、结束码各占1个字节,中间各参数数值分别占4个字节。
监控中心与数据服务器之间相互作用的主要模式是客户机/服务器模式,即客户向服务器提出请求,服务器接收到请求后,提供相应的服务。网络程序的实现可以有很多方式,Windows Socket[4]就是其中一种实现方法。Socket是连接应用程序与网络驱动的桥梁,Socket在应用程序中创建,通过绑定操作与驱动程序建立关系。此后,应用程序送给Socket的数据,由Socket交给驱动程序向网络上发送出去。计算机从网络上收到与该Socket绑定的IP地址和端口相关的数据后,由驱动程序交给Socket,应用程序便可从该Socket中提取接收到的数据。
设计开发的WSN远程监控中心在与数据服务器通信时充当的是客户机角色,因此只要编写面向连接的Socket编程的客户端程序。流程图如图4所示。
图4 接收数据流程图
4.2 图形界面模块
图形界面模块是整个系统最重要的部分,用户在此实现与监控中心的交互,一方面获得无线传感器网络采集到的各项水质参数的实时数值、变化趋势以及是否超标、超标等级等直观重要信息,另一方面用户可以设置系统运行时间、采样间隔、各项参数的各级报警阈值等参数。因此图形界面的设计显得十分重要。如图5所示,本设计的图形界面采用用户友好型设计思想,模块化设计方法、将整个界面分为实时参数数值及变化曲线显示区、报警区、设置区、历史数据查询区等四个主要功能区。
4.2.1 实时数值及变化曲线
将各项参数对应的显示框关联成员变量,程序接收到新数据后提取解析得到的各参数数值经格式化后赋给相应的成员变量,然后传递FALSE参数给UpdateData()函数将各参数最新的数值更新显示在各自的编辑框内,这样用户在界面上看到的数据总是实时数据。
图5 监控中心主界面
绘制曲线采用MoveTo(),LineTo()函数,分别为需要绘制曲线的参数定义一个有限数组,每次有新数据到来时将数值换算成在界面坐标系中的相对点坐标保存在数组中,刷新界面时在窗口重绘函数中利用一个循环调用MoveTo(),LineTo()依次连接数组中的相邻点,每次接收到新数据,各参数对应的数组就比上次多一个点,因此视觉上的感觉是曲线在动态前进。当数组中元素达到上限时便清空所有元素将新元素从头开始依次存放,曲线便又从坐标的最左侧开始绘制。
4.2.2 超标报警
报警灯采用图片控件,首先给工程添加绿色、黄色、红色、褐色四幅纯色位图(分别表示未超标、一级超标、二级超标、三级超标),根据参数的超标等级通过一个自定义函数设置控件显示的位图,如下的自定义函数控制COD报警:
m_bmpCOD为位图地址参数,根据COD的实时数值与用户设定的阈值比对结果将相应颜色的位图地址传递给m_bmpCOD,IDC_COD为COD报警灯控件的ID,在控制窗口重绘的OnPaint()函数中通过语句this->AlarmCOD(m_bmpCOD);调用上述自定义函数便可让COD报警灯显示相应颜色达到报警效果。
4.2.3 阈值设置
如图6所示为阈值设置界面,在程序中将各项参数的各级阈值对应的输入编辑框关联成员变量,用户在各编辑框内输入自定义阈值,然后点击“保存”按钮,通过“保存”按钮单击响应函数内的UpdateData();语句将各阈值与相应的变量绑定,随后将各变量的值存入数据库的阈值表中。当用户启动系统开始工作时通过点击界面的“刷新”按钮将各阈值提取出来与相关的变量绑定用于与实时数据比对。
4.2.4 历史数据查询
查询界面采用列表框形式,如图7所示用户在监控主界面的历史数据查询区相应的下拉列表框选择水域及选择起止日期,并手动输入起止时间,设定好查询条件后点击“查询”按钮便进入图8所示的查询结果列表框界面,点击下方的“导出”按钮,符合条件的数据便显示在列表框内。
图6 阈值设置界面
图7 查询条件设置
图8 历史数据查询结果
4.3 数据库模块
数据库模块也是监控中心的主要功能模块,主要用于实现实时水质数据的存储、用户设定阈值的存储、阈值读出、历史数据查询。本系统采用目前世界最流行数据库之一的开源数据库MySQL数据库[5],数据库模块设计主要包括数据库结构设计、数据存储查询设计。
4.3.1 数据库结构设计
数据库结构设计的关键在于表结构设计。本系统数据库存储的信息包括实时接收的水质数据和用户设定的阈值,因此数据库表包括两种:水质数据表和阈值表。水质数据表存储的信息包括接收时间、温度、PH值、COD、DO、氨氮、浊度等各项水质数据值,阈值表存储用户设定的除温度和PH值外的其他参数的一、二、三级阈值。
4.3.2 数据存储和查询设计
系统采用ODBC(开放数据库互联)数据库访问技术[6],ODBC是Microsoft推出的访问数据库技术,它提供了一个单一的API,可用于处理不同数据库间的客户应用程序,使用ODBC API的应用程序可以与任何具有ODBC驱动程序的关系数据库进行通信。在程序中需要操作数据库的类源文件必须包含以下头文件#include"mysql.h"、#pragma comment(lib,"libmysql.lib")、#include"afxdb.h"才可访问数据库。
COD的各级阈值写入主要代码如下:
下面是查询历史数据的主要代码:
5 其他功能
监控中心的其他功能简述如下:
(1)设定采样间隔:采样间隔关系到采集数据的时间间隔,系统可根据用户设定的采样间隔下发采样命令,如水质基本正常,可设定较大的采样间隔,使单位时间内采集的数据较少以减少数据冗余,如水质出现异常,可减小采样间隔,加大监测密度。
(2)设定系统运行时间:打开监控中心应用程序,点击主界面中的“开始”按钮系统便开始工作,点击“停止”按钮系统便停止监测。如果用户需要定时监测水质,不需要用户手动开启停止系统,可设定系统运行起止时间,起始时间到系统便开始运行,结束时间到便停止监测,提高了系统的工作灵活性。
6 结束语
系统以Visual C++6.0为开发平台,采用C++语言和MySQL数据库及ODBC数据库访问技术实现了对无线传感器网络采集数据的可视化显示和存储。本系统与前端的无线传感器网络结合可用于河流等水环境的监测,并且同时可监测多个水域,提高了监控中心的工作效率。本系统应用于水环境监测,在低成本的前提下实现了多个水域的同时实时监测,为水质的分析与判断提供了一种先进技术。此外,用户可自行设定调节采样间隔、各参数各级阈值、系统运行时间等参数,提高了整个系统的监测灵活性。长时间的试验表明:本系统能够很好地对被测水域实现实时多参数监测,运行稳定,达到了设计目的。
[1] 魏青建,吕云峰,马仁智,金宁楼,喜中.无线传感器网络水环境监控中心软件设[J].计算机科学,2010,37(7A):231-233.
[2] 宫鹏.无线传感器网络技术环境应用进展[J].遥感学报,2010,14(2):387-395.
[3] 李煊,丁为.常用设备串口通信协议及其应用[J].自动化仪表,2011,32(10):82-86.
[4] 孙鑫.VC++深入详解[M].北京:电子工业出版社,2012.
[5] 黄缙划.MySQL入门很简单[M].北京:清华大学出版社,2011.
[6] 范冠雄.基于Visual C++的数据库访问技术比较研究[J].计算机与数字工程,2010,38(1):64-66,139.
Design of Remote Supervising Center ofW ireless Sensor Networks for Water Quality Monitoring
Qi Hua1,Chen Huan1,Liu Jun2
(1.College of Electronic and Information Engineering,Xi'an Technological University,Xi'an 710021,China;2.Dept.of Communications Engineering,China Engineering College of Armed Police Force,Xi'an 710086,China)
This paper introduces a design method of remote monitoring center of wireless sensor network which is used for water monitoring,based on Visual C++6.0 development platform,with language C++,database MySQL and database access technology ODBC,and employs the design concept of functionalmodular.Firstly,the structure of the entire sensor network system is briefly introduced,then the software design process of the monitoring center is described,especially,the designs of communication module,graphical interface module and database module are explained in detail.The experimental results show that the monitoring center is stable and accurately performs the real-time monitor for the waters quality.
Wireless sensor network;Monitoring center;Software design
10.3969/j.issn.1002-2279.2015.03.020
TP311.1
A
1002-2279(2015)03-0073-05
陕西省科学技术研究发展计划项目(2014K05-19)
齐华(1963-),女,陕西省咸阳市人,博士,主研方向:无线传感器网络。
2014-09-09