验证并校准湿度传感器以实现精准测量
你的湿度传感器有多准?通过这个项目找出答案。
湿度传感器常见、相对廉价,种类繁多。我们往往只看数据手册、接上接口,只要数值“看起来合理”就接受结果。
本项目演示如何进一步验证湿度传感器精度,并阐述通用的传感器校准方法,将其应用于校准结果以提高湿度测量准确性。
项目中使用的测试装置(从左至右:Quark D2000 单片机板、传感器接口、微环境中的 HIH5030 传感器)。
项目基础
检查传感器准确性的方法是将读数与参考标准比对。检查湿度传感器时,我们采用“饱和盐法”制备标准。简而言之,某些盐(如食盐或氯化钾)溶于水溶液后,会产生已知湿度的气氛(见参考 PDF)。
利用这些化学特性,我们创建已知相对湿度 (RH) 百分比的微环境(即参考标准),并在密封罐中读取传感器值。具体做法:在密封罐中配制溶液以保持气氛,将连接好的传感器放入罐中,反复读取并记录数值。
通过用几种不同的盐重复该过程,每种盐产生不同相对湿度,我们可以为待测传感器建立性能曲线。因为知道每个微环境的真实 RH,我们能评估传感器读数偏离已知值的程度,从而评判传感器准确性。
若偏差显著但可修正,可在软件中应用数学校准程序以提高测量精度。
安全须知
继续之前,必须负责任地处理本项目使用的化学品。
- 阅读每种化学品的安全数据表 (SDS,有时称 MSDS),下文提供各盐 SDS 链接,也可自行文献检索安全操作规程。
- 勿吸入或食入化学品。
- 避免化学品接触皮肤或眼睛(戴手套和护目镜)。
- 勿在食品制备区域配制溶液。
- 妥善存放化学品。
- 妥善处置溶液及制备用器具,防止意外暴露。
- 开始前了解意外暴露的应急措施(见 SDS)。
使用的盐
一般来说,能制备的 RH 参考标准越多,对待测传感器的表征越全面。但实际资源总有限。本项目使用四个参考标准,选盐时覆盖不同 RH 范围,同时考虑安全、易得性和成本。
选用以下盐。氯化钠(食盐)选用纯净犹太盐,在当地超市低价购得。若走此路线,避免含碘或防结块剂的食盐。
| 盐 | % RH (25°C) | 来源 | 安全数据表 |
|---|---|---|---|
| 氯化锂 | 11.30 | Home Science Tools | LiCl SDS |
| 氯化镁 | 32.78 | Home Science Tools | MgCl SDS |
| 氯化钠 | 75.29 | 多渠道(见正文) | NaCl SDS |
| 氯化钾 | 84.34 | Home Science Tools | KCl SDS |
创建微环境
万物皆有标准,甚至连从水溶液制备稳定 RH 也有标准 (ASTM E104 – 02(2012))。虽然我的工作台(可能你的也一样)不是官方实验室,但尽量遵循标准规范是值得的。
注意:本项目结果虽经仔细采集,不应视为对任何品牌传感器整体精度的质量声明。测试样本数量少,且传感器新旧程度、使用历史各异。
对每种盐,加入蒸馏水制成类似湿沙的糊状混合物。可尝试 4-5 汤匙化学品加 1 汤匙蒸馏水,但可能需微调。
混合物装在密封性好的小罐中。玻璃或塑料均可,只要能保持内部气氛。罐盖打小孔穿接传感器连接线至接口和单片机。传感器置于混合物上方约 0.5-1.0 英寸处。切勿让传感器直接接触溶液,否则易损坏。用易移除的密封胶固定连接并密封盖上小孔。
读取最终值前必须留出充足平衡时间。我实测过,在选定案例中每分钟读一次持续 6 小时。经验上这比所需时间长,最终定为每个传感器和盐 90-120 分钟平衡。取最后 5 次读数平均作为最终值。所有情况下这 5 值差异极小。
此外,所有读数在约 25°C (±1°) 环境温度下进行,各标准使用的 RH 值为 25°C 下的数值(见 PDF)。
硬件
单片机
本项目用 Quark D2000 单片机连接传感器。D2000 是 3V 板载 I2C 和模数转换接口。
记住,任何具备相应接口的单片机均可使用。
传感器接口
项目中测试的传感器:A) HIH8121,B) HIH5030,C) DHT-22 (AM2302),D) HIH6030(载板)。
测试了四种湿度传感器:DHT-22(用了两个)、HIH5030、HIH6030、HIH8121。下图展示各传感器的简单接口电路,配合链接的数据手册可了解电路背景。
- DHT-22 为温湿度一体传感器,专有串行输出
- HIH5030 为湿度传感器,模拟电压输出。接口用运放作单位增益阻抗匹配。
- HIH6030 和 HIH8121 为温湿度一体传感器,使用 I2C 协议
传感器软件
所有采集传感器数据的程序均用 C 语言编写,点击“Humidity Sensor Project Code”按钮可下载。每个程序有注释且直观:每分钟读一次传感器并发送值到串口监视器,易于移植到你的应用。
传感器评估流程
下表包含传感器在四个微环境中的评估数据。
| DHT #1 | DHT #2 | HIH5030 | HIH6030 | HIH8121 | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| 参考 RH | OBS | ERR | OBS | ERR | OBS | ERR | OBS | ERR | OBS | ERR |
| 11.30 (LiCl) | 12.56 | 1.26 | 16.29 | 4.99 | 13.02 | 1.72 | 20.79 | 9.49 | 12.31 | 1.01 |
| 32.78 (MgCl) | 32.36 | -0.42 | 33.79 | 1.01 | 33.46 | 0.68 | 40.77 | 7.99 | 32.43 | -0.35 |
| 75.29 (NaCl) | 73.04 | -2.25 | 74.50 | -0.79 | 77.74 | 2.45 | 83.83 | 8.54 | 76.63 | 1.34 |
| 84.34 (KCl) | 82.30 | -2.04 | 82.15 | -2.19 | 85.84 | 1.50 | 93.43 | 9.09 | 85.01 | 0.67 |
| RMSE | 1.657 | 2.799 | 1.708 | 8.796 | 0.920 | |||||
收集到已知相对湿度稳定环境下的传感器表现数据后,可数值评估传感器准确性。
表中计算了每个传感器在每个 RH 标准下的误差。但不能直接平均这些值评估传感器,因为有正有负,直接平均会因抵消而低估平均误差。
因此计算均方根误差 (RMSE) 表征准确性。RMSE 公式:对每个误差(偏离参考标准)平方,算术平均后开平方。
得到 RMSE 后可决定是否需要校准。某些情况下 RMSE 很小,完全可接受,合理判定无需校准。例如 HIH8121 表现优异,RMSE <1% 且所有采样点误差 <2%。
反之,若传感器响应极差且不规则,可能决定更换传感器。
校准决定始终应考虑任务所需精度。不过,我们可以通过校准提高表中所有传感器的读数准确性。
传感器校准流程
校准传感器首先需数学确定理想值与观测值的关系函数。可用线性回归确定该函数。
回归中的“线性”不指线性函数,而是变量的线性组合。结果函数可以是线性或曲线。下列三种多项式均属线性回归(忽略零次无用情况):
- y = ax + b(一次,线性)
- y = ax² + bx + c(二次,二次曲线)
- y = ax³ + bx² + cx + d(三次,三次曲线)
本项目用四个参考标准 (n=4),故最高可算三次多项式。最高次多项式总是 n-1,即 3 (4-1)。
通常用最小二乘法做线性回归。拟合曲线使各数据点到曲线距离平方和最小。许多软件包(甚至 Excel)均可做最小二乘线性回归。
也可用非线性回归(幂函数、傅里叶函数等)。但线性回归适合本项目数据,且软件校准易实现。我认为用非线性回归增益不大。
选择多项式
理论上应用拟合最好的多项式,即决定系数 r² (R²) 最接近 1 的。最小二乘下,多项式次数越高拟合越好。
但不必自动用最高次多项式。校准在软件实现时,低次多项式可能有速度/内存优势,尤其当高次多项式带来的精度提升极小时。
下面以 HIH6030 为例,演示不同次数多项式的校准过程,说明适用于你选择的任何次数多项式的通用流程。
用前表数据,先做最小二乘回归确定各多项式系数。结果(含 r²)如下:
- 一次:y = ax + b; a = 1.0022287, b = -8.9105659, r² = 0.9996498
- 二次:y = ax² + bx + c; a = -0.0012638, b = 1.1484601, c = -12.0009745, r² = 0.9999944
- 三次:y = ax³ + bx² + cx + d; a = 0.0000076, b = -2.4906103, c = 1.2061971, d = -12.7681425, r² = 0.9999999
现在可用计算出的函数修正观测值。即按下表校准传感器读数(OBS、Corrected、ERR 保留两位小数)。
| RAW | 1st Degree | 2nd Degree | 3rd Degree | |||||
|---|---|---|---|---|---|---|---|---|
| Ref RH | OBS | ERR | Corrected | ERR | Corrected | ERR | Corrected | ERR |
| 11.30 | 20.79 | 9.49 | 11.93 | 0.63 | 11.36 | 0.06 | 11.30 | 0.00 |
| 32.78 | 40.77 | 7.99 | 31.95 | -0.83 | 32.83 | 0.05 | 32.78 | 0.00 |
| 75.29 | 83.83 | 8.54 | 75.11 | -0.18 | 75.85 | 0.55 | 75.29 | 0.00 |
| 84.34 | 93.43 | 9.09 | 84.73 | 0.39 | 84.83 | 0.49 | 84.34 | 0.00 |
| RMSE | 8.795736 | 0.562146 | 0.371478 | 0.00212 |
可见三种多项式均显著降低 RMSE,这就是校准的意义。下图展示一次多项式校准后的改进:校准数据点贴近理想对角线。
阅读更多信息….
如何检查和校准湿度传感器
当前项目/文章也可通过以下方式查找:
- how t chec for humidity calibratiod
制造工艺
- 延期维护:定义、成本影响与积压控制六步法
- 树莓派对接HDC2010:I²C温湿度传感器完整接线与编程指南
- 树莓派与 Python 构建远程温度传感器:分步实战指南
- 树莓派自制气象站:每日邮件推送温湿雨数据
- 树莓派多传感器温度光照监测系统:DS18B20 实战构建
- 树莓派传感器与执行器控制实战:加速度计、舵机与数据流
- 树莓派自动化气雾栽培系统:湿度传感器智能控制
- Windows 10 IoT Core 上基于 SHT15 的精准温湿度监测
- Portenta H7 对接 MAX6675 热电偶温度传感器教程
- 直流电机故障检测诊断分步指南:从断电到换向器排查
- 湿度传感器:工作原理与关键应用
- DHT11传感器:工作原理与关键应用