Bodemvocht Prototypes en Experimenten

languages: ennl

Hier zullen we de ontwikkeling van prototypes documenteren. 

De laatste versie van de PCB en arduino firmware zijn te vinden op https://github.com/meetjestad/mjs_soil_moisture

Een To Do lijst met ideeën voor verbeteringen en experimenten is te lezen én aan te vullen: http://kladblok.planb.coop/p/meetjestadwater

Proefopstelling (8-11-2020)

Om de werking van de bodemvochtsensoren beter te kunnen testen is tijdens de bouw/experimenteer sessies het idee ontstaan om een speciale proefopstelling te bouwen.

Bodemvocht_testopstelling.png

De proefopstelling bestaat uit een kleine versie bodemvocht prototype met 1 electrode. De sensor wordt geplaatst in een PVC cilinder waar aan de onderkant een gaas is bevestigd met daarop filter papier. De PVC cilinder wordt rond de sensor gevuld met aarde. De PVC cilinder wordt vervolgens in een bak geplaatst die voorzien is van een aftapkraantje, zodat water uit de PVC cilinder weg kan lopen. De gehele opstelling is geplaatst op een  load cell die verbonden is aan een ADS1115 ADC. Het signaal van de load cell wordt gemeten als het verschil tussen kanaal 0 en 1 van de ADC, met een gain van 16.

Als eerste experiment is de opstelling gevuld met een mix van droge aarde uit de wijk Schothorst afskomstig van 10-40cm diepte. Daarna is er vanaf boden water aan de aarde toegevoegd totdat het water er aan de onderkant van de cilinder weer uit stroomde. Er wordt aangenomen dat de bodem op dit punt verzadigd is. Daarna laten we de bodem uitdrogen, terwijl elke 15 minuten zowel het signaal van de bodemvochtsensor wordt gemeten als het signaal van de load cell. De verwachting is dat we zo een plot kunnen maken van de output van de bodemvocht-sensor ten opzichte van het bodemvochtgehalte.

De data van deze proefopstelling wordt verzonden naar de Meet Je Stad database. Meetkast 417, stuurt het signaal van de bodemvochtsensor door en door meetkast 203 wordt het signaal van de load cell doorgestuurd.

Prototypes sensoren voor pilot

Voor de pilot met bodemvocht sensoren in de gemeente Amersfoort is ten opzichte van eerdere prototypes gekozen om de sensoren dicht te maken van onderen, zodat er geen water (of aarde) in de binnenbuis kan lopen. Dit is gedaan om de interpretatie van de data en de kalibratie makkelijker te maken omdat er geen rekening hoeft worden gehouden met bijdrage van water / aarde in de buis.

Het plaatsen van de sensoren is daarom met de grondboor gedaan en dit is een flinke klus, zeker wanneer
- De bodem erg droog is, dan blijft de aarde nauwelijks in de kamer van de grondboor zitten
- Er wortels in de bodem zitten
- Er een bodemlaag met kiezels zit

Wanneer we de kalibratie van de data met deze 'simpele'  gesloten sensor onder de knie hebben willen de optie van een open binnenbuis en plaatsen van de sensor met waterdruk weer verder gaan verkennen.

Prototype_v2.png

In een aantal bouw-sessies met deelnemers van Meet Je Stad zijn 10 van deze bodemvocht sensoren gemaakt. Op bovenstaande figuur is de binnenbuis van de sensor te zien met daarop de electroden /koperstrips op 10,40,80 en 120cm vanaf het maaiveld. De koperstrips zijn 10cm lang, 2.7 cm breed en tussen de koperstrips zit 1 cm ruimte. Aan de achterkan van de buis zitten tussen de electroden kleine temperatuur-sensoren (NTCs). De PCB is ten opzichte van eerdere ontwerpen aangepast zodat deze in een 40mm buis past en alle electronica dus in de buitenbuis zit. Vanaf de PCB lopen er 16 kabels de buis in naar 4 paar electroden en 4 NTCs. Aan de bovenkant van de PCB zit een kabel met 6 kernen. 4 voor de I2C verbinding en 2 om indien nodig de microcontroller op de PCB te kunnen herprogrammeren zonder de sensor te hoeven openmaken.

