本设计由STM32F103C8T6单片机核心电路+拨动开关电路+按键电路+高亮LED灯电路+LCD1602液晶电路+蜂鸣器报警电路+GSM短信模块SIM800A电路+光敏电阻检测光照强度电路+热释红外感应模块E18电路+电源电路组成。
1、通过热释红外传感器检测是否有人,如果有人靠近门时,液晶屏提示亮并显示欢迎词:Welcome to home!,夜间探测到有人时开灯,灯用9个高亮LED灯设计,无人时,关灯。
2、主人可设定门禁系统工作状态,家里有人和无人两种状态。通过一个拨动开关设置,拨上去,液晶显示有人:Somebody!,拨下来液晶显示没人:Nobody!有人时,客人按下门铃,蜂鸣器鸣叫提示,无人时,客人按下门铃,无任何反应。
3、门外人员逗留时间超过一定时间则发出报警信息。
4、检测到有人或者没有人,有状态指示灯指示。
源程序(C语言含详细备注).zip
(354.86 KB, 售价: 5 E币)
PDF格式的PCB图.zip
(72.58 KB, 售价: 2 E币)
实物图(高清).zip
(4.2 MB, 售价: 2 E币)
原理图(sch源文件 PDF版 照片版).zip
(263.6 KB, 售价: 2 E币)
部分代码:
- #include "delay.h"
- #include "sys.h"
- #include "usart.h"
- #include "key.h"
- #include "led.h"
- #include "lcd1602.h"
- u8 lighFlag=0; //光照 标志
- u8 doorFlag=0; //门检测 标志
- u8 manFlag=0; //人检测 标志
- u8 menlingFlag=0; //门铃检测 标志
- u8 baojFlag=0; //报警 标志
- int main(void)
- {
- u32 time10ms=0;
-
- delay_init(); //延时函数初始化
- KEY_Init(); //初始化 按键
- LED_Init(); //初始化电机引脚 作为输出 类似led
- delay_ms(1);
-
- Lcd_GPIO_init(); //初始化lcd引脚
- Lcd_Init(); //初始化lcd屏幕
- delay_ms(20);
-
- Lcd_Puts(0,0,"Waitting for you"); //初始化显示
- Lcd_Puts(0,1,"Nobody! ");
-
- buzzer=1; //打开 上电开关一下 方便检测
- ligh=1;
- led_hot = 0;
- delay_ms(200);
- led_hot = 1;//关闭 用于测试
- buzzer=0;
- ligh=0;
-
- while(1)
- {
- delay_ms(10);
- if(manFlag==1)
- {
- Lcd_Puts(0,0,"Welcome to home!"); //显示有人
- if(lighFlag==1) //有人情况查看是否需要开灯
- {
- ligh=1;//打开 灯
- }
- else
- {ligh=0;}//关闭
- time10ms++;
- if(time10ms>=3000) //有人超过30s 报警
- {
- buzzer=1; //打开蜂鸣器
- baojFlag=1;//报警
- }
- }
- else
- {
- Lcd_Puts(0,0,"Waitting for you"); //没有人情况 显示等待
- ligh=0; //没有人关闭led
- time10ms=0; //清零紧急报警
- baojFlag=0;
- }
- if(doorFlag==1)
- {
- Lcd_Puts(0,1,"Somebody! "); //家中有人
- if(baojFlag==0) //非紧急情况
- {
- if(menlingFlag==1) //门铃
- {
- buzzer=1;//打开蜂鸣器
- }
- else
- {buzzer=0;} //关闭蜂鸣器
- }
- }
- else
- {
- Lcd_Puts(0,1,"Nobody! "); //家中无人
- if(baojFlag==0) //非紧急情况
- { buzzer=0;}
- }
-
- if(key_menling==0) //检测
- {
- menlingFlag=1;
- }
- else
- {menlingFlag=0;} //否则复位标志
- if(key_redhot==1) //检测人体
- {
- manFlag=1;led_hot = 0;//标志
- }
- else
- {manFlag=0;led_hot = 1;} //否则复位标志
- if(key_door==1) //检测 门状态
- {
- doorFlag=1;
- }
- else
- {doorFlag=0;} //否则复位标志
- if(key_ligh==1) //检测光度
- {
- lighFlag=1;
- }
- else
- {lighFlag=0;} //否则复位标志
- }
- }
复制代码
【必读】版权免责声明
1、本主题所有言论和内容纯属会员个人意见,与本论坛立场无关。2、本站对所发内容真实性、客观性、可用性不做任何保证也不负任何责任,网友之间仅出于学习目的进行交流。3、对提供的数字内容不拥有任何权利,其版权归原著者拥有。请勿将该数字内容进行商业交易、转载等行为,该内容只为学习所提供,使用后发生的一切问题与本站无关。 4、本网站不保证本站提供的下载资源的准确性、安全性和完整性;同时本网站也不承担用户因使用这些下载资源对自己和他人造成任何形式的损失或伤害。 5、本网站所有软件和资料均为网友推荐收集整理而来,仅供学习用途使用,请务必下载后两小时内删除,禁止商用。6、如有侵犯你版权的,请及时联系我们(电子邮箱1370723259@qq.com)指出,本站将立即改正。
|