1. 项目背景与核心需求
城市内涝一直是困扰现代城市管理的难题。每到雨季,立交桥下、地下通道等低洼区域常常成为积水重灾区,不仅影响交通,更威胁市民生命财产安全。传统的人工巡查方式效率低下,难以及时发现险情。而商业化的水位监测设备动辄上万元,难以大规模部署。
这套基于单片机的城市低洼地水位监控系统,正是为解决这一痛点而生。我在参与某市政防汛项目时,发现基层单位对低成本、高可靠的水位监测方案需求迫切。经过三个月的实地测试和方案迭代,最终定型了这套系统。
2. 系统架构设计
2.1 整体方案选型
系统采用"端-管-云"三层架构:
- 感知层:由水位传感器+单片机组成监测终端
- 传输层:根据部署环境选择4G/NB-IoT/LoRa
- 应用层:自主开发的监控平台+手机APP
关键设计原则:在保证功能的前提下,单点硬件成本控制在300元以内,这是能大规模推广的关键门槛。
2.2 硬件选型对比
经过实测对比,主要器件选型如下表:
| 组件 | 候选方案 | 最终选择 | 选择理由 |
|---|---|---|---|
| 主控 | STM32F103C8T6 vs ESP32 | STM32F103C8T6 | 工业级稳定性,裸机开发更可靠 |
| 传感器 | 超声波HC-SR04 vs 压力式MS5837 | MS5837 | 不受水面波动影响,精度±0.5cm |
| 通信 | NB-IoT vs LoRa | NB-IoT BC95 | 直接入云,无需网关中转 |
| 电源 | 18650电池组 vs 太阳能+锂电池 | 太阳能+TP4056 | 实测可连续工作30天无日照 |
3. 硬件实现细节
3.1 传感器电路设计
压力式水位传感器需要特别注意:
- 采用RC滤波电路消除高频干扰
- 增加TVS二极管防护浪涌电压
- I2C总线需加10K上拉电阻
c复制// 传感器初始化代码示例
void MS5837_Init(void) {
HAL_I2C_Mem_Write(&hi2c1, MS5837_ADDR, MS5837_RESET, 1, NULL, 0, 100);
HAL_Delay(10);
// 加载校准参数
MS5837_ReadProm();
}
3.2 低功耗优化方案
通过实测发现,系统90%的功耗来自通信模块:
- 采用间断唤醒模式:每小时唤醒1次,异常水位时立即唤醒
- 关闭调试接口:JTAG/SWD接口在量产时需禁用
- 优化时钟配置:使用HSI内部时钟替代HSE
4. 软件系统实现
4.1 数据采集处理算法
开发中遇到的主要挑战是水面波动导致的测量误差。最终采用的解决方案:
- 滑动窗口滤波:取最近10次测量的中位数
- 趋势判断:当连续3次检测到水位上升超5cm,触发预警
c复制#define SAMPLE_SIZE 10
float getStableWaterLevel(void) {
static float samples[SAMPLE_SIZE];
static uint8_t index = 0;
samples[index++] = MS5837_ReadPressure();
if(index >= SAMPLE_SIZE) index = 0;
// 中位数滤波实现
float temp[SAMPLE_SIZE];
memcpy(temp, samples, sizeof(temp));
bubbleSort(temp, SAMPLE_SIZE);
return temp[SAMPLE_SIZE/2];
}
4.2 通信协议设计
采用自定义轻量级协议:
code复制[HEAD][LEN][DEV_ID][CMD][DATA][CRC]
- HEAD:0xAA 0x55
- DATA:水位值(2B)+电池电压(1B)+信号强度(1B)
- CRC:CRC8校验
5. 部署与实测案例
5.1 某地下通道部署实录
部署时踩过的坑:
- 传感器安装高度应高于地面30cm,避免淤泥堆积影响
- NB-IoT天线需朝上安装,实测信号强度提升15dB
- 太阳能板倾斜角度需根据当地纬度调整
5.2 系统性能指标
经过6个月连续运行测试:
- 数据完整率:99.7%
- 误报率:<0.1%
- 平均功耗:0.85W(晴天)/1.2W(连续阴雨)
6. 常见问题排查指南
6.1 传感器读数异常
可能原因及解决方案:
- 气泡附着:定期清洁传感器表面
- 线缆破损:使用防水航空插头
- 供电不足:检查3.3V电源纹波(<50mV)
6.2 通信连接失败
典型处理流程:
- 用AT指令测试模块:AT+CSQ检查信号
- 确认SIM卡状态:AT+CPIN?
- 检查APN设置:AT+CGDCONT=1,"IP","cmnet"
7. 系统扩展方向
在实际项目中,我们还尝试了这些增强功能:
- 增加摄像头联动:水位超限时自动拍照取证
- 接入市政排水系统:自动控制水泵启停
- 机器学习预测:基于历史数据预测积水趋势
这个项目给我最深的体会是:硬件系统要经得起长期野外考验,必须把可靠性放在第一位。我们第三版电路板专门做了三防漆处理,连接器全部改用防水型号,这些细节决定了系统的最终成败。
