APP下载

基于ZigBee技术的环境在线监测系统

2018-07-06方国栋张育钊

现代计算机 2018年16期
关键词:环境参数后台路由器

方国栋,张育钊

(华侨大学工学院,泉州 362021)

0 引言

随着信息化时代的高速发展,无线通信技术成为了数据传递过程中不可或缺的部分,例如蓝牙、Wi-Fi、ZigBee和Lora等人们熟悉的通讯方式,它们利用自己的优势在各个领域发挥着各自的作用。目前很多现场都是用有线的传输数据,但是在一些特定场景不允许有线的存在,所以新兴的无线传感器网技术ZigBee正好解决了这个问题。

现阶段,在环境监测方面,甘玫玉[3]等人利用大数据的方式对环境数据进行分析并作出预测,即采用大数据挖掘、分析技术将监测点的环境表征等复杂信息与指标数据结合起来进行关联分析、整合,建立环境大数据系统,全面分析环境的基本状况和预测紧急状态的趋势;盛平[4]等提出基于ZigBee技术与3G技术结合的方式来实现特定场景的监控,该方案的结构是,现场部署ZigBee无线网络,将数据集中在嵌入式服务器中处理,使用3G网络实现与Internet无缝连接;王骥[5]等人通过无线传感网络和ZigBee相结合,也是基于Zig⁃Bee作为通信模块,网关采用GPRS作为系统与3G网络的通信模式。本文总结和归纳了上述检测系统,并此基础提出了自己的ZigBee搭建本地无线局域网,通过嵌入式网关(4G)与Internet连接,实现现场和服务器交互数据的方式来监测环境。服务器端增加了异常检测方法,对异常数据进行检查并上报异常问题,同时开发了后台管理界面,管理人员通过Web网页实时查看现场环境参数,管理人员通过网页前端数据和异常模块,及时了解现场情况,以便做出进一步的判断和决策。

1 系统总体设计方案

本系统由ZigBee无线网络、嵌入式网关、后台管理系统和服务器四部分组成,系统框架如图1所示。

1.1 ZigBee无线网络

ZigBee技术[6-9]是一种近距离、低复杂度、低功耗、低速率、低成本的双向无线通讯技术,具有以下特点:①低功耗:传输速率低,发射功率为1mW,采用了休眠模式;②成本低:协议栈免专利费,工作于ISM频段868MHz(欧洲)、915NH 在(北美)和 2.4GHz(全球);③网络容量大:可支持节点达65000个;④可靠:采用了CSMA-CA机制,具有自动动态组网功能;⑤安全:采用CRC校验,使用了AES-128加密算法。

ZigBee无线网络包括多个ZigBee节点及ZigBee协调器,系统底层通讯协议为Z-Stack,实现自组网,ZigBee协调器组建并维护ZigBee网络,各ZigBee节点通过外接电路与传感器交互数据,并向ZigBee协调器上报该数据,考虑到工地实际环境影响,部分ZigBee节点中有添加路由器,用于数据中继。路由器节点通常放置在离终端节点较近、距协调器节点较远的位置,多数时候需要路由器节点作为数据传输的中转站。在终端节点数据传输到协调器的过程中,如果距离太远不能直接传输。理论上可以采用经过足够多个路由器中继跳转的办法。但实际应用中,第一,路由器层数过多会造成硬件上的资源浪费;第二,对于实时性敏感Zig⁃Bee网络来说,数据传输过程中多次路由中转产生的延时是不可轻视的,通常,一次中转会产生l0ms延时,所以要尽量避免多层路由。因此,本系统只设计了一层路由,把重点放在了如何增加路由节点和协调器节点之间的有效通信距离,以扩大网络范围。本系统的具体解决方法是在路由节点上增加功率放大器芯片CC2591,该芯片上集成了高性能的功率放大器和低噪声放大器。ZigBee协调器接收到环境参数数据后,进行校验,在数据正确的情况下将数据进一步打包,否则要求ZigBee节点重发,环境数据打包完成后,ZigBee协调器将打包的结果数据发送给路由器。

图1 系统技术框架图

1.2 嵌入式网关

网关部分的作用是建立前端和后台服务器之间的网络通信,将前端传感器节点在现场采集的环境数据参数上传到后台服务器。嵌入式OpenWrt路由器基于Linux系统,继承了Linux的TCP/IP协议栈,程序开发时可以直接使用系统提供的TCP/IP协议栈API创建Socket网络套接字,同时该版本Linux系统稳定,精简。综上所述,采用嵌入式OpenWrt路由器将会使得本系统开发更为简单,效率更高,成本更低。在本系统中,该网关主要负责两个功能:其一是拆分、检查和校验ZigBee协调器打包的现场实时环境参数,在数据正确的情况下,该路由器继续本功能部分的打包;其二是采用TCP/IP协议,通过Socket套接字,将第一部分打包后的数据转发至后台服务器。