Sensor_geplaatst.png

De buitenbuis is aan de bovenkant afgesloten met een afsluitdop, voorzien van een wartel waar de kabel naar buiten komt. Op de meetse locaties is direct naast de sensor een paaltje geplaatst met een Meet Je Stad meetkastje. Op de PCB in het meetkastje is een extra pin header gesoldeerd waarde kabel van de sensor op kan worden aangesloten.

De grootste uitdaging in het bouwen van de sensor is het leggen van de kabels van de PCB naar de electroden en de NTCs. Dit neemt verreweg het meeste tijd in beslag en vereist het nodige geduld en nauwkeurigheid. Om te komen tot een DIY sensor die eenvoudig in elkaar te zetten is, zal dit deel van het assembleren nog verbeterd moeten worden. Tijdens de bouw-sessies is al geexperimenteerd met het gebruik van flat cable in plaats van losse draden. Om plek te maken voor de dikkere flat cable is de binnenbuis aan 1 kant afgeschaafd. Het leggen van de draden wordt hierdoor een stuk makkelijker, alleen het solderen van de draden aan de PCB nam weer meer tijd in beslag.

Bodemvocht_regenboog sensor.png

Uit de bouw-sessies zijn een aantal vervolgstappen en ideeen gekomen om verder mee aan de slag te gaan:
- Flat cable connector op PCB plaatsen zodat flat cable eenvoudig gekoppeld kan worden
- Een flex PCB ontwerpen die op de binnenbuis geplakt kan worden en er dus geen draden meer hoeven te worden gedrukt
- Binnenbuis helemaal voorzien van kopertape en hierin banen snijden met bijv. de vinylsnijder
- Een proefopstelling bouwen om de sensoren te testen in verschillende soorten bodem met een gecontroleerd vochtgehlate.

Data formaat

De data van de prototypes bodemvocht-sensoren wordt in de MeetJeStad database opgeslagen in het 'Extra' veld.

De waarden zijn gescheiden met een comma en staan in de volgorde: Cnc*, Tnc, Cref*, Tref, C1*, T1*, C2*, T2*, C3*, T3, C4*, T4

- De C waarden geven een ruwe waarde voor de gemeten capaciteit van de bodem
- De T waarden zijn om te rekenen naar de temperatuur door Temp (celcius) = Tx / 4 -20

In subscript is aangeveven door welke elektrode de waarde gemeten wordt. De * geeft aan dat het ruwe waarden zijn en nog omgerekend moeten worden naar capaciteit.

- nc = niet aangesloten (capaciteit van het meetcircuit, geen temperatuur-sensor aangesloten)
- ref = Referentie condensator (39.000 femtofarad +/- 1%) en temperatuur-sensor op de printplaat
- 1 = 10cm diep
- 2 = 40 cm diep
- 3 = 80 cm diep
- 4 = 120 cm diep

Kalibratie

Update op 12-05-2021

Om de capaciteit van de bodem-elektroden te krijgen (in PicoFarad), moeten we de gemeten waarden verminderen met de capaciteit van het meetcircuit en vermenigvuldigen met de k-waarde van het circuit. De k-waarde kunnen we berekenen met behulp van de referentie condensator.

k = 39 / (Cref*-Cnc*)

De capaciteit van een electrode is dan te berekeken door:

Cx = (Cx* - Cnc*) * k

In praktijk blijkt dat de capaciteit van de referentie-condensator een klein beetje verranderd met de temperatuur van de printplaat (Tb). Om te corrigeren voor deze temperatuur-afhankelijkheid willen we de waarde van Cx terugrekenen naar de waarde van Cx bij een standaard temperatuur Tb0.  Hierbij gaan we uit van een lineaire relatie tussen de temperatuur en de capaciteit.

Cx_Tb0 =Cx * (a*Tb0+b) /(a*Tb+b)

Als we hier Tb0=0 nemen, is de formule te vereenvoedigen tot:

Cx_Tb0 =Cx   / (ap*Tb+1)

Waarbij ap gelijk is aan de relatieve verandering in capaciteit per graden celcius, ap = a/b

