一、系统架构设计
- 分层架构
感知层:STM32主控芯片(如STM32F103C8T6)集成温湿度传感器(DHT22)、光照传感器(BH1750)、烟雾传感器(MQ-2)等,实现环境数据采集。
传输层:
本地通信:ESP8266(WiFi)或HC-05(蓝牙)实现设备互联。
云端通信:通过MQTT协议(阿里云EMQX、OneNet平台)上传数据,接收远程指令。
执行层:继电器模块控制家电(灯、空调),步进电机驱动窗帘开合。
软件架构
底层驱动:STM32 HAL库实现传感器接口(I2C、UART)、通信模块驱动(WiFi/蓝牙)。
中间件:FreeRTOS多任务调度,处理数据采集、通信、控制逻辑。
应用层:
本地控制:OLED显示实时数据,按键/语音交互。
云端服务:通过MQTT订阅/发布主题,实现远程监控与控制。
二、核心功能模块
- 环境监测
传感器集成:
温湿度(DHT22,精度±0.5℃/±2%RH)。
光照(BH1750,I2C接口,精度±20%)。
烟雾(MQ-2,模拟信号经ADC采样)。
数据预处理:卡尔曼滤波消除噪声,异常值检测(如烟雾浓度突变)。
设备控制
继电器控制:光耦隔离保护MCU,支持PWM调光/调速(如风扇转速0-3000RPM)。
窗帘电机驱动:L298N模块控制步进电机,实现开合角度调节。
用户交互
本地交互:0.96寸OLED显示(SSD1306驱动),4×4矩阵键盘设置阈值。
远程控制:
手机APP:基于UniApp框架开发,支持实时数据查看、场景模式切换(如“回家模式”自动开灯)。
语音控制:ASRPRO语音模块解析指令(如“调亮灯光”),支持唤醒词过滤。
- 智能场景
阈值联动:温度>30℃启动风扇,光照<50lux开启LED补光。
定时任务:每日7:00自动关闭窗帘,19:00开启客厅照明。
三、硬件选型与电路设计
| 模块 | 型号/参数 | 功能说明 | 参考来源 |
|---|---|---|---|
| 主控芯片 | STM32F103C8T6(72MHz, 64KB Flash) | 核心控制器,支持多路传感器与通信接口 | |
| WiFi模块 | ESP8266-01S(802.11 b/g/n) | 云端数据传输,支持AT指令或SDK开发 | |
| LoRa模块 | E22-400M30S(470MHz, 30dBm) | 长距离传输(1-3km),适合大户型部署 | |
| 传感器 | DHT22(温湿度)、BH1750(光照) | 高精度环境监测 | |
| 执行器 | 继电器模块(5V/10A)、步进电机 | 控制家电开关、窗帘开合 |
电路设计要点:
电源管理:STM32采用3.3V LDO供电,传感器模块通过总线供电,避免干扰。
信号隔离:继电器控制端加光耦隔离(如PC817),防止反电动势损坏MCU。
抗干扰措施:关键信号线加磁珠滤波,数字地与模拟地单点接地。
四、软件开发流程
环境搭建
STM32CubeMX:配置时钟树(HSE+PLL)、外设(I2C、UART、ADC)。
Keil MDK:创建工程,集成HAL库与FreeRTOS。
核心代码实现
传感器驱动:
// DHT22读取温湿度(HAL库) DHT22_StatusTypeDef status = DHT22_Read_Data(&temperature, &humidity); if(status == DHT22_OK) { printf("Temp: %.1f°C, Hum: %.1f%%\r\n", temperature, humidity); }MQTT通信:
// 阿里云IoT平台数据发布 MQTT_Publish("home/sensor/temperature", "{\"temp\":%.1f}", temperature);语音指令解析:
// ASRPRO模块指令处理 if(strcmp(received_cmd, "open_light") == 0) { HAL_GPIO_WritePin(LED_GPIO_Port, LED_Pin, GPIO_PIN_SET); }
云端平台对接
阿里云IoT:创建产品与设备,定义物模型(温度、湿度、开关状态)。
数据可视化:通过DataV制作仪表盘,展示实时环境数据与设备状态。
参考代码 智能家居控制系统设计 www.youwenfan.com/contentalg/135480.html
五、系统优化与扩展
低功耗设计
休眠模式:空闲时进入Stop模式(电流<2μA),RTC定时唤醒。
动态采样:非活跃时段降低传感器采样频率(如从1Hz降至0.1Hz)。
可靠性增强
看门狗定时器:防止程序跑飞,超时复位。
数据冗余:双传感器(如DHT22+DS18B20)交叉校验。
功能扩展
AI场景预测:基于历史数据训练模型,预测用户行为(如提前启动空调)。
安防联动:烟雾超标时自动关闭燃气阀门,推送报警至手机。
六、测试与部署
功能测试
环境监测:对比专业仪器(如Fluke温湿度计),误差控制在±2%以内。
控制延迟:本地指令响应<100ms,云端指令延迟<500ms。
部署方案
家庭场景:单网关覆盖100㎡,节点部署于各房间。
别墅方案:多网关组网(LoRa自组网+4G回传),支持跨区域联动。
七、成本与性能对比
| 方案 | 成本(单节点) | 通信距离 | 典型应用场景 |
|---|---|---|---|
| WiFi方案 | 80-120元 | 50-100米 | 小户型公寓 |
| LoRa方案 | 50-80元 | 1-3公里 | 别墅/工厂 |
| 蓝牙Mesh方案 | 60-100元 | 30-50米 | 多房间智能联动 |
八、总结与展望
本系统通过STM32实现低成本、高可靠的智能家居控制,支持本地闭环与云端远程管理。