基于51单片机的家庭防盗防火报警系统设计详解

一项目简介

   本文对基于短信息平台的家庭安防系统进行了设计,细化了其系统的组成方案,对主控模块、通信网络、热释电模块、烟雾检测模块、短信模块及接口电路进行了较深入的分析研究。本文所设计的家居安防系统不仅能满足安保家居的需要,并且具备简单的硬件结构,软件采用模块化的程序结构,易于实现程序功能的拓展,性价比较高,易于推广应用。本文基于短信息平台所设计的家庭安防系统,能够对家庭危险情况进行报警并远程通知和控制,实现了远程监测家中情况的基本功能,应用空间广阔。

设计任务与要求

(1)本设计从硬件结构与软件系统两个方面出发。模块主要有电源电路、单片机、短信模块等子模块构成。
(2)本文设计的报警系统由单片机控制电路、GSM短信模块、MQ2烟雾传感器、热释电红外传感器及相关的控制管理软件组成,终端设备主要进行信息的收集、处理以及数据的传送、功能的设定和将报警信息告知用户等功能。由中央处理器、通信模块、输入按键模块、输出报警模块等部分组成终端。
(3)系统可实现功能如下:用户离开家之前,将报警系统设置为外出布防状态,数据收集终端即开始工作。用户离开后,当有可疑人员进入到探测区域后,热释电红外传感器将探测到异常信号,随后将异常红外线转换为电信号,电信号经过电路传输到单片机,再由单片机处理运算后驱动执行短信报警电路,通过GSM模块向用户发送报警信息。与上述原理相同,当安装在家中的MQ2烟雾传感器检测到屋内有烟雾产生,并含量超出设定值后,就会将信号传递到单片机,单片机控制GSM模块发送报警讯息到绑定的手机上,同时开启蜂鸣器和LED灯报警。

二、系统方案设计

  

2.1 系统总体设计思路

  本文设计的家居安保报警系统的组成如图2-1所示:该安保系统以GSM短信息模块为基础,由红外热释电探测器、MQ2烟雾传感器组成数据采集转换系统,由单片机控制器完成数据采集向GSM模块的转换,最后将信息传递到用户终端。

图2-1 基于GSM短信模块的家庭防盗报警系统
  本系统以红外热释电探测器和MQ2烟雾传感器作为信号采集装置,收集房间中可疑人员身体发现的红外线及房间中的烟雾,随后将相关信号传递至89C52控制芯片,芯片接收到信号后控制触发GSM短信模块向住户发送报警信息,以此完成对房屋的安全保护及监测报警功能。
  本系统的工作路径为:通过热释电型红外传感器收集检测可疑人员身体辐射的红外线,当传感器收集到红外线信号后,会将此信号转换为电信号,电信号经过电路系统的层层筛选、放大及过滤传递到单片机,随后单片机触发相应模块开启报警,向用户绑定的终端传递报警讯息;防火灾的工作原理为:利用MQ2烟雾传感器检测房间中的烟雾,对检测到的烟雾进行比较判断,后将数据传递到单片机,由单片机比较浓度,一旦房间中的烟雾浓度达到一定数值,单片机就会触发模块,将火警信息发送给已经绑定的用户的终端上,从而实现对家居火灾的报警。

2.2 系统方案设计

  本文对安保报警系统的软件和硬件进行了设计。电路结构主要有电源电路,短信模块,烟雾传感器,单片机系统等。用户在自己的手机等移动终端上可以看到系统报警信息等。
  在本报警器的设计中,最核心的单元就是单片机模块,本系统也是在单片机系统的基础上进行工作和应用的。单片机应用系统的组成部分也分为软件和硬件两部分。硬件部分主要以输入/输出设备、单片机以及各种处理电路等为基本的组成部分。软件部分主要包含各种工作系统及程序。因此,要完成一种单片机的设计和研发,不仅要完善总体概况,也要对硬件系统和软件系统加以设计。
  结合安保报警器的应用需求及设计要求,该安保报警器的总体设计框图如图2-2所示:

图2-2 总体设计框图
   如图所示,安保报警器的中心模块使用了89C52型号的单片机。在软件和网络系统的控制下,一旦安装在房屋内的红外传感器收集到可疑人员身体发出的红外线,就会将红外线转换为微弱电流,微弱电流经过各电路的整合、过滤、放大后被传递到门限开关,此时开关被触发打开,并将电流信号传递到89C52单片机内。数据传递到单片机后,由系统判断是否符合报警条件,如果传递的信号表明房屋有可疑人员进入,就会发出警报,并将报警信号发送至远程终端。发出报警信号后的一段时间,当终端意识到危险情况并采取求救措施后,可关闭警报以减少能源浪费。

三、硬件电路设计

3.1 电源电路设计

  电源电路在整个系统中有着至关重要的作用,是整个系统的能量来源,动力所在。本论文的电源采用直流稳压电源,其主要由三部分构成,分别是稳压,减压,滤波。由于中国国家电网的电压为220伏特,而且是交流电,因此需要电源将其转换成5伏特直流电输出到后续工作电路,因此电源的意义十分重大,整个系统正是基于电源才能运转起来,因此它的作用不言而喻。电源的组成部分如下:
(1)降压变压器:也就是电源变压器,国家电网的电是220伏交流电,这个降压变压器可以将交流电转变成电压较低的直流电,变压器的变比由变压器的副边电压确定。。
(2)稳压电路:电源本身输出的电压并不稳定,需要稳压电路将其转变成稳定的直流电压,稳定的直流电压能保证工作电路的正常运转,不会产生波动,。本稳压电源同样也可以为TTL电路或单片机电路提供电源。
(3)滤波电路:交流电正是通过滤波电路加以过滤才将交流成分过滤掉,最后输出稳定的直流电压的。
  本论文经过分析讨论拟采用三端稳压器,三端稳压器一般分为两类,一类输出固定电压,这种稳压器叫做固定输出三端稳压器。另一类叫做可调输出三端稳压器,它的输出电压是可以调节的。这两种稳压器的基本原理大体是一样的,他们都是串联型结构。三端稳压器在众多的线性集成稳压器中应用最多,适用性最广,因为这种稳压器,价格便宜,成本较低,性能也很稳定,并且因为三端稳压器的端子数少,只有三个,所以说他没有什么外部部件,结构比较简单。
  LM7805三端稳压器目前来说应用最为广泛,它的应用范围很广,功能也比较强大,输出电压为五伏直流电。

图3-1 直流稳压电源电路

3.2 红外探测信号输入电路

  红外探测信号输入部分由红外线传感器、信号放大电路、电压比较器、数字信号输入电路组成。当工作中的红外线传感器J1探测到前方人体辐射出的红外线信号时,由J1的S端引脚输出微弱的电信号(1~10Hz),经三极管Q1等组成第一级放大电路放大(见图3-2),再通过C2输入到运算放大器U1A中进行高增益、低噪声放大(见图3-3),此时由U1A输出的信号已足够强。如图3-4所示,U1B是电压比较器,二级放大信号OUT2由运放芯片U1B中5脚输入,R6、R7、R9、D1组成基准电压电路,输入信号与反向输入端基准电压比较,一旦有盗贼闯入监控的范围内,热释红外线传感器监测到信号后,发出一个微弱的交变信号,经两级交流放大后,与基准电压进行比较,此时,经过放大的信号大于基准电压。通过U1B的比较,其输出电平为运放工作电压高电平5V,三极管Q2导通,J2输出为低电平;当OUT2端输入没有信号时,输出为0V,所以三极管Q2截止,J2引脚输出为高电平。调试时,在红外线传感器前人走动,调整R9,直到J2引脚输出为低电平。各电路如图3-2到图3-5所示。

图3-2 第一级放大电路图
  图3-2中,R1是源极电阻,其阻值可以根据实际情况进行调整;产生的微弱信号由S9014进行放大。S9014是NPN型三极管,其IC静态工作电流达100mA,放大倍数最大可达1000倍。R3给S9014提供静态基极电压。放大后的信号由C2耦合到下一级。

图3-3 二级放大电路图

图3-4 电压比较器电路图
  如图3-5所示,OUT3的信号需要用三极管转换后才能成为入口电平信号进入单片机。这是由于感应器接受到警报信息后产生的电压是5伏特的直流电压,因此这时候就需要用三极管进行转换,转换后其变成低电平,就可以成为单片机能识别的低电平信号。单片机接收到这一信号后状态发生改变,由原来的低功耗模式转变为工作模式,整个电路开始工作。当环境中煤油预警信号时,整个系统输出的是高电平。