1.3 后台服务器

本系统服务器部分采用LAMP架构,LAMP指的Linux(开源操作系统)、Apache(HTTP服务器),MySQL(数据库软件)和PHP(有时也是指Perl或Python),一般用来建立Web应用平台。这些开放源代码程序本身并不是专门设计成同另几个程序一起工作的,但由于它们的免费和开源,这个组合开始流行(大多数Linux发行版本捆绑了这些软件)。当一起使用的时候,它们表现地像一个具有活力的解决方案包。其他的方案包有苹果的WebObjects(最初是应用服务器),Java/J2EE和微软的.NET架构。

LAMP包的脚本组件中包括了CGIweb接口,它在90年代初期变得流行。这个技术允许网页浏览器的用户在服务器上执行一个程序,并且和接受静态的内容一样接受动态的内容。程序员使用脚本语言来创建这些程序因为它们能很容易有效的操作文本流,甚至当这些文本流并非源自程序自身时也是。正是由于这个原因系统设计者经常称这些脚本语言为胶水语言。

在本系统中,MySQL用于环境数据的保存,前端将现场环境的数据传送到后台服务器,服务器端DAO层将数据保存到MySQL数据库中;PHP用作为服务器端软件开发语言,服务器端软件用于监听路由器的TCP连接,在和路由器建立了TCP连接之后,交互传感器所采集到的现场环境数据并保存,以便于后台管理系统对现场环境数据的查询和管理人员的进一步决策,同时后台服务器有独自开启一进程用于数据异常检查,并保存数据异常信息记录。

1.4 后台管理系统

后台管理系统提供了一个管理人员查看现场环境参数的平台。网页前端采用HTML及JavaScript脚本语言编写,任何一台能上网的设备在浏览器输入网址后即可查看现场环境的实时参数。本系统中,后台管理系统有做一些专门的设计,浏览器接收到环境参数后,将数据以图表和曲线图的方式显示在网页上,这种直观的方式便于管理人员判断现场环境的情况。

2 系统软件设计

2.1 ZigBee软件部分

本系统ZigBee软件的设计基础是TI公司推出的与CC2530配套的ZigBee 2006协议栈(Z-Stack)以及IAR集成开发环境。Z-Stack协议栈运行在一个基于任务调度机制的OSAL操作系统上,OSAL通过触发任务的事件来实现任务调度,OSAL中的任务可通过任务API函数将其添加到系统中,实现多任务机制[1-2]。

图2 路由器软件流程图

该部分软件处理的过程是:ZigBee节点每40s采集一次传感器数据,校验后将数据发送给协调器,协调器接收到数据后,先进行校验,然后把节点的编号打包到数据中,进一步转发至openWrt路由器。

2.2 OpenWrt路由器软件部分

本系统OpenWrt软件的流程图如图2所示,首先是系统初始化,包括Socket套接字的API初始化和读取协调器数据缓存区的初始化,下面的工作主要分为两个部分。

(1)监听协调器数据。当收到协调器数据后,路由器首先对数据格式进行检查,在数据格式正确的情况下,拆分数据以获取环境参数,然后对环境参数进行CRC检验。否则丢弃数据,在数据校验正确的情况下,则继续本部分打包,在环境参数的原始数据上添加节点信息,以便于异常检测中正确标定节点信息,否则丢弃原始数据并重新继续等待协调器上报的现场环境数据参数。

(2)发送数据到服务器。在上一步完成数据打包后,路由器创建Socket套接字,Socket套接字将数据写出到后台服务器,为了保证发送到服务器的数据的可靠性和正确性,设计了”三次机制”,如果数据发送失败,则重复发送,如果三次数据依然发送失败,则重新等待打包好的数据,并报告异常。

2.3 服务器端软件部分

服务器端划分为两个部分,异常检测进程和通信进程。

(1)通信进程。包括有两个部分功能,网络通信和数据本地保存。如图3所示。

图3 服务器端软件流程图

①网络通信。初始化后,调用PHP Socket API绑定、监听客户端连接,并获取客户端数据,获取到数据后,本部分也进行数据拆分和校验检查,剥离原始的现场环境数据参数,采用CRC校验数据,在数据正确的情况下,通知本地保存剥离的环境参数数据,否则,丢弃数据并报告错误。

②数据本地保存。接收到网络通信模块的保存数据通知后,本部分操作PHP MySQL API,分两种情况,一、数据库存在:直接打开表,将数据保存到相应的数据表中。二、数据库不存在:则创建数据库,打开数据表,将数据保存到相应的数据表中。

