跳转到内容

BME68x 温度、湿度、压力和气体传感器 (通过 BSEC2)

bme68x_bsec2_i2c 传感器平台允许您通过 Bosch Sensortec Environmental Cluster 2 (BSEC2) 软件库在 ESPHome 中使用 BME680BME688 (Adafruit, Pimoroni) 温度、湿度、压力和气体传感器。Bosch 专有算法的使用提供了从气体电阻传感器对特定挥发性有机化合物 (VOC) 的响应中得出的空气质量指数 (IAQ) 测量值。BSEC 软件还使用人类呼出气息中 VOC 和 CO₂ 之间的相关性,提供 CO₂ 和呼吸挥发性有机化合物 (b-VOC) 的估算值。

需要在配置中设置 I²C 才能使此传感器工作。

NOTE

BSEC2 库仅在接受其软件许可协议后方可使用。在配置中启用此组件即表示您明确同意 BSEC 许可协议 的条款。请注意,该许可禁止分发任何包含此组件的编译固件二进制文件。

BME680 温度、压力、湿度和气体传感器。
示例界面
# 包含常用传感器的最小示例配置
bme68x_bsec2_i2c:
address: 0x76
model: bme680
operating_age: 28d
sample_rate: LP
supply_voltage: 3.3V
  • address (可选, int): 手动指定传感器的 I²C 地址。默认为 0x76。传感器也可以配置为使用 0x77

  • i2c_id (可选, ID): bme68x 连接的 I²C 总线 的 ID。

  • model (必需, string): 连接传感器的型号;BME680BME688

  • algorithm_output (可选, string): BSEC2 算法的输出。classification(默认)或 regression仅在型号为 BME688 时有效。

  • operating_age (可选, string): BSEC2 用于 IAQ 自动背景校准所考虑的历史时间,以天为单位。这意味着此时间段内的变化将影响 IAQ 值。可以是 4d28d(默认)。

  • sample_rate (可选, string): 采样率。默认为 LP,表示低功耗,每 3 秒采样一次。可以是 ULP,表示超低功耗,每 5 分钟采样一次。这控制了依赖气体的传感器的采样率,并将决定传感器加热器运行的间隔。默认情况下,此速率也将用于温度、湿度和压力传感器,但如果需要,可以在每个传感器级别上覆盖。

  • supply_voltage (可选, string): 传感器的供电电压。默认为 3.3V。如果您的传感器由 1.8 伏供电(例如 Pimoroni PIM357 BME680 breakout 模块),可以设置为 1.8V

  • temperature_offset (可选, float): 如果设备在外壳中且读数过高,则设置温度偏移。此值从读数中减去(例如,如果传感器读数比预期高 5°C,则将此值设置为 5),同时也会校正相对湿度读数。默认为 0

  • state_save_interval (可选, Time): 将校准后的 BSEC2 算法状态保存到 flash 的最小间隔,以便在设备重启时校准不必从零开始。默认为 6h

  • id (可选, ID): 手动指定用于代码生成的 ID。如果您有多个设备,请在传感器部分使用此 ID 来引用正确的 BME68x 传感器。这也将用于引用保存到 flash 的校准后的 BSEC2 算法状态。

