SPS30 Particulate Matter Sensor

The sps30 sensor platform allows you to use your Sensirion SPS30 (datasheet) sensors with ESPHome. The I²C Bus is required to be set up in your configuration for this sensor to work. This sensor supports both UART and I²C communication. However, at the moment only I²C communication is implemented.

../../_images/sensirion-pm.png
# Example configuration entry
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

Configuration variables:

  • pm_1_0 (Optional): The information for the Weight Concentration sensor for fine particles up to 1μm. Readings in µg/m³.

    • name (Required, string): The name for this sensor.

    • id (Optional, ID): Set the ID of this sensor for use in automation and lambdas.

    • All other options from Sensor.

  • pm_2_5 (Optional): The information for the Weight Concentration sensor for fine particles up to 2.5μm. Readings in µg/m³.

    • name (Required, string): The name for this sensor.

    • id (Optional, ID): Set the ID of this sensor for use in automation and lambdas.

    • All other options from Sensor.

  • pm_4_0 (Optional): The information for the Weight Concentration sensor for coarse particles up to 4μm. Readings in µg/m³.

    • name (Required, string): The name for this sensor.

    • id (Optional, ID): Set the ID of this sensor for use in automation and lambdas.

    • All other options from Sensor.

  • pm_10_0 (Optional): The information for the Weight Concentration sensor for coarse particles up to 10μm. Readings in µg/m³.

    • name (Required, string): The name for this sensor.

    • id (Optional, ID): Set the ID of this sensor for use in automation and lambdas.

    • All other options from Sensor.

  • pmc_0_5 (Optional): The information for the Number Concentration sensor for ultrafine particles up to 0.5μm. Readings in particles/cm³.

    • name (Required, string): The name for this sensor.

    • id (Optional, ID): Set the ID of this sensor for use in automation and lambdas.

    • All other options from Sensor.

  • pmc_1_0 (Optional): The information for the Number Concentration sensor for fine particles up to 1μm. Readings in particles/cm³.

    • name (Required, string): The name for this sensor.

    • id (Optional, ID): Set the ID of this sensor for use in automation and lambdas.

    • All other options from Sensor.

  • pmc_2_5 (Optional): The information for the Number Concentration sensor for fine particles up to 2.5μm. Readings in particles/cm³.

    • name (Required, string): The name for this sensor.

    • id (Optional, ID): Set the ID of this sensor for use in automation and lambdas.

    • All other options from Sensor.

  • pmc_4_0 (Optional): The information for the Number Concentration sensor for coarse particles up to 4μm. Readings in particles/cm³.

    • name (Required, string): The name for this sensor.

    • id (Optional, ID): Set the ID of this sensor for use in automation and lambdas.

    • All other options from Sensor.

  • pmc_10_0 (Optional): The information for the Number Concentration sensor for coarse particles up to 10μm. Readings in particles/cm³.

    • name (Required, string): The name for this sensor.

    • id (Optional, ID): Set the ID of this sensor for use in automation and lambdas.

    • All other options from Sensor.

  • pm_size (Optional): Typical particle size in μm.

    • name (Required, string): The name for this sensor.

    • id (Optional, ID): Set the ID of this sensor for use in automation and lambdas.

    • All other options from Sensor.

  • auto_cleaning_interval (Optional): The interval in seconds of the periodic fan-cleaning.

  • address (Optional, int): Manually specify the I²C address of the sensor. Defaults to 0x69.

  • update_interval (Optional, Time): The interval to check the sensor. Defaults to 60s.

Wiring:

The sensor has a 5 pin JST ZHR type connector, with a 1.5mm pitch. (Matching connector housing, datasheet) To force the sensor into I²C mode, the SEL pin (Interface Select pin no.5) should be shorted to ground (pin no.4)

../../_images/sps30-wiring.png

For better stability, the SDA and SCL lines require suitable pull-up resistors.

Automatic Cleaning:

The SPS30 sensor has an automatic fan-cleaning which will accelerate the built-in fan to maximum speed for 10 seconds in order to blow out the dust accumulated inside the fan. The default automatic-cleaning interval is 168 hours (1 week) of uninterrupted use. Switching off the sensor resets this time counter. Disabling of automatic-cleaning or setting a manual interval is not supported at the moment.

sps30.start_fan_autoclean Action

This action manually starts fan-cleaning.

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

See Also