【单片机毕业设计】【dz-768】基于单片机的智能家居安防系统设计
摘要:本设计基于STM32F103C8T6单片机开发智能家居安防系统,主要实现三大功能:1)通过E18-D80NK光电传感器检测入侵并触发声光报警,同时经4G模块发送报警短信;2)采用MQ-2传感器监测烟雾浓度,超限时触发报警及短信通知;3)集成AS608指纹模块实现门锁控制,支持指纹录入/删除功能,错误三次触发报警。系统通过OLED显示监测数据,采用继电器模拟门锁开关,具备5秒自动闭锁功能。硬件
一、功能简介
项目名:基于单片机的智能家居安防系统设计
项目编号:dz-768
单片机类型:STM32F103C8T6
具体功能:
1、通过光电传感器E18-D80NK监测是否有人翻窗,如果有人翻窗户进行声光报警提醒;
2、通过MQ-2监测环境中的烟雾,监测到烟雾大于设置的最大值进行声光报警;
3、通过指纹模块AS608进行开锁,指纹对比正确进行开锁,5秒自动关闭,对比失败超过三次进行声光报警;
4、通过按键可以设置烟雾最大值,另外可添加删除指纹;
5、通过OLED显示监测的测量值和设置值;
6、监测到有人翻窗户、烟雾大于最大值、指纹对比错误三次进行通过4G模块AIR780进行短信的发送提醒;
二、系统框图设计
绘制软件:VISIO
此次设计是基于STM32F103C8T6单片机的智能家具安防系统设计;该设计主要可以分为三部分:输入、输出和中控。中控部分采用STM32F103C8T6单片机作为主控芯片,主要是对输入进行处理然后控制输出;
输入又可以分为五部分:第一部分是光电传感器监测是否有人翻窗;第二部分是MQ-2烟雾检测模块,监测环境中的烟雾;第三部分是指纹模块进行开锁;第四部分是独立按键,通过按键模块可以进行切换界面、添加删除指纹;第五部分是供电电路,主要是用来对整个系统进行供电;
输出主要可以分为四个部分:第一部分是显示部分,显示当前光电检测是否有人、烟雾值、指纹的状态;第二部分是继电器模块,通过继电器模块模拟锁的开关;第三个部分是声光报警模块,当指纹错误三次进行报警;第四部分是4G模块,4G模块还可以发送短信、当烟雾过高、或有人翻窗、或指纹错误过高进行发送短信。
三、51实物图
单片机型号:STM32F103C8T6
板子为绿色PCB板,两层板,厚度1.2,上下覆铜接地。元器件基本上为插针式,个别降压芯片会使用贴片式。
供电接口:TYPE-C
四、原理图
软件版本:AD2013
电路连线方式:网络标号连线方式
注意:原理图只是画出了模块的引脚图,而并不是模块的内部结构原理图

五、PCB图
由原理图导出,封装很大一部分都是作者自己绘制,不提供封装库,只提供连接好的源文件。中间有一个项目编号,隐藏在单片机底座下,插入单片机后不会看到。
两层板,上下覆铜接地。

六、部分程序展示
软件版本:keil5
逻辑程序和驱动程序分开,分布于main.c和其他.c文件
/**********************************
函数名:处理函数
传参值:无
返回值:无
**********************************/
void Manage_Function(void)
{
if(display_num == 0) //测量界面
{
if(GD == 0) //当光电传感器检测到有人时打开声光报警,发送短信“有人翻窗”
{
flag_beep1 = 1;
if(flag_en1 == 0)
{
Air_4G_Send_Msg_Chinese(22,"0001000D91688157150051F900080867094EBA7FFB7A97");
flag_en1 = 1;
}
}
else
{
flag_beep1 = 0;
flag_en1 = 0;
}
if(smog_value > smog_max) //当烟雾大于最大值打开声光报警,发送短信“烟雾过高”
{
flag_beep2 = 1;
if(flag_en2 == 0)
{
Air_4G_Send_Msg_Chinese(22,"0001000D91688157150051F900080870DF96FE8FC79AD8");
flag_en2 = 1;
}
}
else
{
flag_beep2 = 0;
flag_en2 = 0;
}
if(fingerprint_step == 1) //指纹匹配成功,开锁
{
flag_zw = 0;
flag_ks = 1;
flag_beep3 = 0;
}
else if(fingerprint_step == 2) //指纹匹配失败,不开锁
{
if(flag_finger == 0)
{
flag_finger = 1;
flag_zw++;
if(flag_zw > 3)
{
flag_beep3 = 1;
if(flag_en3 == 0) //当指纹检测三次以上都失败发送短信“指纹错误过多”
{
Air_4G_Send_Msg_Chinese(26,"0001000D91688157150051F900080C63077EB995198BEF8FC7591A");
flag_en3 = 1;
flag_zw = 0;
}
}
}
}
else //否则,关锁
{
flag_finger = 0;
flag_en3 = 0;
}
if(flag_ks == 1) //当开锁标志位为1时打开门锁并计时五秒,五秒到达关门
{
RELAY_MS = 1;
flag_start_5s = 1;
if(flag_end_5s == 1)
{
RELAY_MS = 0;
flag_ks = 0;
flag_start_5s = 0;
}
}
if(flag_beep3 == 1) //当声光报警3标志位为1开始声光报警计时十秒,十秒后结束报警
{
flag_start_10s = 1;
if(flag_end_10s == 0)
{
ALERT = 1;
}
else
{
ALERT= 0;
flag_start_10s = 0;
flag_beep3 = 0;
}
}
else
{
flag_start_10s = 0;
if(flag_beep1 == 1 || flag_beep2 == 1) //当三个声光报警标志位任意一个为1时开启声光报警
{
if(time_num % 10 == 0)
{
ALERT = !ALERT;
}
}
else //否则关闭声光报警
{
ALERT = 0;
}
}
}
else //设置界面,取消声光报警,关门
{
flag_beep1 = 0;
flag_beep2 = 0;
flag_beep3 = 0;
flag_ks = 0;
}
}
更多推荐
所有评论(0)