如何检查和校准湿度传感器
您的湿度传感器的准确度如何?通过这个项目了解一下。
湿度传感器很常见,相对便宜,并且有许多不同的种类。很多时候,我们检查数据表,将它们与接口一起使用,并且(只要值“看起来合理”)我们接受结果。
在这个项目中,我们演示了如何更进一步并验证湿度传感器的准确性。我们还说明了传感器校准的通用方法,并应用该方法校准结果以提高湿度测量的准确性。
项目中使用的测试设置(从左到右、Quark D2000 微控制器板、传感器接口、微环境中的 HIH5030 传感器)。
项目基础
为了检查传感器的准确性,将获得的值与参考标准进行比较。为了检查湿度传感器的准确性,我们使用“饱和盐”方法来制作标准。简而言之,某些盐类(即离子化合物,如食盐或氯化钾)溶解在水溶液中时,会产生已知湿度的气氛(参见参考 PDF)。
这些化学特性用于创建已知相对湿度 (RH) 百分比(即参考标准)的微环境,并在微环境内读取传感器。具体来说,我们将在密封罐中制作溶液以保护大气,然后将连接的传感器放入密封罐中。随后,重复读取传感器并记录值。
通过使用几种不同的盐重复该过程,每种盐会产生不同的相对湿度,我们可以为被测传感器开发一个配置文件。由于我们知道每个微环境的相对湿度是多少,我们可以评估我们的传感器读数与这些已知值的偏差,从而评估传感器的准确性。
如果偏差很大,但并非不可克服,我们可以在软件中应用数学校准程序,以提高测量的准确性。
关于安全的一句话
<块引用>在继续之前,您必须负责任地处理该项目中使用的化学品。
- 阅读每种所用化学品的安全数据表(SDS,有时或 MSDS(材料安全数据表))(下面提供了所用每种盐的 SDS 链接,您还可以对每种盐进行文献搜索及其安全处理程序)。
- 请勿吸入或摄入化学物质。
- 不要让化学品接触您的皮肤或眼睛(戴上手套和护目镜)。
- 不要在准备食物的同一区域准备溶液。
- 妥善存放化学品。
- 妥善丢弃溶液和用于制备溶液的所有仪器,以免意外发生暴露。
- 在开始之前,了解如果发生意外接触该怎么办(请参阅安全数据表)。
使用的盐
一般来说,您可以为参考标准生产的 RH 气氛越多,被测传感器的特性就越好。然而,在实际意义上,资源总是有限的。在该项目中,使用了四种参考标准,并选择了用于生产参考标准的盐,以涵盖可能的 RH 值范围,但也考虑到安全性、可用性和成本。
选择了以下盐。在氯化钠(食盐)的情况下,纯洁食盐是在当地杂货店廉价获得的。如果你走那条路,请避免使用含有碘或抗结块剂等添加剂的食盐。
盐 | % RH(25°C 时) | 来源 | 安全数据表 |
---|---|---|---|
氯化锂 | 11.30 | 家庭科学工具 | 氯化锂的 SDS |
氯化镁 | 32.78 | 家庭科学工具 | MgCl 的 SDS |
氯化钠 | 75.29 | 各种(见正文) | 氯化钠的SDS |
氯化钾 | 84.34 | 家庭科学工具 | 氯化钾的SDS |
创建微环境
我们对几乎所有事物都有标准,甚至还有一个可以从水溶液中产生稳定的 RH(参见 ASTM E104 – 02(2012))。虽然我的工作台,也可能是你的,不是官方测试实验室,但尽可能严格地遵循标准中的规范是值得的。
另请注意,本项目中提供的结果虽然经过谨慎收集,但不应被解释为反映或指示任何品牌传感器准确性的整体质量声明。仅测试了少量传感器,并且使用的传感器具有不同的年龄和不同的使用历史。
对于每种盐,通过添加蒸馏水使其稠度类似于非常湿的沙子,从而形成泥泞的混合物。可以尝试四五汤匙化学品和一汤匙蒸馏水,但您可能需要做一些实验。
混合物在密封严密的小罐子中制成。玻璃甚至塑料应该可以很好地工作,只要它可以保持内部的气氛。可以在罐子的顶部开一个小孔,将连接线连接到传感器接口,然后连接到微控制器。然后将连接的传感器放置在混合物上方约 0.5-1.0 英寸处。注意传感器不要直接接触溶液,否则很可能会损坏。为了将连接固定到位并密封盖子上的孔,可以使用一些易于拆卸的接触油灰。
在进行最终读数之前,留出足够的时间进行平衡是很重要的。我凭经验测试了这个问题,在选定的测试用例中每分钟读取一次读数,最长可达 6 小时。根据我的经验,这比需要的时间长,我确定每个传感器和盐的平衡时间为 90-120 分钟。然后将最后五个读数的平均值用作最终值。对于所有情况,这五个值显示出很小的差异(如果有的话)。
此外,所有读数均在大约 25° C (± 1°) 的环境温度下获取,并且用于每个标准的 RH 值是针对 25° C 列出的值(有关值,请参阅此 PDF)。
载板上含有氯化钠的微环境中的 HIH5030 传感器。
硬件
微控制器
在这个项目中,我们使用 Quark D2000 微控制器连接传感器。 D2000 是具有 I2C 和模数接口的 3V 板。
但请记住,大多数具有适当接口的其他微控制器都可以使用。
传感器接口
项目中测试的传感器; A) HIH8121, B) HIH5030, C) DHT-22 (AM2302), D) HIH6030(在载板上)。
测试了四种不同类型的湿度传感器:DHT-22(使用了两种)、HIH5030、HIH6030 和 HIH8121。下面的示意图说明了用于每种类型传感器的简单接口,参考链接的数据表将提供背景信息用于电路。
- DHT-22 是一种具有专有串行输出的温度和湿度传感器
- HIH5030 是一款具有模拟(电压)输出的湿度传感器。此传感器的接口使用单位增益配置的运算放大器进行阻抗匹配。
- HIH6030 和 HIH8121 是使用 I2C 协议的温度和湿度传感器
DHT-22 到 D2000 接口。
DHT-22 BOM:U1、DHT-22传感器; R1,4.7kΩ电阻; C1,0.1 µF电容。
HIH5030 转 D2000 接口。
HIH5030 BOM:U1、HIH3050传感器; U2、MCP601P 运算放大器; C1,1.0 µF 电容; C2,0.1 µF电容。
HIH6030 转 D2000 接口。
HIH6030 BOM:U1、HIH6030传感器; R1 和 R2,2.2 kΩ 电阻器; C1,0.22 µF 电容; C2,0.1 µF电容。
HIH8121 转 D2000 接口。
HIH8121 BOM:U1、HIH8121传感器; R1和R2,2.2 kΩ电阻; C1,0.22 µF电容。
传感器软件
所有收集传感器数据的程序都是用C语言编写的,可以通过点击“湿度传感器项目代码”按钮下载。每个都是评论和直截了当的。对于每个传感器,程序只是每分钟读取一次传感器并将值发送到串行监视器。因此,它们应该很容易适应您的特定应用。
DHT22.c(左)和 HIH5030.c(右)输出的屏幕截图。
传感器评估程序
下表包含在四种微环境中评估传感器的数据。
DHT #1 | DHT #2 | HIH5030 | HIH6030 | HIH8121 | ||||||
---|---|---|---|---|---|---|---|---|---|---|
参考 RH | OBS | 错误 | OBS | 错误 | OBS | 错误 | OBS | 错误 | OBS | 错误 |
11.30 (氯化锂) | 12.56 | 1.26 | 16.29 | 4.99 | 13.02 | 1.72 | 20.79 | 9.49 | 12.31 | 1.01 |
32.78 (氯化镁) | 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 (氯化钾) | 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的公式如下:
其中 O 是观察到的传感器值,I 是理想的传感器值(即参考标准)。为了计算RMSE,我们将每个误差(与参考标准的偏差)平方,然后计算这些值的算术平均值,最后取平均值的平方根。
一旦您表征了传感器的精度,您就可以使用 RMSE 来决定是否需要校准传感器。在某些情况下,RMSE 很小并且完全可以为您的应用所接受,您可以合理地决定不需要校准。
例如,HIH8121 的结果令人印象深刻。 RMSE小于1%,所有样本点的误差小于2%。
另一方面,在某些情况下,您可能会发现传感器响应非常差且不规则,以至于您只是决定为您的应用程序需要另一个传感器。
校准的决定应始终考虑任务所需的准确度。尽管如此,对于表中的所有传感器,我们都可以通过校准来提高传感器读数的准确性。
传感器校准程序
要校准传感器,我们首先需要用数学方法确定将理想值与观测值相关联的函数。可以使用线性回归程序来确定该函数。
回归程序名称中的“线性”一词并不意味着线性函数。相反,该术语指的是变量的线性组合。结果函数可以是线性的或曲线的。下面的所有三个多项式函数都表示线性回归(注意:我们忽略了在这种情况下没有用的 0 度情况)。
- y =ax + b(一级,线性)
- y =ax 2 + bx + c(二次,二次)
- y =ax 3 + bx 2 + cx + d(三次,三次)
在当前项目中,我们使用四个参考标准(即 n =4)计算传感器值。因此,三次多项式是我们可以计算的最高次多项式。可能的最高次多项式总是 n – 1,在这种情况下,这意味着 3 (4 – 1)。
最小二乘程序通常用于线性回归。在此过程中,拟合一条直线,使每个基准点到直线的距离总和尽可能小。有许多可用的程序使用最小二乘程序来执行线性回归。您甚至可以使用 Excel(点击此处了解更多信息)。
还应该注意的是,我们不必使用线性回归。我们可以使用非线性回归。非线性回归的示例产生幂函数或傅立叶函数。然而,线性回归非常适合我们项目的数据,此外,软件校正(校准)很容易实现。事实上,在这个项目中,我不相信你会通过使用非线性回归得到什么。
选择多项式
理论上,我们希望使用最适合数据的多项式。也就是说,产生最小决定系数的多项式,表示为 r 2 (或 R 2 ,读作“R平方”)。越接近 r 2 为 1,拟合越好。使用最小二乘估计时,使用的多项式次数越高,拟合越好。
但是,您不必自动使用可能的最高次多项式。由于校准将在软件中进行,因此在某些情况下,使用低次多项式可能代表速度和/或内存优势,特别是如果使用高次多项式获得的精度非常小。
下面,我们将使用不同阶多项式演示 HIH6030 传感器的校准程序,在此过程中,我们将说明适用于您选择使用的任何多项式的一般程序。
使用上表中的数据,我们首先执行最小二乘回归程序以确定每个多项式的系数。这些值将来自使用的回归软件包。结果如下,包括 r 2 价值。
- 线性:y =ax + b; a =1.0022287, b =-8.9105659, r 2 =0.9996498
- 二次:y =ax 2 + bx + c; a =-0.0012638, b =1.1484601, c =-12.0009745, r 2 =0.9999944
- 三次方:y =ax 3 + bx 2 + cx + d; a =0.0000076, b =-2.4906103, c =1.2061971, d =-12.7681425, r 2 =0.9999999
现在可以使用计算函数修改观察值。也就是说,传感器读数可以如下表所示进行校准(注意 OBS、Corrected 和 ERR 值四舍五入到小数点后两位)。
RAW | 一级 | 第二学位 | 第三学位 | |||||
---|---|---|---|---|---|---|---|---|
参考 RH | OBS | 错误 | 更正 | 错误 | 更正 | 错误 | 更正 | 错误 |
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 |
可以看出,与观察到的测量值相比,所有三个多项式的均方根误差均显着降低,这就是您校准的原因。下图说明了使用 1 次多项式的改进。请注意校准(校正)的数据点现在如何位于理想对角线附近。
阅读更多信息......
如何检查和校准湿度传感器
当前项目/帖子也可以使用:
- 如何检查湿度校准
制造工艺