跳转到内容

BMP581 温度+压力传感器

bmp581 传感器平台允许您在 ESPHome 中使用 BMP581 (数据手册、SparkFun 或 Adafruit)和 BMP585(数据手册)温度和压力传感器。需要在您的配置中设置 I²C 总线或 SPI 总线才能使此传感器正常工作。

BMP581 温度和压力传感器。(图片来源: SparkFun,图片已裁剪和压缩)
# Example configuration entry for I2C connection
sensor:
- platform: bmp581_i2c
temperature:
name: "Indoor Temperature"
pressure:
name: "Indoor Pressure"
# Example configuration entry for SPI connection
sensor:
- platform: bmp581_spi
cs_pin: GPIOXX
temperature:
name: "Indoor Temperature"
pressure:
name: "Indoor Pressure"
  • temperature (可选): 温度传感器的信息。

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

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

  • address (可选, int): 手动指定传感器的 I²C 地址。 默认为 0x46。另一个地址可以是 0x47。
  • cs_pin (必选, Pin Schema): 连接到 BMP581 传感器的 SPI CS 引脚。

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

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

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

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

NOTE

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

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

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

WARNING

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