1 系统功能介绍
本设计基于 STM32F103C8T6 单片机,通过多种传感器、执行器以及通信模块实现智能门禁和安防报警功能。其主要功能是检测门外人员情况,结合环境光照强度判断是否需要照明,同时结合 GSM 模块在异常情况下发送报警信息,为家庭安全提供保障。整个系统不仅具备基础的门禁迎宾功能,还增加了夜间照明、主人状态设置、门铃提示、逗留报警等智能化特性。
系统整体由以下部分组成:
- 核心控制电路:以 STM32F103C8T6 单片机为核心,负责对各模块的数据采集与逻辑控制。
- 人体感应电路:采用热释红外传感器 E18,用于检测是否有人靠近门口。
- 光照检测电路:通过光敏电阻检测环境光照强度,结合逻辑控制自动开关 LED 灯。
- 照明模块:由 9 个高亮 LED 灯组成,夜间有人靠近自动点亮,白天或无人时自动关闭。
- 液晶显示模块:采用 LCD1602 显示系统状态、提示欢迎语、门禁状态等信息。
- 蜂鸣器电路:作为门铃提示装置和报警提示装置,结合主人状态设置实现不同功能。
- 拨动开关与按键电路:主人可通过拨动开关设置家庭状态(有人/无人),客人通过按键(门铃)触发提示。
- 状态指示灯:用于直观显示当前系统处于有人模式还是无人模式。
- GSM 通信模块:通过 SIM800A 模块在检测到人员逗留过久时发送报警短信给主人。
- 电源电路:为系统稳定供电,提供 5V 和 3.3V 电压输出。
整体功能概括如下:
- 迎宾与照明功能:当热释红外传感器检测到人员靠近,LCD 显示“Welcome to home!”,若为夜间,自动点亮 LED 灯。
- 门禁状态切换:主人可通过拨动开关选择“有人”或“无人”模式,LCD1602 实时显示对应状态。
- 门铃提示:当系统处于“有人”模式时,按下门铃,蜂鸣器鸣叫提示;若处于“无人”模式,门铃按下无效。
- 逗留报警功能:若检测到人员在门口停留超过设定时间,系统通过蜂鸣器报警并向主人手机发送短信提示。
- 状态指示:通过 LED 指示灯明确显示当前系统模式。
该系统集成了门禁、照明与报警功能,结合 GSM 短信远程报警,具备实用性和智能化特点。
2 系统电路设计
2.1 单片机最小系统电路
STM32F103C8T6 作为核心控制芯片,主要负责:
- 与传感器通信,获取人体感应与光照数据;
- 驱动 LCD1602 显示状态;
- 控制继电器或驱动电路点亮高亮 LED;
- 控制蜂鸣器进行提示与报警;
- 与 GSM 模块通信实现短信发送。
其最小系统包括:
- 晶振电路:采用 8MHz 外部晶振,保证系统稳定运行。
- 复位电路:上电复位和手动复位功能,保证系统可靠性。
- 电源电路:单片机工作电压 3.3V,由电源电路转换得到。
2.2 热释红外传感器电路(E18)
-
工作原理:E18 热释红外传感器能够检测人体红外辐射变化,从而判断是否有人进入监控区域。
-
功能作用:当检测到人员时,单片机接收到高电平信号,触发 LCD 提示与灯光控制逻辑。
-
应用逻辑:
- 白天有人:LCD 显示欢迎词,不点亮灯。
- 夜间有人:LCD 显示欢迎词,并点亮 9 个高亮 LED 灯。
- 无人:灯光关闭,LCD 显示默认状态。
2.3 光敏电阻电路
- 工作原理:光敏电阻阻值随光照强度变化。通过与电阻分压,将电压信号送入 ADC 通道,单片机即可判断环境亮度。
- 功能作用:用于判断当前是否为夜间环境。若光照低于设定阈值,则认定为夜间,触发照明逻辑。
2.4 高亮 LED 灯照明电路
- 电路构成:9 个高亮 LED 灯,通常通过 MOSFET 或三极管驱动,以避免单片机直接承受过大电流。
- 功能作用:为夜间来访人员提供照明,提高安全性与便利性。
2.5 液晶显示模块电路(LCD1602)
-
接口方式:采用 4 位数据接口模式节省 IO 口资源。
-
显示内容:
- 人体检测提示:Welcome to home!
- 状态显示:Somebody! 或 Nobody!
- 报警提示:Alarm!
-
功能作用:直观显示门禁系统当前状态,提升人机交互体验。
2.6 蜂鸣器电路
-
电路构成:采用有源蜂鸣器,单片机通过 IO 口输出高低电平控制。
-
功能作用:
- 当处于“有人”模式且有人按下门铃时,发出提示音。
- 当检测到逗留超时,发出报警音。
- 在无人模式时,按下门铃无提示音。
2.7 拨动开关与按键电路
-
拨动开关:用于设置家庭状态。
- 拨上:LCD 显示 Somebody!,进入有人模式。
- 拨下:LCD 显示 Nobody!,进入无人模式。
-
按键:模拟门铃功能,当处于有人模式时触发蜂鸣器鸣叫。
2.8 状态指示灯电路
-
功能作用:直观显示系统状态。
- 有人模式:状态指示灯常亮。
- 无人模式:状态指示灯熄灭。
2.9 GSM 通信模块电路(SIM800A)
- 功能作用:通过 AT 指令与 STM32F103 通信,当检测到有人逗留超过设定时间,自动发送报警短信。
- 通信方式:UART 串口通信,波特率设置为 9600bps。
- 应用场景:增强安防功能,使用户在外也能第一时间获知异常情况。
2.10 电源电路
- 功能作用:为单片机及外围模块提供稳定电压。
- 电路构成:采用 AMS1117-3.3 稳压芯片提供 3.3V 电压,继电器、蜂鸣器与 GSM 模块则由 5V 供电。
3 程序设计
3.1 主程序框架
#include "stm32f10x.h"
#include "lcd1602.h"
#include "dht11.h"
#include "esp8266.h"
#include "relay.h"
#include "sim800a.h"
#include "led.h"
#include "key.h"int main(void)
{SystemInit();LCD_Init();LED_Init();Key_Init();Buzzer_Init();GSM_Init();Sensor_Init();while(1){HumanDetect_Task();LightControl_Task();DoorBell_Task();Alarm_Task();}
}
主程序完成各模块初始化,并在循环中调用任务函数,实现模块化运行。
3.2 人体感应检测程序
void HumanDetect_Task(void)
{if(E18_Detected()){LCD_ShowString(0,0,"Welcome to home!");if(Light_Level() < THRESHOLD) LED_On();}else{LCD_Clear();LCD_ShowString(0,0,"Nobody!");LED_Off();}
}
通过红外传感器检测是否有人,并结合光照强度自动开灯或关灯。
3.3 门禁状态设定程序
void Mode_Set(void)
{if(SWITCH_STATE == 1){LCD_ShowString(1,0,"Somebody!");MODE = 1;StatusLED_On();}else{LCD_ShowString(1,0,"Nobody!");MODE = 0;StatusLED_Off();}
}
通过拨动开关切换家庭状态,LCD 显示相应内容。
3.4 门铃控制程序
void DoorBell_Task(void)
{if(MODE == 1 && KEY_Pressed()){Buzzer_On();Delay_ms(500);Buzzer_Off();}
}
仅在“有人”模式下,按下门铃才有提示音。
3.5 逗留报警程序
int stay_time = 0;void Alarm_Task(void)
{if(E18_Detected()){stay_time++;if(stay_time > STAY_LIMIT){Buzzer_On();GSM_SendSMS("Alarm! Someone stays too long at the door!");}}else{stay_time = 0;Buzzer_Off();}
}
当检测到人员停留超过设定阈值时间,触发蜂鸣器报警并通过 GSM 发送短信。
3.6 GSM 短信发送程序
void GSM_SendSMS(char *msg)
{USART_SendString("AT+CMGF=1\r\n"); // 设置短信为文本模式Delay_ms(100);USART_SendString("AT+CMGS=\"+8613812345678\"\r\n"); // 目标手机号Delay_ms(100);USART_SendString(msg);USART_SendData(0x1A); // 发送Ctrl+Z结束
}
利用 SIM800A 模块,通过 AT 指令实现短信发送。
4 总结
本设计基于 STM32F103 单片机,实现了一个功能完备的智能门禁系统。其特点包括:
- 人体感应与迎宾功能:通过热释红外传感器检测人员靠近,并通过 LCD 显示欢迎信息。
- 智能照明控制:结合光敏电阻实现夜间自动照明,提高便利性。
- 门禁状态切换:通过拨动开关区分“有人/无人”模式,提升系统灵活性。
- 智能门铃提示:仅在有人模式下生效,避免无效干扰。
- 逗留报警功能:检测到门外人员逗留过久时,蜂鸣器报警并通过 GSM 模块发送短信。
- 状态直观:通过 LCD 和 LED 指示灯实时显示系统运行状态。
- 可靠性与扩展性:采用模块化设计,便于后续功能扩展,如增加人脸识别、摄像头监控等。
该系统集成了安防、照明、门禁三大功能,为家庭安全提供了一个实用、低成本且可扩展的解决方案。