Op dit punt weten we de gemeten capaciteit van de electrode in de bodem, gecorrigeerd voor de temperatuur van de printplaat. Bodemvocht wordt echter doorgaans uitgedrukt als % (volume water / volume bodem). Om dit te kunnen bepalen moeten we de sensor kalibreren. Voor de pilot-sensoren zijn voor het plaatsen de volgende waarden bepaald:

  1. De gemeten capaciteit van alleen de printplaat (BOARD)
  2. De gemeten waarden van de sensor in lucht (AIR)
  3. De gemeten waarden van de sensor in water (WATER)
  4. De gemeten waarden van de sensor in de bodem bij het plaatsen van de sensor (SOIL)
  5. Het % bodemvocht in een bodemmonster genomen tijdens het plaatsen van de sensor

Met deze gegevens zijn de sensoren als volgt gekalibreerd:

%Bodemvocht = ( Cx_Tb0 - CBOARD,x - CAIR,x(T)- CSOIL,x(T) ) * 100% / ( CWATER,x(T) - CAIR,x(T) )

De capaciteit van de electrode in lucht, de bodem en het water kan ieder weer afhankelijk zijn van T. Deze waarden kunnen worden berekend uit de gegevens uit de bovenstaande lijst.

Analyse


Doel van de bodemvocht pilot is om de sensoren te testen in een buiten-situatie en de data te vergelijken met data van professionele sensoren die op dezelfde locaties geplaatst zijn. Daarbij zullen de sensoren onderzocht moeten worden op betrouwbaarheid van data en gekeken worden hoe deze gekalibreerd kunnen worden.


Sensoren met en zonder coating (26-11-2020)

Om problemen met vocht op de te ondervangen is er bij twee sensoren (op meetkasten 517 en 757) getest met het coaten van de PCBs en elektrodes met een siliconen-coating. Uit de eerste data van deze sensoren lijkt de coating de variabiliteit van de metingen van de capaciteit van het circuit en de referentie condensator, en de daaruit berekende k-waarde aanzienlijk te verbeteren. Op basis van deze data is besloten om reeds geplaatste sensoren te reviseren. Naast de sensoren die reeds gecoat waren, zijn sensoren aan meetkasten 519, 661, 754, en 761 uit elkaar gehaald, voorzien van een coating en teruggeplaatst. 
Soil_moisture_coated.png 

Analyse eerste data (8-11-2020) 


Op moment van schrijven is de data van de professionele sensoren nog niet beschikbaar voor een uitgebreide analyse. Er is daarom eerst gekeken naar
- kalibratie-metingen
- Of de ruwe capaciteitsmetinge onverwachte patronen laten zien die wijzen op een fout in de sensor

Kalibratie-metingen

Elke sensor die gebouwd en geplaatst is ' grof' gekalibreerd door de capaciteit te meten in lucht en vervolgens in water. In het figuur hieronder is te zien uit welke elementen de gemeten capaciteit is opgebouwd. Hierbij is onderscheid gemaakt tussen sensoren waar losse (30AWG) draden zijn getrokken naar de electroden en sesnoren waar flat cable (regenboogdraad) is gebruikt. Het circuit op de PCB (inclusief de multiplexer) heeft gemiddeld een capaciteit van 80pF en 70pF voor de 2 sensortypen. Hiervan is 47pF van de condensator die achter de schmitt trigger is geplaatst om te zorgen dat de frequentie niet te hoog wordt. De andere elektrische componenten dragen dus nog zo'n 23-33pF bij.

De capaciteit van de electroden in lucht loopt van 8-28 pF in de sensoren met losse draden en van 8-39 in sensoren met flat cable. De dikkere draden van de flatcable en het feit dat deze dichter bij elkaar liggen, vergroot dus de basiscapaciteit van met name de dieper gelegen electroden.

Wanneer de sensor is geplaatst zijn op alle 4 dieptes bodemmonsters genomen om het % bodemvocht te bepalen. De toegevoegde capaciteit van de bodem is berekend uit de eerste meting na het plaatsen van de sensor en bodemvochtgehalte van de monsters en ligt gemiddeld op 11 pF.

