STM32 单片机智能家居安防控制系统
一、设计背景和意义
1.1 设计背景
在日常家庭财产防护、老人儿童居家安全监护及全屋安防场景联动中,异常快速监测与警情精准识别是核心需求。传统家居安防方式存在局限:高端系统成本高、部署复杂且生态封闭;普通简易装置功能单一,缺乏多区域联动与智能判断能力。
本设计以 STM32 单片机为核心,融合高精度安防模块(人体红外、门窗磁、烟雾燃气检测)、LCD 显示、数据存储及蓝牙通信模块,构建低成本、高集成度的物联网智能家居安防控制系统。
1.2 设计意义
系统实现了多维度监测与全场景安防联动,支持人体红外异常监测、门窗状态检测、烟雾燃气浓度实时监测等。配备 LCD 实时显示模块,直观呈现各安防点位状态及警情类型,支持数据自动存储。新增分级预警与自动联动防御功能,当参数超出范围时自动触发声光报警并联动对应设备,无需人工干预即可遏制安全风险。
从技术实践角度,利用 STM32 低功耗、高性价比优势,在保证监测精度的前提下降低系统成本,支持模块化扩展,具备良好的灵活性与可扩展性。
二、实物展示
下方为实物展示图片

三、硬件功能介绍
3.1 硬件清单
- STM32F103C8T6
- DS1302 时钟电路
- 门磁模块
- 温湿度传感器
- 降压电路
- 蜂鸣器报警
- 火焰传感器
- 烟雾传感器
- WIFI 模块
3.2 功能介绍
- STM32F103C8T6 单片机作为主控单元
- DHT11 温湿度传感器采集温湿度
- MQ-7 采集烟雾浓度/一氧化碳
- 门磁模块监控闯入报警
- DS1302 时钟模块显示实时时间
- 火焰传感器判断是否有明火
- OLED 显示屏显示当前时间和环境信息
- 按键设置阈值,蜂鸣器报警
- 手机 APP 接收环境数据和控制报警开关
四、软件设计流程图

五、硬件 PCB 展示

六、软件主函数展示
int main(void) {
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
MX_USART1_UART_Init();
OLED_Init();
OLED_Clear();
dht11_init();
ds1302_init();
buzz_init();
ir_init();
mq2_init();
butt_init();
() {
(HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_0) == ||
HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_1) == ||
HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_15) == ) {
(jingbflag) {
jingbao = ;
(HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_0) == ) {
huo = ;
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_7, GPIO_PIN_SET);
OLED_Clear();
OLED_ShowCHinese(, , );
} {
huo = ;
}
(HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_1) == ) {
mei = ;
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_7, GPIO_PIN_SET);
OLED_Clear();
OLED_ShowCHinese(, , );
} {
mei = ;
}
(HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_15) == ) {
ren = ;
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_7, GPIO_PIN_SET);
OLED_Clear();
OLED_ShowCHinese(, , );
} {
ren = ;
}
}
} {
huo = ; mei = ; ren = ;
(jingbao == ) {
OLED_Clear();
jingbao = ;
}
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_7, GPIO_PIN_RESET);
rt = dht11_read(buf);
OLED_ShowCHinese(, , );
OLED_ShowNum(, , buf[], , );
OLED_ShowCHinese(, , );
OLED_ShowNum(, , buf[], , );
showtime();
}
(rxok == ) {
(rxdata[] == ) {
((rxdata, ) != ) { LEDON; }
((rxdata, ) != ) { LEDOFF; }
}
}
}
}