(2)异常检测进程

本系统传感器每隔40s(∇T)进行一次采样,按照如下公式[11]进行判定:

Rt h(t)表示阈值的取值,Expn(t)表示正常的传感器在正常区域读数的期望值,一般稳定环境可认为起始一个常数;Expn(t)表示正常的传感器在异常区域读数的期望函数,t为传感器采样时刻。本系统在式(1)的基础上增加了一个判定,即如果采集的数据长时间与Expn差值为0,则可认为数据发生重复异常。否则,继续按照数据异常判定。

2.4 Web 前端部分

Web前端如图4所示,管理人员登录之后,即可通过地图查看工地现场位置信息及架设的监测点位置信息,图中红、绿色的图标均是监测点,点击检测点图标,即可实时查看监测点的环境参数数据及异常情况,如图4,5所示,从网页中可以看出1号节点出现数据重复异常。

3 实验结果与分析

为了验证该系统的可行性和实用性,选取了泉州市在建的文化中心工程作为本系统试验工地,从网页中可以看出共部署有5个点,其中1和2部署在文化中心,3-6是为项目预留的节点,7和8部署在另一个工程,本部分不予展示。试验时间从8月开始,目前还在运行中。这里展示部分数据情况。如图6所示,显示的是1月7日至17的PM2.5参数信息。图7显示的是1月7日至17日的温度参数信息。

从试验结果可以看出,系统运行基本稳定,并且异常检测的目标也基本达成,同时通过后台和现场数据的对比,温度、PM2.5数据误差均在误差允许范围内。

4 结语

本系统由ZigBee无线网络,嵌入式网关、后台管理系统和服务器四部分共同完成了现场环境数据的采集和异常检测。采用了4G实现数据上传,这种方式速率更高,结合ZigBee无线技术的低功耗、低成本、组网简单灵活、稳定等特点,使得系统具有更好的应用价值,并且服务器后台添加了数据异常检测,从而可以对异常数据节点做出及时的处理,同时提供了后台管理界面,使得管理人员可以更加方便地查看节点数据及状态。

图4 Web前端管理界面

图5 异常数据显示信息

图6 PM2.5实时图

图7 温度实时图

在实际应用中,本系统也存在一些瑕疵,如异常检测偶尔出现误报,异常检测速度较慢。在今后的研究中,将往异常检测误报及速度的发展,例如提高计算机硬件性能,采用大数据方式进行异常数据检测,提高速度,改进检测算法以降低数据的误报率。

[1]王玮,樊则宾.基于CC2430的无线温度检测终端的设计[J].电子工程师,2007,33(8):78-80.

[2]程越巍,罗建,戴善溪,等.基于ZigBee网络的分布式无线温湿度测量系统[J].电子测量技术,2009,32(12):144-146.

[3]甘玫玉.基于大数据的环境监测与治理研究[D].广西大学,2017.

[4]盛平,郭洋洋,李萍萍.基于ZigBee和3G技术的设施农业智能测控系统[J].农业机械学报,2012,43(12):229-233.

[5]王骥,林杰华,谢仕义.基于无线传感网络的环境监测系统[J].传感技术学报,2015,24(11):1732-1740.

[6]周岭松,余春暄.基于ZigBee技术的温、湿度控制系统[J].电子测量技术,2011,34(6):47-50.

[7]冯军,宁志刚,阳璞琼.基于ZigBee的无线抄表系统设计[J].电力自动化设备,2010,30(8):108-111.

[8]姜钧严,郭艳玲,杨冬霞,等.基于ZigBee技术的温室温湿度检测系统[J].森林工程,2014,30(2):105-108.

[9]王鑫,潘贺,杨简.基于CC2530的ZigBee无线温湿度监测系统设计[J].中国农机化学报,2014,35(3):217-220.

[10]毛嘉莉,金澈清,章志刚,等.轨迹大数据异常检测:研究进展及系统框架[J].软件学报,2017,28(1):17-34.

[11]曹冬磊,曹建农,金蓓弘.一种无线传感器网络中事件区域检测的容错算法[J].计算机学报,2007,30(10):1770-1776.

猜你喜欢

环境参数后台路由器
买千兆路由器看接口参数
路由器每天都要关
路由器每天都要关
基于梯度提升决策树算法的鄱阳湖水环境参数遥感反演
一种食用菌大棚环境参数测控系统设计
Wu Fenghua:Yueju Opera Artist
后台暗恋
基于ZigBee的多环境参数监测系统设计
路由器成为木马攻击目标
互联网思维下的汽车服务连锁后台支撑系统