标签:TinyML、边缘计算、内涝预警、超声波测距、LoRa、低功耗、STM32
----
1. 背景:城市“看海”模式如何提前刹车?
每逢暴雨,#XX 地铁站成水帘洞# 总会冲上热搜。
传统方案:
•  布设立杆式水位站 → 成本高、易被撞;
•  人工巡检 → 雨越大越出不了门;
•  云端 AI → 4G 断网就罢工。
我们决定把 AI 直接塞进 井盖下方,做一个 超低功耗、离线推理、无线回传 的内涝预警节点。
----
2. 系统指标:井盖级“硬约束”
指标    数值    备注
设备体积    Φ110 mm × 40 mm    井盖内沿空间
供电    3.7 V 2600 mAh 锂亚电池    不可充电
续航    ≥ 3 年    占空比 0.1 %
通信    LoRa 470 MHz    城区 2 km 覆盖
预警延迟    ≤ 30 s    边缘推理 + 空口
成本    ≤ 120 元    BOM 批量价
----
3. 传感器组合:三合一“小钢炮”
•  超声波测距(JSN-SR04T)
测水位高度 0–100 cm,误差 ±1 cm
•  温度补偿(SHT31)
声速随温度漂移,算法实时校准
•  姿态检测(LIS3DH)
井盖倾斜 > 30° 即报警,防偷防移位
----
4. TinyML 模型:1 KB 也能做预测
4.1 问题定义
不是“测水位”,而是 “未来 15 min 是否超阈值”——二分类。
4.2 特征工程
•  当前水位 h
•  5 min 内水位变化率 Δh/Δt
•  温度 T
•  姿态角 θ
共 4 维 float,连续 8 帧 → 32 字节输入。
4.3 模型结构
•  单层 8 神经元全连接
•  ReLU + Sigmoid 输出
•  TFLite-Micro INT8 量化后 1.2 KB
•  推理一次 0.8 ms @STM32L431 80 MHz
训练代码(PyTorch → tflite):

model = nn.Sequential(
    nn.Linear(32, 8),
    nn.ReLU(),
    nn.Linear(8, 1),
    nn.Sigmoid()
)
train(model, dataset)
convert_to_tflite(model, representative_dataset)

----
5. 边缘决策逻辑

// main.c(伪代码)
float input[32];
while (1) {
    read_sensors(input);
    float prob = run_tflite(input);
    if (prob > 0.7) {
        send_lora_alert();
    }
    sleep(60 * 1000);  // 1 min 周期
}

----
6. LoRa 报文格式(10 字节)
Byte    定义    示例
0-1    节点 ID    0x12 0x34
2    水位 cm    0x42
3    温度 ℃    0x1E
4    倾斜角    0x05
5-6    预测概率    0xB2 0x04
7-9    CRC16    0x6F 0xA1
----
7. 功耗实测:3 年续航如何炼成?
阶段    电流    时长    单次能耗
传感器采样    12 mA    100 ms    0.33 mAs
MCU 推理    8 mA    1 ms    0.008 mAs
LoRa Tx    120 mA    40 ms    4.8 mAs
DeepSleep    18 µA    59.86 s    1.08 mAs
日均    —    —    12 mAh
2600 mAh 电池 → 216 天 → 实际 3 年靠 占空比 0.1 %。            
----
8. 云端联动:数字孪生一张图
•  MQTT → InfluxDB 实时入库
•  Grafana 热力图显示“危险井盖”
•  API 推送到城管移动作业端,就近派单
----
9. 踩坑 & 彩蛋
坑    解决
超声波盲区 2 cm 内跳值    软件滤波:滑动中位数 3 点
LoRa 同频干扰    自适应扩频因子 SF7→SF9
彩蛋    井盖被掀开时蜂鸣器播放“滴——”提示音
----
10. 开源 & 量产
GitHub:
https://github.com/manhole-ai/flood-guard
提供:
•  Altium 原理图 + PCB
•  TFLite-Micro 模型源码
•  LoRa 网关 Python 脚本
•  3D 打印外壳 STL
首批 500 套 已在深圳南山试点,暴雨当天提前 12 min 预警 3 处积水点。
----
11. 结语:TinyML 让城市更聪明
当 AI 可以藏在井盖下,
当 1 KB 模型也能守护城市安全,
你会发现 “边缘”比“云端”更靠近民生。
如果这篇文章帮你少踩一个水坑,欢迎去仓库点个 Star ⭐;
更欢迎留言聊聊你把 TinyML 塞进了哪些城市角落!

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