当前位置:首页 期刊杂志

基于ZigBee的智能水务系统的研究

时间:2024-05-04

卢爱红+吴健

DOI:10.16644/j.cnki.cn33-1094/tp.2016.02.008

摘  要: 为了提高用水企业水平衡分析的效率,提出一种基于ZigBee的智能水务系统的设计方法。智能水务系统由多个ZigBee节点和ARM开发板组合而成,其中ZigBee节点构成的传感网络通过自定义的无线网络ZigBee通信协议获取各级水表网络拓扑和各级水表读数,ARM开发板在Qt/Embedded的界面设计中完成网络拓扑数据解析、生成拓扑图、各级水表数据显示和存储等任务。本系统综合了ZigBee网络的智能采集和ARM开发板强大的数据处理能力,具有较强的环境适应力和分析处理能力。

关键词: ZigBee; ZigBee通信协议; ARM; Qt/Embedded

中图分类号:TP368.2          文献标志码:A     文章编号:1006-8228(2016)02-26-03

Study of intelligent water meter system based on ZigBee

Lu Aihong, Wu Jian

(Suzhou Institute of Trade & Commerce, Suzhou, Jiangsu 215009, China)

Abstract: In order to improve the efficiency of the water balance analysis in the water-consumption enterprise,this paper proposes a design method of intelligent water meter system based on ZigBee. The intelligent water meter system is composed of multiple ZigBee nodes and an ARM development board. Via a self-defined ZigBee wireless network communication protocol, the sensor network made up of multiple ZigBee nodes obtains the network topology of water meters and the readings of water meters. In Qt/Embedded user interface design, the ARM development board completes the analysis of network topology data, generates topology map, displays meters' data, and storages the data. This system combined the ZigBee network's intelligent gathering and the ARM development board's powerful data processing capabilities, has strong environmental adaptabilities and analysis capabilities.

Key words: ZigBee; ZigBee communication protocol; ARM; Qt/Embedded

0 引言

智能水务系统需要对用水企业的各级水表数据实时采集,通过网络传输到总控制器汇总后,进行水平衡分析。系统能够完成周期性的自动采集、自动传输、自动分析,并输出统计报表的任务。用水企业的各级水表数量庞大,由于人工读表效率太低,所以利用物联网的优势,在系统前端使用物联网无线传感网络采集数据。水表读数数据流相对于音/视频流是较小的,所以对无线传感网络的传输带宽要求不高,但大量终端传感节点需要长时间待机工作,对功耗要求非常敏感。ZigBee无线传感网络因其数据速率低、功耗低、稳定性高的特点,在物联网数据采集前端获得了广泛的应用。ZigBee传感网络一般使用网状、树状拓扑结构,通过路由节点实现网络中继,拓宽了ZigBee传感网络的覆盖范围,对方圆几公里的用水企业可以实现全范围覆盖。

1 系统要求与整体设计

智能水务系统由ZigBee传感网络和主控制平台两部分组成。TI公司针对ZigBee2007协议推出了SoC芯片CC2530和软件协议栈Z-Stack,使用上述硬件和软件资源,构建无线传感器网络。传感网络中的ZigBee终端节点与各级水表数据相连,读取水表度数。ZigBee各节点采用CC2530作为主控芯片,CC2530芯片提供ZigBee无线收发的射频前端,CC2530芯片上同时集成了51单片机,能够实现简单通信接口的编程。企业使用的水表通信接口有RS485、ModBus总线等,使用单片机模拟通信接口,实现与水表的无缝对接。ZigBee网络使用树状拓扑结构,由ZigBee路由节点完成网络中继的任务。整个网络中惟一的ZigBee协调器节点通过RS232与主控制器相连。主控制器采用带液晶显示屏的ARM开发板,完成ZigBee节点网络地址的获取、功能节点的绑定、ZigBee网络拓扑结构的获取、周期性读取各级水表读数、水表读数历史纪录保存和统计等工作。

系统设计框图如图1所示[1]。

2 硬件设计