De toegevoegde capaciteit door water is 14.5 pF, wanneer de electrode volledig door water is omgeven. In realiteit, het maximale volume water dat de bodem kan bevatten afhankelijk van de bodemsoort en maximaal zo'n 50%.

Het meetbereik 50% van 14.5 = 7pF is dus erg klein ten opzichte van de basiscapaciteit van het circuit en de electroden. Ook voegt de bodem opvallend veel capaciteit toe. De electrische permeabiliteit van zand is velen malen kleiner dan dat van water, zie o.a. deze tabel.

Deze ruwe kalibratie houdt nog geen rekening met de temperatuur-afhankelijkheid van de capaciteit van de verschillende onderdelen (circuit, referentie-condensator, electrode, bodem en water). Het kan goed zijn dat de berekende capaciteit door de bodem in werkelijkheid wordt veroorzaakt door het temperatuurverschil op het moment van kalibreren en de temperatuur in de bodem.

Vervolgstap: de temperatuur-afhankelijkheid van de verschillende elementen (Circuit, referentiecondensator, electrodes, bodem en water) analyseren

Bodemvocht-kalibratie.png

Voorbeeld data

Onderstaande grafiek geeft eerste data van de sensor aangesloten op meetkast 517. In de linker grafiek is de ruwe capaciteitswaarde weergegeven van het circuit (groen), de referentiecondensator (oranje 39 pF +/- 1%) en de electrode op 10cm diepte (bruin). De data laat zien dat de ruwe capaciteitswaarde van alle drie de kanalen schommelt gedurende de dag, wat de een temperatuur-afhankelijkheid van de meting weergeeft. Op 22-10 raken de batterijen van de meetkast op en geeft de sensor wat afwijkend waarden. De temperatuurmeting op 10cm geeft een verwacht 'gedempt' patroon ten opzichte van de gemeten luchttemperatuur in de meetkast. 
Example data.png

Onverwacht patroon / sensorfout #1 

Bij sommige sensoren & kanalen schommelt de capaciteitswaarden sterker gedurende de dag dan bij anderen.  In onderstaande grafiek is eerst gekeken naar de ruwe capaciteitswaarde van het  circuit en de referentiecondensator. De k-waarde is voor de sensor aan meetkast 517 stabiel tot vlak voor de sensor uitvalt vanwege te lage voedingsspanning. De temperatuur-afhankelijkheid van zowel het circuit als de referentie-condensator is lineair en negatief. 
Error 1_temp_dependance change.png
Voor de sensor aan meetkast #661 is dit in eerste instantie ook het geval, maar nadat de meetkast is uitgevallen door te lage voedingsspanning veranderd de temperatuur-afhankelijkheid van het circuit naar niet-lineair en positief. Dit gebeurt niet voor de referentiecondensator. De capaciteitswaarde waarde van het circuit wordt gemeten door de capaciteit te meten over een multiplexer kanaal dat niet is aangesloten. Omdat de referentiecondensator wel ‘stabiel’ zit het probleem  dus waarschijnlijk in de multiplexer en niet daarvoor. 
De sensor aan meetkast #753 is een voorbeeld waarbij dit gedrag al vanaf de plaatsing van de sensor zichtbaar is en specifiek voor het circuit-kanaal en niet voor de referentie-condensator of de electrode op 10 cm diepte. 
Error_1_multiplex locations.png

Onverwacht patroon / sensorfout #2

Bij sommige sensoren is de zien dat de waarde naar verloop van tijd met een sprong omhoog gaat, waarna de meting wel de trend blijft volgen maar op een hogere waarde. In onderstaande grafiek is voor de sensor aan meetkast 661 te zien dat op 80cm de bodemvocht meting op 11 oktober een sprongetje maakt, waar op 40 en 120cm de trend doorgezet wordt. 
Error_2_Jump.png

Onverwacht patroon / sensorfout #3

Een tweetal sensoren van de 10 die geplaatst zijn, laten kort na de plaatsing zeer variabele meetwaarden zien. De sensoren vallen ook relatief snel uit (mogelijk lekstromen). 
Error_3_Chaos.png