基于ZigBee的无线火灾报警系统
2014-05-14任丽棉
任丽棉
(唐山学院 信息工程系,河北 唐山063000)
随着科技进步和生活水平的提高,人们越来越注意自身和财产安全的防护。火灾是危害人类生存的大敌,一直受到人们的重视。现在常使用的火灾报警系统,大多数采用的是有线技术形成的火灾传感器网络,这种基于明线的火灾报警系统的设计技术已经趋于成熟,但是此报警系统其通信方式的扩展性能较差,而且布线十分繁琐,因为明线连接既不美观,线路又容易老化,易被腐蚀、磨损或者遭到老鼠啃咬等损坏,因此明线报警系统故障发生率和误报警率很高[1-2]。为了避免类似的问题,可以采用无线传输方式构建无线火灾报警网络。本设计将ZigBee技术应用到火灾报警系统中,从基于系统的设计要求、工作原理着手[3-4],给出系统的硬件设计和软件设计。
1 系统总体结构
本次设计主要目的是实现一个基于ZigBee技术的无线火灾报警系统,该系统具有如下功能:
(1)传感器节点的自动组网与信息登记。传感器所在节点即终端节点在进入到协调器节点的组网范围内时能够加入到协调器网络,在人机友好交互界面上,能够实时显示该终端节点所处的位置以及该位置的温度。
(2)人机友好交互界面。为了能更方便地操控该系统,需设计交互界面。交互界面中包含以下内容:每个节点实时的温度监控,以方便看到所有节点的实时温度;每个节点的位置登记,在发生火灾时能够迅速确定火灾位置;报警显示,当温度大于警戒值时,能够提醒操控者发生了火灾。
(3)火灾报警及控制。在无线火灾覆盖网络中发生灾情时,无线火灾网络的传感器节点能够迅速地将火灾报警信号传送给协调器节点,而协调器节点将信息传送到上位机,并在上位机友好界面上实时显示,提醒操控者进行必要的控制。
要实现以上功能,系统需包含中心协调器、终端传感器节点,以及上位机控制界面。终端传感器节点采用火灾报警最常用的温感传感器,因为温感传感器具有性能稳定、采集实时的特点;中心协调器负责整个无线火灾报警网络的控制,即负责与各个终端节点的通信,采集终端节点的信息,并发送给上位机;上位机对接收的信息进行加工处理,从而实现报警功能。系统总体框图如图1所示。
图1 系统总体框图
2 系统硬件设计
各网络节点包括,无线收发模块通过无线组网方式实现各传感器节点的连接,传感器模块进行数据采集,以及微处理器模块进行整个信息的综合和处理。本设计的微处理器模块采用CC2430芯片,传感器模块则使用温湿度传感器SHT10,并使用多功能仿真器进行控制程序的下载,以及使用UART串行接口进行协调器与上位机间的通信。
协调器节点由无线收发模块、CC2430芯片以及串行接口组成,主要功能是组网,并且能够接收所有节点的温度信息,随后将接收到的温度值上传至上位机进行处理。硬件框图如图2所示。
图2 网络协调器硬件框图
传感器终端节点负责采集各个节点的温度,并将数据实时地传送给协调器节点。该节点主要由收发模块、CC2430主控芯片以及SHT10温湿度传感器组成,硬件框图如图3所示。
图3 传感器终端节点硬件框图
3 系统软件设计
上位机操控界面实现对各个节点所采集温度的实时监控、发生火灾时发出警报以及扑灭火灾时能够解除警报等功能。
控制程序是在IAR Embedded Workbench开发环境中编写的,使用烧写软件Smartrf flash programmer进行仿真和下载,程序分为协调器程序和终端节点程序。
3.1 人机交互界面设计
上位机操控界面是基于Lab VIEW 8.6编写的[5],如图4所示。在发生火灾时,传感器节点温度升高,达到警报温度,报警灯变亮,与此同时“发生火灾的地址”栏会显示出发生火灾的位置(本设计以房间号为例),以此提醒人们要采取必要措施去扑灭火灾。当火灾扑灭时,按下“解除警报”,则警报解除。
图4 上位机操控界面
3.2 终端节点设计
终端节点实现的功能是进行节点所在位置的实时温度采集,并将采集到的温度通过无线发送模块实时地发送到协调器节点上,以便传到上位机进行处理。因此在本系统中,终端节点由CC2430芯片集成块和SHT10温湿度传感器集成块组成。CC2430通过二排线数字串行接口和SHT10传感器进行通信。终端节点被打开时,首先进行初始化,然后尝试加入网络,当收到外部中断即接收到采集的温度时会给SHT10发送查询指令,等待SHT10数据进行模数转换,而后进行并行数据发送,当发送完毕后继续进入休眠状态,同时等待外部中断,有请求时会再次被激活。
3.3 协调器节点设计
网络协调器是整个网络中的核心,主要功能是控制指令的发送和执行,信息的接收、汇总、处理以及网络的建立。当协调器完成初始化后,首先扫描选择一个空闲信道,并设定一个随机的PAN标识符,然后对外发布广播帧,同时接收其他子节点的加入,从而建立起一个新网络。在无线网络建成后,就可以开始进行各种操作指令的执行和数据的收发工作。
3.3.1 建立网络
网络协调器通过aplForm Network()函数建立网络,在完成组网后进入有限状态机,同时通过调用apsFSM()函数运行协议栈。当协调器在完成函数apl Form Network()的调用后,可以通过调用aplGetStatus()函数来确认当前的调用能不能完美实现,如果调用成功,则返回显示字符串LRWPAN_STATUS_SUCCESS;如果操作不当导致调用失败,就会出现错误代码,所有的错误代码都可以在stack/src/lrwpan_common_types.h文件中找到。主要程序代码如下:
main(){
halInit(); //初始化 HAL层
evbInit(); //初始化评估板
aplInit(); //初始化协议栈中的其他部分
ENABLE_GLOBAL_INTERRURT(); //开启所有中断的使能端
aplForm Network(); //组建网络
while(apsBusy()){apsFSM();}//等待,网络建立后apsBusy()返回false
while(1){apsFSM();} //有限状态机运行堆栈
}
3.3.2 传送数据
当网络协调器收到数据包后,首先进行分析处理,然后通过串行接口传送给上位机。其部分程序代码如下:
LRWPAN _STATUS_ENUM usrRxPacketCallback(void){
byte*tem;
byte payload_up[25];
byte len,i;
if(aplGetRx DstEp()== 203){//check dst endpoint
tem =aplGetRx MsgData();
len=aplGetRx Msg Len();
if(tem[0]==0xff)
{
conPrintDec(tem[1]);
}
}
return(LRWPAN_STATUS_SUCCESS);
4 结论
本系统将ZigBee无线传感网络和Lab VIEW结合,实现了无线火灾报警系统的设计。系统成本低、功耗小,省去了布线的困扰,而且具有很强的可扩展性,适用于如高校宿舍、商场等多种场所的火灾防控。火灾发生时,由于系统能够发出警报,提供发生火灾的准确地点,因此,有助于及时发现火灾,使相关人员及时准确地赶到火灾现场进行灭火。
[1] 刘长安.火灾报警通信系统设计与实现[D].沈阳:东北大学,2007.
[2] 张翔.基于物联网技术的火灾自动报警系统研究[J].防灾科技学院学报,2011,13(1):51-54.
[3] 董朋涛.基于ZigBee的无线网络组网及可靠性研究[D].武汉:华中师范大学,2013.
[4] 李明亮,蒙洋,康辉英.例说ZigBee[M].北京:北京航空航天大学出版社,2013:15-20.
[5] 章佳荣,王璨,赵国宇.精通Lab VIEW虚拟仪器程序设计与案例实现[M].北京:人民邮电出版社,2013:18-35.