Techniek
Opmerking vooraf:
Deze pagina is bedoeld om mensen met een nieuwsgierigheid naar techniek te
informeren over de techniek onder de motorkap van de Digital Pollution Painter
(DPP). Als deze beschrijving voor u te ver gaat, geen probleem. U kunt de DPP
ook goed gebruiken zonder te weten wat er precies onder de motorkap gebeurt.
Hardware
Het hart van de DPP wordt gevormd door de Raspberry Pi
microcomputer. Dit is een single-board microcomputer ter grootte van een
zeepdoos. Ondanks zijn lage prijs en geringe afmetingen is dit een volwaardige
computer, draaiend onder een versie van het Linux operating systeem.
De Raspberry Pi is bijzonder geschikt voor het aansluiten
van externe hardware, dankzij de General Purpose Input/Output (GPIO)-bus,
gevormd door de 40 pinnen die boven in de hier getoonde foto zichtbaar zijn. Er
is een grote verscheidenheid aan sensoren en andere kleine apparaatjes
beschikbaar, die aan de GPIO-bus kunnen worden gekoppeld.
Omdat de Raspberry Pi een grote acceptatie heeft bereikt
binnen de “open source software development community”, is er ook veel software
beschikbaar om die externe hardware te ondersteunen. Wij gebruiken de GPIO-bus
om een fijnstofsensor aan te sluiten. Ook kan er een GPS-sensor worden
aangesloten voor plaatsbepaling. Deze sensor zal in een later
ontwikkelingsstadium ook worden ondersteund.
Daarnaast zijn er 4 USB-poorten beschikbaar om apparaten te
koppelen. Eén van deze poorten gebruiken wij om een fotocamera met USB aan te
sluiten.
Met deze hardware-opties is de Raspberry Pi bij uitstek
geschikt voor het realtime verwerken van sensordata. Onderstaande afbeelding
laat de centrale rol van de Raspberry Pi zien in de architectuur van de Digital
Pollution Painter.
De Raspberry Pi is samen met een touchscreen gemonteerd in een behuizing. Het touchscreen dient voor zowel de bediening als het tonen van de resultaten. Tijdens foto-expedities wordt de DPP gevoed door een powerbank.
Software
Binnen het Linux operating systeem van de Raspberry Pi wordt de taal Python gebruikt, met een groot aantal software libraries (bibliotheken) voor de uitvoering van specifieke taken. Voorbeelden van dit gebruik van bibliotheken zijn:
- Flask voor de implementatie van de webserver;
- OpenCV voor de bewerking van beelden;
- gPhoto2 voor besturing van en data-uitwisseling met fotocamera’s;
- Exif en Exiftool voor het omgaan met de EXIF headers van fotobestanden;
- Network manager voor het maken en beheren van wifi-verbindingen;
- Adafruit CircuitPython voor het uitlezen van de fijnstofsensor;
- GPSD voor het uitlezen van de GPS plaatsbepaling (nog te realiseren).
Zowel Linux, Python als de gebruikte bibliotheken zijn “open
source software”. Dat betekent dat deze software, zeker voor niet-commercieel
gebruik, vrijelijk kan worden gebruikt.
De software is gerealiseerd in de vorm van een cliënt/server
model. De webserver maakt de webpagina waarmee de gebruiker de DPP kan bedienen
en bestuurt de diverse processen binnen de DPP, zoals het maken van de foto’s,
de bewerking ervan, de meting van de luchtkwaliteit en de instellingen van de
systeemparameters.
Bediening kan plaatsvinden op het scherm van de DPP zelf,
maar ook vanaf een smartphone, tablet of laptop.
De DPP kan worden
gekoppeld aan een bestaand (wifi) netwerk. Bij afwezigheid van zo’n netwerk kan
de DPP zelf dienen als wifi-accespoint. Op deze wijze kan altijd vanaf een
smartphone, tablet of laptop verbinding met de DPP worden gemaakt. Er is dan
geen internetverbinding. Met een mobiel accesspoint kunnen ook de operaties
waarbij een internetverbinding nodig is, worden uitgevoerd. De status van de
wifi-verbinding is zichtbaar in de linker kolom van de hoofdwebpagina.
De DPP checkt zelf of er een bekend wifi-netwerk beschikbaar
is en maakt dan daarmee verbinding. Als de DPP geen bekend netwerk ziet, wordt
de DPP in “accesspoint mode” gestart. In dat geval kunt u uw smartphone, tablet
en/of laptop via wifi verbinden met de DPP.
De DPP wordt via een USB-kabel verbonden met het
fototoestel. Communicatie tussen DPP en fototoestel wordt uitgevoerd door de
library gPhoto2. Vanuit Python worden via gPhoto2 opdrachten aan de camera
gegeven en worden beelden uit de camera ingelezen. De status van de camera is
zichtbaar in de linker kolom van de hoofdwebpagina.
Op een vergelijkbare wijze wordt op continue basis de
luchtkwaliteitssensor uitgelezen. Deze zgn. PM-waarden zijn ook in de linker
kolom van de hoofdwebpagina zichtbaar.
Als de DPP een gemaakte foto heeft ingelezen, start het beeldbewerkingsprogramma. Met een
ruisgenerator wordt het witte stippenpatroon berekend dat als een overlay over
de foto wordt gelegd. Deze ruisgenerator kun je beschouwen als een soort
elektronische dobbelsteen. De ruisgenerator wordt bestuurd op basis van de
gemeten fijnstofwaarde (PM2.5). Naarmate de PM2.5 hoger is, worden meer stippen
gegenereerd. Zo is het aantal stippen dat op de foto wordt gelegd een maat voor
de hoeveelheid fijnstof.
De aldus bewerkte foto kan direct worden bekeken op de hoofdwebpagina. Ook is er een gallerypagina beschikbaar waar de gemaakte
foto’s kunnen worden bekeken.
Reacties
Een reactie posten