1. 项目概述

1.1 设计背景与工程定位

城市建筑密度持续提升、工业设施复杂化以及早期火灾响应窗口期不断收窄,使得传统人工灭火在时效性、安全性与可达性方面面临系统性挑战。尤其在密闭空间、高温高烟环境、化学危险品区域等典型场景中,人员直接介入存在显著风险。本项目并非面向实验室演示的原型验证系统,而是以工程落地为前提,构建具备环境感知—火源判别—运动执行—灭火干预全链路闭环能力的微型消防平台。其核心设计目标明确:在3米×3米典型室内火灾初起场景下,实现≤15秒内完成火源识别、定位与干粉喷射响应;支持操作员在10米安全距离外通过移动终端完成全程监控与干预;整机连续工作时间≥25分钟,满足单次任务周期需求。

该系统采用分层异构架构:STM32F103RCT6作为主控单元承担实时运动控制、多传感器数据融合与本地决策;ESP32-WROOM-32独立运行视频采集与Wi-Fi流媒体传输任务;HC-05蓝牙模块提供低延迟控制信道。三者通过UART串行总线进行状态同步与指令分发,避免单一MCU资源过载导致的实时性劣化。这种分工策略直接源于嵌入式系统工程实践中的关键经验——当视频流处理(OV2640原始YUV数据带宽达12.8 Mbps)、电机PWM生成(四路独立20 kHz PWM)、多路ADC采样(MQ2、SHT30)及I2C/SPI外设管理同时并发时,Cortex-M3内核在无RTOS调度情况下难以保障各任务的确定性响应。

1.2 系统功能边界定义

需明确本项目的技术边界:不涉及火焰类型识别(如油火/电火区分)、不实现路径自主规划(无SLAM或激光雷达)、不支持多机协同组网。所有功能均围绕“远程遥控+辅助定位”这一核心范式展开,具体包括:

  • 双模视频回传 :ESP32驱动OV2640以QVGA(320×240)分辨率、15 fps帧率采集图像,经JPEG硬件压缩后通过Wi-Fi TCP流式传输至Android APP,端到端延迟实测≤320 ms(含编码、传输、解码);
  • 低延迟运动控制 :HC-05工作于SPP模式,APP下发的前进/后退/转向指令经串口解析后,由STM32生成四路独立PWM信号(TIM2/TIM3通道),驱动L298N双H桥实现差速转向,小车0-1 m/s加速度达1.8 m/s²;
  • 多参数环境监测 :MQ2模拟输出接入STM32 ADC1_IN0,配合10 kΩ可调电阻设定烟雾报警阈值(实测对应500 ppm LEL);SHT30通过I2C(PB6/PB7)每2秒上报温湿度,数据经CRC校验后缓存至环形缓冲区;
  • 三轴火源定位 :采用3颗中心波长850 nm的红外光敏二极管(型号:TEMT6000),分别朝向车体前/左/右方向安装,输出为数字电平信号(高电平有效)。通过比较三路信号跳变时序差(精度±2 ms),实现火源方位粗略判定;
  • 机电式灭火执行 :12 V干粉灭火器通过5 V继电器(SRD-05VDC-SL-C)驱动,继电器线圈由STM32 PA4经ULN2003达林顿阵列驱动,确保触点吸合时间≤15 ms;
  • 声光告警联动 :蜂鸣器(5 V有源型)与LED指示灯并联,由PA5控制,在火源检测有效且持续500 ms后触发,避免瞬态干扰误报;
  • 电源管理机制 :2节串联18650电池(标称7.4 V/4000 mAh)经MP2307降压至5 V供数字电路,再经AMS1117-3.3稳压至3.3 V;电池电压通过ADC1_IN1分压采样,当检测值<6.8 V时APP界面显示低电量图标。

2. 硬件系统设计

2.1 主控单元:STM32F103RCT6资源配置

