Monitor je planten met Arduino

Monitor je planten met Arduino

Gepubliceerd op: 15-01-2014 15:42

Drogen jouw planten ook altijd helemaal uit, omdat je ze vergeet water te geven? Hangen alle blaadjes er bruin, slap en verdord bij? Dan is het hoog tijd om een Arduino plant monitor te bouwen!

Meten aan het milieu met Arduino

Om de status van je planten te achterhalen zijn een aantal dingen belangrijk om te weten, zoals de temperatuur, lichtsterkte, zuurgraad (pH-waarde), en de vochtigheidsgraad, zowel van de lucht als van de aarde. Omdat ik niet de ambitie heb om plantenkweker te worden ben ik niet zo geïnteresseerd in het meten van de eerste vier variabelen, ik wil alleen maar weten of m’n plant water nodig heeft! Wil je wel zo'n uitgebreide bodemanalyse? Kijk dan eens naar deze wifi plantsensor, of deze grondvochtigheidssensor!

Het vochtigheidsgehalte van de grond kun je afleiden uit de elektrische geleidbaarheid van de grond. Water is namelijk een goede geleider, droge grond niet. Als je een multimeter met zijn meetpennen in de aarde zet om de weerstand te meten, en je leegt je gieter bij de plant, dan zul je zien dat de weerstand afneemt. Dit principe gaan we gebruiken om de Arduino de vochtigheid van de potgrond te laten meten.

Een Arduino vochtigheidssensor (moisture sensor) maken

Een Arduino vochtsensor kan zo simpel zijn als de meetpennen van je multimeter. Twee stroken/staven geleidend materiaal zijn genoeg. Ik gebruik hier twee stukken koperen installatiedraad, waar je normaal gesproken stopcontacten mee aansluit, daar ligt altijd nog wel wat van op zolder of in de schuur!

Strip een behoorlijk uiteinde van de draad, ongeveer 3 tot 5 centimeter, en steek de draden 10 tot 15 cm de grond in. Net als bij een LDR (lichtsensor) of NTC (temperatuursensor) waarover je kunt lezen in de vele andere elektronica-artikelen op Engineer@Home, bouw ik hier een spanningsdeler met een vaste weerstand en de zojuist gebouwde sensor.

Het aansluitschema van de Arduino planten sensor

De waarde van de weerstand moet een beetje proefondervindelijk worden vastgesteld, dit verschilt per type sensordraden, ingraafdiepte, grondsoort, etc. maar ligt om en nabij de 5 megaOhm. Voor het gemak kun je ook een potmeter (potentiometer, variabele weerstand) gebruiken, zodat je weerstandswaarde naderhand gemakkelijk kunt wijzigen.

Als de vochtigheidssensor is aangesloten op Analog 0 van de Arduino kun je met behulp van het voorbeeldprogramma AnalogInOutSerial, wat standaard in de Arduino IDE zit, de sensorwaardes uitlezen op de computer via de seriële USB verbinding.

Arduino vochtsensor kalibreren

Met behulp van de sensorwaardes in de Serial Monitor, kun je de sensor kalibreren. Schrijf op wat de waarde van je sensor is als de grond gortdroog is, en noteer wat er met de sensorwaardes gebeurt als je de plant water geeft.

De meetwaardes moeten tussen de 0 en 1023 liggen, anders treedt je buiten het meetbereik van de Arduino. Door een andere weerstand te kiezen voor je spanningsdeler, of eenvoudig aan de potmeter te draaien zorg je ervoor dat de metingen netjes binnen dit bereik vallen. De gemiddelde meting van de vochtigheidsmonitor zou rond de 512 moeten liggen, dan kun je zowel hele droge grond, als verzuipende planten monitoren.

Beperkingen van de sensor: elektrolyse

Waarschijnlijk heb je op de middelbare school bij scheikunde of natuurkunde wel eens over elektrolyse gehoord. Vaak wordt dit gedemonstreerd met een opstellingen waarin water (H2O) met behulp van een elektrische stroom wordt gesplitst in waterstofgas (H2) en zuurstofgas (O2). Het waterstofgas wordt vervolgens aangestoken met een harde knal (of zachte plof) als gevolg.

Helaas doen we met onze sensor precies hetzelfde, we plaatsen twee elektroden in een bak met vocht. Door deze elektrolyse zijn we niet alleen gas aan het maken, de elektroden zullen hier ernstig door worden aangetast!

Om dit te voorkomen zou je de meting met wisselstroom kunnen uitvoeren, door het constante ompolen komt de chemische reactie niet lekker op gang. Ik kies voor een iets eenvoudigere oplossing, namelijk de meetduur beperken.

Het is niet nodig om constant het vochtgehalte te meten, zo snel zal dit immers niet afnemen, daarom meet ik elk uur de vochtigheid van de plant. Een meting is in een fractie van een seconde gebeurt, waardoor ook hier de elektrolyse niet echt op gang kan komen. Het verval van de elektroden gaat nu zoveel minder snel dat we ons hier geen zorgen over hoeven te maken.

Het daadwerkelijk monitoren van je planten

Het is natuurlijk erg leuk om de vochtigheidswaarde van de grond via de seriële verbinding uit te lezen, maar we willen graag wat meer met deze gegevens doen. Zoals je kunt lezen in diverse artikelen op Engineer@Home heb ik een Arduino gebaseerd home automation systeem gebouwd, inclusief logging naar een server. De Arduino plant monitor is een goede aanvulling op dit systeem.

Via internet je planten in de gaten houden met Arduino

Net als bij de Arduino energiemeter in de meterkast stuur ik mijn plant-vochtigheids-waarden met behulp van een Ethernetshield naar de master Arduino waar de web-interface op draait. Nu kan ik waar dan ook ter wereld checken of het goed gaat met mijn plantjes! Bovendien logt de master Arduino elk uur zijn gegevens naar een externe webserver, zodat ik een grafiek kan tekenen van het verloop van de grondvochtigheid.

Arduino melding bij droge planten

Allemaal leuk en aardig, maar als je telkens vergeet om naar je planten te kijken vergeet je natuurlijk ook om naar de status op de webpagina te kijken. Het zou fijn zijn als de plant een smsje, whatsappje, twitterbericht, facebook-post, of email zou sturen om aan te geven dat hij droog staat.

Met behulp van de Email-library kun je je Arduino laten emailen. Ik kies er echter voor om mijn webserver te laten mailen, dan heb ik meer controle en mogelijkheden, en bovendien zit het programma-geheugen van mijn Arduino vol…

Op het moment dat de Arduino zijn gegevens naar de webserver stuurt controleert deze of de plant-vochtigheid onder een bepaalde drempel zit, en stuurt direct een email dat mijn planten water nodig hebben.

Automatisch water geven met Arduino

De volgende stap in het automatiseringsproces is het automatisch bewateren van de planten bij een te laag vochtgehalte, daarover lees je meer in dit artikel!

9 reacties op dit artikel »

Aanbevolen artikelen