跳转到内容

SPS30 颗粒物传感器

sps30 传感器平台允许您在 ESPHome 中使用 Sensirion SPS30(数据手册)传感器。要在您的配置中使该传感器正常工作,必须先设置好 I²C 总线。该传感器支持 UART 和 I²C 通信。但目前仅实现了 I²C 通信。

# 示例配置条目
sensor:
- platform: sps30
pm_1_0:
name: "Workshop PM <1µm Weight concentration"
id: "workshop_PM_1_0"
pm_2_5:
name: "Workshop PM <2.5µm Weight concentration"
id: "workshop_PM_2_5"
pm_4_0:
name: "Workshop PM <4µm Weight concentration"
id: "workshop_PM_4_0"
pm_10_0:
name: "Workshop PM <10µm Weight concentration"
id: "workshop_PM_10_0"
pmc_0_5:
name: "Workshop PM <0.5µm Number concentration"
id: "workshop_PMC_0_5"
pmc_1_0:
name: "Workshop PM <1µm Number concentration"
id: "workshop_PMC_1_0"
pmc_2_5:
name: "Workshop PM <2.5µm Number concentration"
id: "workshop_PMC_2_5"
pmc_4_0:
name: "Workshop PM <4µm Number concentration"
id: "workshop_PMC_4_0"
pmc_10_0:
name: "Workshop PM <10µm Number concentration"
id: "workshop_PMC_10_0"
pm_size:
name: "Typical Particle size"
id: "pm_size"
address: 0x69
update_interval: 10s
idle_interval: 5min
  • pm_1_0 (可选): 1μm 及以下细颗粒物的重量浓度传感器信息。读数以 µg/m³ 为单位。

  • pm_2_5 (可选): 2.5μm 及以下细颗粒物的重量浓度传感器信息。读数以 µg/m³ 为单位。

  • pm_4_0 (可选): 4μm 及以下粗颗粒物的重量浓度传感器信息。读数以 µg/m³ 为单位。

  • pm_10_0 (可选): 10μm 及以下粗颗粒物的重量浓度传感器信息。读数以 µg/m³ 为单位。

  • pmc_0_5 (可选): 0.5μm 及以下超细颗粒物的数量浓度传感器信息。读数以 particles/cm³ 为单位。

  • pmc_1_0 (可选): 1μm 及以下细颗粒物的数量浓度传感器信息。读数以 particles/cm³ 为单位。

  • pmc_2_5 (可选): 2.5μm 及以下细颗粒物的数量浓度传感器信息。读数以 particles/cm³ 为单位。

  • pmc_4_0 (可选): 4μm 及以下粗颗粒物的数量浓度传感器信息。读数以 particles/cm³ 为单位。

  • pmc_10_0 (可选): 10μm 及以下粗颗粒物的数量浓度传感器信息。读数以 particles/cm³ 为单位。

  • pm_size (可选): 典型颗粒物粒径,单位为 μm。

  • auto_cleaning_interval (可选): 周期性风扇清洁的间隔(秒)。

  • address (可选, int): 手动指定传感器的 I²C 地址。默认为 0x69。

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

  • idle_interval (可选, Time): 如果指定了该参数,传感器将在两次读数之间进入空闲模式,并持续指定的时间。

该传感器具有 5 针 JST ZHR 型连接器,间距为 1.5mm。(匹配的连接器外壳,数据手册) 要将传感器强制切换到 I²C 模式,应将 SEL 引脚(接口选择,引脚编号 4)与地(引脚编号 5)短接。

为获得更好的稳定性,SDA 和 SCL 线需要合适的上拉电阻。Sensirion 在手册中展示了在 VDD(5V,引脚编号 1)与 SDA(引脚编号 2)和 SCL(引脚编号 3)之间使用 10 kΩ 电阻。

SPS30 传感器具有自动风扇清洁功能,会将内置风扇加速至最大速度 10 秒,以吹出风扇内部积累的灰尘。 默认自动清洁间隔为连续使用 168 小时(1 周)。关闭传感器会重置该时间计数器。 目前不支持禁用自动清洁或设置手动间隔。

该动作手动启动风扇清洁。

on_...:
then:
- sps30.start_fan_autoclean: my_sps30

如需从 Home Assistant 触发风扇清洁功能,请添加如下按钮,并通过(周期性)自动化触发它。

button:
- platform: template
name: "SPS30 fan clean"
on_press:
then:
- sps30.start_fan_autoclean: my_sps30
sensor:
- platform: sps30
id: "my_sps30"
...

Sensirion 建议至少每周清洁一次。

SPS30 传感器可以进入空闲运行模式,此时大部分内部电子元件(包括风扇和激光)都会关闭。 这可以大幅降低功耗并延长传感器寿命。

指定 idle_interval 配置参数后,传感器将在该间隔内自动停止,到时间时唤醒,让传感器预热 30 秒,读取一次读数后再进入空闲状态。

下面的启动和停止动作允许用户手动让传感器进入和退出空闲模式。请注意,传感器启动后,在输出测量值之前有 30 秒的预热期。

更多信息请参见低功耗文档。

该动作手动将传感器切换到测量模式。

on_...:
then:
- sps30.start_measurement: my_sps30

该动作手动将传感器切换到空闲模式。

on_...:
then:
- sps30.stop_measurement: my_sps30