通过 BSEC2 的 BME68x 温度、湿度、压力与气体传感器
bme68x_bsec2_i2c 传感器平台允许您在 ESPHome 中使用您的
BME680 和
BME688
(Adafruit, Pimoroni)温度、湿度、压力和气体传感器,通过 Bosch Sensortec
Environmental Cluster 2 (BSEC2) 软件库。Bosch 专有算法的使用提供了空气质量指数 (IAQ) 测量,该测量源自
气体电阻传感器对特定挥发性有机化合物 (VOCs) 的响应。BSEC 软件还提供
CO₂ 和呼吸挥发性有机化合物 (b-VOC) 的估计值,使用人类呼出气体中 VOC 和 CO₂ 之间的相关性。
需要在您的配置中设置 I²C 才能使此传感器正常工作。
NOTE
BSEC2 库仅在接受其软件许可协议后才可供使用。在您的配置中启用此 组件即表示您明确同意 BSEC 许可协议 的条款。注意 许可禁止分发任何包含此组件的已编译固件二进制文件。


# Minimal example configuration with common sensorsbme68x_bsec2_i2c: address: 0x76 model: bme680 operating_age: 28d sample_rate: LP supply_voltage: 3.3V-
address (可选, int): 手动指定传感器的 I²C 地址。默认为
0x76。传感器还可以 配置为使用0x77。 -
model (必选, string): 连接传感器的型号;
BME680或BME688。 -
algorithm_output (可选, string): BSEC2 算法的输出。可选值为
classification(默认)或regression。仅当型号为 BME688 时有效。 -
operating_age (可选, string): BSEC2 用于 IAQ 自动后台校准的历史天数。这意味着此时间段内的变化将影响 IAQ 值。可选值为
4d或28d(默认)。 -
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 算法状态保存到闪存的最小时间间隔,这样设备重启时校准不必从头开始。默认为
6h。 -
id (可选, ID): 手动指定代码生成中使用的 ID。如果您有多个设备,请在传感器部分中使用此 ID 引用于正确的 BME68x 传感器。此 ID 也将用于引用保存到闪存的校准 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 精度传感器的配置。显示:
Stabilizing、Uncertain、Calibrating、Calibrated。- 来自 Text Sensor 的所有其他选项。
空气质量指数 (IAQ) 测量
Section titled “空气质量指数 (IAQ) 测量”测量值使用 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).get_state()) <= 50) { return {"Excellent"}; } else if (int(id(iaq).get_state()) >= 51 && int(id(iaq).get_state()) <= 100) { return {"Good"}; } else if (int(id(iaq).get_state()) >= 101 && int(id(iaq).get_state()) <= 150) { return {"Lightly polluted"}; } else if (int(id(iaq).get_state()) >= 151 && int(id(iaq).get_state()) <= 200) { return {"Moderately polluted"}; } else if (int(id(iaq).get_state()) >= 201 && int(id(iaq).get_state()) <= 250) { return {"Heavily polluted"}; } else if (int(id(iaq).get_state()) >= 251 && int(id(iaq).get_state()) <= 350) { return {"Severely polluted"}; } else if (int(id(iaq).get_state()) >= 351 && int(id(iaq).get_state()) <= 500) { return {"Extremely polluted"}; } else { return {"Error"}; }所选的 b-VOC 气体如下:
| 化合物 | 摩尔分数 |
|---|---|
| 乙烷 | 5 ppm |
| 异戊二烯 | 10 ppm |
| 乙醇 | 10 ppm |
| 丙酮 | 50 ppm |
| 一氧化碳 | 15 ppm |
IAQ 精度和校准
Section titled “IAQ 精度和校准”BSEC2 软件在后台自动校准以提供一致的 IAQ 性能。校准 过程考虑最近的测量历史,使得 50 的值对应”典型良好”水平,而 200 的值对应”典型污染”水平。IAQ 精度传感器将指示以下值之一:
-
Stabilizing: 设备刚刚启动,传感器正在稳定(通常持续 5 分钟) -
Uncertain: BSEC2 的背景历史不确定。这通常意味着气体传感器数据过于稳定,BSEC2 无法明确定义其参考。 -
Calibrating: BSEC2 发现了新的校准数据,目前正在校准。 -
Calibrated: BSEC2 校准成功。
每隔一个 state_save_interval,或者在全校准达到后尽快,当前算法状态会保存到闪存中,这样设备重启时不需要从头开始。