基于STM32单片机智能家居声音人体防盗GSM短信报警系统设计

1 系统功能介绍

本设计是一套 基于STM32单片机的智能家居声音人体防盗GSM短信报警系统,系统融合了声音检测、红外避障检测、蜂鸣器报警以及 GSM 短信发送功能,可对家庭、办公室及仓库等场所实现全天候安全监控。系统具有高灵敏度、响应迅速、可远程报警和定时上报功能,能够及时提醒用户异常情况,有效保障财产安全与人员安全。

系统主要功能包括:

  1. 声音检测报警:通过声音传感器实时检测环境声音,当声音强度超过设定阈值时触发报警,并通过 GSM 模块发送短信至用户手机。
  2. 人体红外检测报警:红外避障传感器用于检测人体或物体移动,一旦检测到有人进入警戒区域,即触发报警并发送短信通知。
  3. 报警间隔机制:系统设置报警信息发送间隔约 35 秒,确保在连续触发的情况下不会频繁发送短信,同时记录异常触发次数。
  4. 蜂鸣器声光报警:在异常触发时蜂鸣器立即发出报警声,同时传感器的灵敏度可通过电位器进行调节,以适应不同环境的监控需求。
  5. 系统参数调节:用户可调节声音传感器和红外传感器的灵敏度,保证系统在不同场景下均能准确工作。

系统实现了 多传感器融合、实时报警、云端或手机远程通知 的智能防盗功能,为家庭和企业安全管理提供了一套完整可靠的解决方案。


2 系统电路设计

本系统电路主要由 STM32F103C8T6 核心控制模块、声音检测传感器模块、红外避障传感器模块、蜂鸣器报警模块、GSM 短信模块及电源模块组成。以下对各模块进行详细介绍。

2.1 STM32 单片机核心模块

  • 功能:系统控制核心,负责传感器数据采集、报警处理、蜂鸣器控制以及 GSM 短信发送。

  • 设计要点

    • STM32F103C8T6 提供丰富 GPIO、ADC 和 UART 接口,方便与各类传感器及 GSM 模块连接;
    • 定时器用于定时轮询传感器数据和控制报警间隔;
    • 系统电源采用稳压模块提供 3.3V 和 5V 电压,保证单片机和外设稳定工作;
    • 上电复位和手动复位电路保证系统可靠启动。

2.2 声音检测传感器模块

  • 功能:实时监测环境声音,并根据设定阈值判断是否触发报警。

  • 设计要点

    • 传感器通过模拟量或数字量输出与 STM32 相连;
    • 灵敏度可通过传感器上的电位器调节,适应不同环境噪声水平;
    • STM32 通过 ADC 或数字接口读取声音传感器数据,并根据阈值判断是否触发报警事件。

2.3 红外避障传感器模块

  • 功能:检测人体或物体移动,实现红外防盗功能。

  • 设计要点

    • 传感器通过 GPIO 接口向单片机输出信号;
    • 灵敏度同样可通过电位器进行调节;
    • 当检测到有人进入警戒范围时,立即触发蜂鸣器报警,并通过 GSM 模块发送短信。

2.4 蜂鸣器报警模块

  • 功能:在异常事件触发时提供声光报警。

  • 设计要点

    • 蜂鸣器通过 STM32 GPIO 口或晶体管驱动;
    • 触发时发出持续或间断报警声,与短信报警同步;
    • 可结合 LED 指示灯实现声光报警效果,直观提示异常事件。

2.5 GSM 短信模块

  • 功能:通过 GSM 网络向用户手机发送报警信息。

  • 设计要点

    • GSM 模块通过 UART 与 STM32 通信,发送 AT 指令控制短信发送;
    • 系统设定报警发送间隔约 35 秒,避免短信频繁发送;
    • 支持发送多种报警信息,如声音触发报警、红外触发报警等。

2.6 电源模块

  • 功能:为系统各模块提供稳定的电源供应。

  • 设计要点

    • 提供 5V 电压给 GSM 模块供电,3.3V 电压给 STM32 与传感器模块供电;
    • 电源带有过流、过压保护功能,确保系统在异常情况下仍能安全运行。

