Tegenwoordig hoeft men het wiel niet steeds opnieuw uit te vinden. U hoeft geen eigen microcontrollerschakeling te ontwikkelen om de belangrijkste milieudata te verzamelen. Neem gewoon een geschikt µC-board en een sensorprintje en prik de boel op elkaar; daarna hoeft u ‘alleen’ nog maar de software voor het uitlezen van de sensoren te schrijven.

Als u wat meer luxe wilt, zoals WLAN en dergelijke, dan ligt het gebruik van de meestgebruikte enkelkaartcoomputer voor de hand: de Raspberry Pi heeft meer dan genoeg rekenkracht plus alles wat u verder maar nodig hebt. Een speciaal voordeel is dat er kant-en-klare opsteekprinten verkrijgbaar zijn: zogenaamde HAT’s (Hardware Attached on Top) die een bonte verzameling sensoren aan boord hebben. En niet alleen is er maar heel weinig hardware-geknutsel nodig: meestal worden passende (Python-)bibliotheken bijgeleverd om met deze hardware inclusief sensoren aan de slag te kunnen.

Enviro+

Dat is ook het geval met de Enviro+, een kleine HAT in het formaat van de Raspberry Pi Zero W, die dankzij zijn compatibiliteit met de 40-pins uitbreidingsheader op bijna alle Raspberry-modellen past.

Geleverd wordt een klein antistatisch zakje met sticker, en daarin de kleine HAT-print die nog eens extra in noppenfolie is ingepakt (figuur 1) – verder niets. En om papier te sparen zit er verder geen gedrukte documentatie bij – dat staat allemaal online. Maar je moet het wel eerst vinden.
 

Figuur 1. Dat wordt geleverd: een printje in een zakje.

Dat lukt ook wel, maar in tijden van alomtegenwoordige smartphones zou het zoveel leuker zijn geweest als de URL voor de documentatie als QR-code of iets dergelijks op het etiket zou zijn gedrukt – de streepjescode bevat jammer genoeg geen link. En het zou ook leuk zijn geweest als de afgedrukte URL door een zogenaamde URL-shortener zou zijn gehaald, zodat je niet zo veel hoeft in te typen (met alle risico van fouten). En het zou helemaal mooi zijn geweest als de URL naar een zinvolle webstek zou hebben geleid, in plaats van de boodschap “HTTP/1.0 404 Not Found”. Enig sarcasme is hier op zijn plaats, want zoiets zou niet mogen gebeuren.

Eigenschappen

De Enviro+ is uitgerust met de volgende elektronica:

  • BME280, sensor voor temperatuur, luchtdruk en luchtvochtigheid
  • LTR-559, licht- en naderingssensor
  • MICS6814, analoge gassensor
  • ADS1015, A/D-converter
  • SPH0645LM4H-B, MEMS-microfoon
  • 0,96" OLED-kleurendisplay met 160 × 80 pixels
  • aansluiting voor een optionele fijnstof-luchtsensor PMS5003

Samenbouw

Hoe het ook zij, het meetstation zit in een vloek en een zucht in elkaar. Printje uit het zakje halen en op een Raspberry prikken – klaar. Nou ja, bijna...

Als u een RPi Zero W hebt, dan krijgt u na de montage (met passende afstandbussen) een lekker compacte module (figuur 2), die prima in een kleine behuizing kan worden ingebouwd. De eigenlijk beoogde behuizing is minder geschikt omdat de sensoren lucht nodig hebben, anders kloppen de metingen niet (goed). En als u ook de lihctsterkte wilt meten, moet de behuizing transparant zijn.
 

Figuur 2. Gecombineerd met een RPi Zero W is het resultaat een compacte sandwich.

Omdat Enviro+ ook op een ‘normale’ Raspberry past, heb ik een RPi 3B+ gebruikt die toevallig nergens anders voor gebruikt werd. En dan wordt al snel duidelijk dat het deksel van de aluminium behuizing verwijderd moet worden (figuur 3) om voldoende lucht en licht bij de sensoren van de Enviro+ te krijgen.
 