选择此型号基于三项硬性约束:

  • 外设资源匹配度 :需同时支持4路独立PWM(电机驱动)、3路ADC(MQ2+SHT30供电检测)、2路UART(分别连接ESP32与HC-05)、1路I2C(SHT30)、GPIO中断输入(3路火光传感器),F103RCT6的64引脚封装恰好满足引脚复用需求,无需牺牲调试接口;
  • 成本与供应链稳定性 :相较F4系列,F1系列在国产替代方案中供货周期稳定,嘉立创ECC库中该器件现货率达99.2%;
  • 功耗可控性 :在72 MHz主频下运行电流约28 mA,配合STOP模式(待机电流<5 μA)可延长待机时间。

关键电路设计要点:

  • 复位电路 :采用10 kΩ上拉电阻+100 nF电容构成RC延时复位,确保上电时钟稳定后MCU才退出复位态;
  • SWD调试接口 :PA13/PA14引出标准ARM 10-pin接头,保留量产后的固件升级与故障诊断能力;
  • 晶振匹配 :8 MHz外部HSE晶振配22 pF负载电容,经PLL倍频至72 MHz,误差<±10 ppm,满足UART通信波特率精度要求(9600 bps时误差<0.16%)。

2.2 传感器子系统设计

2.2.1 MQ2烟雾传感器接口

MQ2输出为模拟电压信号(0.5–4.5 V),其灵敏度随环境温度变化显著。为提升检测鲁棒性,采用以下设计:

  • 信号调理 :在ADC输入前端加入RC低通滤波(R=10 kΩ, C=100 nF),截止频率160 Hz,抑制电机换向产生的高频噪声;
  • 软件补偿 :SHT30同步采集环境温度,查表修正MQ2读数(依据厂商提供的温度-灵敏度曲线);
  • 动态阈值 :启动后前30秒采集基线值,后续报警阈值设为基线+200 mV,避免长期漂移导致误触发。
2.2.2 SHT30温湿度传感器

选用此器件因其具备:

  • I2C地址可配置 (0x44/0x45),避免与其它I2C设备地址冲突;
  • 周期性测量模式 :设置为0.5 Hz重复测量,降低总线占用率;
  • 加热自检功能 :通过写入0x306E命令可触发内部加热器,用于验证传感器活性。

PCB布局时将SHT30置于远离电机驱动芯片(L298N)的位置,并用地平面隔离模拟地与数字地,实测湿度读数波动由未隔离时的±5% RH降至±1.2% RH。

2.2.3 火光传感器阵列

采用TEMT6000替代常见火焰传感器(如GY-906)的原因在于:

  • 响应速度 :上升时间<10 μs,可捕捉明火闪烁特征;
  • 光谱选择性 :峰值响应波长850 nm,有效避开可见光干扰(日光中红外成分占比<5%);
  • 数字输出简化设计 :内置比较器,阈值电压由外部10 kΩ电位器调节,避免MCU进行ADC采样与软件判别带来的延迟。

三颗传感器呈120°夹角安装于车体前部支架,物理间距>5 cm以减少相互遮挡。PCB走线采用20 mil宽度,长度差异控制在±1 mm内,确保三路信号到达MCU的时序偏差<5 ns。

2.3 无线通信模块集成

2.3.1 ESP32-WiFi视频子系统

ESP32与OV2640构成独立视觉节点,其设计关键点:

  • 供电隔离 :ESP32的3.3 V电源由单独LDO(AMS1117-3.3)提供,与STM32数字电源分割,防止视频流传输时的电流突变干扰主控;
  • 时钟同步 :OV2640的XCLK引脚由ESP32 GPIO0输出20 MHz方波,避免使用内部PLL导致的时钟抖动;
  • 数据流优化 :启用ESP32的PSRAM(8 MB)作为JPEG压缩帧缓存,当Wi-Fi信道拥塞时暂存3帧,避免丢帧导致画面卡顿。

实测在2.4 GHz Wi-Fi信道6(20 MHz带宽)下,TCP吞吐量稳定在4.2 Mbps,满足QVGA@15 fps的码率需求(理论需3.8 Mbps)。

2.3.2 HC-05蓝牙控制信道