3 程序设计

程序采用模块化设计,实现系统初始化、声音检测、红外检测、蜂鸣器控制、GSM 短信发送及报警间隔管理。以下对各模块进行详细介绍。

3.1 系统初始化

c 复制代码
#include "stm32f10x.h"
#include "sound_sensor.h"
#include "infrared_sensor.h"
#include "gsm_module.h"
#include "buzzer.h"
#include "timers.h"

int sound_alarm_flag = 0;
int infrared_alarm_flag = 0;
int alarm_interval_counter = 0;

void System_Init(void){
    SoundSensor_Init();
    InfraredSensor_Init();
    GSM_Init();
    Buzzer_Init();
    Timer_Init(); // 用于35s报警间隔计时
}

3.2 声音检测模块

c 复制代码
void Sound_Monitor(void){
    int sound_level = SoundSensor_Read();
    if(sound_level > SOUND_THRESHOLD){
        sound_alarm_flag = 1;
    }
}

3.3 红外检测模块

c 复制代码
void Infrared_Monitor(void){
    int infrared_state = InfraredSensor_Read();
    if(infrared_state == DETECTED){
        infrared_alarm_flag = 1;
    }
}

3.4 蜂鸣器控制模块

c 复制代码
void Buzzer_Control(void){
    if(sound_alarm_flag || infrared_alarm_flag){
        Buzzer_ON();
    } else {
        Buzzer_OFF();
    }
}

3.5 GSM 短信发送模块

c 复制代码
void GSM_Alarm(void){
    if(alarm_interval_counter >= 35){ // 间隔35秒发送一次
        if(sound_alarm_flag){
            GSM_SendSMS("Sound Alarm Detected!");
            sound_alarm_flag = 0;
        }
        if(infrared_alarm_flag){
            GSM_SendSMS("Infrared Alarm Detected!");
            infrared_alarm_flag = 0;
        }
        alarm_interval_counter = 0;
    }
}

3.6 主循环程序

c 复制代码
int main(void){
    System_Init();
    while(1){
        Sound_Monitor();
        Infrared_Monitor();
        Buzzer_Control();
        GSM_Alarm();
        alarm_interval_counter++;
        Delay_1s(); // 延时1秒,模拟计时
    }
}

该程序通过循环检测声音和红外传感器状态,并在触发异常时控制蜂鸣器报警,同时通过 GSM 模块发送短信至用户手机,实现远程报警功能。系统通过定时器或循环计数实现短信发送间隔,保证不会因连续触发造成短信过于频繁发送,同时灵敏度可调,适应不同环境。

相关推荐
清风66666611 小时前
基于STM32单片机智能家居wifi远程监控系统机智云app设计
stm32·单片机·毕业设计·智能家居·课程设计
iotxiaohu16 小时前
MCU上跑AI—实时目标检测算法探索
人工智能·单片机·yolo·目标检测·ai
亿道电子Emdoor16 小时前
【ARM】MDK工程切换高版本的编译器后出现error: A1167E\A1159E\A1137E\A1517E\A1150E报错
stm32·单片机·嵌入式硬件
DS小龙哥19 小时前
基于STM32与华为云联动的智能电动车充电桩管理系统
stm32·嵌入式硬件·华为云
dxwd32020 小时前
试用Augment编写python脚本实现智能家居3D环境交互响应
人工智能·3d·智能家居·blender
大叔_爱编程20 小时前
p049基于Flask的医疗预约与诊断系统
python·flask·毕业设计·源码·课程设计·医疗预约与诊断系统
lingzhilab20 小时前
零知开源——STM32红外通信YS-IRTM红外编解码器集成灯控与显示系统
stm32·单片机·嵌入式硬件
会编程的果子君20 小时前
平衡车-ADC采集电池电压
单片机·嵌入式硬件
BYSJMG21 小时前
计算机Python毕业设计推荐:基于Django+Vue用户评论挖掘旅游系统
大数据·vue.js·hadoop·python·spark·django·课程设计