Atmosphere Demo 1 说明文档(beta5 · 算法 v2 第一版归档)

一、项目简介

Atmosphere 是面向野外溪流/漂流点的山洪 + 泥石流智能监测预警系统。

beta5 为第二版算法(v2)的第一版归档:在 beta4 基础上新增 LCD 现场显示、算法升级到 v2(传感器标定对齐 + 快速滑动基准 + 滞回保持 + 土壤饱和规则),并接入风速网络数据。

二、硬件连接方式

主控:Arduino Nano(ATmega328P,新 Bootloader)

三、软件实现

两个文件(均已放入本文件夹):

FlowSensor.ino —— Arduino 固件(串口 115200,每秒输出一行 JSON):

server.py —— Python Web 服务(端口 8080):

四、预警模型(算法 v2)

等级体系(数字越大越严重):0 = 正常 / 1 = 一级 / 2 = 二级 / 3 = 三级(最高)

最终等级 = max(泥石流 D, 山洪 F, 风速, 流量尖峰, 突变, 土壤饱和)   ← 0~3

泥石流路径:

D = 0.30·S̄ + 0.35·Q̄ + 0.20·dQ̄ + 0.15·ΔS̄

山洪路径(独立指数):

F = 0.60·Q̄ + 0.40·dQ̄

风速路径: ≥25 km/h → 一级;≥40 km/h → 二级;≥60 km/h → 三级

流量尖峰路径: 秒级变化率超当地历史 P95 → 二级;归一化 ≥ 0.8 → 一级(基准不足回退:变化率 ≥ 0.5 L/min/s = 满刻度)

突变路径(秒级响应): 土壤 5 秒内涨 ≥20% / 风速 60 秒内涨 ≥12 km/h → 立即一级

土壤饱和路径(v2 新增): 土壤 ≥85% 或超当地 P90 → 至少一级(土体饱和本身就是危险,不依赖流量)

滞回保持(v2 新增): 升级立即生效并保持;降级需超过保持时间——一级 10 秒 / 二级 15 秒 / 三级 20 秒(防抖)

滑动基准: 24 小时窗口每分钟采样,当前值映射到当地 [P10,P95] → 0~1;冷启动 15 分钟;数据不足回退绝对值(Qn=flow/3、dQn=变化率/0.5)

五、运行方式

  1. 编译上传 FlowSensor.ino 到 Arduino Nano(串口监视器选 115200
  2. 运行 python3 -u server.py
  3. 浏览器打开 http://localhost:8080;拖滑块调节水泵速度
  4. 保持风速服务 http://192.168.1.200:8001/wind 在线

六、版本状态

beta5 为算法 v2 的第一版归档:Demo 1 完结后进入算法迭代阶段(数学预警模型 v1→v2,文档见 demo1/algorithm-iterations/);超声波水位方案已砍掉(与流速功能重叠,不做曼宁 70%)。

七、已知问题