基于51单片机的智能家居防火防盗系统设计

基于51单片机的智能家居防火防盗系统设计

自动开关灯,温度,烟雾浓度报警,数值可调节等;附赠资料包含原理图,仿真,代码(C语言),实物的元件清单及功能演示视频。适合课设。
CSDN内下载地址:下载地址

系统设计

    • 基于51单片机的智能家居防火防盗系统设计
    • 人体红外采集电路设计
    • 温度传感器电路设计
    • 烟雾传感器电路设计
    • 光线采集电路设计
    • AD电路设计
    • 液晶显示电路设计
    • 部分代码展示(按键部分)

人体红外采集电路设计

在人体红外采集电路设计中,选用热释电红外传感器(PIR),它能将波长为8-12um之间的红外信号变化转变为电信号,并能对自然界中的白光信号具有抑制作用。人体发射的10微米左右的红外线通过菲涅尔滤光片增强后聚集到热释电元件上,这种元件在接收到人体红外辐射温度发生变化时就会失去电荷平衡,向外释放电荷,后续电路经检测处理后就能产生报警信号。
基于51单片机的智能家居防火防盗系统设计_第1张图片

温度传感器电路设计

在温度传感器电路设计模块中,选用智能温度传感器DS18B20作为温度测量装置,这种温度传感器有独特的单线接口方式,在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯;其测温范围 -55℃~+125℃,固有测温分辨率0.5℃,当在-10℃~+85℃范围内,可确保测量误差不超过0.5℃,在-55~+125℃范围内,测量误差也不超过2℃;可用数据线供电,供电电压范围:+3.0V~+5.5V;用户可自设定非易失性的报警上下限值;并且DS18B20的转换速率比较高,进行9位的温度值转换只需93.75ms。
基于51单片机的智能家居防火防盗系统设计_第2张图片

烟雾传感器电路设计

在烟雾传感器电路设计中,采用的是MQ-2型烟雾传感器。该烟雾传感器是二氧化锡半导体型气敏材料,当处于200-300°C温度时,二氧化锡吸附空气中的氧,形成氧的负离子吸附,使半导体中的电子密度减少,从而使其电阻值增加。当与烟雾接触时,如果晶粒间界处的势垒受到该烟雾的调制而变化,就会引起表而电导率的变化。利用这一点可以获得烟雾存在的信息。MQ-2型烟雾传感器对天然气、液化石油气等烟雾有很高的灵敏度,尤其对烷类烟雾更为敏感。
基于51单片机的智能家居防火防盗系统设计_第3张图片

光线采集电路设计

在光线采集电路设计中,使用的探测元件是LY-C1光敏传感器。这种类型的光敏电阻对周围环境光强最敏感,一般用来检测周围环境光强。入射光强,电阻减小,入射光弱,电阻增大。输出状态灵敏度可调。光敏与电位器串联分压,节点接到三极管基极,三极管将电阻的变化转换成电平的变化送给单片机,单片机读取电平,判断是白天还是夜晚。
基于51单片机的智能家居防火防盗系统设计_第4张图片

AD电路设计

AD转换模块选用ADC0809。ADC0809采用逐次比较的方法完成A/D转换,由单一的+5V电源供电。片内有锁存功能的8路选1的模拟开关,由C、B、A引脚的功能来决定所选的通道。0809完成一次转换需100us左右,输出具有TTL三态锁存缓冲器,可直接连接到MCS-51单片机的数据总线上。通过适当的外接电路,0809可对0-5V的模拟信号进行转换。
基于51单片机的智能家居防火防盗系统设计_第5张图片

液晶显示电路设计

液晶显示电路采用LCD1602液晶显示屏。其显示的内容为16X2,即可以显示两行,每行16个字符。LCD1602液晶模块内部的字符发生存储器已经存储了160个不同的点阵字符图形,这些字符图有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,它的读写操作、屏幕和光标的操作都是通过指令编程来实现的。
基于51单片机的智能家居防火防盗系统设计_第6张图片

部分代码展示(按键部分)

void Key()
{
     
	//模式选择
	if(Key1==0&&flag_owner==0)	   //主人在家时按下设置键有效
	{
     
		delay(20);				   //延时去抖
		if(Key1==0)				   //再次判断按键
		{
     
			flag_set=1;
			BJ=0; LED_yanwu=1;LED_wenduH=1;LED_wenduL=1;		//按下设置键关闭报警
			Mode++;				   //模式加
			if(Mode>=4)			   //模式加到最大
			{
     
				Mode=0;			   //清零
				flag_set=0;		   //设置变量清零
			}
			while(Key1==0);
		}
	}
	
	///
	if(Key2==0)		  //按下加按键时,相对应的上下限做加运算
	{
     
		delay(20);	  //延时去抖
		if(Key2==0)				//再次判断按键按下
		{
     
				shanshuo=0;		//闪烁变量清零
				m=0;
				if(Mode==1)		//模式为1,设置上限
				{
     
					wendu_H++;
					if(wendu_H>=99)
					wendu_H=99;
				}
				else if(Mode==2)			 //模式为2,设置下限
				{
     
					wendu_L++;
					if(wendu_L>=wendu_H)		//下限不能超过上限
					wendu_L=wendu_H-1;							          
				}
				else if(Mode==3)			 //模式为3,设置烟雾
				{
     
					yanwu_H++;
					if(yanwu_H>=255)
					yanwu_H=255;			
				}
		}
		while(!Key2);				//按键释放
	}
	
	if(Key3==0)		  //按下减按键时,相应上下限做减运算
	{
     
		delay(20);
		if(Key3==0)
		{
     
				shanshuo=0;
				m=0;
				if(Mode==1)
				{
     
					wendu_H--;
					if(wendu_H<=wendu_L)	  //同理,上限不能小于下限
					wendu_H=wendu_L+1;	
				}
				else if(Mode==2)
				{
     
					wendu_L--;
					if(wendu_L<=0)
					wendu_L=0;	
				}
				else if(Mode==3)
				{
     
					yanwu_H--;
					if(yanwu_H<=0)
					yanwu_H=0;				
				}
		}
		while(!Key3);
	}
	//
	if (light==0&&flag_owner==0) LED_LED=0;			  //光线暗并且主人在家时开灯
	else LED_LED=1;									  //否则关灯
	if(owner==0)									  //主人是否在家切换按键
	{
     
		delay(20);
		if(owner==0)
		{
     
			Mode=0;
			flag_owner=!flag_owner;					  //主人是否在家标志位
		}
		while(!owner);								  //按键释放
	}
	if(door==1&&hongwai==1&&flag_owner==1) flag_BJ=1; //主人不在家时门开并且热释电检测到有人进来时报警
	else flag_BJ=0;									  //否则不报警

//	delay(200);										  //延时
//	write_com(0x38);//屏幕初始化
//	write_com(0x0c);//打开显示 无光标 无光标闪烁
}

CSDN内下载地址:下载地址

你可能感兴趣的:(单片机,传感器)