1. 项目背景与核心价值
红外感应智能卫生间系统是现代化公共空间升级改造的典型方案。去年参与某商业综合体卫生间改造项目时,传统手动冲水装置导致的交叉感染投诉率高达37%,而采用红外感应方案后投诉归零。这种通过非接触式感应实现自动冲水、照明和通风的系统,正在从高端场所向普通公厕普及。
单片机作为控制核心的优势在于其"够用就好"的性价比。STM32F103C8T6这类ARM Cortex-M3内核单片机,以不到20元的成本提供了72MHz主频和丰富外设接口,完全能够胜任多路红外传感器数据处理和继电器控制需求。相比之下,用树莓派等Linux方案不仅成本高出5-8倍,还存在过度设计的问题。
Proteus仿真的必要性体现在三个方面:首先可以验证电路逻辑的正确性,避免直接打板造成经济损失;其次能提前测试不同环境光干扰下的传感器灵敏度;最重要的是能模拟各种异常情况,比如同时多人使用时的信号冲突处理。我在首次设计时通过仿真发现了HC-SR501传感器在潮湿环境下的误触发问题,提前优化了防水设计。
2. 系统架构设计解析
2.1 传感器网络布局方案
人体红外传感器选用HC-SR501模块,其探测距离可调范围0.3-7m,正好覆盖标准卫生间3-4㎡的空间。实际安装时要注意:
- 小便器上方传感器俯角应设置在15-20度
- 马桶区域采用双传感器冗余设计
- 洗手台使用窄角型传感器避免走道误触发
关键参数:传感器输出高电平脉冲宽度可通过板上电位器调节,建议设置为2-3秒以适应不同使用场景。
环境监测部分需要集成:
- DHT11温湿度传感器(监测通风需求)
- MQ-135空气质量传感器(检测氨气浓度)
- BH1750光照传感器(联动照明系统)
2.2 控制核心选型对比
对比三种常见方案:
| 型号 | 价格 | 主频 | GPIO数量 | 开发难度 |
|---|---|---|---|---|
| STM32F103C8T6 | 18元 | 72MHz | 37 | 中等 |
| ATmega328P | 12元 | 16MHz | 23 | 简单 |
| ESP32-WROOM-32D | 35元 | 240MHz | 34 | 复杂 |
选择STM32的三大理由:
- 内置硬件PWM特别适合控制水泵电机
- 12位ADC可精准读取所有传感器数据
- 丰富的定时器资源能实现多任务调度
2.3 执行机构驱动设计
冲水电磁阀选用12V DC常闭型,驱动电路要注意:
- 必须加装1N4007续流二极管保护三极管
- 继电器线圈两端并联100Ω电阻吸收尖峰
- 动作时间通过程序控制在1.5-2秒之间
通风系统采用PWM调速方案:
c复制// 设置TIM1_CH1输出PWM
HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_1);
__HAL_TIM_SET_COMPARE(&htim1, TIM_CHANNEL_1, 75); // 75%占空比
照明控制添加软启动功能:
- 前2秒亮度从10%线性增加到100%
- 无人后先降到30%维持1分钟再关闭
- 使用PID算法平滑调光曲线
3. Proteus仿真实现细节
3.1 传感器信号模拟技巧
在Proteus中模拟人体红外信号:
- 添加PULSE电压源模拟传感器输出
- 设置初始低电平,脉宽2.5秒
- 添加随机间隔(30-120秒)的触发
环境干扰模拟方法:
- 添加50Hz正弦波模拟工频干扰
- 设置突发1秒高电平模拟误触发
- 用电压表监测信号毛刺
3.2 异常情况压力测试
设计六种测试场景:
- 连续快速触发(模拟儿童玩耍)
- 长时持续触发(模拟清洁作业)
- 多区域同时触发
- 传感器信号抖动
- 电源电压波动(9-15V)
- 程序死锁恢复测试
关键断言检查点:
- 电磁阀最大连续动作间隔≥30秒
- 照明开启后至少维持2分钟
- 通风延时关闭时间误差<5%
3.3 仿真电路优化记录
三次迭代改进:
- 初版:发现继电器线圈未加保护二极管
- V2:增加传感器信号RC滤波电路
- V3:添加看门狗电路和电源监控
实测数据对比:
| 版本 | 误触发率 | 响应延迟 | 功耗 |
|---|---|---|---|
| V1 | 18% | 320ms | 1.8W |
| V2 | 5% | 280ms | 1.6W |
| V3 | 0.3% | 250ms | 1.55W |
4. 软件设计关键算法
4.1 多传感器数据融合
采用加权投票算法:
c复制#define WEIGHT_PIR 0.6
#define WEIGHT_LIGHT 0.3
#define WEIGHT_SOUND 0.1
uint8_t detectHuman(){
return (pirState*WEIGHT_PIR +
lightState*WEIGHT_LIGHT +
soundState*WEIGHT_SOUND) > 0.7;
}
状态机设计要点:
- 添加DEBOUNCE状态过滤抖动
- SLEEP状态关闭非必要外设
- ERROR状态自动复位异常传感器
4.2 能耗优化策略
动态时钟调整方案:
- 无人时切换到HSI 8MHz模式
- 检测到移动立即切回72MHz
- ADC采样间隔从100ms调整为1s
电源管理实测数据:
| 模式 | 电流 | 唤醒时间 |
|---|---|---|
| 全速运行 | 45mA | - |
| 低速模式 | 12mA | 150ms |
| 待机模式 | 2.1mA | 800ms |
4.3 抗干扰处理方案
数字滤波三重防护:
- 硬件RC滤波(10kΩ+0.1μF)
- 软件中值滤波(5次采样)
- 状态变化延时确认(≥300ms)
异常处理机制:
- 传感器断线检测(上拉电阻分压)
- 执行机构反馈检测(电流互感器)
- 看门狗超时设置(2.5秒)
5. 常见问题排查指南
5.1 传感器误触发问题
典型症状:
- 无人时突然冲水
- 照明频繁开关
排查步骤:
- 检查传感器接地是否良好
- 测量电源纹波(应<50mV)
- 调整灵敏度电位器
- 添加金属屏蔽罩
经验值:传感器安装高度建议1.8-2.2米,仰角10-15度可最大限度减少误报。
5.2 电磁阀寿命问题
故障表现:
- 冲水时间变长
- 出现漏水现象
维护要点:
- 每月手动全开闭10次
- 进水口加装100目过滤器
- 线圈温度超过60℃立即检修
寿命延长技巧:
- 避免短于1秒的脉冲控制
- 并联0.22μF安规电容
- 使用软启动驱动电路
5.3 系统稳定性提升
EMC改进措施:
- 所有IO口加TVS二极管
- 电源入口添加共模电感
- 信号线使用双绞线
固件健壮性设计:
- 关键变量ECC校验
- 参数存储双备份
- 异常日志循环记录
实测对比:
| 措施 | MTBF提升 |
|---|---|
| 基础设计 | - |
| 加EMC防护 | 3.2倍 |
| 加固件设计 | 5.7倍 |
| 综合优化 | 8.9倍 |
6. 项目扩展方向
6.1 物联网功能集成
添加ESP-01S模块实现:
- 使用情况统计上报
- 故障远程预警
- 固件OTA升级
MQTT主题设计示例:
code复制restroom/floor1/male/urinal1/usage
restroom/floor2/female/cubicle3/status
6.2 能耗数据可视化
开发PC端监控软件:
- 实时显示各设备状态
- 生成能耗趋势图表
- 导出Excel维护记录
典型数据看板包含:
- 当日用水量曲线
- 设备使用热力图
- 异常事件时间轴
6.3 维护模式优化
设计三种维护状态:
- 日常模式:全自动运行
- 清洁模式:保持照明通风
- 维修模式:锁定所有执行器
快速切换方案:
- 门内侧磁簧开关
- NFC标签感应
- 手机APP控制