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 4B microcomputer. Bron: Laserlicht / Wikimedia Commons, CC BY-SA 4.0

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

Populaire posts van deze blog

Timelapse opname met de Digital Pollution Painter