智能家居安全系统Word文档下载推荐.docx

上传人:b****1 文档编号:1191482 上传时间:2023-04-30 格式:DOCX 页数:26 大小:624.26KB
下载 相关 举报
智能家居安全系统Word文档下载推荐.docx_第1页
第1页 / 共26页
智能家居安全系统Word文档下载推荐.docx_第2页
第2页 / 共26页
智能家居安全系统Word文档下载推荐.docx_第3页
第3页 / 共26页
智能家居安全系统Word文档下载推荐.docx_第4页
第4页 / 共26页
智能家居安全系统Word文档下载推荐.docx_第5页
第5页 / 共26页
智能家居安全系统Word文档下载推荐.docx_第6页
第6页 / 共26页
智能家居安全系统Word文档下载推荐.docx_第7页
第7页 / 共26页
智能家居安全系统Word文档下载推荐.docx_第8页
第8页 / 共26页
智能家居安全系统Word文档下载推荐.docx_第9页
第9页 / 共26页
智能家居安全系统Word文档下载推荐.docx_第10页
第10页 / 共26页
智能家居安全系统Word文档下载推荐.docx_第11页
第11页 / 共26页
智能家居安全系统Word文档下载推荐.docx_第12页
第12页 / 共26页
智能家居安全系统Word文档下载推荐.docx_第13页
第13页 / 共26页
智能家居安全系统Word文档下载推荐.docx_第14页
第14页 / 共26页
智能家居安全系统Word文档下载推荐.docx_第15页
第15页 / 共26页
智能家居安全系统Word文档下载推荐.docx_第16页
第16页 / 共26页
智能家居安全系统Word文档下载推荐.docx_第17页
第17页 / 共26页
智能家居安全系统Word文档下载推荐.docx_第18页
第18页 / 共26页
智能家居安全系统Word文档下载推荐.docx_第19页
第19页 / 共26页
智能家居安全系统Word文档下载推荐.docx_第20页
第20页 / 共26页
亲,该文档总共26页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

智能家居安全系统Word文档下载推荐.docx

《智能家居安全系统Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《智能家居安全系统Word文档下载推荐.docx(26页珍藏版)》请在冰点文库上搜索。

智能家居安全系统Word文档下载推荐.docx

如何建立一个高效率、低成本的智能家居系统已成为当今世界的一个热点问题。

本项目的起源与产生既基于此背景。

2、功能简介

该系统主要能够实现的功能:

正常情况下,该系统能够采集室内的温度,并显示出来供主人参考。

当温度过高时该系统就会发出报警,灯光发亮,语音提示等,使得主人知道家中发生了险情,并及时进行处理。

当有盗贼从窗户或者其他一些地方进入时家中时,会触动红外设置,单片机发信号给声光模块,告知主人和邻居有险情。

采取有效的措施,防止损失。

第二章系统设计

1、系统框架

2、功能模块

(1)温度检测模块:

采集温度

(2)声光报警模块:

通过声音

(3)红外模块:

检测有无人闯入

(4)液晶显示模块:

显示信息,人机交流

(5)电源模块:

给各个模块提供电源

(6)输入模块:

4*4键盘,输入信息

(7)语音模块:

发出语音

第三章电路设计

1、温度检测模块

该模块主要用于检测室内温度。

采用改进型智能温度传感器DS18B20与传统的热敏电阻相比,DS18B20能够直接读出被测温度,它仅需要一根口线(单线接口)读写,温度变换功率来源于数据总线,总线本身也可以向所挂接的DS18B20供电,而无需额外电源。

因而使用DS18B20可使系统结构更趋简单,可靠性更高。

当温度过高时即发生火灾时,单片机向声光模块发出信号,即发出声光报警。

DS18B20的1脚接地,2脚接PORTC.0,3脚接电源,在2脚接一个4.7K的上拉电阻抗干扰。

2、声光报警模块

当温度过高时,该模块接收到单片机发出的信号后,声光模块开始动作,LED灯开始闪烁,蜂鸣器并发出声音报警,告知主人或邻居及时发现险情,及时的控制火情。

当红外模块感知到有外人闯入时,该模块发出报警,威慑他人,使其不敢进入主人家中,并提醒邻居或主人,及早做出防范。

我们把若干个LED灯摆成笑脸形状。

因为若干个LED灯和一个蜂鸣器工作时需要较大的电流。

因此我们设计一个三极管(S9013)来进行驱动,保证了电路有足够大的电流。

