- Details
- Category: Devices
- Hits: 92
Hi All, just finished 3D modeling for proto, and going to order today. It is updated version after first evaluation.
- Details
- Category: Devices
- Hits: 180
RealisticPM' mechanic look I will finish soon :) Aleady going to 3D print the trial :)
- Details
- Category: Devices
- Hits: 191
Works with sensirion-sps Arduino lib (the versions below 1.2.0). Data will be in Serial monitor:

#include <sps30.h>
#include <Wire.h>
// Uncomment for serial plotter format
// #define PLOTTER_FORMAT
void setup() {
int16_t ret;
uint8_t auto_clean_days = 4;
SerialUSB.begin(115200); // Use SerialUSB for MKR boards
while (!SerialUSB) {
; // Wait for USB Serial to be ready
}
delay(2000);
// Initialize I2C on default pins (SDA/SCL on MKR ONE 1310)
Wire.begin();
// Initialize Sensirion I2C layer (usually calls Wire.begin internally)
sensirion_i2c_init();
while (sps30_probe() != 0) {
SerialUSB.println("SPS sensor probing failed");
delay(500);
}
#ifndef PLOTTER_FORMAT
SerialUSB.println("SPS sensor probing successful");
#endif
ret = sps30_set_fan_auto_cleaning_interval_days(auto_clean_days);
if (ret) {
SerialUSB.print("error setting the auto-clean interval: ");
SerialUSB.println(ret);
}
ret = sps30_start_measurement();
if (ret < 0) {
SerialUSB.println("error starting measurement");
}
#ifndef PLOTTER_FORMAT
SerialUSB.println("measurements started");
#endif
#ifdef SPS30_LIMITED_I2C_BUFFER_SIZE
SerialUSB.println("Your Arduino hardware has a limitation that only allows reading the mass concentrations.");
SerialUSB.println("See https://github.com/Sensirion/arduino-sps#esp8266-partial-legacy-support");
delay(2000);
#endif
delay(1000);
}
void loop() {
struct sps30_measurement m;
uint16_t data_ready;
int16_t ret;
do {
ret = sps30_read_data_ready(&data_ready);
if (ret < 0) {
SerialUSB.print("error reading data-ready flag: ");
SerialUSB.println(ret);
} else if (!data_ready) {
SerialUSB.println("data not ready, no new measurement available");
} else
break;
delay(100);
} while (1);
ret = sps30_read_measurement(&m);
if (ret < 0) {
SerialUSB.println("error reading measurement");
} else {
#ifndef PLOTTER_FORMAT
SerialUSB.print("PM 1.0: ");
SerialUSB.println(m.mc_1p0);
SerialUSB.print("PM 2.5: ");
SerialUSB.println(m.mc_2p5);
SerialUSB.print("PM 4.0: ");
SerialUSB.println(m.mc_4p0);
SerialUSB.print("PM 10.0: ");
SerialUSB.println(m.mc_10p0);
#ifndef SPS30_LIMITED_I2C_BUFFER_SIZE
SerialUSB.print("NC 0.5: ");
SerialUSB.println(m.nc_0p5);
SerialUSB.print("NC 1.0: ");
SerialUSB.println(m.nc_1p0);
SerialUSB.print("NC 2.5: ");
SerialUSB.println(m.nc_2p5);
SerialUSB.print("NC 4.0: ");
SerialUSB.println(m.nc_4p0);
SerialUSB.print("NC 10.0: ");
SerialUSB.println(m.nc_10p0);
SerialUSB.print("Typical particle size: ");
SerialUSB.println(m.typical_particle_size);
#endif
SerialUSB.println();
#else
SerialUSB.print(m.nc_0p5);
SerialUSB.print(" ");
SerialUSB.print(m.nc_1p0 - m.nc_0p5);
SerialUSB.print(" ");
SerialUSB.print(m.nc_2p5 - m.nc_1p0);
SerialUSB.print(" ");
SerialUSB.print(m.nc_4p0 - m.nc_2p5);
SerialUSB.print(" ");
SerialUSB.print(m.nc_10p0 - m.nc_4p0);
SerialUSB.println();
#endif
}
delay(1000);
}
- Details
- Category: Devices
- Hits: 219

Guys, just finished all the layout, it will be prototyped soon!
What is under the hood?
- It is on-wall PM2.5 sensor with sizes of 360x160mm (PCBA), ideal for work environment / sport rooms
- PM2.5 sensor from Panasonic (SN-GCJA5), which show fantastic performance, while light and slim, tested over the years.
- PM2.5 value display step as low as 0.1 ug/m3
- Seed Studio XAIO SAMD21 dev board based, so Arduino or micropython enabled, you may play with it
- automatic color control via addressing LEDs
- Fused via resettable fuse
- Standard USB-C cable for power on.
- automatic brightness control
- additional test points on 2.54 mm standars 7-pin connector for all your enjoyment
Page 1 of 6
RSS