系统的硬件设计分成两部分。

第一部分是ZigBee终端和路由节点的设计。ZigBee终端和路由节点的单板以CC2530为核心芯片。CC2530芯片有两个UART串口,可以通过RS232转RS485芯片转换后,连接两个RS485总线的水表。每个终端节点和路由节点能够连接两个水表,有效降低了ZigBee节点的数量。路由节点和终端节点的区别在于ZigBee协议栈的软件配置的区别。

第二部分是ZigBee协调器节点的设计。ZigBee协调器节点通过串口与ARM主控板连接。ZigBee协调器节点作为ZigBee网络的核心,能够查询ZigBee网络所有终端和路由节点的信息,并能发送执行指令到所有节点。ARM主控板采用S3C2440作为核心CPU,主频达400MHz,具有很强的处理能力。ARM开发板的开发过程为:首先用交叉编译工具arm-linix-gcc编译u-boot、Linux操作系统和文件系统,操作系统编译时需加载7寸LCD显示屏的驱动。再将三个可执行文件安装到开发板,调试成功后,LCD显示屏能够显示初始图片,并且串口进入命令行。然后进入应用层的调试阶段,要在7寸LCD液晶屏上显示Qt/Embedded界面,必须配置Qt/Embedded的运行环境[2],方法为:通过挂载网络文件系统,将Qt4.7交叉编译的库文件传输到Flash,再修改文件系统的启动脚本rcS,并设置如下全局变量:库文件目录QTDIR、显示设备文件QWS_DISPLAY、输入设备文件QWS_MOUSE_PROTO等参数。最后,在ubuntu环境下的Qt Creator编程环境中仿真设计QT界面,经过交叉编译后,下载到ARM开发板的文件系统中,直接运行。QT界面可用拓扑图实时、直观地显示各个节点的水表位置和水表数据。

3 软件设计

智能水务系统的节点繁多,智能管理ZigBee节点是设计的重点。ARM开发板作为主控制器,通过自定义的ZigBee无线网络通信协议与直连的ZigBee协调器通信,查询ZigBee网络节点状态,并发送指令到指定的ZigBee节点。ARM开发板与ZigBee协调器之间通信有两个功能:①查询ZigBee网络各节点地址;②查询各个水表读数。ZigBee无线网络通信协议的数据包格式是用户自定义的。命令包格式和返回包格式如图2、图3所示。

每个ZigBee节点都有物理地址和网络地址,节点的物理地址在使用ZigBee节点之前由用户手动输入,节点的网络地址由ZigBee网络自动分配。ZigBee物理地址的设置需根据用水企业中不同级别的水表编号对ZigBee节点的物理地址赋值,以便ARM开发板在获取所有节点的物理地址之后,能根据物理地址解析出水表的级别和编号。ARM板主控制器可以通过ZigBee协调器查询每个节点的物理地址和网络地址。ZigBee协调器向ZigBee网络各个节点发送广播帧,目的节点网络地址设置为0xFFFF,查询当前网络中所有节点的地址、及其父节点的地址。查询地址命令即读取网络RNW命令包,格式为:&(1字节)+WSN(3字节)+RNW(3字节)+"yyyyyyyy"(8字节)+*(1字节)。读取网络RNW命令的返回包格式为:&(1字节)+WSN(3字节)+RNW(3字节)+(type)S(1字节)+节点网络地址(2字节)+总节点数(1字节)+节点类型(3字节)+节点物理地址(8字节)+父节点网络地址(2字节)+PANID (2字节)+"yyyyy"(5字节)+*(1字节)。ZigBee网络中每个节点收到查询的广播帧后,都会向网络地址默认为0x0000的协调器发送自己节点的网络地址、节点类型、节点物理地址、父节点网络地址。ARM开发板根据ZigBee协调器反馈上来的网络地址和其父节点网络地址,画出当前用水企业水表树状拓扑图。