三极管的基极与PORTD.6连接。

同时我们用了俩个1K分别与LED和蜂鸣器串联来进行分压保证其安全性。

3、红外线模块

该模块主要用于防盗,安置在窗户或者门口等地方,当有盗贼闯入时,会触动到那些安置好了的红外装置,发送信号给单片机,单片机经过处理后发送给声光模块。

为了防止错报,我们安装若干个红外对管,当只有达到一定数量的红外对管发生中断时才报警。

因为单片机的中断资源有限,所以我们用了2对红外对管来模拟若干个,当只有其中一个红外对管发生中断时,系统不报警,当两个红外对管都发生中断时,系统发出警报。

这两对红外对管分别接单片机的PORTD.4(INT0)、PORTD.5(INT1)。

4、液晶显示模块

该模块主要应用于显示一些信息,起到与用户进行人机交流作用,用户可以通过显示模块,看到一些信息,例如现在的室内温度、现在系统启用的模式等。

我们将采用1602lcd来显示,四线制方式将1602与单片机的PORTB口相连接,1602的RS、RW、E、D4、D5、D6、D7分别接PORTA.0、PORTA.1、PORTA.2、PORTA.4、PORTA.5、PORTA.6、PORTA.7。

电路如下:

5、电源模块

该模块主要用于给整个系统提供能够应用且稳定的电源。

我们采用了7805这种型号的稳压器件,在输入端我们用了火牛插孔,便于连接电源,在输入的负极安装了一个按键开关,便于控制电源的开关,如下图:

6、输入模块

该模块由4*4个按键组成,用于用户对系统的设置与控制等,给用户提供一个输入的方式,输入用户所需求的信息。

我们将键盘与单片机的PORTA口相连,PORTA口的高八位接按键的行,低八位接按键的列。

按键功能如下图所示:

7、语音模块

该模块主要由ISD1730、扬声器、mic、按键及其一些电阻电容等组成。

它的作用的是通过语音提示,指导用户对安全系统的操作,例如设防,撤防等,把语音芯片的复位脚(24脚)与单片机的PORTD.1相连接,播放脚(23脚)与单片机的PORTD.4相连接,快进脚(26脚)与单片机的PORTD.5脚相连接。

第四章程序设计

1、显示模块

该模块主要有1602液晶显示屏组成,上电后初始化1602,屏幕上显示欢迎界面,2秒后显示温度,设防时显示Fortificationofsuccess,撤防时显示Pleaseenteryourpassword,第一次输入密码错误时,显示Pleasetryagain,第二次输入密码错误时,显示Thelastchance,当发生火灾时显示Alarm!

!

Fire!

,当发生盗窃是显示Burglaralarms!

,及其一些其他的显示都用putsf()函数来完成显示工作。

2、语音模块

当开机时PORTD.1给一个低电平,让语音芯片的指针复位,POTD.4给一个低电平并进行延时,然后在给高电平,进行播放语音“欢迎使用智能家居安全系统”。

然后PORTD.5给一个低电平并进行适当的延时,当设防按键按下时PORTD.4给一个低电平并进行延时,然后在给高电平,播放“请输入密码”,然后进行快进,让播放指针指向下一个语音片断,撤防成功后播放“成功撤防”。

3、输入模块

我们采用键盘扫描的方式来采取键盘的输入信息,单片机的A口高四输出,轮流输出0,A口第四位输入,采集键盘的信息,检测是否有按键按下,那一列有按键按下。

根据当哪一行输出0时,那一列检测到了0,计算出是哪个按键,即:

行*4+列

//键盘扫描

unsignedchargetkeyval(void)

{

unsignedcharcol[4]={0xef,0xdf,0xbf,0x7f};

//行

unsignedcharrow[4]={0x07,0x0b,0x0d,0x0e};

//列

unsignedchari,j,getsta,keyval;

for(i=0;

i<

4;

i++)

{

PORTA=col[i];

delay_us

(2);

if(PINA!

=col[i])

getsta=PINA&

0x0F;

for(j=0;

j<

j++)

if(getsta==row[j])

{

keyval=j+i*4;

delay_ms(30);

//300

while(getsta==row[j])

getsta=PINA&

////////////判断按键是否放开。

}

returnkeyval;

}

}

return16;

}

4、红外模块

