De waarde van sensor data, deel 3

5
4511

Andere delen uit deze serie:

 

Het leuke aan experimenteren is de verwachting tegen iets onverwachts aan te lopen. Daarvoor moet je natuurlijk niet alleen maar de geëigende banen doorlopen maar vaak iets speels doen of soms ook iets geks. Laten we daarom iets geks doen en wat andere soorten sensoren toevoegen ;-). Bijvoorbeeld een luchtdruk sensor en een CO2 sensor. Op de Arduino genoeg connectoren dus waarom niet.

CO2 en luchtdruk sensoren

schermafbeelding-2016-11-30-om-20-34-42

Om een sensor werkend te krijgen is altijd weer een uitdaging maar met het internet en geduld kom je een heel eind. Zo blijkt de CO2 sensor maar op een beperkt aantal poorten te werken (ook afhankelijk van type Arduino). En je begint natuurlijk bij de verkeerde poort en na een aantal keer hardop gezegd te hebben ‘dat ding doet ut niet’ lees je ergens dat o.a. alleen poort 8 geschikt is 🙁 Maar natuurlijk blij wanneer het uiteindelijk toch functioneert 🙂

Per sensor is nu een werkend stukje Arduino software beschikbaar maar alles in één applicatie bouwen is toch wat lastiger. In de cyclus van uitlezen van de sensoren moet iedere sensor voldoende aandacht en tijd krijgen om de juiste waarde uit te kunnen lezen. Een stukje processing van meetwaarde kan zo maar een paar microseconden duren waardoor de kans bestaat dat er een signaal van een andere sensor niet wordt gezien. Daarom voor nu maar even terug naar de applicatie voor alleen de Shinyei fijnstof sensoren.

Opmerkelijke resultaten

Na het starten van het uitlezen van de Shinyei sensoren komen er nu ineens meer signalen dan tot nu in beeld, vreemd. En ook de tijdsduur van de signalen in microseconden lijkt constanter. Wat is er aan de hand? Is er een verandering in de software gekomen waardoor het beter gaat of juist slechter?

Dan toch maar even naar de grafische weergave kijken. Hé, dat is vreemd, per sensor zijn de metingen nu meer geconcentreerd op een bepaald kanaal.

schermafbeelding-2016-11-30-om-20-06-14

Dit is toch wel een opvallend beeld en de vraag komt dan boven van zou de instelling van de basislijn  iets met de verschillen te maken hebben? (voor een uitleg over de basislijn zie De waarde van sensor data, deel 1)

Een eerste (mogelijke) calibratie?

Sensor 2 staat meer naar rechts in de grafiek. Zou een aanpassing van de basislijn hier verandering in kunnen brengen?schermafbeelding-2016-11-14-om-11-25-35

We draaien wat aan de linker en de rechter potmeter en kijken naar het resultaat. Er gebeurt inderdaad iets met de positie op de x-as waar de kanalen zijn af te lezen.

Uiteindelijk laat het iets tegen de klok indraaien van de rechter potmeter een verandering zien die gunstig lijkt. De grafiek van sensor 2 verschuift dichter naar de positie van de andere sensoren. Een eerste mogelijkheid om tot een onderlinge kalibratie te komen?

schermafbeelding-2016-11-30-om-21-18-44

Oorzaak van de opmerkelijke resultaten

Blijft natuurlijk de vraag waarom de resultaten nu zo anders zijn dan wat we in deel 1 hebben gezien. Uiteindelijk vinden we een antwoord in het onderstaande plaatje waarin het signaal van de sensor wordt weergegeven in voltage verschil 4V (high) en 0.7V (low). De periode van low is wanneer een fijnstofdeeltje passeert.

schermafbeelding-2016-11-30-om-22-09-22

Wat blijkt is dat de CO2 sensor die nog aangesloten was, een dusdanig hoeveelheid spanning afneemt dat de voltage op de Arduino vermindert. De sensor krijgt nu moeite om niveau high 4V te halen. Er zal nu eerder en of langer een signaal worden afgegeven. Met andere woorden we krijgen nu minimaal een vertekend beeld van het aantal en grootte van de fijnstof deeltjes. Voldoende voltage op het systeem is dus van belang.

Na het verwijderen van de CO2 sensor zien we weer een ‘normaal’ beeld:

Schermafbeelding 2016-11-30 om 22.53.32.png

 

Als we de sensoren nu bekijken geven ze wel weer een breed spectrum weer, van kanaal 0 tot en met 13 zijn meetwaarden te zien. Als we de sensoren onderling vergelijken dan zien we weinig overeenkomsten.

Passieve of actieve luchtstroom

Standaard werkt de sensor met passieve luchtstroom die enigszins wordt versterkt door een ingebouwde weerstand die warmte afgeeft waardoor de lucht in beweging komt.

Om de luchtstroom te verbeteren moet de grote opening in het midden van de sensor gedicht worden. Het rechthoekige gat onder is dan de inlaat, het gat boven de uitlaat. Het is dus ook zaak om de sensor in deze positie te installeren om optimaal gebruik te maken van de luchtstroom veroorzaakt door de warmte van de weerstand (resistor/heating element zie rechter foto).

Schermafbeelding 2016-11-30 om 23.08.51.pngschermafbeelding-2016-12-06-om-18-26-44

 

 

 

 

 

 

Maar wat als we een actieve luchtstroom gaan toepassen?

In onze testopstelling van 4 sensoren naast elkaar zorgen we voor een actieve luchtstroom op sensor 4 door er een ventilator dicht op te zetten. We schermen de luchtstroom enigszins af om de invloed op de andere sensoren te minimaliseren en te geleiden naar de inlaat van sensor 4. Het effect van de actieve luchtstroom is duidelijk te zien in onderstaande grafiek.

schermafbeelding-2016-11-30-om-23-19-51

Het effect is meer signalen (meer deeltjes) én een stabieler beeld van het aantal deeltjes per kanaal met een redelijk mooie verdeling van kanaal 0 tot 14.

Het toepassen van een actieve luchtstroom heeft een positief effect op het resultaat!

Belangrijk is om de actieve luchtstroom zo geleidelijk mogelijk te laten verlopen. Om tot een ideale opstelling te komen zal er nog wel het een en ander geëxperimenteerd moeten worden.

Vervolg activiteiten

In het deel 4 gaan we de processen op de Raspberry Pi inrichten en gaan we de data naar de cloud brengen, mogelijk direct naar een SOS-service met REST-services of indirect met behulp van web-sockets.

 

Wordt vervolgd.

 

Andere delen uit deze serie:

 

André van der Wiel
Scapeler partner van AiREAS

 

 

 

5 REACTIES

LAAT EEN REACTIE ACHTER

Vul alstublieft uw commentaar in!
Vul hier uw naam in
Captcha verification failed!
Captcha gebruikersscore mislukt. Gelieve ons te contacteren!