The SPS30 is a laser-based particulate matter (PM) sensor developed by Sensirion. It is designed to measure the concentration of airborne particles in various size ranges, including PM1, PM2.5, PM4, and PM10. The sensor utilizes advanced laser scattering technology and Sensirion's proprietary algorithms to deliver highly accurate and reliable real-time data. Its compact design, low power consumption, and long-term stability make it ideal for air quality monitoring applications.
The SPS30 is a high-performance sensor with the following key technical details:
Parameter | Value |
---|---|
Measurement Principle | Laser scattering |
Particle Size Ranges | PM1.0, PM2.5, PM4.0, PM10 |
Measurement Range | 0–1,000 µg/m³ |
Accuracy | ±10 µg/m³ (0–100 µg/m³) |
Response Time | < 8 seconds |
Operating Voltage | 5 V DC |
Current Consumption | < 60 mA |
Communication Interfaces | UART, I²C |
Operating Temperature Range | -10°C to +60°C |
Operating Humidity Range | 0–95% RH (non-condensing) |
Dimensions | 41 x 41 x 12 mm |
Lifetime | > 8 years (continuous operation) |
The SPS30 has a 7-pin connector for power and communication. The pinout is as follows:
Pin Number | Name | Description |
---|---|---|
1 | VDD | Power supply (5 V DC) |
2 | GND | Ground |
3 | TX | UART Transmit (data output) |
4 | RX | UART Receive (data input) |
5 | SCL | I²C Clock |
6 | SDA | I²C Data |
7 | SEL | Interface selection (GND for UART, VDD for I²C) |
Below is an example of how to interface the SPS30 with an Arduino UNO using I²C:
#include <Wire.h>
#include <SensirionI2CScd4x.h> // Include Sensirion library for SPS30
#define SPS30_I2C_ADDRESS 0x69 // Default I²C address for SPS30
void setup() {
Wire.begin(); // Initialize I²C communication
Serial.begin(9600); // Initialize serial communication for debugging
// Initialize SPS30
if (!sps30.begin(Wire)) {
Serial.println("SPS30 initialization failed!");
while (1); // Halt if initialization fails
}
Serial.println("SPS30 initialized successfully.");
}
void loop() {
float pm2_5, pm10;
// Read PM2.5 and PM10 concentrations
if (sps30.readMeasurement(pm2_5, pm10)) {
Serial.print("PM2.5: ");
Serial.print(pm2_5);
Serial.print(" µg/m³, PM10: ");
Serial.print(pm10);
Serial.println(" µg/m³");
} else {
Serial.println("Failed to read data from SPS30.");
}
delay(1000); // Wait 1 second before the next reading
}
No Data Output:
Inaccurate Readings:
Communication Errors:
Q: Can the SPS30 measure particles smaller than PM1?
A: No, the SPS30 is designed to measure particles in the PM1, PM2.5, PM4, and PM10 size ranges.
Q: How often should the sensor be calibrated?
A: The SPS30 is factory-calibrated and does not require additional calibration during its lifetime.
Q: Can the SPS30 be used outdoors?
A: Yes, but it should be protected from direct exposure to water, dust, and extreme environmental conditions.
Q: What is the lifetime of the SPS30?
A: The sensor has a lifetime of over 8 years under continuous operation.