以下是整理后的系统功能条目,分为硬件模块和功能逻辑两部分:
硬件模块
- STM32 主控板
- 作为核心控制器,负责数据采集、逻辑处理和模块控制。
- 超声波传感器(2 个)
- 检测车辆与障碍物的距离,支持双通道测量。
- 温湿度传感器
- 实时监测环境温度和湿度。
- 显示屏
- 显示系统状态(如距离、温湿度、当前报警状态)。
- 语音提醒模块
- 根据条件触发语音提示,优先级:距离报警 > 结冰报警 > 湿滑报警。
- 按键模块
- 用户交互,用于设置距离、湿度、温度的报警阈值。
- LED 指示灯(4 个)
- 绿灯:系统正常
- 黄灯:距离过近
- 蓝灯:道路湿滑
- 红灯:道路结冰
- 无线通信模块(可选)
- 支持 APP 远程监控数据和系统状态(Wi-Fi)。
功能逻辑
1. 距离检测与报警
- 触发条件:
- 超声波传感器检测的距离低于用户设置的阈值。
- 报警逻辑:
- 语音提示:"注意车辆与障碍物过近"。
- LED 状态:黄灯亮起。
- 恢复条件:
- 距离恢复至阈值以上,语音提示关闭,黄灯熄灭。
2. 道路湿滑检测与报警
- 触发条件:
- 湿度传感器检测的湿度值高于用户设置的阈值。
- 报警逻辑:
- 语音提示:"道路湿滑,注意行车安全"。
- LED 状态:蓝灯亮起。
- 优先级:
- 低于距离报警,高于结冰报警。
- 恢复条件:
- 湿度恢复至阈值以下,语音提示关闭,蓝灯熄灭。
3. 道路结冰检测与报警
- 触发条件:
- 湿度高于阈值 且 温度低于阈值。
- 报警逻辑:
- 语音提示:"道路结冰,注意行车安全"。
- LED 状态:红灯亮起。
- 优先级:
- 低于距离报警,高于湿滑报警。
- 恢复条件:
- 湿度或温度恢复至安全范围,语音提示关闭,红灯熄灭。
4. 系统状态显示
- 显示屏内容:
- 实时显示距离、温度、湿度值。
- 当前报警状态(如距离过近、湿滑、结冰)。
- LED 状态:
- 绿灯:系统正常(无报警)。
- 多状态叠加时,LED 显示优先级:红灯 > 蓝灯 > 黄灯。
5. 阈值设置
- 按键功能:
- 用户通过按键设置距离、湿度、温度的报警阈值。
- 支持阈值保存(如存储在 EEPROM 或 Flash 中)。
6. 语音提示优先级
- 优先级规则:
- 距离报警(最高优先级,实时覆盖其他报警)。
- 结冰报警(次优先级,覆盖湿滑报警)。
- 湿滑报警(最低优先级)。
- 逻辑实现:
- 高优先级报警触发时,立即停止低优先级语音提示。
7. APP 远程监控(可选)
- 功能:
- 实时上传距离、温湿度数据及系统状态。
- 支持远程设置阈值。
- 通信协议:
- 可选用 MQTT、HTTP 或自定义协议。
系统流程图(简化版)
- 初始化:
- 启动硬件模块(传感器、显示屏、语音模块等)。
- 加载阈值配置。
- 主循环:
- 采集距离、温湿度数据。
- 更新显示屏状态。
- 检查报警条件:
- 距离 < 阈值 → 触发距离报警。
- 湿度 > 阈值 → 检查温度,触发湿滑或结冰报警。
- 根据报警状态控制 LED 和语音模块。
- 按键中断:
- 响应按键输入,修改阈值并保存。
- 无线通信(可选):
- 定时上传数据至 APP。
开发建议
- 硬件选型:
- 超声波传感器:HC-SR04 。
- 温湿度传感器:DHT11
- 显示屏:OLED( I2C 接口的 SSD1306)。
- 语音模块:JQ8900。
- WiFi模块:ESP01S
- 代码架构:
- 使用状态机管理报警逻辑。
- 通过定时器中断定期采集传感器数据。
- 测试场景:
- 模拟距离过近、湿滑、结冰等场景,验证报警逻辑和优先级。
基于STM32单片机驾驶防撞系统设计