随着我国经济的高速发展,水质的污染和破坏问题日趋严重,着眼于社会所需,我们研究了基于ZigBee的水质监测系统,为水质保驾护航。
水质污染问题刻不容缓,城市饮水主要是通过自来水,其中的安全隐患不容忽视,所以需要一种能随时监测水质变化的设备系统。论文探讨构建基于ZigBee技术的自来水监测网络物理结构,重点是ZigBee网关转wifi和转USB的协议转换。上位机监控功能中,实现了数据实时接收、显示以及历史数据查询,对超阈值数据,报警提示。
1 物联网ZigBee技术简介
ZigBee技术具有自组网,低功耗,延时小,多跳的特点,适用于长时间组网监测。在ZigBee网络中有3种设备,协调器(Co_ordinator) 为全功能节点(FFD),负责建立网络,一个ZigBee网络只能有一个协调器,相当于蜂群结构中的蜂后,当网路建立完成后,协调器的功能相当于普通路由器(Router)。路由器负责数据的路由跳转,能够将消息发给其他节点设备。终端节点(End device)负责数据的采集与发送。以上3种设备可以分为全功能节点(FFD)和半功能节点(RFD)。
每个节点具有两个地址:
1)IEEE MAC地址
这是一种64位的地址,这个地址由IEEE组织进行分配,用于唯一的标识设备,全球没有任何两个设备具有相同的MAC地址。在ZigBee网络中,有时也叫MAC地址为扩展地址。
2)16位短地址
16位短地址用于在本地网络中标识设备,和在网络中发送数据,所以如果是处于不同的网络中有可能具有相同的短地址。当一个节点加入网络的时候将由它的父节点给它分配短地址,协调器的短地址是0。
ZigBee网路的拓扑结构主要为星状(star),树状(Cluster_tree),网格(mesh),其中星状网络不支持ZigBee路由器。不同的网络拓扑结构适用用于不同的使用环境。
2 系统体系结构
基于ZigBee的水质监测系统可以对水质进行实时的监控,整个系统由下位机监测网和上位机软件组成,下位机监测网负责数据的采集,和数据在ZigBee网络上的传输。上位机软件负责对来自监测网数据的存储,数理统计,水质参数超标实时报警,和设备运行状况的检查。系统结构如图1所示。
3 水质监测网的下位机
下位机部分由一个ZigBee转WiFi网关或一个ZigBee转USB基站,2个PH采集节点,一个温度采集节点组成。
所有节点内嵌ZigBee通讯模块,在节点的通讯模块中,烧写了ZigBee协议栈的移植版,所有节点上电即进行自组网,进行数据的采集和传输。通过AT 命令来指定协调器,路由器,和终端节点,以及节点的相关参数。当掉电时,能进行参数的保存。其下位采集器采用STM32,该款CPU采用的是ARM的 cortex-M3内核。其具有出色的实时性能、优越的功效、高级的创新型的外设、最大的集成性。CPU工作频率最高达到72 MHz。AD采集精度为12位,充分保证了采集传感器的精度。
ZigBee通信具有通信稳定的优点。增加的无线功率放大器PA可以一定意义上克服ZigBee通信距离短的问题,使得节点通信距离可以达到几千米,最大限度的保证了通信的稳定可靠和通信距离。图2和图3分别描述了ZigBee节点接收和发送数据的流程图。
在下位机与PC机的衔接部分,笔记本可以用WiFi网关或ZigBee转USB基站来接收数据,对于台式机可以直接用ZigBee转USB基站来接收。
4 水质监测网的上位机
上位机界面采用C#编程,开发工具为vs2012,数据库为SOL Server。
4.1 WIFI网关接收模式
当启用WIFI网关接受模式时,网络协议采用TCP,相比UDP稳定,用socket套接字来连接PC机与WIFI网关。
当上位机软件启动时,上位机首先创线thwatchport=new Thread(listening);用来监视,WiFi网关是否与PC机相连,若没有,则继续监听。当连接完成时,软件创建另一线程threcive=new Thread(autorecive),用于接收WiFi网关发来的数据,并随时将数据存入数据库中。
由于第一个线程不断循环查询,当WiFi网关断开,能保证WiFi网关重连时的成功,而不必重启软件。保证了系统的容错率和健壮性。
伪代码描叙如下:
运行结果图:
4.2 ZigBee转USB模式
对于台式PC机,用WiFi网关接收模式固然可行,对于ZigBee网关与上位机物理距离较短时,还有另一种接收模式——ZigBee转USB模模式。只要将USB一端插入台式机的USB口,当上位机软开启时便可以接收数据。
USB接受方式的编程实现,采用的是serialPort控件,直接采用事件触发的方式。
伪代码描叙如下:
运行结果图:
线程和事件触发方式,和定时器定时接收方式相比,能保证数据的随到随收,无数据包遗漏现象。
对于数据的处理,可以按时间查询,并将查询到的数据进行普通的数理统计,如计算平均数,超标次数,并且能将数据查询统计结果导出生成Excel文件,方便用户进一步分析调研。
此外,上位机软件具有良好的用户界面,与异常处理,方便用户操作与使用,接收界面使用动态GIF图片制作,如图2,第一个苹果表示等待连接,第二个苹果表示已连接成功,正在接收数据,当WIFI网关掉线时,第二个苹果停止动态显示,方便用户动态感觉数据接收正在进行,当数值超标时,或设备电压不足时,软件亦能及时弹出报警窗口。
5 结论
基于ZigBee的自来水监测网能有效对自来水水质进行实时监测,设计实现了系统的网络结构,完成了传感器数据采集、传输、查询显示以及报警等系统功能。通过网络传输传感器的数据采用两种方式:WiFi网关的socket方式和ZigBee转USB的serialPort方式。两种方式都能实现数据的实时传输的实时接收,基于线程的socket,使用了线程轮转循环的方式,能有效防止WiFi网关掉线,并提醒用户。此时接收线程 threcieve终止,监听线程thwatchport依旧循环,等待WiFi网关重新连接。
下一阶段工作的重点,围绕完善系统功能和扩展系统应用展开:
对于下位机网络,采集节点数目不够多,参数种类也不够丰富。在PANID,信道,和数据包一致的情况下,可以不断加入新的节点,增加下位机网络的功能。
对于数据传输,利用GPRS网,通过GPRS短信直接通知水质超标等情况,亦可以将ZigBee网络转为3G或4G网络,使数据传输的方式变得灵活多样。
在上位机功能部分,丰富数据查询统计方式,添加系统日志管理,改进异常情况的友好提示等。丰富客户端的操作平台,延伸至Web方式,以及基于移动终端的App应用。对于已经采集的数据,可以进行数据挖掘,和大数据运算,研究当地经济,生活的状态。