开启外部中断INT0和INT1,定义中断标志flage_0和flage_1,当发生中断时flage_0=1和flage_1=1,设防开启后进行循环判断当两个中断都发生时,发出警报。

用两个嵌套在一起的if来进行判断。

if(flage_1==1)//红外报警

if(flage_0==1)

flage_1=0;

flage_0=0;

lcd_gotoxy(0,0);

lcd_putsf("

Burglaralarms!

"

);

PORTD.6=1;

}

5、温度模块

设定单总线的接口为PC.0。

定义一个变量利用函数ds1820_temperature_10()取出当前温度值,再把该变量换算成个位和十位即小数位,再分别显示出来。

//温度显示

voidwendu(void)

charlcd_buffer[33];

inttemp,temp_h,temp_l,_1,_2;

temp=ds1820_temperature_10(0);

temp_h=temp/80;

//DS18B20要/80

temp_l=temp%80;

shi=temp_h/10;

ge=temp_h%10;

_1=temp_l/10;

if(_1==4)

_1=5;

else

_1=0;

_2=temp_l%10;

lcd_gotoxy(0,1);

sprintf(lcd_buffer,"

TEMP:

%d%d.%d\xDFC\n\r"

shi,ge,_1);

lcd_puts(lcd_buffer);

第五章实验与调试

一、下载调试

将一个10针的插座与单片机的MOSIMISOSCKRESETVCCGND等连接好后,用下载线连接电脑好单片机,用下载软件进行下载,运行成功。

二、LCD的调试

当LCD与PA口相连上电后,没有反应,屏幕是黑的,进过上网查找资料后,才发现原来LCD的背景灯那两个管脚没有接上电源和地。

焊接好后,上电屏幕亮了,但是什么都显示不出来,看到LCD的3管脚是空的,所以想到可能是这个原因,查资料后知道这个是管脚的作用是调节对比度的,于是我就用两个1K的电阻串联在一起,一端接电源一端接地中间接3脚,上电后下载程序显示一个很模糊的字迹,看不清楚。

猜测可能是因为电阻大小不当导致的,进过三四次的调整后才显示出来清晰的字迹。

三、按键的调试

把程序下载后,按键按下去一下后,在屏幕上显示很多个同一个的数,考虑可能是因为在按键按下去还没放开的一瞬间,键盘扫描好多次,单片机的扫描的速度很快,就认为按键按下了很多次,而没有判断是否是同一次按下去的,所以要解决这个问题的方法是让程序判断按键是否释放。

四、电源模块的调试

电源模块焊接好后,上电发现一点输出端没有电压,通过用万用表的测量得知火牛插座负极没有连接好,再次进行焊接,上电后依然没有现象,就再次进行从输入到输出一个点一个点的测量,测量出无论开关怎样开关,开关的另外一端都没有反应,才发现开关的管脚焊错了。

焊接好后,上电,电源的输出端输出正常的5V。

五、语音模块的调试

语音模块按照电路的焊好后,能正常播放语音,正常快进与复位等,各方面都正常。

六、LED与蜂鸣器的调试

PORTD.6输出高电平时LED灯,蜂鸣器鸣叫。

功能正常。

第六章测试结果

开机显示welcome和^_^,延时2秒后显示当前温度并根据当前的温度变化而不断变化,进入正常运行状态。

当设防按键按下后,语音提示设防成功,LCD显示Fortificationofsuccess(设防成功),并进入防御状态,不断检测温度是否超过设定值(火灾检测),检测红外对管是否都发生了中断(防盗报警)。

当温度过高时,LCD显示"

Alarm!

,蜂鸣器鸣叫LED亮;

当红外对管都发生中断时,LCD显示"

,蜂鸣器和LED报警。

当撤防键按下时,语音提示请输入密码,LCD提示Pleaseenteryourpassword,然后你输入密码,若输入第一次错误,LCD提示Pleasetryagain,第二次错误,LCD显示"

Thelastchance"

,当第三次错误时,LED与蜂鸣器发出警报,程序锁死。

若输入密码正确时,则显示OK,语音提示撤防成功,显示温度。

第七章结语

该设计在一定程度上解决了传统机械式防盗的弊端,利用高科技将防盗报警智能化、自动化,可以减少和避免户主的损失。

由于时间的关系和考虑到元器件的价格等因素,该设计还存在一些不足的地方。

例如,该设计存在不够人性化的地方,可通过添加实时时钟芯片增加时间功能,并在此基础上加入自动开启和关闭系统的功能等等。

