智能家居设计报告.docx

上传人:b****7 文档编号:23788502 上传时间:2023-05-20 格式:DOCX 页数:18 大小:143.17KB
下载 相关 举报
智能家居设计报告.docx_第1页
第1页 / 共18页
智能家居设计报告.docx_第2页
第2页 / 共18页
智能家居设计报告.docx_第3页
第3页 / 共18页
智能家居设计报告.docx_第4页
第4页 / 共18页
智能家居设计报告.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

智能家居设计报告.docx

《智能家居设计报告.docx》由会员分享,可在线阅读,更多相关《智能家居设计报告.docx(18页珍藏版)》请在冰豆网上搜索。

智能家居设计报告.docx

智能家居设计报告

大学

传感器与检测课程设计报告书

 

学院:

电气工程学院

班级:

电122

姓名:

学号:

1212021050

 

 

一.智能家居监控系统设计

1.1设计目的及要求

虽然视频监控系统在20世纪90年代末就在中国市场兴起,有很多公司推出了自己的智能家居系统,但是现在仍未得到普及,而且目前智能家居的国际标准尚未成热,因此智能家居监控系统存在广阔的发展空间。

利用所学的传感器与检测技术知识,实现家居温度、煤气泄漏、外人闯入、火灾(烟雾)的检测(以上检测项目必做。

在此基础上增加检测项目并具有可行性,加分。

除环境监测项目外,也可增加人体信号检测等。

)。

各检测节点可通过无线方式连接到主机,检测到危险信号后,主机可采用声光报警或远程报警。

要求

(1)用Protel画出设计原理图;

(2)采用QuatersII、MaxplusII、multisim(EWB)、pspice、Proteus中的一种或几种软件,完成系统电路图部分或全部仿真,在设计说明书中体现仿真结果;

(3)写设计说明书;

(4)每位同学必做;

1.2智能家居——温度检测

1.2.1DS18B20的简介

DS18B20是典型的单总线数字式温度传感器,工作电压为3~5v,测量结果以9~12位数字量方式串行传送,在使用中不需要任何外围元件。

因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便。

DS18B20产品的特点

●只要求一个端口即可实现通信。

●在DS18B20中的每个器件上都有独一无二的序列号。

●实际应用中不需要外部任何元器件即可实现测温。

●测量温度围在-55.C到+125.C之间。

●数字温度计的分辨率用户可以从9位到12位选择。

●部有温度上、下限告警设置。

TO-92封装的DS18B20的引脚排列见右图,其引脚功能描述见表

 

序号

名称

引脚功能描述

1

GND

地信号

2

DQ

数字输入输出引脚,开漏单总线接口引脚,当使用寄生电源时,可向电源提供电源

3

VDD

可选择的VDD引脚,当工作于寄生电源时,该引脚必须接地

表 DS18B20详细引脚功能描述

DS18B20的温度操作是使用16位,也就是说分辨率是0.0625。

BIT15~BIT11是符号位,为了就是表示转换的值是正数还是负数。

1.2.2设计思想

由于考虑到家居室的环境比较良好,且不需要相当精确的检测,于是采用集成温度传感器来检测室温度。

该系统由集成温度传感器DS18B20发光二极管(灯光报警)led显示单片机组成。

在led上显示温度值当室温度低于某个数值或者高于某个数值时,发光二极管将发出报警信息。

程序见附录。

1.2.3Proteus仿真

1.3智能家居——外人闯入

1.3.1干簧管简介

干簧管通常有两个软磁性材料做成的、无磁时断开的金属簧片触点,有的还有第三个作为常闭触点的簧片。

这些簧片触点被封装在充有惰性气体(如氮、氦等)或真空的玻璃管里,玻璃管平行封装的簧片端部重叠,并留有一定间隙或相互接触以构成开关的常开或常闭触点。

干簧管比一般机械开关结构简单、体积小、速度高、工作寿命长;而与电子开关相比,它又有抗负载冲击能力强等特点,工作可靠性很高。

干簧管的工作原理非常简单,两片端点处重叠的可磁化的簧片、密封于一玻璃管中,两簧片分隔的距离仅约几个微米,玻璃管中装填有高纯度的惰性气体,在尚未操作时,两片簧片并未接触、外加的磁场使两片簧片端点位置附近产生不同的极性,结果两片不同极性的簧片将互相吸引并闭合。

