Andere delen uit deze serie:
- De waarde van sensor data, deel 2
- De waarde van sensor data, deel 3
- De waarde van sensor data, deel 4
- De waarde van sensor data, deel 5
Sensoren leveren data die ons inzicht geven in wat er om ons heen gebeurt. Visualisaties van die data maken het onzichtbare zichtbaar. Visualisaties zijn interpretaties van wat de data voorstelt.
Bij iedere interpretatie kun je afvragen of die juist is, maar belangrijker nog: is de data die wordt gebruikt wel juist. Herkennen van de waarde van sensor data begint zo dicht mogelijk bij de bron, de ruwe data of beter de signalen die op analoge of digitale wijze door de sensor worden afgegeven. Iedere interpretatie die volgt voegt onzekerheden toe. Een opeenstapeling van interpretaties zal uiteindelijk de waarde van de data en visualisatie bepalen.
Deze blog beschrijft een experimentele zoektocht naar nieuwe interpretaties die mogelijk een verhoogde waarde van de sensor data oplevert of in ieder geval een beter inzicht. Als voorbeeld nemen we de Shinyei PPD42NS, een populaire low-cost fijnstof sensor.
Stap 1: leer de sensor kennen
Er zijn een meerdere blogs te vinden die informatie leveren over de PPD42NS zoals deze:
- http://aqicn.org/sensor/shinyei/
- http://irq5.io/2013/07/24/testing-the-shinyei-ppd42ns/
- https://indiaairquality.com/
- http://blog.madflex.de/shinyei-ppd42ns-dust-sensor/
Herkenning (grootte) fijnstof deeltjes.
In de eerste blog zijn de onderstaande twee grafieken te vinden. De eerste grafiek laat het signaal zien dat de fotodiode afgeeft als voltage veranderingen. De pieken geven de fijnstof deeltjes weer die door de fotodiode worden ‘gezien’. Een hoge piek betekent een groot fijnstof deeltje, een lage piek een klein fijnstof deeltje (interpretatie).
Door een horizontale basislijn te trekken (pass-band filter) wordt een grenswaarde ingesteld van waaraf de waarnemingen worden afgelezen (interpretatie). De waarnemingen uit onderstaande grafiek zijn signalen met een tijdsduur van 120ms, 30ms, 50ms, 50ms, etc. De waarneming van 120ms betekent een groter deeltje dan de waarneming van 30ms.
De positie van de basislijn is te beïnvloeden door twee potentiometers die aan de sensor zijn toegevoegd. (zie foto)
Stap 2: Wat kunnen we met de ruwe data
De sensor geeft aan wanneer en hoelang een fijnstof deeltje wordt ‘gezien’ door een binaire nul (LOW) gedurende die tijd af te geven en anders een binaire 1 (HIGH). Deze periode van binaire nullen kan in microseconden worden afgelezen. De data wat dit oplevert is dus een tijd in microseconden per deeltje en het aantal signalen of deeltjes over een langere tijd. De tijdsduur van de signalen, de pulse lengte op de basislijn, zegt iets over de grootte van de fijnstof deeltjes.
Groepering fijnstof deeltjes naar signaal bandbreedte.
De tijdsduur van de signalen kunnen we onderverdelen in kanalen met elk een bepaalde bandbreedte waarmee we extra gegeven creeren namelijk het aantal deeltjes per kanaal. Het eerste kanaal (channel_00) heeft een bandbreedte van 0-5000 microseconde, het tweede kanaal (channel_01) van 5000-10000 microseconde, en zo verder. Kanaal 1 voor de kleinste deeltjes en kanaal 2 en verder voor de grotere deeltjes.
Vergelijken van twee sensoren
De hoogte van de basislijn is bepalend voor de meetresultaten dus erg belangrijk. Daarom vergelijken we twee sensoren die naast elkaar geplaatst en aangesloten zijn op één Arduino (met basislijn vanuit fabrieksinstelling).
De twee sensoren worden in de onderstaande grafiek weergegeven. De y-as geeft het aantal signalen aan, de x-as de kanalen. De meetperiode omvat een tijdsperiode van ongeveer drie uren.
Sensor 1 (bovenste grafiek) laat gemiddeld een lager aantal waarnemingen zien dan sensor2 in de onderste grafiek. Hieruit zou je kunnen concluderen dat de basislijn voor beide sensoren anders is ingesteld. Daarbij valt op te merken dat sensor 2 een grilliger patroon laat zien.
Is sensor 1 nu te laag ingesteld of geeft de meer vloeiende lijn aan dat de basislijn juist goed ingeregeld is t.o.v. sensor 2. Of is middelen van meetwaarden over de kanalen of over de sensoren heen de juiste manier om tot een goed resultaat te komen? In ieder geval laten de grafieken een duidelijke bovengrens zien als we kijken naar de maximale deeltjes grootte die de sensor nog constateert. Channel 13 laat nog wel een waarde zien maar wellicht is het beter om daar de bovengrens te trekken.
Ter illustratie hieronder ook nog de grafiek waarin het aantal waargenomen fijnstof deeltjes uitgezet is in de tijd. De piek omstreeks 8:40 uur is als gevolg van het aansteken van een lucifer.
Vergelijken van vier sensoren
Met deze sensor zullen we geen absolute meetwaarden meten en dus moeten we het zoeken in hoe sensoren zich tot elkaar verhouden. Later misschien ook met andere typen fijnstof sensoren maar eerst de Shinyei PPD42NS in een opstelling van 4 sensoren.
Hieronder is een eerste resultaat na een uur meten. In eerste instantie zien we weinig overeenkomsten maar let wel dat dit een relatief korte meetperiode is en fijnstof niveau laag waardoor kleine verschillen al een uitvergroting kunnen laten zien. We kunnen in ieder geval zeggen dat de proefopstelling functioneert.
De opstelling
De opstelling bestaat uit een 4-tal Shinyei PPD42NS fijnstof sensoren gekoppeld aan een Arduino Leonardo. Deze Arduino is feitelijk een “The Things uno” van The Things Network wat de deur op een kier zet voor experimenten met een LoRaWan netwerk!
Op de Arduino zit een Grove Base shield V2 voor de aansluiting van de connectoren van de sensoren en extra aansluitmogelijkheden voor bv. RGB-led, 4 digit display, CO2 sensor, barometer en misschien later nog wel meer.
Links onder op de foto ziet u een Raspberry Pi 3 B die nog moet worden geïnstalleerd en aangesloten. Deze Raspberry Pi zal straks de berichten met meetgegevens van de Arduino uitlezen, verwerken en via het netwerk beschikbaar stellen. Nu is de Arduino nog aangesloten op een iMac en wordt serieel via de usb kabel uitgelezen door een NodeJs applicatie welke de resultaten in een csv-bestand opslaat. Visualisatie (de grafieken) komt tot stand met behulp van een R applicatie die het csv bestand leest, verwerkt en omzet in grafieken zoals eerder getoond.
Succes en wat nu?
De eerste stappen zijn gezet. Kennis over de sensoren is opgedaan en de keten van sensor tot visualisatie is in technische en functionele zin gerealiseerd. Genoeg voor nu maar voor een vervolg is er nog veel te doen. Raspberry Pi toevoegen aan de keten zodat continue gemeten kan worden, software verbeteren (Arduino/NodeJs/R) en natuurlijk kritisch naar de opstelling blijven kijken en waar nodig verbeteringen aanbrengen. Uitdagingen genoeg in het vooruitzicht 🙂
Verwachtingen
Waar deze experimenten ons naar zullen leiden is nog onduidelijk maar er zijn genoeg prikkelende uitdagingen.
De uitdagingen die we voor ons zien zijn o.a.
- Een stabiele opstelling van apparatuur en infrastructuur (hardware)
- Goed werkende applicaties op de verschillende niveaus (software)
- Combineren van meerdere typen sensoren (multivendor)
- Kalibratie- en validatie technieken ontwikkelen (online opwaarderen meetwaarde)
- Low-cost en laagdrempelige hard- en software (Citizen science)
- Standaardisatie nastreven zoals integratie met SOS web-service (52North)
- Combineren met andersoortige (open) data zoals data over weer, verkeer, etc.
Wordt vervolgd.
Andere delen uit deze serie:
- De waarde van sensor data, deel 2
- De waarde van sensor data, deel 3
- De waarde van sensor data, deel 4
- De waarde van sensor data, deel 5
André van der Wiel
Scapeler
[…] De waarde van sensor data, deel 1 […]
[…] De waarde van sensor data, deel 1 […]
[…] De waarde van sensor data, deel 1 […]
[…] De waarde van sensor data, deel 1 […]
[…] heeft u de andere blogs ook al gelezen: De waarde van sensor data, deel 1 tot en met deel […]
Reacties zijn gesloten.