sensor:
- platform: bme68x_bsec2
temperature:
name: "BME68x Temperature"
pressure:
name: "BME68x Pressure"
humidity:
name: "BME68x Humidity"
iaq:
name: "BME68x IAQ"
id: iaq
co2_equivalent:
name: "BME68x CO2 Equivalent"
breath_voc_equivalent:
name: "BME68x Breath VOC Equivalent"
  • bme68x_bsec2_id (可选, ID): 传感器将引用的 bme68x_bsec2_i2c 组件的 ID。当配置中存在多个设备时很有用。

  • id (可选, ID): 此 ID 除了为包管理提供目标外没有其他作用。

  • temperature (可选): 温度传感器的配置。

    • sample_rate (可选, string): 此传感器的可选采样率覆盖。可以是 LP,表示低功耗,每 3 秒采样一次,或 ULP,表示超低功耗,每 5 分钟采样一次。

    • 来自 Sensor 的所有其他选项。

  • pressure (可选): 压力传感器的配置。

    • sample_rate (可选, string): 此传感器的可选采样率覆盖。可以是 LP,表示低功耗,每 3 秒采样一次,或 ULP,表示超低功耗,每 5 分钟采样一次。

    • 来自 Sensor 的所有其他选项。

  • humidity (可选): 湿度传感器的配置。

    • sample_rate (可选, string): 此传感器的可选采样率覆盖。可以是 LP,表示低功耗,每 3 秒采样一次,或 ULP,表示超低功耗,每 5 分钟采样一次。

    • 来自 Sensor 的所有其他选项。

  • gas_resistance (可选): 气体传感器的配置。

    • 来自 Sensor 的所有选项。
  • iaq (可选): IAQ 传感器的配置。

    • 来自 Sensor 的所有选项。
  • iaq_static (可选): IAQ 静态传感器的配置。

    • 来自 Sensor 的所有选项。
  • iaq_accuracy (可选): 数值 IAQ 准确度传感器的配置。

    • 来自 Sensor 的所有选项。
  • co2_equivalent (可选): CO₂ 当量传感器的配置。

    • 来自 Sensor 的所有选项。
  • breath_voc_equivalent (可选): 呼吸 VOC 当量湿度传感器的配置。

    • 来自 Sensor 的所有选项。

传感器的准确度可以以文本格式报告。

text_sensor:
- platform: bme68x_bsec2
iaq_accuracy:
name: "BME68x IAQ Accuracy"
  • bme68x_bsec2_id (可选, ID): 文本传感器将引用的 bme68x_bsec2_i2c 组件的 ID。当配置中存在多个设备时很有用。

  • iaq_accuracy (可选): IAQ 准确度传感器的配置。显示:StabilizingUncertainCalibratingCalibrated

测量值以 0 到 500 的指数范围表示。该指数本身是通过使用乙醇气体以及健康人类呼出气息中的重要 VOC 进行测试得出的。VOC 值本身来自多篇关于呼吸分析研究的出版物。BSEC2 软件库定义的级别如下:

IAQ 指数空气质量
0 - 50优秀
51 - 100良好
101 - 150轻度污染
151 - 200中度污染
201 - 250重度污染
251 - 350严重污染
> 351极度污染

这可以通过如下模板文本传感器来表示

text_sensor:
- platform: template
name: "BME68x IAQ Classification"
lambda: |-
if (int(id(iaq).state) <= 50) {
return {"Excellent"};
} else if (int(id(iaq).state) >= 51 && int(id(iaq).state) <= 100) {
return {"Good"};
} else if (int(id(iaq).state) >= 101 && int(id(iaq).state) <= 150) {
return {"Lightly polluted"};
} else if (int(id(iaq).state) >= 151 && int(id(iaq).state) <= 200) {
return {"Moderately polluted"};
} else if (int(id(iaq).state) >= 201 && int(id(iaq).state) <= 250) {
return {"Heavily polluted"};
} else if (int(id(iaq).state) >= 251 && int(id(iaq).state) <= 350) {
return {"Severely polluted"};
} else if (int(id(iaq).state) >= 351 && int(id(iaq).state) <= 500) {
return {"Extremely polluted"};
} else {
return {"Error"};
}

所选的 b-VOC 气体如下:

化合物摩尔分数
乙烷5 ppm
异戊二烯10 ppm
乙醇10 ppm
丙酮50 ppm
一氧化碳15 ppm

BSEC2 软件会在后台自动校准,以提供一致的 IAQ 性能。校准过程会考虑最近的测量历史,以便值 50 对应”典型良好”水平,值 200 对应”典型污染”水平。IAQ 准确度传感器将指示以下值之一:

  • Stabilizing : 设备刚刚启动,传感器正在稳定中(通常持续 5 分钟)

  • Uncertain : BSEC2 的背景历史不确定。这通常意味着气体传感器数据过于稳定,BSEC2 无法明确定义其参考值。

  • Calibrating : BSEC2 发现了新的校准数据,正在校准中。

  • Calibrated : BSEC2 校准成功。

每隔 state_save_interval,或在达到完全校准后尽快,当前算法状态会保存到 flash,以便在设备重启时不必从零开始。