依此技术可做成非常小尺寸体积的切换组件,并且切换速度非常快速、且具有非常优异的信赖性。

永久磁铁的方位和方向确定何时以及多少次开关打开和关闭。

如此形成一个转换开关:

当永久磁铁靠近干簧管或绕在干簧管上的线圈通电形成的磁场使簧片磁化时,簧片的触点部分就会被磁力吸引,当吸引力大于簧片的弹力时,常开接点就会吸合;当磁力减小到一定程度时,接点被簧片的弹力打开。

1.3.2设计思想

以干簧管作为传感器,在主人进入家门前需要先按下一个小开关,干簧管动作但是不会产生警报。

在有外人闯入时,因为不知道有开关的存在,干簧管动作,小灯闪烁,蜂鸣器报警。

起到防止外人进入的作用。

1.3.3Proteus仿真

1.4智能家居——气体泄漏/火灾检测

1.4.1MQ-2/MQ-7气体传感器

MQ-2气体传感器所使用的气敏材料是在清洁空气中电导率较低的二氧化锡(SnO2)。

当传感器所处环境中存在可燃气体时,传感器的电导率随空气中可燃气体浓度的增加而增大。

使用简单的电路即可将电导率的变化转换为与该气体浓度相对应的输出信号。

MQ-2气体传感器对液化气、丙烷、氢气的灵敏度高,对天然气和其它可燃蒸汽的检测也很理想。

这种传感器可检测多种可燃性气体,是一款适合多种应用的低成本传感器。

由于转换电路所输出的模拟电压随着环境中气体浓度的不同而不同,所以根据技术参数表可知,我所选取的分压电阻为20k,供电电压为5v(见右图)。

当环境中气体浓度很高时,MQ-2的等效电阻很小,所以输出电压近似5v,符合A/D转换芯片是ADC0809模拟输入电压的要求。

MQ-7气体传感器的气敏材料,是用在清洁空气中电导率低的二氧化锡(SnO2)。

采用高低温循环检测方式低温(1.5V加热)检测一氧化碳,传感器的电导率随空气中一氧化碳气体浓度增加而增大,高温(5.0V加热)清洗低温时吸附的杂散气体。

使用简单的电路即可将电导率的变化,转换为与该气体浓度相对应的输出信号。

MQ-7传感器对一氧化碳的灵敏度高,这种传感器可检测多种含一氧化碳的气体,是一款适合多种应用的低成本传感器。

MQ-2基本电路

1.4.2设计思想

利用MQ-2测量烟雾浓度,MQ-7测量可燃气体浓度,输入ADC0809中,分别进行AD转换,将数字信息送入单片机中,当浓度超标时,相应的报警装置会动作,用黄灯闪加蜂鸣器间隔发声表示烟雾超标,用红灯加蜂鸣器长发声表示可燃气体超标。

程序见附录。

1.4.3proteus仿真

参考文献:

[1].毅刚. 基于Proteus的单片机课程的基础实验与课程设计.人民邮电 2012

[2].施湧潮.传感器检测技术.国防工业 2007 

[3].毅刚.单片机原理及应用.:

高等教育 2008

[4].勇.传感器敏感材料与器件. 清华大学 2012

[5].洪润.传感器应用电路200例. 航空航天大学 2006

[6].宪.传感器与测控电路.  化学工业 2011

[7].徐湘元.传感器及信号调理技术. 机械工业 2012

[8]周坚.单片机轻松入门[M].:

航空航天2002

[9]育才.MCS-51系列单片微型计算机及其应用[M].:

东南大学2004

[10]公茂,马宝匍,晨.单片机入口接口实例集[M].:

航空航天2002

[11]科技.PIC单片机典型模块设计和实例导航[M].:

人民邮电2005

[12]龙泽明,顾立志,王桂莲,光军.MCS-51单片机原理及工程应用[M].:

国防工业2005.

[13]胡辉.王晓,戴永成.单片机原理及应用设计[M].:

中国水利水电2005

[14]蔡菲娜.单片微型计算机原理和应用[M].:

大学2003

[15].广第等.单片机基础.航天航空大学出版

[16].吴国敬等.单片机应用和技术.中国电力出版

[17].王卫星等.单片机原理与应用开发技术.中国水利水电

 

附件1.温度检测

#include

#include"INTRINS.H"

sbitDQ=P2^0;//DQ端

sbitp3_2=P3^2;

sbitp3_5=P3^5;

