跳转到内容

BMP581 温度+压力传感器

bmp581 传感器平台允许您在 ESPHome 中使用 BMP581 (数据手册, SparkFunAdafruit) 温度和压力传感器。需要在配置中设置 I²C 总线才能使此传感器工作。虽然技术上可行,但 ESPHome 尚不支持通过 SPI 总线与此传感器通信。

BMP581 温度和压力传感器。(图片来源:SparkFun,图片已裁剪和压缩)
# I2C 连接的示例配置条目
sensor:
- platform: bmp581_i2c
temperature:
name: "Indoor Temperature"
pressure:
name: "Indoor Pressure"
  • temperature (可选): 温度传感器的信息。

  • pressure (可选): 压力传感器的信息。

  • address (可选, int): 手动指定传感器的 I²C 地址。默认为 0x46。另一个地址可以是 0x47

  • update_interval (可选, Time): 检查传感器的间隔。默认为 60s

默认情况下,BMP581 传感器在请求新值时会测量压力 16 次和温度 1 次,以减少测量噪声。但是,您可以配置此数量。可能的过采样值:

  • NONE(传感器采样一次,温度的默认值)
  • 2x
  • 4x
  • 8x
  • 16x(压力的默认值)
  • 32x
  • 64x
  • 128x

数据手册(第 19 页)给出了过采样组合的建议:

过采样设置压力过采样温度过采样
最低功耗NONENONE
2xNONE
标准分辨率4xNONE
8xNONE
高分辨率(默认)16xNONE
32x2x
64x4x
最高分辨率128x8x

NOTE

高过采样率会增加功耗以及传感器测量温度和压力所需的时间。例如,在未启用过采样的情况下,测量时间约为 3 毫秒。如果温度和压力过采样率均为 128x,测量时间约为 107 毫秒。BMP581 组件会在尝试读取测量值之前等待特定配置的过采样率所需的最短时间。考虑使用较低的过采样率以降低功耗,或加快较小更新间隔下的测量速度。

BMP581 的无限脉冲响应滤波器可减少由于环境条件(例如关门或开窗)引起的测量值噪声。BMP581 默认禁用温度和压力传感器的 IIR 滤波器,但您可以为每个传感器独立配置滤波量。可能的 IIR 滤波器值:

  • OFF(默认)
  • 2x
  • 4x
  • 8x
  • 16x
  • 32x
  • 64x
  • 128x

WARNING

当您启用 IIR 滤波器时,BMP581 的深度待机模式将被禁用,这会增加功耗。考虑使用数学等效的 ESPHome 指数移动平均滤波器,特别是当您配置了较长的更新间隔时。有关实现信息,请参见 指数移动平均滤波器