RealisticPM is een wandmonitor voor luchtkwaliteit, gebouwd met de Seeeduino XIAO SAMD21 en gevoed via USB-C. Het apparaat is ontworpen om fijnstof (PM) te meten en ondersteunt twee sensoren: de Sensirion SPS30 en de Panasonic SN-GCJA5.
Belangrijkste kenmerken:
- Visualisatie: Een kleurenscherm en adresseerbare LED's geven de luchtkwaliteit aan via een kleurcode (blauw voor zeer schoon tot rood voor vervuild).
- Connectiviteit: Data-output via een virtuele COM-poort in een specifiek hexadecimaal formaat.
- Hardware: Voorzien van automatische helderheidsregeling en een resetbare zekering.
- Software: Open-source firmware die via de Arduino IDE kan worden geconfigureerd en geüpload.
De monitor is geschikt voor diverse omgevingen zoals cleanrooms en sportruimtes, waarbij de gebruiker zelf de sensor kan kiezen en de firmware kan aanpassen via de realisticPM.ino sketch.
RealisticPM
Kenmerken
- Groot kleurenscherm
- Standaard USB-C-connector
- Laag stroomverbruik (maximaal 2 W)
- Hoogwaardige LED's
- COM-poort data-output (virtuele COM-poort)
- Pin-out voor ontwikkelingsdoeleinden
- Open-source code
- Automatische helderheidsregeling
- Beveiligd met een resetbare zekering
- Automatische kleurregeling via adresseerbare LED's
- PM2.5-waarde weergave met stappen tot 0,1 µg/m³
- Afmetingen van 364 x 164 x 18 mm, ideaal voor werkomgevingen, sportruimtes of cleanrooms
- Ondersteuning voor Panasonic SN-GCJA5 of Sensirion SPS30 PM-sensoren
Ondersteunde PM-sensoren
| Sensor | Interface | I2C-adres | Driver |
| Sensirion SPS30 | I2C (max. 100 kHz) | 0x69 | Ingebouwd in de sketch, geen extra bibliotheek nodig |
| Panasonic SN-GCJA5 | I2C | 0x33 | SparkFun SN-GCJA5 Arduino Library |
Beide sensoren worden gevoed met 5 V en worden geschakeld door de SENSOR_EN pin (D8).
De sensor selecteren
Open realisticPM.ino en ontcommentarieer precies één regel bovenaan:
#define PM_SENSOR_SPS30
//#define PM_SENSOR_GCJA5
Het display, de helderheidsregeling en de seriële output werken op dezelfde manier, ongeacht de gekozen sensor.
De SPS30 aansluiten
| SPS30 pin | Functie | Verbinding met |
| 1 | VDD | 5 V (geschakeld door SENSOR_EN) |
| 2 | SDA | XIAO SDA (D4) |
| 3 | SCL | XIAO SCL (D5) |
| 4 | SEL | GND (selecteert I2C-modus) |
| 5 | GND | GND |
Belangrijk: Trek SDA en SCL omhoog naar 3,3 V (bijvoorbeeld met 10 kΩ). De SAMD21-pinnen zijn niet 5 V tolerant.
De SPS30 reinigt de ventilator automatisch elke 168 uur bij continu gebruik. De functie pmSensorFanClean() in de sketch start een handmatige reiniging (duurt ongeveer 10 seconden; tijdens deze tijd zijn de metingen ongeldig).
Als de sensor bij het opstarten ontbreekt of stopt met reageren, initialiseert de firmware deze automatisch opnieuw en blijft de laatst bekende goede waarde worden getoond.
Bouwen
- Installeer het Seeeduino XIAO (SAMD) boardpakket in de Arduino IDE.
- Installeer de volgende bibliotheken:
- Adafruit NeoPixel
- SparkFun SN-GCJA5 library (alleen wanneer
PMSENSORGCJA5 is geselecteerd)
- Zorg dat
antirtos.h in de sketch-map staat.
- Selecteer de gewenste sensor (zie boven), compileer de code en upload deze naar het bord.
Seriële output
De monitor verschijnt als een virtuele COM-poort. Elke 10 seconden wordt er één regel verzonden:
R<PM10><PM2.5><PM1.0><CHECKSUM>M\r\n
Elk veld bestaat uit 4 hexadecimale tekens, uitgedrukt in eenheden van 0,1 µg/m³ (bijvoorbeeld: 0019 = 2,5 µg/m³). De CHECKSUM is de 16-bit som van de drie waarden.
Voorbeeld: R00280019000E004FM betekent:
- PM10 = 4,0 µg/m³
- PM2.5 = 2,5 µg/m³
- PM1.0 = 1,4 µg/m³
Bij het opstarten print de firmware welke sensor is geselecteerd en of deze is gevonden (voor de SPS30 wordt ook het serienummer getoond).
Kleuren van het display
De PM2.5-waarde (een voortschrijdend gemiddelde van 32 samples) wordt weergegeven in kleuren op basis van het niveau:
| PM2.5 (µg/m³) | Kleur |
| ≤ 5,0 | Blauw |
| 5,1 – 15,0 | Groen |
| 15,1 – 50,0 | Geel |
| > 50,0 | Rood |
RealisticPM
Kenmerken
- Groot kleurenscherm
- Standaard USB-C-connector
- Laag stroomverbruik (maximaal 2 W)
- Hoogwaardige LED's
- COM-poort data-output (virtuele COM-poort)
- Pin-out voor ontwikkelingsdoeleinden
- Open-source code
- Automatische helderheidsregeling
- Beveiligd met een resetbare zekering
- Automatische kleurregeling via adresseerbare LED's
- PM2.5-waarde weergave met stappen tot 0,1 µg/m³
- Afmetingen van 364 x 164 x 18 mm, ideaal voor werkomgevingen, sportruimtes of cleanrooms
- Ondersteuning voor Panasonic SN-GCJA5 of Sensirion SPS30 PM-sensoren
Ondersteunde PM-sensoren
| Sensor | Interface | I2C-adres | Driver |
| Sensirion SPS30 | I2C (max. 100 kHz) | 0x69 | Ingebouwd in de sketch, geen extra bibliotheek nodig |
| Panasonic SN-GCJA5 | I2C | 0x33 | SparkFun SN-GCJA5 Arduino Library |
Beide sensoren worden gevoed met 5 V en worden geschakeld door de SENSOR_EN pin (D8).
De sensor selecteren
Open realisticPM.ino en ontcommentarieer precies één regel bovenaan:
#define PM_SENSOR_SPS30
//#define PM_SENSOR_GCJA5
Het display, de helderheidsregeling en de seriële output werken op dezelfde manier, ongeacht de gekozen sensor.
De SPS30 aansluiten
| SPS30 pin | Functie | Verbinding met |
| 1 | VDD | 5 V (geschakeld door SENSOR_EN) |
| 2 | SDA | XIAO SDA (D4) |
| 3 | SCL | XIAO SCL (D5) |
| 4 | SEL | GND (selecteert I2C-modus) |
| 5 | GND | GND |
Belangrijk: Trek SDA en SCL omhoog naar 3,3 V (bijvoorbeeld met 10 kΩ). De SAMD21-pinnen zijn niet 5 V tolerant.
De SPS30 reinigt de ventilator automatisch elke 168 uur bij continu gebruik. De functie pmSensorFanClean() in de sketch start een handmatige reiniging (duurt ongeveer 10 seconden; tijdens deze tijd zijn de metingen ongeldig).
Als de sensor bij het opstarten ontbreekt of stopt met reageren, initialiseert de firmware deze automatisch opnieuw en blijft de laatst bekende goede waarde worden getoond.
Bouwen
- Installeer het Seeeduino XIAO (SAMD) boardpakket in de Arduino IDE.
- Installeer de volgende bibliotheken:
- Adafruit NeoPixel
- SparkFun SN-GCJA5 library (alleen wanneer
PMSENSORGCJA5 is geselecteerd)
- Zorg dat
antirtos.h in de sketch-map staat.
- Selecteer de gewenste sensor (zie boven), compileer de code en upload deze naar het bord.
Seriële output
De monitor verschijnt als een virtuele COM-poort. Elke 10 seconden wordt er één regel verzonden:
R<PM10><PM2.5><PM1.0><CHECKSUM>M\r\n
Elk veld bestaat uit 4 hexadecimale tekens, uitgedrukt in eenheden van 0,1 µg/m³ (bijvoorbeeld: 0019 = 2,5 µg/m³). De CHECKSUM is de 16-bit som van de drie waarden.
Voorbeeld: R00280019000E004FM betekent:
- PM10 = 4,0 µg/m³
- PM2.5 = 2,5 µg/m³
- PM1.0 = 1,4 µg/m³
Bij het opstarten print de firmware welke sensor is geselecteerd en of deze is gevonden (voor de SPS30 wordt ook het serienummer getoond).
Kleuren van het display
De PM2.5-waarde (een voortschrijdend gemiddelde van 32 samples) wordt weergegeven in kleuren op basis van het niveau:
| PM2.5 (µg/m³) | Kleur |
| ≤ 5,0 | Blauw |
| 5,1 – 15,0 | Groen |
| 15,1 – 50,0 | Geel |
| > 50,0 | Rood |