unsignedchartemp1;//高位

unsignedchartemp0;//低位

unsignedcharf;

unsignedcharduan[10]={0xC0,0x0F9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};

floattem;

voiddelay_18B20(inti)

{

while(i--);

return;

}

voiddelay(unsignedintcount)

{

unsignedinti;

while(count)

{

i=200;

while(i>0)i--;

count--;

}

}

voidDelay_us(unsignedcharn)

{

unsignedchari;

i=0;

while(i

{i++;}

return;

}

voidwr_ds18_1(chardat)//温度传感器写操作设置

{

signedcharidatai=0;

unsignedcharidataj;

bittestb;

for(j=1;j<=8;j++)

{

testb=dat&0x01;

dat=dat>>1;

if(testb)//写一

{

DQ=0;

_nop_();

_nop_();

DQ=1;

delay_18B20(8);

}

else//写0

{

DQ=0;

delay_18B20(8);

DQ=1;

_nop_();

_nop_();

}

}

}

voidInit_18B20(void)

{

DQ=0;

delay_18B20(103);

DQ=1;

delay_18B20(4);

delay

(1);

wr_ds18_1(0xcc);

wr_ds18_1(0x44);}

unsignedcharReadByte(void)//温度传感器读操作

{

unsignedchari,k;

i=8;

k=0;

while(i--)

{

DQ=1;

_nop_();

_nop_();

DQ=0;

k=k>>1;

DQ=1;

if(DQ)k|=0x80;

Delay_us(60);

}

return(k);

}

voidtempture(void)

{

DQ=0;

delay_18B20(103);

DQ=1;

delay_18B20(4);

delay

(1);

wr_ds18_1(0xcc);

wr_ds18_1(0xbe);

temp0=ReadByte();//diwei

temp1=ReadByte();//gaowei

f=temp1&0xf8;

if(f)

{

temp1=~temp1;

if(temp0==0)temp1++;

temp0=~temp0+1;

}

tem=(temp1*256+temp0)/16;

}

voidmain()

{

p3_2=1;

while

(1)

{

inth,l;

Init_18B20();//18B20初始化

//lcd_clear();

tempture();//使用该函数获得温度

if(tem>34||tem<18){p3_2=0;}//不正常温度声音报警

else{p3_2=1;}

h=(int)tem/10;

l=(int)tem%10;

P1=duan[l];

P0=duan[h];

delay_18B20(20000);//等待转换结束

delay_18B20(20000);

}

}

2.外人闯入

#include

sbitP2_7=P2^7;

sbitP1_0=P1^0;

voiddelay(chartime)

{

chari,j;

for(i=0;i

{

for(j=0;j<110;j++;

}

}

voidmain()

{

EA=1;

P2_7=0;

while

(1)

{

if(P1_0==0)EX0=0;

elseEX0=1;

}

}

voidin()interrupt0

{

P2_7=1;

delay(100);

P2_7=0;

delay(100);

}

3.气体泄漏/火灾检测

#include

#defineucharunsignedchar

sbitp1_7=P1^7;

sbitCLK=P1^3;

sbitST=P1^2;

sbitOE=P1^0;

sbitEOC=P1^1;

sbitP1_6=P1^6;

sbitP2_0=P2^0;

ucharcount;

voiddelay(uchartime)//延时

{

uchari,j;

for(i=0;i

{

for(j=0;j<110;j++)

;

}

}

voidinit()

{

P2=0xff;

EA=1;

TMOD=0x02;//T0方式2

TH0=216;//T0中断产生CLK信号

TL0=216;

TR0=1;

ET0=1;

ST=0;

OE=0;

}

ucharadin1()

{

ucharvalue;

OE=0;

EOC=1;

ST=0;

delay(10);

ST=1;

delay(10);

ST=0;

while(!

EOC);

delay(10);

OE=1;

delay

(1);

value=P3;

OE=0;

returnvalue;

}

voidmain()

{

ucharin0,in1;

init();

P2=0;

while

(1)

{

P2_0=0;

in1=adin1();

if(in1<150)//设定的报警值

{p1_7=0;

delay(100);

p1_7=1;

delay(100);

}

else

{p1_7=0;}

P2_0=1;

in0=adin1();

if(in0<100)

{

P1_6=1;

}

elseP1_6=0;

}

}

voidtimer0(void)interrupt1

{

CLK=~CLK;

}

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

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1