图3-5 数字信号输入电路

3.3 时钟电路的设计

  如图3-6所示,反向放大器的输入端和输出端分别是XTAL1和XTAL2。这种放大器可以使用石晶振荡或者陶瓷振荡,甚至可以配置片内振荡器。但是如果该反向放大器采用外部时钟源驱动器件,那么输出端不需要接。
  因为一个机器周期含有6个状态周期,而每个状态周期为2个振荡周期,所以一个机器周期共有12个振荡周期,如果外接石英晶体振荡器的振荡频率为12MHZ,一个振荡周期为1/12us,故而一个机器周期为1us。
图3-6为时钟电路。

图3-6 时钟电路图

3.4 复位电路的设计

  复位方法一般有上电自动复位和外部按键手动复位,单片机在时钟电路工作以后, 在RESET端持续给出2个机器周期的高电平时就可以完成复位操作。例如使用晶振频率为12MHz时,则复位信号持续时间应不小于2us。本设计采用的是外部手动按键复位电路。图3-7为复位电路。

图3-7 复位电路图

3.5 烟雾检测电路设计

3.5.1 传感器选型

  火灾发生时都会伴随着产生浓烟,因此一定要选择合适的传感器,本论文综合考虑各因素后决定采用QM3传感器,这种传感器很灵敏,即使烟雾的浓度很低,也能迅速检测出来,并且可以迅速将这一信号的电信号传送给单片机。

3.5.2 LM393简介

LM393主要特点如下:
(1)工作电源电压范围宽,单电源、双电源均可工作,单电源:2~36V,双电源:±1~±18V;
(2)消耗电流小,Icc=0.8mA;
(3)输入失调电压小,VIO=±2mV;
(4)共模输入电压范围宽,Vic=0~Vcc-1.5V;
(5)输出与TTL,DTL,MOS,CMOS 等兼容;
(6)输出可以用开路集电极连接“或”门;
  采用双列直插8 脚塑料封装(DIP8)和微形的双列8 脚塑料封装(SOP8)。LM393引脚图及内部框图如图3-5所示:

图3-5 LM393内部结构图
  LM393是高增益,宽频带器件,象大多数比较器一样,如果输出端到输入端有寄生电容而产生耦合,则 很容易产生振荡.这种现象仅仅出现在当比较器改变状态时,输出电压过渡的间隙.电源加旁路滤波并不能解决这个问题,标准PC板的设计对减小输入—输出寄生电容耦合是有助的.减小输入电阻至小于10K将减小反馈信号,而且增加甚至很小的正反馈量(滞回1.0~10mV)能导致快速转换,使得不可能产生由于寄生电容引起的振荡.除非利用滞后,否则直接插入IC并在引脚上加上电阻将引起输入—输出在很短的转换周期内振荡,如果输入信号是脉冲波形,并且上升和下降时间相当快,则滞回将不需要。
  比较器的所有没有用的引脚必须接地. LM393偏置网络确立了其静态电流与电源电压范围 2.0~30V无关。 通常电源不需要加旁路电容,差分输入电压可以大于Vcc并不损坏器件.保护部分必须能阻止输入电压向负端超过-0.3V。LM393的输出部分是集电极开路,发射极接地的 NPN输出晶体管,可以用多集电极输出提供或OR ing功能。输出负载电阻能衔接在可允许电源电压范围内的任何电源电压上,不受 Vcc端电压值的限制。此输出能作为一个简单的对地SPS开路(当不用负载电阻没被运用),输出部分的陷电流被可能得到的驱动和器件的β值所限制.当达到极限电流(16mA)时,输出晶体管将退出而且输出电压将很快上升。输出饱和电压被输出晶体管大约60ohm 的γSAT限制。当负载电流很小时,输出晶体管的低失调电压(约1.0mV)允许 输出箝位在零电平。
  本论文分压设计是这样的,mq2传感器在电压变化时其电阻值也会变化,利用这一点就能达到分压的目的。LM393利用MQ2传感器的电压做对比,利用一个可调节电阻调节烟雾限定值。根据限定值就可以对烟雾的含量进行判断,看其是否处在安全范围内。如图3-6所示:

图3-6 MQ2模块电路图

四. 主要源程序代码

#include<reg52.h>
#include <intrins.h>
#include <absacc.h>		  //头文件
#define uint unsigned int
#define uchar unsigned char	  //宏定义

