基于STM32单片机的智能家居系统设计与实现

第一章 引言

随着物联网技术的发展,智能家居已从单一设备控制向多设备联动、场景化服务演进。传统智能家居方案多依赖专用网关或昂贵的嵌入式平台,存在成本高、兼容性差、二次开发难度大等问题。基于STM32单片机的智能家居系统,凭借STM32丰富的外设接口(ADC、SPI、I2C、UART等)、高性能处理能力(72MHz-180MHz主频)及低功耗特性,可实现多设备集成控制、环境自适应调节及远程交互,兼顾成本与扩展性。本设计以STM32为核心,整合环境监测、设备控制、安防报警、人机交互等功能,构建“感知-决策-执行”的闭环系统,满足家庭场景下的智能化需求。该系统不仅适用于普通家庭的智能化改造,还为物联网、嵌入式系统等领域的实践教学提供典型案例,助力学习者掌握多模块协同、无线通信、智能控制算法等核心技术。

第二章 系统总体设计

本系统采用“分布式感知+集中式决策+联动式执行”的架构,核心目标是实现家居设备的智能化控制、环境参数的实时监测及异常状态的快速响应。系统分为硬件与软件两部分,整体架构如图1所示。

2.1 硬件组成

以STM32F103ZET6单片机为核心,包含六大模块:

  • 环境感知模块:采集温湿度(DHT11)、光照强度(BH1750)、有害气体(MQ-4燃气传感器、MQ-2烟雾传感器),全面感知室内环境;
  • 设备控制模块:通过继电器控制空调、灯光、插座等强电设备,步进电机驱动窗帘,PWM信号调节LED亮度与色温;
  • 安防模块:门窗磁传感器检测开合状态,PIR红外传感器监测人体入侵,异常时触发声光报警;
  • 人机交互模块:2.4英寸TFT触摸屏实现本地操作(场景切换、参数设置),LD3320语音模块支持语音指令(如“打开客厅灯”);
  • 无线通信模块:ESP8266 WiFi模块实现与手机APP(基于阿里云IoT平台)的远程通信,支持数据上传与指令接收;
  • 电源模块:12V直流供电,经DC-DC转换为5V(继电器、电机)与3.3V(STM32、传感器),确保各模块稳定工作。

2.2 软件架构

基于Keil MDK开发环境,采用FreeRTOS实时操作系统实现多任务调度,主要模块包括:

  • 数据采集任务:周期性(1s)读取传感器数据,经滤波处理后存储至全局变量;
  • 智能决策任务:根据环境参数与预设规则(如“光照>5000lux时自动关窗帘”“燃气浓度>500ppm时关闭阀门并报警”)生成控制指令;
  • 设备控制任务:解析决策指令,驱动继电器、电机等执行机构,同步更新设备状态;
  • 通信任务:通过WiFi模块与云端/手机APP交互,上传环境数据与设备状态,接收远程控制指令;
  • 交互任务:响应触摸屏操作与语音指令,切换工作模式(手动/自动)、调整场景参数(如“睡眠模式”关闭主灯、开启夜灯)。

2.3 工作流程

系统上电后初始化各模块,进入自动模式:环境传感器实时采集数据,智能决策模块根据预设逻辑生成控制指令(如温湿度过高时启动空调);用户可通过触摸屏、语音或手机APP手动干预(如切换“离家模式”关闭所有设备、启动安防);若安防模块检测到异常(如门窗被撬、燃气泄漏),立即触发蜂鸣器+LED报警,并通过APP推送预警信息。

第三章 硬件电路与软件实现

3.1 硬件电路设计

3.1.1 核心控制电路

STM32F103ZET6作为主控,其PA0-PA3连接ADC通道,采集MQ-4、MQ-2的模拟信号;PB0-PB2通过I2C接口连接DHT11(温湿度)、BH1750(光照);PC0-PC7连接8路继电器模块,控制灯光、插座等设备;PD0-PD3连接ULN2003驱动板,驱动步进电机控制窗帘;PE0-PE2连接PIR红外、门窗磁传感器,检测安防状态。

3.1.2 通信与交互电路
  • WiFi模块:ESP8266通过USART2(PA2-TX、PA3-RX)与STM32通信,波特率115200,支持AT指令配置连接阿里云IoT平台;
  • 语音模块:LD3320通过SPI接口(SCK-PC10、MOSI-PC12、MISO-PC11)与STM32连接,预存“打开灯”“关闭窗帘”等10条指令;
  • 触摸屏:2.4英寸TFT-LCD通过FSMC接口(地址线A0、数据线D0-D15)与STM32连接,支持触摸操作与图形化显示(环境参数、设备状态)。
3.1.3 报警与电源电路

报警模块由蜂鸣器(经PNP三极管驱动,连接PB12)与红色LED(连接PB13)组成,异常时同步触发;电源模块采用LM2596-5V与AMS1117-3.3V稳压芯片,分别为继电器、电机与STM32、传感器供电,输入端接12V车载电源接口。

