高精度 Arduino pH 计 – Atlas Scientific 传感器构建指南
项目简介
本项目使用 Atlas Scientific Gravity™ 模拟 pH 传感器套件(含 pH 电极、信号调理板)与 Arduino UNO 构建台式 pH 计,读数通过 20×4 I2C LCD 显示,并支持串口监视器校准。适用于水质监测、水培、水族箱、教学实验等场景。
核心特性
- 工业级 pH 电极:消费级探头,响应快、寿命长、BNC 接口标准化
- Gravity 模拟输出板:板载运放、温度补偿电路,输出 0-5V 信号直连 Arduino ADC
- 多点校准:支持 1/2/3 点校准 (pH 4.00/7.00/10.00),参数存储于 Arduino EEPROM 断电不丢失
- 串口交互校准:实时观察读数稳定过程,发送指令完成校准
- 外壳集成:定制亚克力底板 + ABS 外壳,整洁美观
硬件清单
| 组件 | 数量 | 备注 |
|---|---|---|
| Arduino UNO | 1 | |
| Atlas Scientific Gravity™ 模拟 pH 传感器板 | 1 | 含 BNC 接口、信号调理电路 |
| Atlas Scientific 消费级 pH 复合电极 | 1 | BNC 公头,玻璃球泡,含浸泡液瓶 |
| 20×4 字符 LCD (带 I2C 模块) | 1 | 地址常为 0x27 或 0x3F |
| ABS 手持外壳 (158×90×60mm) | 1 | 需自行开孔 |
| 迷你面包板 | 1 | 用于对比度电阻分压电路 |
| 220Ω / 1kΩ 电阻 | 各 1 | LCD 对比度调节分压 |
| 11mm 铜柱螺丝套装 | 4 套 | 传感器板自带,共用 2 套固定 Arduino |
| 亚克力底板 (135×62.5×3.2mm) | 1 | 激光切割/带锯切割,安装主板 |
| 跳线、焊锡、热熔胶等 | 若干 |
工具清单
电钻/钻头、干墙切割头、手锉、螺丝刀、台虎钳、带锯、热熔胶枪、电烙铁、数显卡尺、直尺、护目镜、手套、防尘口罩。
机箱加工与组装
步骤 1:外壳开孔
- 盖板开 LCD 窗:居中标记 98×40mm 矩形 → 3.2mm 定位钻孔 → 干墙切割头沿内侧切割 → 手锉修整
- 底盒侧面开孔:BNC 连接器圆孔 + Arduino USB/电源插座矩形孔,同法加工
步骤 2:底板安装电子模块
- 亚克力板钻 4 个 2.38mm 通孔,一面沉头 (4.4mm 深 3mm) 用于铜柱螺丝平整锁紧
- 安装 4 根 11mm 铜柱(2 根固定 pH 板,2 根固定 Arduino)
- 依次锁装:pH 传感器板 → Arduino UNO → 迷你面包板
- 底板放入底盒,螺丝或热熔胶固定
步骤 3:LCD 安装
焊接 LCD 排针 → 插入盖板开窗 → 热熔胶固定边缘,避免遮挡显示区。
电路接线
原理图连接表
| 模块引脚 | Arduino 引脚 | 说明 |
|---|---|---|
| pH 板 VCC | 5V | 面包板汇总供电 |
| pH 板 GND | GND | 面包板汇总地 |
| pH 板信号输出 | A0 | 模拟输入 |
| LCD VCC | 5V | |
| LCD GND | GND | |
| LCD SDA | A4 | I2C 数据 |
| LCD SCL | A5 | I2C 时钟 |
| LCD 对比度调节 | — | 1kΩ 上拉 5V,220Ω 下拉 GND,中点接 LCD 对比度引脚 (通常为 Vo/V0) |
软件准备
- 安装
LiquidCrystal库(IDE 自带,搜索 "LiquidCrystal Built-in" 确认已安装) - 安装 Atlas Gravity pH 库:下载
Atlas_gravity.zip→ IDE → 草图 → 包含库 → 添加 .ZIP 库 - 复制项目代码至 IDE,编译上传
代码核心逻辑
#include "ph_grav.h" // Atlas pH 传感器库
#include // LCD 库
Gravity_pH pH = A0; // 绑定 A0 引脚
LiquidCrystal pH_lcd(2,3,4,5,6,7); // RS, E, D4-D7 (非 I2C 接线时)
String inputstring = "";
boolean input_string_complete = false;
char inputstring_array[10];
void setup() {
Serial.begin(9600);
pH_lcd.begin(20,4);
pH_lcd.print("--------------------");
pH_lcd.setCursor(5,1); pH_lcd.print("pH Reading");
if (pH.begin()) Serial.println("Loaded EEPROM");
Serial.println("Use CAL,4 / CAL,7 / CAL,10 to calibrate");
Serial.println("Use CAL,CLEAR to clear calibration");
}
void serialEvent() {
inputstring = Serial.readStringUntil('\r');
input_string_complete = true;
}
void loop() {
if (input_string_complete) {
inputstring.toCharArray(inputstring_array, 30);
parse_cmd(inputstring_array);
input_string_complete = false;
inputstring = "";
}
Serial.println(pH.read_ph());
pH_lcd.setCursor(8,2);
pH_lcd.print(pH.read_ph());
delay(1000);
}
void parse_cmd(char* str) {
strupr(str);
if (strcmp(str, "CAL,4") == 0) { pH.cal_low(); Serial.println("LOW CALIBRATED"); }
else if (strcmp(str, "CAL,7") == 0) { pH.cal_mid(); Serial.println("MID CALIBRATED"); }
else if (strcmp(str, "CAL,10") == 0) { pH.cal_high(); Serial.println("HIGH CALIBRATED"); }
else if (strcmp(str, "CAL,CLEAR") == 0) { pH.cal_clear(); Serial.println("CALIBRATION CLEARED"); }
}
校准操作指南
准备:标准缓冲液 pH 4.00、7.00、10.00;若使用外部供电,校准前接通电源以建立正确基准。
- 取下浸泡瓶,用纯水冲洗电极
- 倒入 pH 4.00 缓冲液,浸没感应球泡,轻搅排气
- 观察串口监视器读数稳定(微小波动正常)
- 发送指令
cal,4完成低点校准 - 重复上述步骤分别用 pH 7.00 发送
cal,7、pH 10.00 发送cal,10 - 每次切换缓冲液务必冲洗电极
- 清除校准:发送
cal,clear
温度补偿说明
本传感器精度 ±0.2%,在 7-46°C 范围内满足精度要求。超出此范围需外接温度传感器(如 DS18B20)实现软件温度补偿。电极本身耐受 1-60°C。
常见问题
| 现象 | 排查方向 |
|---|---|
| 读数漂移大/不稳 | 电极老化/污染、缓冲液过期、供电纹波大、未共地 |
| 校准后仍偏差大 | 校准顺序错误、缓冲液配制不准、电极未充分稳定、EEPROM 未保存 |
| LCD 不显示/乱码 | I2C 地址错误 (扫描工具确认)、对比度电阻分压不对、排针虚焊 |
| 串口无输出 | 波特率不匹配 (9600)、未选 "Carriage return"、USB 线仅供电无数据 |
扩展建议
- 增加 DS18B20 实现全温域自动温补
- 接入 WiFi/LoRa 实现远程监测与数据记录
- 数据记录至 microSD 卡,生成 pH 趋势曲线
- 设计防水外壳 (IP67) 用于户外/水下长期部署
资源链接
- Atlas Scientific 官方文档:atlas-scientific.com
- Gravity pH 传感器数据手册
- 项目完整代码与原理图:见 Code 与 Schematics 部分
制造工艺
- DIY 蓝牙控制 Arduino 间谍小车
- FlickMote:基于手势的智能家居红外遥控器
- DIY Arduino TV-B-Gone:万能关机遥控器
- 自制大尺寸LED主时钟带闹钟功能 — 12米外清晰可见
- Find Me:基于 Arduino 与蓝牙的智能寻物器制作指南
- Arduino 项目优化供电方案:从按键开关到电池监测与数据记录
- Arduino 井字棋游戏:MAX7219 点阵屏 + 纸板外壳 DIY
- 从零构建智能 Arduino 四足机器人:完整指南
- DIY Arduino 手柄方向盘 - 游戏竞速模拟器自制指南
- 利用 Arduino Nano R3 自制全功能 CNC 雕刻机
- Earth Analyzer:面向精准农业的多模态物联网环境监测巡检车
- 基于 Arduino Mega 与物联网传感器的高级家庭监控系统