//按键
sbit key1=P3^2;	   //布防
sbit key2=P3^3;	   //撤防
sbit key3=P3^4;	   //紧急报警

sbit BUZZ=P0^4;	   //蜂鸣器
sbit rsd=P2^4;	   //热释电输入
sbit yanwu=P2^5;
sbit LED_B=P2^3;   //布防指示灯
sbit LED_S=P2^0;   //发送消息指示灯

uchar code PhoneNO[]		="15614997993"; //接受号码

uchar code somebody[]		="67094EBA8FDB5165FF0C8BF76CE8610F3002";	//有人进入,请注意。
uchar code somebody1[]		="70DF96FE6D535EA68FC79AD8FF0C8BF76CE8610F3002";	//烟雾浓度过高,请注意。												  
uchar code somebody2[]		="67094EBA8FDB5165FF0C70DF96FE6D535EA68FC79AD8FF0C8BF76CE8610F3002";	//有人进入,烟雾浓度过高,请注意。

uint TIME_50ms=0;	   //计时的最小分辨率50ms
uint time_continue;
uchar TIME_ALAM=0;
bit flag=0,flag_BF=0;
bit flag_time_start=0;
bit again=0;
bit flag_alam;
bit SOS;
bit flag_continue;
bit into_BF=0;

void delay(uint z)//延时函数
{
	uint x,y;
	for(x=z;x>0;x--)
	for(y=110;y>0;y--);
}

void Uart_init()
{
	TMOD= 0X20;		//T1  方式2  ,8位   自动重装   
	TH1=0Xfd;
	TL1=0Xfd;	    //9600
	TR1=1; 		    // 定时器1启动  
	SM0=0;	    // 设置串口的工作模式
	SM1=1; 	    //方式1

	REN=0; 		 // 不允许串口接收数据 	 

	ES=0; 	     // 串口中断不允许 
	EA=1;		 // 开启中断总开关
}

void SendASC(uchar d)
{
	
	SBUF=d;
	while(!TI);

	TI=0;
}

void SendString(uchar *str)	
{
	while(*str)
	{
		SendASC(*str) ;
		str++;
		//delay_uart(1);
	}
}

void TIME()
{
	if(flag==0)
	{
		delay(50);
		TIME_50ms++;
		if(TIME_50ms%10==0)
		LED_B=!LED_B;
		
		if(TIME_50ms>=400)
		{
			TIME_50ms=0;
			flag_BF=1;
			LED_B=0;
			flag_time_start=0;
			again=1;
		}	
	}
	else
	{
		delay(50);
		TIME_50ms++;
		if(TIME_50ms%10==0)
		{
			LED_B=!LED_B;
			if(flag_alam==1)
			{
				
				if(flag_continue==0)
				{
					flag_continue=1;
					time_continue=TIME_50ms;
				}
				BUZZ=!BUZZ;
				if(TIME_50ms>=time_continue+100)
				{
					BUZZ=1;
					flag_continue=0;
					flag_alam=0;
					time_continue=0;
				}	
			}
		}
		if(TIME_50ms>=1200)
		{
			LED_B=0;
			TIME_50ms=0;
			flag_time_start=0;
			again=1;
		}
	}
}

//按键扫描函数
void keyscan()
{
	if(key1==0&&flag_BF==0)//布防
	{
		delay(5);//延时
		if(key1==0)
		{
			LED_B=0;
			flag=0;
			flag_time_start=1;
		}
		while(key1==0);
	}
	if(flag_time_start==1)
	{
		TIME();
	}
	if(key2==0)
	{			   
		delay(5);//撤防
		if(key2==0)
		{
			BUZZ=1;	//关闭蜂鸣器 
			flag_alam=0;
			flag_BF=0;
			flag=0;
			flag_time_start=0;
			LED_S=1;
			LED_B=1;
		}
		while(key2==0);
	}
	if(key3==0)
	{
		delay(5);
		if(key3==0)
		{
			SOS=1;
			flag_alam=1;
		}
		while(key3==0);
	}
} 

