第三章 水质监测系统需求分析:监测指标、采样频率与数据上报周期

好,咱们进入正题。做水质监测系统,第一步不是写代码,也不是选芯片。而是搞清楚一个问题:你到底要监测什么?

我见过不少团队,上来就搞RTOS调度,结果做到一半发现传感器采样太慢,或者数据量太大,内存爆了。说白了,需求分析没做透。今天我就带你把这块掰开揉碎了讲清楚。

3.1 四大核心监测指标

水质监测,不是随便测几个数就完事。根据《地表水环境质量标准》和实际工程经验,我通常把指标分成两类:常规五参数特定污染物。咱们这个课程,先聚焦最基础的四个指标。

指标 单位 典型范围 传感器类型 我踩过的坑
pH 无量纲 0~14(淡水6~9) 玻璃电极/ISFET 电极老化导致漂移,需定期校准
浊度 NTU 0~1000 散射光式 气泡干扰读数,采样前要静置
溶解氧 mg/L 0~20 荧光法/电化学法 荧光膜寿命有限,别买便宜货
温度 -5~50 PT100/NTC 响应速度慢,需要滤波

关键点:这四个指标不是孤立的。温度会影响溶解氧的饱和度,pH会影响重金属的毒性形态。你想想看,如果只测一个温度,那意义不大。我习惯把温度作为补偿参数,在RTOS任务里做实时修正。

3.2 采样频率要求——快了不行,慢了误事

采样频率怎么定?很多人觉得越快越好。其实不是。我举个例子:

pH传感器,响应时间通常在10~30秒。你如果1秒采一次,采到的全是噪声。溶解氧传感器更慢,荧光法需要几秒到十几秒才能稳定。所以采样频率必须跟传感器特性匹配。

我个人习惯用这张表来定频率:

指标 传感器稳定时间 推荐采样间隔 说明
pH 10~30秒 5~10秒 太频繁会读到电极噪声
浊度 2~5秒 1~3秒 水流波动大时可适当加快
溶解氧 5~15秒 5~10秒 荧光法建议取3次平均
温度 1~3秒 1~5秒 变化慢,可以降低优先级

避坑指南:我曾经在一个项目中,把浊度采样设成了100ms一次。结果数据全是毛刺,后来发现是气泡和水流波动造成的。改成3秒一次,加了个滑动平均滤波,数据就漂亮多了。所以,采样频率不是越快越好,而是要匹配物理过程

3.3 数据上报周期——给RTOS调度定节奏

数据上报周期,决定了你的RTOS任务怎么设计。我把它分成三个层级:

  1. 本地显示周期:1~5秒刷新一次。给现场操作人员看实时趋势。
  2. 本地存储周期:10秒~1分钟存一条。SD卡或Flash空间有限,不能太密。
  3. 远程上报周期:1分钟~1小时上报一次。取决于通信模块功耗和流量费用。

举个例子,我做过一个河道监测项目:

  • pH和溶解氧:每10秒采一次,每1分钟上报一次(取6次平均值)
  • 浊度:每3秒采一次,每30秒上报一次(取10次中位数)
  • 温度:每5秒采一次,每5分钟上报一次(变化慢,省电)

你看,不同指标的采样和上报周期是解耦的。这就是RTOS的优势——每个传感器可以有自己的任务周期,互不干扰。

注意:上报周期不能短于采样周期。否则你上报的是无效数据。我见过有人把上报周期设成1秒,但溶解氧传感器稳定需要10秒,结果上报的全是过渡态数据。嗯,这个坑我替你们踩过了。

3.4 需求分析总结——给RTOS任务设计打基础

好了,咱们把需求理清楚了。接下来要做的是:

  • 每个指标对应一个传感器任务,按采样间隔触发
  • 数据经过滤波和校准后,存入共享缓冲区
  • 一个上报任务按周期读取缓冲区数据,打包发送
  • 温度任务作为补偿任务,修正其他传感器的读数

说白了,需求分析就是给RTOS画一张「任务地图」。哪个任务跑多快,哪个任务优先级高,哪个任务需要同步,全看这里。

下一章,我会带你把这些需求转化成具体的RTOS任务设计。到时候咱们再细聊任务优先级怎么定、信号量怎么用。今天就先到这儿。

一句话总结:采样频率看传感器,上报周期看应用场景。两者匹配好了,RTOS调度就成功了一半。