Figuur 3. Bij een RPi 3 of 4 moet het deksel worden verwijderd als de print in een ondoorzichtige of metalen behuizing wordt geïnstalleerd.

Maar in de figuur ziet u ook de koellichamen op de IC’s. Vooral het grotere exemplaar op de SoC geeft bij veel HAT’s problemen – zo ook bij de Enviro+. Het verdient daarom aanbeveling de onderkant van het kleine printje met wat plakband te isoleren (figuur 4), zodat er geen kortsluiting ontstaat wanneer u het op de Raspberry prikt.
 

Figuur 4. De onderzijde van de Enviro+ is hier met een stuk plakband tegen kortsluiting beveiligd.

En dan kan Enviro+ eindelijk op de 40-polige Raspberry-header worden gestoken (figuur 5). Langs de rand van het printje zitten overigens nog enkele gelabelde pads waarop een paar belangrijke signalen naar buiten zijn gevoerd.
 

Figuur 5: Enviro+ op een Raspberry Pi 3B+, gefixeerd met plakband.

Documentatie en voorbeelden

Op de website van Pimoroni kunt u de documentatie vinden, ook al lijkt de incorrecte link op de verpakking dat te willen voorkomen. Daar staat tegenover dat die documentatie van hoge kwaliteit is en ook basisinformatie over de aanwezige sensoren biedt plus uitleg over de interpretatie van de erdoor geleverde data.

Bijzonder goed is dat er ook links zijn naar handleidingen voor een eenvoudige inrichting van de Raspberry Pi, wat voor veel beginners erg handig zal zijn. Ook wordt uitgelegd hoe met een paar terminal-instructies de extra software voor Enviro+ (inclusief de Python-bibliotheek en voorbeelden) geïnstalleerd moet worden. Dat kost niet veel tijd, en dan kunt u de voorbeelden gaan uitproberen. Figuren 6...9 tonen de uitvoer naar het display van vier voorbeelden.

Figuur 6. Uitvoer van temperatuur, luchtdruk en luchtvochtigheid, gemeten door de BME. De SoC van de RPi zorgt voor behoorlijk wat warmte.
Figuur 7. In dit voorbeeld is gecompenseerd voor de warmteproductie van de Raspberry, met meer realistische temperaturen als resultaat.
Figuur 8. In het voorbeeld met de licht- en naderingssensor wordt de verlichtingssterkte in lux uitgevoerd – op benadering reageerde de sensor niet.
Figuur 9. De gassensor bestaat eigenlijk uit drie sensoren die verschillende bestanddelen in de lucht detecteren. De uitlezing in Ω is ongebruikelijk en moet nog worden omgerekend.

Het kleine display (figuur 10) is vooral handig als u de elektronica op een of andere interessante plaats wilt neerzetten en ter plaatse meetwaarden of toestand wilt kunnen controleren.
 

Figuur 10. Op het display kan van alles en nog wat worden getoond. Ook hiervoor zijn Python-functies beschikbaar.

Conclusie

Met de Enviro+ is het heel eenvoudig om een goedkoop milieumeetstation te maken. Dankzij een geschikte Python-bibliotheek kunnen de sensoren enzovoort tamelijk gemakkelijk worden uitgelezen. De uit slechts een paar regels code bestaande voorbeelden zijn daarbij zeker behulpzaam.

Maar dat is nog niet alles. Op de website van Pimoroni vindt u ook een complete bouwbeschrijving van een luchtmeetstation met koppeling aan de (Duitse) “luftdaten.info”-cloud. Het is dus geen wonder dat de meeste particuliere luchtmeetstations in Duitsland staan ;-)

Maar alles bij elkaar kan ik niet anders zeggen dan: goed gedaan!