扫码加入

  • 方案介绍
  • 相关推荐
申请入驻 产业图谱

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

1小时前
168
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

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

1 功能介绍

随着智能家居技术的快速发展,安全问题越来越受到用户关注。传统的防盗系统往往依赖单一传感器或独立报警器,无法实现远程通知,也不能有效应对复杂的入侵情况。而基于 STM32 单片机的防盗系统通过多传感器融合检测与 GSM 短信通信,可以实现本地报警与远程告警的结合,从而大大提升家庭防护能力。

本系统主要功能如下:

  1. 声音检测报警:当声音传感器检测到异常声音信号(如玻璃破碎声、剧烈敲击声)时,系统会触发报警,并通过 GSM 模块向用户手机发送短信通知。
  2. 红外人体检测报警:利用红外避障传感器对入侵人员进行检测,当检测到有人进入时,同样触发报警并发送短信。
  3. 蜂鸣器声光报警:在触发异常情况时,系统会通过蜂鸣器进行声响提示,形成本地威慑作用。
  4. 短信周期性上报机制:为了避免同一入侵事件造成短信频繁发送,系统设计了 35 秒的间隔机制。在间隔时间内,系统会将所有触发事件记录下来,并在间隔到期时进行统一上报。
  5. 灵敏度可调:声音检测和红外检测模块均带有电位器,用户可根据实际环境调节传感器灵敏度,避免误报或漏报。

该设计结合了实时检测、本地报警、远程上报等功能,既能满足家庭用户日常的安全防护需求,也能为其他场景(如办公室、小型仓库)提供可扩展的安全解决方案。


2 系统电路设计

系统电路设计STM32F103C8T6 单片机为核心,外围连接 GSM 短信模块、声音检测模块、红外避障模块、蜂鸣器及电源电路。各部分功能如下。

2.1 主控单片机电路

主控芯片采用 STM32F103C8T6,其优势在于:

  • 具备 72MHz 主频,运算能力较强,能够快速响应多路传感器的输入信号;
  • 拥有丰富的 GPIO 接口,能够轻松驱动 GSM 模块、传感器和蜂鸣器;
  • 集成多路串口,便于与 GSM 模块通信;
  • 内部集成 Flash 和 SRAM,可满足数据存储和运行需求。

主控电路同时包含晶振电路复位电路、电源滤波电路,确保系统稳定运行。

2.2 声音检测模块电路

声音检测传感器通常由麦克风拾音电路与信号放大电路组成。

  • 当检测到超过阈值的声音时,传感器输出高电平信号至单片机 GPIO;
  • 传感器上的电位器用于调节检测灵敏度,避免因环境噪声造成误报;
  • STM32 通过检测该输入电平,判断是否触发声音报警。

2.3 红外避障传感器电路

红外避障传感器的基本原理是发射红外光,物体反射后被接收端接收,从而判断有无人存在。

  • 当检测到有人时,模块输出高电平信号;
  • 灵敏度和检测距离可以通过电位器调节;
  • 输出信号直接连接至 STM32 的 GPIO 口,便于实时采集。

2.4 GSM 短信模块电路

本系统选用 SIM900A GSM 模块,其特点是:

  • 支持 GSM 短信收发和语音通话;
  • 通过 UART 串口与 STM32 通信,采用 AT 指令控制;
  • 工作电压为 3.7V-4.2V,需要独立稳压电源供电;
  • 系统中配置 SIM 卡,便于短信报警发送。

2.5 蜂鸣器报警电路

蜂鸣器作为本地报警器件,当检测到异常情况时,STM32 输出 PWM 或高低电平信号驱动蜂鸣器发声,起到即时提示和威慑作用。

2.6 电源电路

  • 系统由 5V 电源适配器供电;
  • 单片机与外围模块通过 AMS1117-3.3 稳压芯片提供 3.3V 电压;
  • GSM 模块供电需 4V,采用专用电源电路,保证其正常工作。

3 程序设计

系统程序采用模块化设计,分为主控逻辑、声音检测程序、红外检测程序、GSM 短信模块程序、报警处理程序等部分。

3.1 主程序设计

主程序主要实现系统初始化与循环检测逻辑。

#include "stm32f10x.h"
#include "usart.h"
#include "sensor.h"
#include "gsm.h"
#include "buzzer.h"

int main(void)
{
    // 系统初始化
    SystemInit();
    USART1_Init(9600);    // GSM 模块通信串口
    GPIO_Sensor_Init();   // 传感器 GPIO 初始化
    Buzzer_Init();        // 蜂鸣器初始化
    
    while(1)
    {
        Sensor_Check();   // 检测传感器状态
        GSM_Report();     // GSM 短信上报
    }
}

3.2 声音检测程序

声音检测通过 GPIO 读取高低电平实现。

uint8_t sound_flag = 0;

void Sensor_SoundCheck(void)
{
    if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_0) == 1) // 声音传感器接入PA0
    {
        sound_flag = 1;
        Buzzer_On();
    }
}

3.3 红外检测程序

红外检测与声音检测类似,通过 GPIO 检测。

uint8_t ir_flag = 0;

void Sensor_IRCheck(void)
{
    if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_1) == 1) // 红外传感器接入PA1
    {
        ir_flag = 1;
        Buzzer_On();
    }
}

3.4 GSM 短信模块程序

GSM 模块通过 AT 指令控制发送短信。

void GSM_SendMessage(char *phone, char *msg)
{
    USART1_SendString("AT+CMGF=1rn");      // 设置短信模式
    Delay_ms(200);
    USART1_SendString("AT+CMGS="");
    USART1_SendString(phone);
    USART1_SendString(""rn");
    Delay_ms(200);
    USART1_SendString(msg);
    USART1_SendData(0x1A);   // 发送 Ctrl+Z 结束符
    Delay_ms(5000);
}

3.5 报警处理程序

系统设置 35 秒的上报间隔机制,避免短信频繁发送。

uint32_t last_report_time = 0;

void GSM_Report(void)
{
    uint32_t current_time = millis();
    if(current_time - last_report_time >= 35000)
    {
        if(sound_flag || ir_flag)
        {
            if(sound_flag && ir_flag)
                GSM_SendMessage("13800138000", "警告: 声音与人体异常同时触发!");
            else if(sound_flag)
                GSM_SendMessage("13800138000", "警告: 声音异常!");
            else if(ir_flag)
                GSM_SendMessage("13800138000", "警告: 检测到人体入侵!");
        }
        sound_flag = 0;
        ir_flag = 0;
        last_report_time = current_time;
        Buzzer_Off();
    }
}

4 总结

本系统基于 STM32 单片机,融合了声音检测、红外人体检测与 GSM 短信报警功能,形成了一套完整的智能家居防盗系统。其特点如下:

  1. 实时性强:能够快速检测到声音或人体入侵信号,并即时触发报警;
  2. 远程报警:通过 GSM 模块向用户手机发送短信,即使用户不在家也能实时获悉异常情况;
  3. 误报抑制:传感器灵敏度可调,短信报警设置 35 秒间隔,减少因频繁触发造成的干扰;
  4. 扩展性强:系统可拓展更多传感器,如烟雾传感器、门磁传感器,实现更加全面的家庭安全防护。

综上所述,本设计不仅在理论层面具备较高的研究价值,在实际应用中也能够有效提升家庭防护能力,为构建智能家居安全体系提供了可行的解决方案。

相关推荐