void GSM_work()
{
	unsigned char send_number;
	if((rsd==0||yanwu==0)&&flag_BF==1)
	flag_alam=1;
	if(((rsd==0||yanwu==0)&&flag_BF==1&&again==1)||SOS==1)
	{
		LED_S=0;
		BUZZ=1;
		SendString("AT+CMGF=1\r\n");	
		
		delay(200);
		
		SendString("AT+CSCS=\"UCS2\"\r\n");	
		
		delay(200);
		
		SendString("AT+CSMP=17,0,2,25\r\n");	
		
		delay(200);
		
		SendString("AT+CMGS=");	//信息发送指令 AT+CMGS=//
		SendASC('"');
		for(send_number=0;send_number<11;send_number++)
		{
			SendASC('0');
			SendASC('0');
			SendASC('3');
			SendASC(PhoneNO[send_number]);
		}     
		SendASC('"');
		SendASC('\r');			//发送回车指令//
		SendASC('\n');			//发送换行指令//
		
		delay(200);

		if(rsd==0&&yanwu==1)
		SendString(somebody);
		else if(rsd==1&&yanwu==0)
		SendString(somebody1);
		else if((rsd==0&&yanwu==0)||SOS==1)
		SendString(somebody2);
							   
		delay(200);
		
		SendASC(0x1a);
		
		if(SOS==0)
		{
			again=0;
			flag_time_start=1;
			flag_alam=1;
				
		}
		else if(SOS==1&&flag_time_start==1)
		{
			TIME_50ms=0;
			flag_BF=1;
			LED_B=0;
			flag_time_start=0;
			again=1;
		}
		delay(2000);
		LED_S=1;
		SOS=0;
		flag=1;
	}
}	
void main()
{	
	Uart_init();
	while(1)
	{
		keyscan();
		GSM_work();
	}	  
}

五. 总结

  本论文根据GSM短信模块设计开发了一套家庭防盗报警器系统,这套系统的处理器核心为89c52单片机通过外接一种,通过外接一种新型的被动式红外探测器件——热电红外传感器来探测来自人体的红外辐射,因为它是非接触式的,所以使用非常方便。探测器检测到红外信号以后,在探测器内部将其转变成电信号进行输出,这种传感器还有一个优势就是能防止红外线和可见光的干涉,稳定性很高。一般情况下传感器输出的是低电平,一旦传感器在工作范围内探测到人体活动它就会自动输出高电平,这一电信号迅速被单片机捕获,触发单片机的活动,单片机的内部程序会对信息进行编辑处理,处理完成后输出指令,启动GSM短信模块,用户的终端就会收到预警信息,这样就可以实现防盗报警功能。本论文设计的家庭防盗报警器系统安装简单,操作方便灵活,不存在操作难度,使用感觉很好,设备智能化水平很高,产品性能极佳。如今人民防盗意识普遍增强,家庭防盗系统市场需求很大,相关技术也在进步,今后这一市场前景非常广阔。

六. 目 录

内 容 摘 要 I
第1章 选题依据 2
1.1 前言 2
1.2 防盗报警系统在国内外的发展 2
1.3 防盗报警器的发展前景与趋势 3
1.4 设计任务与要求 3
第2章 系统方案设计 5
2.1 系统总体设计思路 5
2.2 系统方案设计 5
2.3 传感器简介 6
2.3.1 热释电红外传感器简介 6
2.3.2 热释电红外传感器电路图 7
2.3.3 被动式热释电红外探头的工作原理及特性 8
2.4 MQ2烟雾传感器简介 8
2.5 51系列单片机的内部组成 12
2.4.1 STC89C52单片机的内部组成 13
2.4.2 STC89C52单片机引脚及功能 14
2.6 SIM900A短信模块简介 15
2.6.1 GSM模块接口设计 18
第3章 硬件电路设计 20
3.1 电源电路设计 20
3.2 红外探测信号输入电路 21
3.3 时钟电路的设计 24
3.4 复位电路的设计 24
3.5 烟雾检测电路设计 25
3.5.1 传感器选型 25
3.5.2 LM393简介 25
第4章 软件设计 28
4.1 软件的程序实现 28
4.2 主程序工作流程图 28
4.3 中断服务程序工作流程图 30
4.4 报警电路流程图 31
4.5 信号采集电路流程图 32
第5章 结论与展望 34
致 谢 35
参考文献 36
附录A 主要源程序代码 37
附录B 电路总体原理图 43

物联沃分享整理
物联沃-IOTWORD物联网 » 基于51单片机的家庭防盗防火报警系统设计详解

发表评论