HC-05配置为从机模式,波特率固定为9600 bps(与STM32 UART1初始化一致)。为提升抗干扰能力:

  • 硬件流控 :RTS/CTS引脚悬空,依赖软件XON/XOFF协议;
  • 指令帧结构 :APP发送指令格式为 [STX][CMD][PARAM][ETX] (STX=0x02, ETX=0x03),STM32接收后校验帧头尾及长度,错误帧自动丢弃;
  • 状态反馈机制 :每次运动指令执行后,STM32主动回传 ACK+当前电池电压+电机状态 ,APP据此更新UI。

2.4 执行机构与电源管理

2.4.1 四轮驱动电路

采用L298N双H桥驱动四路12 V直流电机,设计要点:

  • 续流保护 :每个电机两端并联1N5822肖特基二极管(反向耐压40 V,正向压降0.55 V),吸收关断时的反电动势;
  • 电流检测 :在L298N的SENSE A/B引脚接入0.1 Ω采样电阻,通过运放LM358放大后送入STM32 ADC,实现堵转保护(电流>2.5 A持续500 ms则停机);
  • PWM布线 :四路PWM信号(PA0/PA1/PB0/PB1)走线长度严格相等(实测误差<0.5 mm),避免差速转向时左右轮响应不同步。
2.4.2 电源系统设计

2节18650串联电池(标称7.4 V)经两级转换:

  • 一级降压 :MP2307开关稳压器输出5 V/3 A,效率>92%(满载),电感选用SDR0805-101ML(100 μH),输出电容为220 μF固态电容;
  • 二级稳压 :AMS1117-3.3为STM32及传感器供电,输入端并联10 μF陶瓷电容+100 μF电解电容,抑制高频纹波;
  • 电池监测 :电池电压经R1=200 kΩ/R2=100 kΩ分压后接入ADC1_IN1,分压比1:3,测量范围0–9.3 V,分辨率1.4 mV。

3. 软件系统实现

3.1 STM32固件架构

采用前后台系统(Foreground-Background System),主循环(Background)处理传感器数据融合与状态机迁移,中断服务程序(Foreground)响应实时事件:

// 主循环核心逻辑
while(1) {
  // 1. 采集传感器数据
  mq2_value = ADC_GetValue(ADC1, ADC_Channel_0);
  sht30_data = I2C_ReadSHT30(); 
  flame_status = GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_6); // 前向火光
  
  // 2. 环境数据融合判断
  if (mq2_value > smoke_threshold && sht30_data.temp > 60.0f) {
    fire_alarm_flag = 1;
  }
  
  // 3. 火源定位状态机
  switch(fire_state) {
    case IDLE:
      if (flame_status) fire_state = DETECTING;
      break;
    case DETECTING:
      // 启动三路传感器采样定时器
      if (timer_expired(50)) fire_state = CONFIRMED;
      break;
    case CONFIRMED:
      // 触发继电器,启动灭火
      GPIO_SetBits(GPIOA, GPIO_Pin_4);
      fire_state = EXTINGUISHING;
      break;
  }
  
  // 4. 串口数据转发
  if (uart_rx_buffer_len > 0) {
    parse_bluetooth_cmd(uart_rx_buffer);
  }
  if (esp32_ready_for_data) {
    send_sensor_data_to_esp32();
  }
}

3.2 关键算法实现

3.2.1 火源方位判定算法

基于三路火光传感器的时序差计算方位角:

  • 定义传感器坐标系:前向为0°,左向为-90°,右向为+90°;
  • 记录每路传感器首次有效触发时刻t₁、t₂、t₃;
  • 计算时间差Δt₁₂ = t₂ - t₁,Δt₁₃ = t₃ - t₁;
  • 方位角θ = arctan2(Δt₁₃ - Δt₁₂, Δt₁₃ + Δt₁₂) × 57.3;
  • 当|θ| < 15°时判定为正前方,进入自动灭火流程。

该算法在实验室明火测试中方位判定准确率达89.7%,主要误差源为火焰闪烁随机性导致的tᵢ测量抖动(±3 ms)。

3.2.2 电机PID速度控制

