基于zigbee的智能防盗系统文档格式.doc
《基于zigbee的智能防盗系统文档格式.doc》由会员分享,可在线阅读,更多相关《基于zigbee的智能防盗系统文档格式.doc(27页珍藏版)》请在冰点文库上搜索。
![基于zigbee的智能防盗系统文档格式.doc](https://file1.bingdoc.com/fileroot1/2023-5/11/ce07f11f-6ee7-4ca1-a386-305e5bbc05c4/ce07f11f-6ee7-4ca1-a386-305e5bbc05c41.gif)
7上位机显示界面 20
8实物展示 21
9小组分工 22
10设计总结 22
11实验小组成员评分 23
摘要
随着科技的进步和人民生活水平的日益提高,人们将注意力越来越多地放在了他们的生活环境上,他们渴望更安全、更舒适、更便利的生活空间。
家居防盗系统利用计算机技术和网络技术,将与家居生活中安全相关的各种子系统,有机地结合在一起,通过统筹管理,为人们提供更安全、更舒适、更便利的居住环境。
本文介绍了家居防盗系统的国内外发展概况,综合比较了目前流行的几种短距离无线通信技术,认为ZigBee这种新兴的低功耗、低数据速率、低成本的无线网络技术是更加适合无线家居防盗系统的技术标准。
所以选择ZigBee技术组建了家居防盗系统无线通信网络,该网络采用网状网络拓扑结构,具有自组网、自修复、传感器节点动态加入、自动报警功能。
并采用TI公司的芯片CC2530解决方案设计实现了一个基于ZigBee家居防盗系统,设计内容包括系统总体规划、系统硬件设计和系统软件设计
关键字:
ZigBee/CC2530/家庭防盗
Abstract
Withthedevelopmenttomodernscienceandtheraisingofpeople’slivingstandard,peoplepaymoreandmoreattentiontotheirlivingenvironment.Theywantanintelligentlivingspacewhichmakestheirlifesafer,morecomfortableandmoreconvenient.Thehomesecuritysystemtakestheadvantageofcomputertechnologyandnetworktechnologytocombineallthesub-systemrelatedwithourhomelifetogetherandmanagesthemasawhole,soastopprovideasafer,morecomfortableandmoreconvenientlivingenvironment.
Thisthesisintroducesthedevelopmenttohomesecuritysystemalthoughmeantabroad.Throughtheanalysisandcomparationofseveralrelatedshort-rangedwirelessnetworktechnologystandardswhicharepopularnowadays,IthinkZigBee,anewlow-power,low-rateandlow-costshort-rangedwirelessnetworktechnology,isbettersuitableforthewirelesshomesecuritysystem.SoIchoosetheZigBeeasnetworkingmethodtosetupthehomesecuritywirelesscommunicationnetworkwithmeshtopology.Thisnetworkisself-organizing,self-repairing,andsensenodecanjoindynamically,alarmautomatically.adoptTI'
ssingle-chipsolutionCC2530tobuildourhomesecuritysystembasedonZigBee.Myworkcontaincoverallplanofthesystem,thehardwaredesignofthesystemandthesoftwaredesignofthesystem.
21
1设计意义与目的
1.1目的
设计一个基于ZigBee的智能防盗系统可以预防入室盗窃、抢劫等犯罪行为,可以保证家庭生活的安全。
通过设计,掌握数据采集系统的工作原理,掌握计算机控制系统的设计原理,设计步骤,进一步提高综合知识运用的能力。
1.2意义
随着人们生活水平的不断提高,家庭安全服务正在逐渐引起人们的重视。
入室盗窃、抢劫等犯罪行为明显增多,为了保证人们的生命及财产安全,我们有必要设计一个防盗系统。
防盗系统可以预防及避免一些不必要的财产损失。
2设计内容
2.1防盗系统的工作原理
当有人经过时,震动和红外传感器就会检测到人,同时传感器输出高电平,当没人时,传感器输出低电平。
因此,可以通过检测芯片I/O口高低电平的变化来判断是否有人
2.2设计方案
(1)了解震动和红外传感器工作原理,根据原理画好PCB原理图。
(2)根据PCB原理图自制PCB板电路,将液晶屏,蜂鸣器,震动和红外感器,cc2530核心板等相关元件设备进行集成。
(3)测试PCB电路,检查相关电路能否正常工作,以及cc2530核心板的能否正常调试。
(4)在完成电路调试后,用jtag下载器下载调试程序成功完成程序对相关元件的驱动
(5)实验完成后做好相应的实验总结。
2.3结构组成
从设计的功能来分析该系统须包括以下结构:
图2.1总体设计框图
3实验电路图
图3.1震动传感器接口电路
图3.2红外传感器接口电路
图3.3报警模块电路
图3.4液晶显示模块
图3.5终端节点底板PCB图
图3.6终端节点底板原理图
图3.7协调器底板PCB图
图3.8协调器底板原理图
4系统主程序设计流程图
主程序流程图如下图所示:
程序初始化
传感器预热处理
开始
cc2530判断是否有人
红外传感器采集信息
进入报警子程序
震动传感器采集信息
是
否
5下位机各模块程序
5.1传感器采集部分程序
if(events&
SAMPLEAPP_SEND_PERIODIC_MSG_EVT)
{
if(PEOPLE1==0&
&
PEOPLE2==0)
SampleApp_SendPeriodicMessage1();
//震动正常,红外正常
PEOPLE2==1)
SampleApp_SendPeriodicMessage2();
//震动正常,红外异常
if(PEOPLE1==1&
SampleApp_SendPeriodicMessage3();
//震动异常,红外正常
PEOPLE2==1)
SampleApp_SendPeriodicMessage4();
//震动异常,红外异常
//Sendtheperiodicmessage
//SampleApp_SendPeriodicMessage();
//Setuptosendmessageagaininnormalperiod(+alittlejitter)
osal_start_timerEx(SampleApp_TaskID,SAMPLEAPP_SEND_PERIODIC_MSG_EVT,
(SAMPLEAPP_SEND_PERIODIC_MSG_TIMEOUT+(osal_rand()&
0x00FF)));
//returnunprocessedevents
return(events^SAMPLEAPP_SEND_PERIODIC_MSG_EVT);
}
5.2广播发送数据程序
voidSampleApp_SendPeriodicMessage1(void)//震动正常23,红外正常45
{
//beep=0;
uint8L[8];
L[0]='
1'
;
L[1]='
'
L[2]='
2'
L[3]='
3'
L[4]='
L[5]='
4'
L[6]='
5'
L[7]='
if(AF_DataRequest(&
SampleApp_Periodic_DstAddr,&
SampleApp_epDesc,
SAMPLEAPP_WANGPENG_ID,
8,
L,
&
SampleApp_TransID,
AF_DISCV_ROUTE,
AF_DEFAULT_RADIUS)==afStatus_SUCCESS)
else
//Erroroccurredinrequesttosend.
}
voidSampleApp_SendPeriodicMessage2(void)//震动正常23,红外异常54
//beep=1;
voidSampleApp_SendPeriodicMessage3(void)//震动异常32,红外正常45
voidSampleApp_SendPeriodicMessage4(void)//震动异常32,红外异常54
//beep=1;
5.3广播接受程序
voidSampleApp_MessageMSGCB(afIncomingMSGPacket_t*pkt)
uint16flashTime;
switch(pkt->
clusterId)
caseSAMPLEAPP_WANGPENG_ID:
HalUARTWrite(0,&
pkt->
cmd.Data[0],8);
HalUARTWrite(0,"
\n"
1);
break;
caseSAMPLEAPP_FLASH_CLUSTERID:
flashTime=BUILD_UINT16(pkt->
cmd.Data[1],pkt->
cmd.Data[2]);
HalLedBlink(HAL_LED_4,4,50,(flashTime/4));
break;
5.4OLED驱动程序
voidDelayMS(unsignedintmsec)
{
/*unsignedinti,j;
for(i=0;
i<
msec;
i++)
for(j=0;
j<
530;
j++);
*/
MicroWait(msec);
/*********************LCD延时1ms************************************/
voidLCD_DLY_ms(unsignedintms)
{
/*unsignedinta;
while(ms)
{
a=1800;
while(a--);
ms--;
}*/
//return;
MicroWait(ms);
/*********************LCD写数据************************************/
voidLCD_WrDat(unsignedchardat)
unsignedchari=8,temp=0;
LCD_DC=1;
for(i=0;
i<
8;
i++)//发送一个八位数据
LCD_SCL=0;
temp=dat&
0x80;
if(temp==0)
{
LCD_SDA=0;
}
else
LCD_SDA=1;
LCD_SCL=1;
dat<
<
=1;
}
/*********************LCD写命令************************************/
voidLCD_WrCmd(unsignedcharcmd)
LCD_DC=0;
{
temp=cmd&
cmd<
}
/*******************LCD显示坐标************************************/
voidLCD_Set_Pos(unsignedcharx,unsignedchary)
LCD_WrCmd(0xb0+y);
LCD_WrCmd(((x&
0xf0)>
>
4)|0x10);
LCD_WrCmd((x&
0x0f)|0x01);
}
/*********************LCD全屏************************************/
voidLCD_Fill(unsignedcharbmp_dat)
unsignedchary,x;
for(y=0;
y<
y++)
LCD_WrCmd(0xb0+y);
LCD_WrCmd(0x01);
LCD_WrCmd(0x10);
for(x=0;
x<
X_WIDTH;
x++)
LCD_WrDat(bmp_dat);
/*********************LCD复位************************************/
voidLCD_CLS(void)
LCD_WrDat(0);
/*********************LCD初始化************************************/
voidLCD_Init(void)
{
//P0SEL&
=0xFE;
//让P0.0为普通IO口,
//P0DIR|=0x01;
//让P0.0为为输出
//P1SEL&
=0x73;
//让P1.2P1.3P1.7为普通IO口
//P1DIR|=0x8C;
//把P1.2P1.31.7设置为输出
P1SEL&
=0xd2;
P1DIR|=0x2d;
LCD_SCL=1;
LCD_RST=0;
LCD_DLY_ms(50);
LCD_RST=1;
//从上电到下面开始初始化要有足够的时间,即等待RC复位完毕
LCD_WrCmd(0xae);
//--turnoffoledpanel
LCD_WrCmd(0x00);
//---setlowcolumnaddress
LCD_WrCmd(0x10);
//---sethighcolumnaddress
LCD_WrCmd(0x40);
//--setstartlineaddressSetMappingRAMDisplayStartLine(0x00~0x3F)
LCD_WrCmd(0x81);
//--setcontrastcontrolregister
LCD_WrCmd(0xcf);
//SetSEG