pH传感器模组技术文档 — 水质监测节点

知识库
知识库文档
/firmware/传感器/pH传感器模组(水质监测)/pH传感器模组技术文档 — 水质监测节点.md

文档

pH 传感器模组 — 水质监测节点技术文档

1. 概述

本模组用于水质监测节点的 pH 值测量,由 pH 复合电极探头 + 信号调理板 组成。探头输出微弱毫伏级信号,经调理板放大后送入 ESP32-S3 的 12-bit ADC 采集,通过 三点标定 后在固件中线性拟合出最终 pH 值。

典型应用

  • 河流 / 湖泊水质监测
  • 水产养殖水体酸碱度控制
  • 工业 / 市政污水处理
  • 实验室 pH 数据采集

2. 引脚定义

引脚名 类型 说明
VCC 电源 3.3V 或 5V 供电
GND 电源 共地
OUT 模拟输出 0~VCC 电压,正比于 pH 探头信号

在 ESP32 端,OUT 接任意 ADC GPIO,本文档使用 GPIO4 (PH_ADC_PIN)。


3. 电气特性

参数 典型值 备注
测量范围 0.00 ~ 14.00 pH
输出电压 0 ~ VCC 已放大,可直接进 ADC
ADC 分辨率 12-bit (4096 级) ESP32 analogReadMilliVolts()
衰减档位 ADC_11db 满量程 ≈ 3.3V
每点采样数 20 次均值 read_ph_voltage()
采集稳定时间 ≤ 30 秒 缓冲液中充分浸泡后读数稳定
温度补偿 建议外接 DS18B20 当前线性拟合未做温度补偿,依赖标定温度与测量温度一致

标定点参考电压(示例,每块板不同)

pH 缓冲液 Master (V) Slave (V)
4.00
6.86 1.3699 2.5609
9.18 1.1168 2.1612

4. 典型应用电路

    pH 探头
   ┌──────┐
   │  BNC │──── 信号调理板 ──── OUT ──── GPIO4 (ADC)
   └──────┘                     │
                               VCC ──── 3.3V
                               GND ──── GND
  • 调理板已将探头高阻抗信号转换为低阻抗电压输出,可直接接入单片机 ADC。
  • 调理板供电与 MCU 共用 3.3V 以减少参考电压误差。

5. 标定流程

使用配套 ph_calib 三点标定工具(Python Qt):

  1. 烧录标定固件

    pio run -d firmware/node -e calib -t upload
    

    固件将持续以 [PH_CAL] v=X.XXXX 格式输出实时电压(约 5Hz)。

  2. 连接串口:运行 ph_calib 工具,选择对应 COM 口,点击连接。

  3. 三点采集

    • 将探头依次浸泡到 pH=4.00、6.86、9.18 缓冲液中。
    • 每次浸泡后等待电压稳定(约 30s),点击对应点的"采集"按钮。
  4. 拟合:点击"最小二乘拟合",工具输出 kb 以及可直接粘贴的 PH_V686 / PH_V918 常量。

  5. 更新固件:将生成的常量粘贴到 platformio.ini 对应 env 的 build_flags 中,重新编译烧录。


6. 固件关键函数

6.1 pH 电压读取

static float read_ph_voltage() {
  const int N = 20;
  uint32_t sum_mv = 0;
  for (int i = 0; i < N; ++i) {
    sum_mv += analogReadMilliVolts(PH_ADC_PIN);
    delay(2);
  }
  return (sum_mv / (float)N) / 1000.0f;  // 返回 V
}

6.2 电压转 pH

static float voltage_to_ph(float v) {
  constexpr float k = (6.86f - 9.18f) / (PH_V686 - PH_V918);
  return 6.86f + k * (v - PH_V686);
}

其中 PH_V686PH_V918 由标定工具生成,等价于线性关系 pH = k·V + b


7. 使用注意事项

  • ⚠️ 每块调理板 + 每根探头组合都必须单独标定,不可复用其他板的参数。
  • ⚠️ pH 探头需保持湿润存储,干燥会导致响应漂移甚至永久损坏。
  • ⚠️ 标定时三种缓冲液温度应尽量一致,否则线性度会下降。
  • ⚠️ 若测量精度要求高(±0.05 pH),建议增加温度补偿算法(当前固件为简化线性模型)。
  • ⚠️ ADC 参考电压波动会影响读数;建议调理板与 MCU 用同一路 LDO 供电。
  • ⚠️ 标定工具采集时取最近 30 个电压样本的均值以减少噪声,若数据抖动较大可适当增大 SAMPLE_WINDOW
  • ⚠️ 探头寿命通常为 6~12 个月(取决于使用频率和水质),建议定期重新标定。

信息

路径
/firmware/传感器/pH传感器模组(水质监测)/pH传感器模组技术文档 — 水质监测节点.md
更新时间
2026/5/26