Fijnstof meten met Arduino en de PMS5003

Fijnstof meten met Arduino en de PMS5003

Gepubliceerd op: 11-09-2021 12:16

Fijnstof (PM10/PM2.5) is een van de grootste luchtvervuilers in Nederland. Fijnstof wordt veroorzaakt door bijvoorbeeld houtkachels, wegverkeer, veeteelt en industrie. Tegenwoordig komen er steeds meer betaalbare fijnstofsensors voor Arduino op de markt om zelf fijnstofconcentraties te kunnen meten in en rond het huis.

Wat is fijnstof?

Fijnstof is op te delen in verschillende fracties. Zo is er PM10 wat alle stofdeeltjes omvat van 10 micrometer en kleiner, PM2.5 (kleiner dan 2,5 micrometer), en PM1 (kleiner dan 1 micrometer). Hoe kleiner het fijnstof, hoe dieper het in de longen kan doordringen, daarom gelden er verschillende limieten voor de verschillende soorten fijnstof. De belangrijkste veroorzakers van fijnstof zijn verbrandingsprocessen en (intensieve) veeteelt.

PM10 en PM2.5 meten met Arduino

Het RIVM meet op diverse locaties in Nederland de fijnstofconcentratie in de lucht. Dit gaat met grote en dure meetinstrumenten. Soms ook met filters waar de lucht doorheen wordt gezogen, na een bepaalde tijd wordt het filter dan gewogen en weet men hoeveel fijnstof er "gevangen" is.

Nu is dit voor huis-tuin-en-keuken gebruik natuurlijk een beetje overdreven. Gelukkig komen er steeds meer eenvoudige en betaalbare elektronische fijnstofsensors op de markt die je eenvoudig op een Arduino, Raspberry Pi of ESP8266 kunt aansluiten. Een veelgebruikte techniek is die op basis van laser scattering, de sensor bepaalt aan de hand van de verstrooiing van licht hoeveel deeltjes er in de meetkamer zweven. Een betaalbare fijnstofsensor op basis van laser scattering technologie is de Plantower PMS5003. Deze sensor meet afzonderlijk het gehalte aan PM1, PM2,5 en PM10 in de lucht.

PMS5003 aansluiten op Arduino / ESP8266

Omdat ik op verschillende plaatsen gemakkelijk de fijnstofconcentratie wil kunnen meten is het wel zo handig als de sensor verplaatsbaar is. Daarom maak ik gebruik van een ESP8266 NodeMcu V3, een microcontroller board met ingebouwde Wifi, zodat ik de sensor overal in huis kan plaatsen. Natuurlijk kun je de fijnstofsensor ook gewoon op je Arduino Uno aansluiten. De Plantower PMS5003 maakt gebruik van 5 Volt voor de ventilator en een seriƫle/UART verbinding voor het uitwisselen van de data.

De fijnstofsensor wordt geleverd met een acht-aderige kabel waar ik het stekkertje van af heb geknipt. Vervolgens sluit ik de eerste draad (5V) aan op V-USB van de NodeMCU, draad 2 is ground, draad 3 (enable) op een digitale poort, bijvoorbeeld D1 en draad 5 (Transmit) op een digitale poort, bijvoorbeeld D2. Met D1 kan ik de sensor nu aan en uit zetten en op D2 komen vervolgens de meetwaarden binnen.

Code voor de PMS5003 fijnstof sensor

Gelukkig heeft Adafruit de PMS5003 fijnstofsensor ook in het assortiment dus is er een prima library voor het Arduino ecosysteem. Deze library werkt dus niet alleen op de Arduino Uno, Mega, etc., maar ook prima op de ESP8266 boards zoals mijn NodeMCU als je ze via de Arduino IDE programmeert. Je vindt de library in de librarymanager onder de naam Adafruit_PM25AQI.

In de voorbeeldcode bij de library dien je nu te kiezen voor een aansluiting via SoftwareSerial. De ESP8266 heeft immers maar 1 hardware serial en die wordt al door de USB-aansluiting gebruikt. Uncomment de volgende regels in de voorbeeldcode:

 9| #include <SoftwareSerial.h>
10| SoftwareSerial pmSerial(2, 3);
...
27| pmSerial.begin(9600);
...
32| if (! aqi.begin_UART(&pmSerial))

Voeg in de setup routine de volgende code toe om de fijnstof sensor aan te zetten:

pinMode(D1, OUTPUT);
digitalWrite(D1, HIGH);

En verwijder de regels die gaan over Serial1 en I2C connectie. Upload de code en zie via de serial monitor de data binnenkomen!

Fijnstof meten en via Wifi loggen

Met behulp van de voorbeeldcode voor een simpele Wificlient is het eenvoudig om de ESP8266 aan het Wifi-netwerk te koppelen. De meetgegevens kun je vervolgens via een http-request loggen naar een database zoals ik eerder al eens beschreef in dit artikel. Als je het graag wat simpeler houdt qua programmeren kun je ook kiezen voor de ESPHome firmware in combinatie met bijvoorbeeld Home Assistant.

Reageer als eerste op dit artikel »

Aanbevolen artikelen