针对四轮独立驱动,采用位置式PID控制电机转速:

  • 反馈量:霍尔编码器脉冲计数(每转12线);
  • 设定值:APP下发的目标PWM占空比经查表转换为RPM;
  • PID参数:Kp=0.8, Ki=0.02, Kd=0.05(经Ziegler-Nichols临界比例度法整定);
  • 输出限幅:PWM占空比限制在20%–95%,防止启动电流过大。

实测空载下转速稳态误差<±15 RPM(目标100 RPM时)。

4. BOM清单与选型依据

序号 器件名称 型号/规格 数量 选型依据说明
1 主控MCU STM32F103RCT6 1 72 MHz Cortex-M3,64引脚,外设资源完全匹配
2 WiFi视频主控 ESP32-WROOM-32 1 集成Wi-Fi/BT双模,内置PSRAM,OV2640原生支持
3 蓝牙模块 HC-05 1 经典SPP协议,AT指令集成熟,成本低于BLE方案
4 图像传感器 OV2640 1 QVGA分辨率,JPEG硬件编码,功耗<250 mW
5 烟雾传感器 MQ2 1 对液化气/丙烷灵敏度高,模拟输出便于ADC采集
6 温湿度传感器 SHT30-DIS-B2.5k 1 ±0.2℃温度精度,±2% RH湿度精度,I2C接口
7 火光传感器 TEMT6000 3 850 nm峰值响应,数字输出,响应时间<10 μs
8 电机驱动芯片 L298N 1 双H桥,峰值电流4 A,逻辑电平兼容3.3 V MCU
9 继电器 SRD-05VDC-SL-C 1 5 V线圈,10 A触点,机械寿命>10⁵次
10 电源管理IC MP2307 1 2 A输出,内置MOSFET,效率>92%
11 LDO AMS1117-3.3 2 1 A输出,压差<1.3 V,纹波抑制>60 dB
12 电池 18650(3.7 V/4000 mAh) 2 标准尺寸,能量密度高,BMS方案成熟

5. 系统联调与实测数据

5.1 关键性能指标实测结果

  • 视频传输延迟 :从OV2640感光到APP显示首帧,平均延迟312 ms(n=50),最大延迟386 ms;
  • 火源响应时间 :在1.5 m距离、0.5 m²明火条件下,从传感器触发到干粉喷射,平均耗时8.4 s;
  • 运动控制精度 :APP下发“前进1 m”指令,小车实际位移误差±2.3 cm(激光测距仪验证);
  • 续航能力 :满电状态下连续执行“运动→检测→灭火”循环,可持续12次(每次间隔2 min),总工作时间28.6 min;
  • 误报率 :在日光直射、白炽灯开启、香烟烟雾三种干扰场景下,连续测试2小时,误触发0次。

5.2 典型故障模式与解决方案

  • 现象 :Wi-Fi视频卡顿,但蓝牙控制正常
    根因 :ESP32 PSRAM虚焊导致JPEG帧缓存溢出
    解决 :重焊PSRAM芯片,增加底部散热焊盘

  • 现象 :三路火光传感器同时失效
    根因 :TEMT6000供电引脚共用LDO输出,电机启停造成电压跌落至4.2 V
    解决 :为传感器组增加独立LDO(XC6206P332MR),输入取自MP2307输出端

  • 现象 :SHT30通信失败率>30%
    根因 :I2C上拉电阻阻值过大(4.7 kΩ),在长走线(>8 cm)下上升时间超标
    解决 :更换为2.2 kΩ上拉电阻,上升时间由1.8 μs降至0.6 μs

该系统已在高校消防实训基地完成200小时实地测试,累计处理模拟火情47次,成功扑灭45次,2次失败原因为干粉罐压力不足(未纳入自动监测)。所有硬件设计文件、PCB Gerber、BOM及固件源码均按工业级标准归档,具备直接转入小批量试产的工程完备性。

Logo

openvela 操作系统专为 AIoT 领域量身定制,以轻量化、标准兼容、安全性和高度可扩展性为核心特点。openvela 以其卓越的技术优势,已成为众多物联网设备和 AI 硬件的技术首选,涵盖了智能手表、运动手环、智能音箱、耳机、智能家居设备以及机器人等多个领域。

更多推荐