火灾报警系统设计.docx
- 文档编号:30701310
- 上传时间:2023-08-19
- 格式:DOCX
- 页数:32
- 大小:2.10MB
火灾报警系统设计.docx
《火灾报警系统设计.docx》由会员分享,可在线阅读,更多相关《火灾报警系统设计.docx(32页珍藏版)》请在冰豆网上搜索。
火灾报警系统设计
计算机科学与技术学院
《ZigBee综合实践》课程设计报告
设计题目:
基于zigbee的火灾报警系统
设计人员:
程念
学号:
123921036
指导教师:
王忠友
2015年4月
基于zigbee的火灾报警系统
摘要
随着经济的发展,高层建筑、地下建筑以及大型综合性建筑日益增多火灾隐患也随之增加,火灾发生的数量及其造成的损失都呈逐年上升趋势,因此,火灾报警系统成为保障人生命财产安全的重要因素。
而目前我国的火灾报警系统主要是总线型报警系统,由于外界环境因素的影响不可避免的会存在一定的误报率和漏报率,而且安装和维修成本很高。
伴随着ZigBee技术的出现和发展,它使无线型火灾报警系统成为了可能,基于网络化的火灾报警系统具有成本低、安装方便、稳定性高的特点。
ZigBee具有短时延和数据传输可靠的独特优势,它更适合于火灾报警系统中。
本设计以CC2530为核心控制芯片,采用Z-Stack协议栈作为协议平台组成一个小型的ZigBee网络,系统由一个协调器设备和一个终端设备组成一个小型网络。
终端设备作为传感器节点采集温度、烟雾数据,将终端设备放在室内的不同地方,将采集到的数据无线传输到协调器节点,通过串口将各个传感器节点的信息传输到上位机,上位机用VB编写,完成数据的显示和储存,基本上实现了家庭火灾报警系统所应有的功能。
【关键词】ZigBee火灾报警CC2530Z-Stack协议栈
ABSTRACT
Withthedevelopmentofeconomy,high-risebuildings,undergroundstructuresandincreasinglylargecomprehensivebuildings,thefirehazardalsowillincrease,thenumberoffiresandthedamagecausedbyrisingtrendyearbyyear,asaresult,firealarmsystembecometheimportantfactorofpeoplelifeandpropertysecurity.
Andfirealarmsysteminourcountryatpresentismainlyformalarmsystem,becauseoftheinfluenceoftheexternalenvironmentfactors,thereareinevitablysomenon-responseratesandtherateoffalsepositives,andinstallationandmaintenancecostisveryhigh.AccompaniedbytheemergenceanddevelopmentofZigBeetechnology,itmakesnolinearfirealarmsystem,firealarmsystembasedonnetworkhascharacteristicsoflowcost,easyinstallation,highstability.ZigBeehastheuniqueadvantagesofshorttimedelayanddatatransmissionisreliable,itismoresuitableforfirealarmsystem.
CC2530thisdesignasthecorecontrolchip,usingZ-StackprotocolStackasdealplatform,formingasmallZigBeenetworkandsystemconsistsofacoordinatorandaterminalequipmentofasmallnetwork.Terminalequipmentasthedatacollectiontemperature,smokesensornode,terminalequipmentindifferentpartsoftheinterior,thecollecteddatawirelesstransmissiontothecoordinatornode,throughaserialporttotransmitinformationofeachsensornodetoPC,PCwritteninLabVIEWsoftware,completethedatadisplayandstorage,basicallyrealizedthefunctionoffirealarmsystemofthefamilyshouldhave.
【Keywords】ZigBee,Firealarm,CC2530Z-StackprotocolStack;
1设计目标
本次设计要求能通过zigbee终端节点上火焰传感器采集火警信息,并将采集数据实时发送给协调器,检测是否有火灾发生,并且通过VB上位机显示出来;同时要求学生对CC2530芯片编程和zigbee协议栈有相当程度的理解以及熟练的应用,熟悉ZigBee串口以及中断的使用,会基本的C语言熟练掌握IARFOR8051软件的使用与程序下载。
2设计内容
(1)利用zigbee核心板,用AD设计好电路板,搭建好硬件环境,调试好火焰传感器;
(2)将火焰传感器作为节点采用广播方式加入到zigbee协调器网络中;
(3)编写并调试程序,并分别下载到协调器和终端节点,并将协调器串口链接到电脑,实现VB上位机显示火警状态,设计完成。
2.1系统组成框图
3设计方案
(1)CC2530芯片做接收信息设备和控制设备。
(2)ZigBee终端设备和协调器组网成功通信。
(3)终端设备监测传感器状态,并实时传给协调器。
(4)协调器获取传感器状态,并做出处理,同时VB上位机展示。
4实验所需器件
(1)核心板,此处采用CC2530核心板
(2)火焰传感器模块,及各种常用元器件
(3)ZigBee核心板和JLINK下载模块及其相关的驱动
(4)杜邦线若干,电池若干(最好是可以充电的)
5实验各模块电路设计
5.1核心板模块
(1)芯片的选择:
CC2530
(2)芯片的介绍:
*高性能、低功耗的8051微控制器内核;
*适应2.4GHzIEEE802.15.4的RF收发器;
*电源电压范围宽(2.0~3.6V);
*看门狗、电池监视器和温度传感器;
*具有8路输入8~14位ADC;
*2个支持多种串行通信协议的USART,1个红外发生电路;
*1个通用的16位和2个8位定时器;
图5.1.3
(4)实物图:
图5.1.4
5.2传感器模块
(1)所用传感器:
火焰传感器
(2)特点:
1、可以检测火焰或者波长在760纳米~1100纳米范围内的光源,打火机测试火焰距离为80cm,对火焰越大,测试距离越远
2、探测角度60度左右,对火焰光谱特别灵敏
3、灵敏度可调(图中蓝色数字电位器调节)
4、比较器输出,信号干净,波形好,驱动能力强,超过15mA
5、配可调精密电位器调节灵敏度
6、工作电压3.3V-5V
7、输出形式:
数字开关量输出(0和1)
8、设有固定螺栓孔,方便安装
9、小板PCB尺寸:
3.2cmx1.4cm
10、使用宽电压LM393比较器
(3传感器使用说明:
1.火焰传感器对火焰最敏感,对普通光也是有反应的,一般用做火焰报警等用途。
2.小板输出接口可以与单片机IO口直接相连,有火灾输出低电平正常输出高电平
3.传感器与火焰要保持一定距离,以免高温损坏传感器,对打火机测试火焰距离为80cm,对火焰越大,测试距离越远
图5.2.3
(4)实物图:
图5.2.4
6实验设计
6.1目的
熟悉基于zigbee的控制系统的使用,为今后进一步学习物联网无线传感网打下基础。
6.2系统原理图
图6.2.1终端节点原理图
图6.2.2终端节点PCB图
6.2.3协调器原理图
6.2.4协调器PCB图
6.3完成实物图
图6.3.1正视图
图6.3.2底面图
7调试与结果
7.1核心代码
7.1.1初始化部分,串口初始化,登记串口任务号,传感器接口初始化
7.1.2火灾判断部分
7.1.3发送部分
7.1.4接收并串口打印部分
7.2上位机测试
(1)班级总控界面如下,在程念组里面就可以实时观察火焰传感器状态。
图7.2
8设计总结:
通过这次实践课程,通过亲自动手,从最初确定课题,到画设计PCB,到印刷电路板,到焊接元器件,到测试电路,到调试程序,经过了反复的修改和实践,终于完成课题,一路走来,确实很不易。
画PCB,制板,编程,调试等各方面能力都得到了提升.
9附件
应用层源码:
#include"OSAL.h"
#include"ZGlobals.h"
#include"AF.h"
#include"aps_groups.h"
#include"ZDApp.h"
#include"SampleApp.h"
#include"SampleAppHw.h"
#include"OnBoard.h"
/*HAL*/
#include"hal_lcd.h"
#include"hal_led.h"
#include"hal_key.h"
#include"MT_UART.h"//此处用于串口
//定义IO
#defineLED1P0_0//LED提醒
#definefireP0_6//传感器检测口
/*********************************************************************
*MACROS
*/
/*********************************************************************
*CONSTANTS
*/
/*********************************************************************
*TYPEDEFS
*/
/*********************************************************************
*GLOBALVARIABLES
*/
//ThislistshouldbefilledwithApplicationspecificClusterIDs.
constcId_tSampleApp_ClusterList[SAMPLEAPP_MAX_CLUSTERS]=
{
SAMPLEAPP_PERIODIC_CLUSTERID,
SAMPLEAPP_FLASH_CLUSTERID
};
constSimpleDescriptionFormat_tSampleApp_SimpleDesc=
{
SAMPLEAPP_ENDPOINT,//intEndpoint;
SAMPLEAPP_PROFID,//uint16AppProfId[2];
SAMPLEAPP_DEVICEID,//uint16AppDeviceId[2];
SAMPLEAPP_DEVICE_VERSION,//intAppDevVer:
4;
SAMPLEAPP_FLAGS,//intAppFlags:
4;
SAMPLEAPP_MAX_CLUSTERS,//uint8AppNumInClusters;
(cId_t*)SampleApp_ClusterList,//uint8*pAppInClusterList;
SAMPLEAPP_MAX_CLUSTERS,//uint8AppNumInClusters;
(cId_t*)SampleApp_ClusterList//uint8*pAppInClusterList;
};
//ThisistheEndpoint/Interfacedescription.Itisdefinedhere,but
//filled-ininSampleApp_Init().Anotherwaytogowouldbetofill
//inthestructurehereandmakeita"const"(incodespace).The
//wayit'sdefinedinthissampleappitisdefineinRAM.
endPointDesc_tSampleApp_epDesc;
/*********************************************************************
*EXTERNALVARIABLES
*/
/*********************************************************************
*EXTERNALFUNCTIONS
*/
/*********************************************************************
*LOCALVARIABLES
*/
uint8SampleApp_TaskID;//TaskIDforinternaltask/eventprocessing
//Thisvariablewillbereceivedwhen
//SampleApp_Init()iscalled.
devStates_tSampleApp_NwkState;
uint8SampleApp_TransID;//ThisistheuniquemessageID(counter)
afAddrType_tSampleApp_Periodic_DstAddr;//广播
afAddrType_tSampleApp_Flash_DstAddr;//组播
afAddrType_tPoint_To_Point_DstAddr;//网蜂点对点通信定义
aps_Group_tSampleApp_Group;
uint8SampleAppPeriodicCounter=0;
uint8SampleAppFlashCounter=0;
/*********************************************************************
*LOCALFUNCTIONS
*/
voidSampleApp_HandleKeys(uint8shift,uint8keys);
voidSampleApp_MessageMSGCB(afIncomingMSGPacket_t*pckt);
voidSampleApp_SendPeriodicMessage(void);
voidSampleApp_SendFlashMessage(uint16flashTime);
voidSampleApp_SendPeriodicMessage1(void);//正常周期性广播函数声明
voidSampleApp_SendPeriodicMessage2(void);//有火灾!
//voidSampleApp_SendPeriodicMessage3(void);
//voidSampleApp_SendPeriodicMessage4(void);
/*********************************************************************
*NETWORKLAYERCALLBACKS
*/
/*********************************************************************
*PUBLICFUNCTIONS
*/
/*********************************************************************
*@fnSampleApp_Init
*
*@briefInitializationfunctionfortheGenericAppTask.
*Thisiscalledduringinitializationandshouldcontain
*anyapplicationspecificinitialization(ie.hardware
*initialization/setup,tableinitialization,powerup
*notificaiton...).
*
*@paramtask_id-theIDassignedbyOSAL.ThisIDshouldbe
*usedtosendmessagesandsettimers.
*
*@returnnone
*/
voidSampleApp_Init(uint8task_id)
{
SampleApp_TaskID=task_id;//task_idisPointertolocationoftheApplicationtaskID.
SampleApp_NwkState=DEV_INIT;
SampleApp_TransID=0;//ThisistheuniquemessageID(counter)
MT_UartInit();//串口初始化
MT_UartRegisterTaskID(task_id);//登记任务号
/******火灾探测传感器电路初始化******/
P0SEL&=~0X40;//设置P0.6为普通IO口
P0DIR&=~0X40;//在P0.6口,设置为输入模式
P0INP&=~0x40;//打开P0.6上拉电阻
//Devicehardwareinitializationcanbeaddedhereorinmain()(Zmain.c).
//Ifthehardwareisapplicationspecific-addithere.
//Ifthehardwareisotherpartsofthedeviceadditinmain().
#ifdefined(BUILD_ALL_DEVICES)
//The"Demo"targetissetuptohaveBUILD_ALL_DEVICESandHOLD_AUTO_START
//Wearelookingatajumper(definedinSampleAppHw.c)tobejumpered
//together-iftheyare-wewillstartupacoordinator.Otherwise,
//thedevicewillstartasarouter.
if(readCoordinatorJumper())
zgDeviceLogicalType=ZG_DEVICETYPE_COORDINATOR;
else
zgDeviceLogicalType=ZG_DEVICETYPE_ROUTER;
#endif//BUILD_ALL_DEVICES
#ifdefined(HOLD_AUTO_START)
//HOLD_AUTO_STARTisacompileoptionthatwillsurpressZDApp
//fromstartingthedeviceandwaitfortheapplicationto
//startthedevice.
ZDOInitDevice(0);
#endif
//Setupfortheperiodicmessage'sdestinationaddress
//Broadcasttoeveryone广播参数配置
SampleApp_Periodic_DstAddr.addrMode=(afAddrMode_t)AddrBroadcast;
SampleApp_Periodic_DstAddr.endPoint=SAMPLEAPP_ENDPOINT;
SampleApp_Periodic_DstAddr.addr.shortAddr=0xFFFF;
/*0xFFFF——数据包将被传送到网络上的所有设备,
包括睡眠中的设备。
对于睡眠中的设备,数据包将被保留在其父亲节点直到查询
到它,或者消息超时。
0xFFFD——数据包将被传送到网络上的所有在空闲时
打开接收的设备(RXONWHENIDLE),也就是说,除了睡眠中的所有设备。
0xFFFC——数据包发送给所有的路由器,包括协调器。
*/
//Setupfortheflashcommand'sdestinationaddress-Group1组播
SampleApp_Flash_DstAddr.addrMode=(afAddrMode_t)afAddrGroup;
SampleApp_Flash_DstAddr.endPoint=SAMPLEAPP_ENDPOINT;
SampleApp_Flash_DstAddr.addr.shortAddr=SAMPLEAPP_FLASH_GROUP;
//Fillouttheendpointdescription.
SampleApp_epDesc.endPoint=SAMPLEAPP_ENDPOINT;
SampleApp_epDesc.tas
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 火灾 报警 系统 设计