ARM开发板获取ZigBee网络的各个节点地址之后,定时向ZigBee协调器查询各个节点水表数据,并在水表拓扑图中实时显示出来。ZigBee协调器依次轮询ZigBee网络中所有节点的网络地址。查询水表读数的数据格式也需预先定义。读取水表数据 RWD的命令包格式为:&(1)+WSN(3)+RWD(3)+节点网络地址(2)+"yyyyyy"(6)+*(1)。读取水表数据 RWD的返回包格式为:&(1)+WSN(3)+RWD(3)+(type)S(1)+节点网络地址(2)+水表数据(4)+"yyyyyyyyyyyyyyyy"(16)+连接质量(1)+*(1)。ZigBee协调器将轮询的各个节点的水表读数及时更新到协调器本地的存储器中。

ARM开发板Qt/Embedded界面设计中,设置定时向ZigBee协调器查询节点地址的定时器,根据数据库中存储的最新ZigBee节点数据,画出ZigBee节点的树状拓扑图。首先寻找以树根ZigBee协调器(网络地址0x0000)为父节点的子节点,作为树状拓扑结构的第一层,再逐层找到树状拓扑的各层节点的网络地址,最终完成整个树状拓扑的绘制。界面设计中同时也需要设置定时向ZigBee协调器查询节点水表读数的定时器,最新水表读数数据存储到本地数据库,以便应用程序进行统计和分析。

4 实验结果

选用8个ZigBee节点,14个水表,1个ARM开发板作为本系统的实验设备,1个ZigBee节点作为协调器,与ARM开发板直接连接,其余ZigBee节点分别烧录路由节点和终端节点的代码。ARM开发板烧录u-boot、Linux操作系统、文件系统3个可执行文件和设计的Qt/Embedded界面程序。

首先启动ZigBee协调器,然后相继启动ZigBee路由和终端节点,各节点自动组成树状网络。对ARM开发板上电,正常启动Linux操作系统和Qt/Embedded界面程序,界面程序发送读取网络RNW的指令,再等待从ZigBee协调器返回的各节点地址数据,解析出当前树状网络的拓扑结构图,利用Linux操作系统中的MySQL数据库存储拓扑结构数据,使得ARM开发板重启后,存储的数据能自动加载,并还原出拓扑结构。

Qt/Embedded界面程序中设置定时查询功能,定时发送读取水表数据RWD命令,获取最新的各节点水表数据,保存到MySQL数据库。应用程序可根据各节点水表数据,进行水平衡分析,若发现漏水节点,及时发出警告。

5 结束语

本系统选用ZigBee节点和ARM开发板联合设计,综合了ZigBee传感网络智能采集数据和ARM核心处理器强大的处理能力。硬件上重点解决了ZigBee传感节点和ZigBee协调节点主控制器的设计,软件上重点设计了ZigBee无线网络通信协议和智能水务系统Qt/Embedded界面,创新性地提出了ZigBee网络拓扑解析和智能水务系统数据存储统计分析的方法。系统联调后功能正常、运行稳定。本系统的设计为物联网在智能水务系统中的应用提供了较完整的解决方案和系统化的设计思路,但是功能相对简单、粗糙,在实际企业应用中,需在此框架设计的基础上,进一步优化细节。

参考文献(References):

[1] 卢爱红,刘中原,冯蓉珍.基于ARM的自助出票机便携式终端

设计[J].计算机时代,2013.9:28

[2] 卢爱红.基于Qt/Embedded的水务数据监测系统[J].计算机

时代,2014.12:22

[3] 吴丽琴,袁辉,翟国庆,束慧.基于WSN的水务管理系统设计

与实现[J].工业仪表与自动化装置,2013.6:20

[4] 杨明祥,蒋云忠,田雨,王浩.智慧水务建设需求探析[J].清华大

学学报(自然科学版),2014.54(1):133

[5] 刘勋,赵勇,雷新民.物联网技术在智能水务建设中的应用研

究[J].给水排水,2014.40(11):99

[6] MICHAEL Owens.The Definitive Guide to SQLite[M].US:

Apress,2006.

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!