除此以外,还可以通过增加断电保护电路增强系统的安全性。

在做该设计的这段时间里,我对之前学习到的知识有了一个全面的认识,也因此学到了很多东西。

这一次的设计,从查找资料、方案确定、电路设计到焊接和调试,整个过程都是我们自己亲自去完成。

在整个设计期间,我遇到了很多问题,但经过仔细的分析和其他同学的帮助后,最终都把问题解决,我也从中学会了解决问题的方法。

附录程序

/*****************************************************

Project:

智能家居安全系统

Version:

Date:

20121212

Author:

pang

Company:

Comments:

Chiptype:

ATmega16L

Programtype:

Application

Clockfrequency:

8.000000MHz

Memorymodel:

Small

ExternalSRAMsize:

0

DataStacksize:

256

/*1602和MEGA16L的连接方式如下:

*/

/*RS------>

PB0*/

/*RW------>

PB1*/

/*E------>

PB2*/

/*FREE---->

PB3*/

/*D4------>

PB4*/

/*D5------>

PB5*/

/*D6------>

PB6*/

/*D7------>

PB7*/

/*****************************************************/

#include<

mega16.h>

delay.h>

stdio.h>

ds1820.h>

lcd.h>

#asm

.equ__lcd_port=0x18;

PORTB

#endasm

1wire.h>

.equ__w1_port=0x15;

PORTC

.equ__w1_bit=0

#endasm

#definefuweiPORTD.1

#definejingbaoPORTD.6

unsignedcharmima[]={1,2,3,1,2,3};

unsignedcharshuru[6]={0,0,0,0,0,0};

intshi,ge;

//温度的十位与个位

unsignedcharflage_0=0;

//中断0标志

unsignedcharflage_1=0;

//中断1标志

/************************************************************************/

//初始化

voidinit(void)

w1_init();

lcd_init(16);

PORTA=0xff;

DDRA=0xF0;

PORTD=0x32;

DDRD=0x72;

jingbao=0;

GICR|=0xC0;

//INT0ONINT1ONINT2OFF

MCUCR=0x0F;

MCUCSR=0x00;

GIFR=0xC0;

#asm("

sei"

//ExternalInterrupt0serviceroutine

interrupt[EXT_INT0]voidext_int0_isr(void)

flage_0=1;

//待补充

//ExternalInterrupt1serviceroutine

interrupt[EXT_INT1]voidext_int1_isr(void)

flage_1=1;

//待不从

}

voidwendu(void)//温度显示

unsignedchargetkeyval(void)//键盘扫描

delay_ms(300);

voidyuyin(void)//播放语音

PORTD.4=0;

delay_ms(35);

//播放

PORTD.4=1;

voidnextone(void)//快进

PORTD.5=0;

//快进到第一段语音

PORTD.5=1;

voidkaiji(void)//开机界面

{

lcd_clear();

lcd_gotoxy(6,0);

^_^"

lcd_gotoxy(5,1);

WELCOM"

PORTD.1=0;

//复位不用时间

PORTD.1=1;

delay_ms(10);

yuyin();

//播放开机音

delay_ms(2000);

//语音播放完后进入快进

nextone();

wendu();

voidshuzuqingkong(void)

unsignedchari;

6;

i++)shuru[i]=0;

voidmain(void)

unsignedcharttt;

//密码错误,死循环ttt

unsignedcharyyy;

//密码错误,死循环yyy+到10

unsignedcharkeyval;

//键值

unsignedchari=0;

unsignedcharj=0;

unsignedcharflage=1;

unsignedchart=0;

//密码与输入中相同的个数

unsignedcharcishu=3;

//密码次数3

init();

delay_ms(100);

kaiji();

while

(1)

ttt=1;

//密码错误,死循环ttt

yyy=0;

flage=1;

t=0;

cishu=3;

shuzuqingkong();

//数组清空

keyval=getkeyval();

if(keyval==13)//设防

{

//播放语音

Fortificationofsuccess"

delay_ms(1000);

///足够的时间

while(flage)

if(shi>

1&

ge>

7)//温度报警

jingbao=1;

if(flage_1==1)//红外报警

if(keyval==14)//撤防

i=0;

Pleaseenteryourpassword"

//播放语音

if(keyval<

10)

shuru[i]=keyval;

lcd_putchar(shuru[i]+0x30);

i++;

if(keyval==12)

if(mima[j]==shuru[j]){t++;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2