3.2 软件实现

3.2.1 系统初始化

FreeRTOS初始化后创建5个任务:数据采集(优先级3)、智能决策(优先级4)、设备控制(优先级5)、通信(优先级2)、交互(优先级3),任务栈大小均为512字节。初始化GPIO、ADC、I2C、UART等外设,配置ESP8266连接WiFi与阿里云平台,注册设备三元组(ProductKey、DeviceName、DeviceSecret)。

3.2.2 数据采集与处理
  • 模拟信号采集:ADC采集MQ-4、MQ-2输出的0-5V电压,通过公式“浓度(ppm)=(电压/5V)×满量程”换算(MQ-4满量程10000ppm),采用滑动平均滤波(10次采样取平均)降低噪声;
  • 数字信号采集:I2C读取BH1750的光照值(lux),单总线读取DHT11的温湿度(℃、%RH),直接获取门窗磁与PIR的高低电平状态(高电平表示异常)。
3.2.3 智能决策逻辑

采用“规则库+场景模式”双驱动:

  • 规则库:预设环境阈值(如温度>26℃启动空调,湿度>70%启动除湿)、联动关系(如开门时自动开灯,离家后关闭所有设备);
  • 场景模式:支持“回家”“睡眠”“离家”3种模式,通过触摸屏或APP切换:
    • 回家模式:开启客厅灯、窗帘打开50%、空调调至25℃;
    • 睡眠模式:关闭主灯、开启夜灯、窗帘全关、空调静音;
    • 离家模式:关闭所有设备、启动安防监测。
3.2.4 通信与交互
  • WiFi通信:采用MQTT协议与阿里云IoT平台通信,上报数据格式为JSON(如{"temp":25,"hum":50,"gas":300}),接收远程指令(如{"cmd":"light","status":"on"});
  • 语音交互:LD3320识别指令后通过SPI发送识别码,STM32解析后执行对应操作(如识别码0x01对应“打开客厅灯”);
  • 触摸屏交互:基于GUI库实现界面显示,包含首页(环境参数+设备状态)、场景页(模式切换)、设置页(阈值调整),触摸事件通过中断处理。

第四章 系统测试与结果分析

在模拟家庭环境(15㎡房间)中进行功能、性能及稳定性测试,结果如下:

4.1 功能测试

  • 环境监测:DHT11测量温度误差±0.5℃,湿度±3%RH;BH1750光照检测范围0-65535lux,误差±5%;MQ-4在燃气浓度500ppm时触发报警,响应时间<1s;
  • 设备控制:继电器开关灯光/插座响应时间<0.2s;步进电机驱动窗帘从全开到全关耗时8s,定位误差≤2%;PWM调光支持1-100%亮度调节,无频闪;
  • 交互功能:触摸屏操作响应时间<0.3s,界面切换流畅;LD3320语音识别准确率90%(安静环境),支持1米内指令识别;手机APP远程控制延迟<1s,数据更新周期1s;
  • 安防报警:门窗磁触发后300ms内启动声光报警,同时APP推送“门窗异常”信息;PIR检测到人体移动时,联动开灯并记录时间。

4.2 性能测试

  • 实时性:FreeRTOS任务切换时间<1ms,多设备同时控制(如开灯+开空调+关窗帘)无卡顿;
  • 通信稳定性:WiFi模块连续24小时通信,数据上传成功率99.8%,无断线重连失败;
  • 功耗:系统待机功耗(仅传感器与STM32工作)<50mA,满载功耗(所有设备启动)<300mA,适配家庭供电。

4.3 稳定性测试

系统连续运行72小时,经历温度(10-35℃)、湿度(30-70%)变化及100次手动/远程操作,无死机、数据错乱或设备失控现象;电源电压在9-15V波动时,各模块工作正常。

第五章 总结与展望

本系统实现了智能家居的核心功能,基于STM32的硬件架构兼顾性能与成本,FreeRTOS的多任务设计提升了系统响应速度,WiFi与语音交互增强了用户体验。测试结果表明,系统功能完善、运行稳定,成本控制在300元以内,适合家庭场景应用。

改进方向可包括:引入BLE模块支持蓝牙mesh组网,扩展设备控制数量;集成AI算法(如基于历史数据的自适应调节);增加电池供电模块,适配无线传感器节点。总体而言,该设计为中小型智能家居系统提供了可行方案,具有较强的实用价值与教学意义。请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
文章底部可以获取博主的联系方式,获取源码、查看详细的视频演示,或者了解其他版本的信息。
所有项目都经过了严格的测试和完善。对于本系统,我们提供全方位的支持,包括修改时间和标题,以及完整的安装、部署、运行和调试服务,确保系统能在你的电脑上顺利运行。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