航空耳罩
耳道气压超载预警监测系统

BMP280 高频采样 · STM32 压差实时计算 · 三级预警保护

权威文献支撑
Jumah et al.
2022
Aerospace Med Human Perform
双盲 RCT
PREP 不能改善咽鼓管功能。VAS 评分 p < 0.003, n = 32
Klokker et al.
2023
Aerospace Med Human Perform
RCT
PREP 不能预防气压伤。Teed 评分无改善,8000ft 模拟下降
Ferentino
2023
Eur Arch Otorhinolaryngol
文献回顾
回顾 5 项试验,PREP 无明确效果,主观结果矛盾
Mirza & Richardson
2022
J Laryngol Otol
临床综述
建立中耳气压伤 Teed 0-3 级诊断框架
Fischer et al.
2023
Frontiers in Physiology
方法论
首次用耳道麦克风客观记录咽鼓管开放事件
4 / 4
四项独立临床研究 (2022-2024) 一致结论:被动式压力平衡耳塞(PREP)缺乏有效性证据。最高等级系统综述明确表示现有证据不足以支持其使用。
本项目创新路径:从「被动阻尼」升级为「BMP280 主动传感器闭环监测预警」。 真实气压数据 + STM32 实时算法 + 分级声光报警 = 填补现有技术路线的临床空白。
↓ 实时监测仪表盘 ↓

实时监测仪表盘

BMP280 @ 50Hz · STM32F103C8T6 · ΔP/Δt 三级预警

实时气压 · Pressure
------
Pa 帕斯卡
ΔP/Δt 0.0 Pa/s
安 全
变化速率 · Gauge
0 30 80
0.0 Pa/s
累计危险次数
0
气压变化幅度
0100 Pa/s
🤖
DeepSeek AI 实时分析
等待数据接入...
串口实时数据流
Technical documentation · v1.0

航空耳罩 · 耳道气压超载预警系统

面向飞机起降、高铁进隧道和潜水下沉等快速气压变化场景,系统通过 BMP280 采集外部气压,由 STM32 计算压力变化率,并用 Web 仪表盘、OLED、LED 和蜂鸣器给出分级提醒。

BMP280STM32F103C8T6Flask + Web SerialΔP/Δt 分级预警

01 · 系统概览

监测对象持续采集外部气压,观察单位时间内的压力变化速度,而不是把设备误认为主动调压装置。
预警输出SAFE、WARNING、DANGER 三级状态同步显示在网页、OLED、三色 LED 和蜂鸣器上。
部署模式有 STM32 时读取 CH340 串口;未接硬件时自动切换模拟数据,便于演示和软件联调。

02 · 系统流程图与数据流

BMP280
气压采样
STM32
补偿与计算
CH340
USB 串口
Flask
/api/data
网页仪表盘
分级提示

STM32 以 50 Hz 读取传感器,计算 ΔP/Δt 后按 30 Pa/s 与 80 Pa/s 两个阈值判定状态。后端将最新数据封装为 JSON,前端每 300 ms 轮询并更新压力、仪表、状态、日志和 AI 建议。

03 · 硬件实物照片

04 · 硬件模块详解

模块作用接口 / 说明
BMP280 气压传感器采集外部大气压力I²C 总线,与 OLED 共用 PB6/PB7;需要 3.3 V 供电。
STM32F103C8T6传感器读取、压力补偿、状态判定72 MHz 主频,50 Hz 采样,输出标准化串口文本。
OLED 0.96 寸本地显示压力、变化率和预警状态I²C 与 BMP280 并联,便于脱离电脑观察。
CH340 USB 转串口连接 STM32 与电脑 Web 后端USART1,9600 bps,8N1。
LED + 蜂鸣器提供无需盯屏的声光提醒SAFE 绿灯、WARNING 黄灯、DANGER 红灯闪烁并蜂鸣。

05 · 引脚接线表

STM32 引脚连接模块功能
PB6BMP280 / OLEDI²C SCL
PB7BMP280 / OLEDI²C SDA
PC13蜂鸣器低电平触发
PA9 / PA10CH340USART1 TX / RX,交叉连接
PA13 / PA14ST-LINK/V2SWDIO / SWCLK 下载调试

06 · 预警算法与状态机

每 20 ms 采样一次: pressure = BMP280_compensate(raw) rate = (pressure_now - pressure_last) / elapsed_seconds abs(rate) < 30 → SAFE 绿色、静音 30 ≤ abs(rate) < 80 → WARNING 黄色、提示注意 abs(rate) ≥ 80 → DANGER 红色闪烁、急促蜂鸣 串口输出格式:P:101325 R:+12.5 S:SAFE Web API:GET /aviation-ear/api/data
本系统用于辅助提醒,不替代航空医疗评估、耳鼻喉科诊断或专业气压设备。出现持续耳痛、眩晕或听力异常时,应停止活动并寻求专业帮助。

07 · 软件基础设置信息

运行环境Windows Server + Python 3.12 + Flask + pyserial + httpx
服务端口5030(NSSM 服务:AviationEar)
网页接口HTTPS /aviation-ear/,反向代理到 Windows 5030
数据接口GET /api/data,返回 pressure、rate、status、alarms、connected 等字段
串口参数9600 bps、8 data bits、no parity、1 stop bit

08 · 软件系统设计

后端由 Flask 提供页面与数据接口,EarplugReader 独立线程负责串口发现、数据解析、模拟模式和 AI 建议。前端不依赖额外框架,使用原生 JavaScript 更新仪表盘,既支持服务器模拟演示,也支持浏览器 Web Serial 直连硬件。

采集层读取 BMP280 补偿后的 Pa 数据,过滤无效串口行并维护最近状态。
分析层计算变化率、累计危险次数和状态机结果,按 3 秒周期生成简短建议。
呈现层压力数值、SVG 仪表、状态徽章、进度条和串口日志同步刷新。

09 · 软件设计

软件模块设计职责关键实现
页面展示模块呈现压力、变化率、预警等级和 AI 建议HTML + CSS + 原生 JavaScript,SVG 仪表与响应式布局。
数据连接模块在服务器模式下轮询后端数据,在本地模式下连接串口Fetch `/api/data`;Web Serial 读取 9600 bps 数据流。
状态计算模块把压力变化率转换为 SAFE / WARNING / DANGER统一使用绝对变化率和 30 / 80 Pa/s 阈值。
后端服务模块提供页面、JSON 接口和串口读取线程Flask 路由 + EarplugReader 后台线程 + 模拟模式兜底。
部署运维模块保证公网访问、自动启动和反向代理NSSM 服务 AviationEar、Windows 5030、Nginx `/aviation-ear/`。
浏览器页面 ├─ 仪表盘渲染:pressure / rate / status / alarms ├─ 数据连接:GET /aviation-ear/api/data └─ 硬件直连:Web Serial → 9600 bps → proc() Flask 后端 ├─ GET / 返回监测页面 ├─ GET /api/data 返回最新 JSON ├─ GET /assets/<file> 返回技术文档硬件图片 └─ EarplugReader 串口读取、模拟数据和 AI 建议

10 · 测试与部署说明

测试项预期结果
打开项目首页仪表盘和本技术文档正常显示,页面无空白。
访问 /api/data返回 JSON,connected 字段为 true。
未连接 STM32自动进入模拟数据模式,仪表盘持续刷新。
接入 CH340识别串口并读取三段式压力数据。
模拟高变化率状态切换为 WARNING / DANGER,并触发对应声光提示。