智能家居设计报告Word格式.docx
《智能家居设计报告Word格式.docx》由会员分享,可在线阅读,更多相关《智能家居设计报告Word格式.docx(16页珍藏版)》请在冰豆网上搜索。
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设计思想
以干簧管作为传感器,在主人进入家门前需要先按下一个小开关,干簧管动作但是不会产生警报。
在有外人闯入时,因为不知道有开关的存在,干簧管动作,小灯闪烁,蜂鸣器报警。
起到防止外人进入的作用。
3.3Proteus仿真
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基本电路
4.2设计思想
利用MQ—2测量烟雾浓度,MQ—7测量可燃气体浓度,输入ADC0809中,分别进行AD转换,将数字信息送入单片机中,当浓度超标时,相应的报警装置会动作,用黄灯闪加蜂鸣器间隔发声表示烟雾超标,用红灯加蜂鸣器长发声表示可燃气体超标.程序见附录.
1.4.3proteus仿真
参考文献:
[1]。
张毅刚.
基于Proteus的单片机课程的基础实验与课程设计.人民邮电出版社
2012
[2]。
施湧潮.传感器检测技术.国防工业出版社
2007
[3]。
张毅刚.单片机原理及应用.北京:
高等教育出版社
2008
[4].赵勇。
传感器敏感材料与器件。
清华大学出版社
[5]。
张洪润.传感器应用电路200例。
北京航空航天大学出版社
2006
[6]。
张宪.传感器与测控电路。
化学工业出版社
2011
[7].徐湘元。
传感器及信号调理技术。
机械工业出版社
[8]周坚。
单片机轻松入门[M]。
北京:
北京航空航天出版社2002
[9]孙育才.MCS-51系列单片微型计算机及其应用[M].南京:
东南大学出版社2004
[10]公孙茂,马宝匍,孙晨.单片机入口接口实例集[M]。
[11]求是科技.PIC单片机典型模块设计和实例导航[M].北京:
人民邮电出版社2005
[12]龙泽明,顾立志,王桂莲,陈光军.MCS-51单片机原理及工程应用[M]。
国防工业出版社2005。
[13]胡辉.王晓,戴永成.单片机原理及应用设计[M].北京:
中国水利水电出版社2005
[14]蔡菲娜.单片微型计算机原理和应用[M].杭州:
浙江大学出版社2003
[15]。
李广第等。
单片机基础。
北京航天航空大学出版
[16]。
吴国敬等.单片机应用和技术.中国电力出版
[17]。
王卫星等.单片机原理与应用开发技术.中国水利水电出版社
附件1。
温度检测
#include〈reg51.h〉
#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〈n)
{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=1;
_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_();
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(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);
//等待转换结束
2.外人闯入
#include〈reg51。
h>
sbitP2_7=P2^7;
sbitP1_0=P1^0;
voiddelay(chartime)
chari,j;
for(i=0;
i<
time;
i++)
{
for(j=0;
j〈110;
j++;
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;
3.气体泄漏/火灾检测
#include<
reg51。
#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;
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;
while(!
EOC);
delay(10);
OE=1;
value=P3;
returnvalue;
ucharin0,in1;
init();
P2=0;
P2_0=0;
in1=adin1();
if(in1〈150)//设定的报警值
{p1_7=0;
delay(100);
p1_7=1;
else
{p1_7=0;
}
P2_0=1;
in0=adin1();
if(in0<
100)
P1_6=1;
elseP1_6=0;
}
voidtimer0(void)interrupt1
CLK=~CLK;