I2C饱和的湿度传感器

时间:2017-08-11 20:29:49

标签: raspberry-pi sensor

我的RasPi 3在I2C总线上有以下传感器:BME280BH1750MLX90614

所有传感器的所有数据都可以读取。 使用4个月后,BME280在100%相对湿度(rH)下卡住。 当时温度和压力读数有效且精确。 动力循环没有帮助。代码审查/重写没有帮助。

我添加了HTU21D传感器以供参考。同时BME280卡在最大计算rH,HTU21D读数正确,有效值为bith湿度和温度。

再过2个月后,HTU21D拧紧并开始显示76-118%的rH,同时温度读数正确且准确(与BME280相似)。尽管HTU21D没有停留在单个值,但它的测量结果是错误的。奇怪的是,在黑暗时期,它总是118%rH。 来自HTU21D的rH读数的原始数据是:

  • 255,255,45(或0xFFFF2D)。

这意味着CRC正常,传感器认为它报告的值正确。同样,正确的CRC和其他数据读数OK也意味着I2C总线也可以正确构建。

代码尝试了:

  • BME280 code example:由于很多人使用它并且没有投诉,因此没有改变。
  • Adafruit BME280 code example:不起作用,I / O错误。
  • Example 1。读取,但2个月后湿度不正确。
  • Example 2。不起作用,在示例中明确说明了I / O错误。
  • 尝试将写入0xF5到HTU21D的时序调整为读数3 字节没有帮助。
  • 尝试使用i2cset从HTU21D读取值 并且i2cget没有成功。
  • 尝试删除之前的HTU21D重置 复位后读取或双重复位或增加/减少时间没有 帮助。

与此同时,BME280仍然停留在100%rH:纯计算值为150-180%,软件限制为100%。

I2C总线详细信息:

  • 电缆长度约为55厘米,22英寸。
  • 电压3.3V。
  • SCL和SDA 4.7K上的上拉电阻。

当来自不同制造商的2个类似传感器的部分数据卡在更高的数字而其他数据合适时,是否有人遇到此问题?

在其他数据正确的情况下,只有湿度错误的原因是什么?

0 个答案:

没有答案