功能介绍:采用51单片机作为主控CPU,采用红外接触传感器来感应是否有人接近,有人蜂鸣器报警,采用雨水传感器感知是否下雨,下雨自动关窗(继电器关闭模拟关窗),采用MQ2传感器采集烟雾浓度,通过继电器驱动风扇进行排气,并且蜂鸣器报警,采用LCD1602显示相关的状态,文末有资料分享:
30-基于51单片机智能自动窗户防盗自动排气关窗(程序+原理图+元件清单全套资料)
程序部分展示,有中文注释,新手容易看懂
void Send_Str(unsigned char *buf)
{
while (*buf != '\0')
{
UART_send_byte(*buf++);
}
}
void Send_DATA(uchar *buffer)
{
Send_Str(buffer);//发送数据
Send_Str("\r\n");
delayms(50);
}
void InitUART(void) //这是串口的基本配置,配置他的波特率是9600.这些参数都是标准的。
{
TMOD = 0x20;
SCON = 0x50;
TH1 = 0xFD;
TL1 = TH1;
PCON = 0x00;
EA = 1;
ES = 1;
TR1 = 1;
}
/********************************************************************
* 名称 : Main()
* 功能 : 主函数
***********************************************************************/
void main()
{
InitUART(); //初始化串口
lcd1602_init();
beep=1;q1=1;
delay_ms(1000);
L1602_string(1,1,"RN:");
L1602_string(1,9,"YS:");
L1602_string(2,1,"YW");
L1602_string(2,9,"FS");
while(1)
{
L1602_string(1,4,"0");
L1602_string(1,12,"0");
L1602_string(2,4,"0");
L1602_string(2,12,"0");
if(ren==0) //判断有人
{
q1=1;
beep=0;
L1602_string(1,4,"1");
}
if(yushui==1) //判断有雨水
{
q1=1;
beep=0;
L1602_string(1,12,"1");
}
if(yanwu==0)//判断有烟雾
{
q1=0;
beep=0;
L1602_string(2,4,"1");
}
if(q1==0)//判断风扇是否打开
{
L1602_string(2,12,"1");
}
delay_ms(200);
beep=1;
下面是原理图展示: