De Programmeerbare Plantenkas: Grove Moisture Sensor Aansluiten En Programmeren Om De Vochtigheid Van De Grond Te Meten

De Programmeerbare Plantenkas: Grove Moisture Sensor Aansluiten En Programmeren Om De Vochtigheid Van De Grond Te Meten

In deze tutorial laten we zien hoe je een Grove Moisture Sensor aansluit en programmeert om de vochtigheid van grond te meten met een Arduino microcontroller of een andere microcontroller. 

Aansluiten

Het aansluiten van een Grove Moisture Sensor op een microcontroller is heel eenvoudig. Je steekt simpelweg de ene kant van de bijgeleverde Grove kabel in de sensor en de andere kant in een analoge poort van een Grove Base Shield die aangesloten is op een Arduino microcontroller. In dit voorbeeld is de sensor aangesloten op de A0 poort van een Arduino Mega, met Grove Base Shield.

grove moisture sensoren
Het aansluiten van een Grove Moisture sensor is eenvoudig, je hoeft alleen de Grove kabel in de module en in een analoge poort te steken.

Het deel van de Grove Moisture Sensor dat de vochtigheid van de grond bepaald is ongeveer 3,5 centimeter lang. Om de sensor te plaatsen dus je de twee beentjes van de sensor voorzichtig in de grond, zodat het goudkleurige deel niet meer zichtbaar is, maar de weerstanden en andere onderdelen op het blauwe gedeelte van de sensor wel boven de grond uitsteken. Mocht het zo zijn dat de grond erg hard is, bijvoorbeeld omdat er veel klei in zit, dan is het aan te raden om eerst met een mes een kleine opening in de grond te maken. Op die manier hoef je niet te veel druk op de sensor te zetten als je hem in de grond duwt.

Doordat het deel van de sensor dat de vochtigheid van de grond meet maar 3,5 centimeter hoog is, is deze sensor alleen geschikt om te bepalen of jonge plantjes water nodig hebben. Het deel van het wortelstelsel dat water en voedingsstoffen uit de bodem op neemt ligt bij oudere, grotere planten meestal op een diepte van 20 tot 40 centimeter. Doordat de bovenste grondlaag vaak veel sneller opdroogt dan de diepere grondlaag waarin de meeste wortels van grotere planten groeien is de kans groot dat deze Grove Moisture Sensor te snel aangeeft dat de grond te droog is. Om te voorkomen dat grotere planten te veel water krijgen is het daarom aan te raden om deze sensor niet te gebruiken, maar een sensor te gebruiken waarbij het meetgedeelte dieper ligt.

grove soil moisture sensor
Doordat de Grove Moisture Sensor maar 3,5 centimeter lang is, meet deze sensor alleen de vochtigheid van de bovenste grondlaag.

Programmeren

Het programmeren van een Grove Moisture Sensor is gelukkig zeer eenvoudig. In de voorbereidingsfase geef je allereerst aan op welke analoge pin de sensor zit aangesloten. Dit doe je met het commando #define vochtSensorPin A0 In dit voorbeeld is de sensor aangesloten op de A0 pin. Mocht de sensor in jouw project op een andere pin aangesloten zitten, dan moet je uiteraard de 0 veranderen in het juiste nummer.

In de voorbereidingsfase wordt ook een variabele aangemaakt om de waarde die uit de sensor komt op te slaan. Dit doen we met het commando int vochtWaarde = 0;. Zoals je kunt zien wordt dit een int variabele. Dit is, omdat de vochtigheid in hele cijfers wordt weergegeven.

Om ervoor te zorgen dat het kleine stukje code dat nodig is om de Grove Moisture Sensor te gebruiken makkelijk te combineren is met andere sensors, hebben we een aparte functie gemaakt om de waarde uit de sensor op te halen. We maken deze functie aan met het commando int vochtSensor() {}. In dit voorbeeld heet deze functie dus vochtSensor. Tussen de {}-haakjes zetten we het commando vochtWaarde = analogRead(vochtSensorPin);. Dit commando zorgt ervoor dat de analoge pin waarop de sensor is aangesloten uitgelezen wordt en dat de waarde opgeslagen wordt in de variabele vochtWaarde.

In de loop fase van dit programma geven we het commando vochtSensor(); om de functie die we gemaakt hebben om de Grove Soil Moisture sensor uit te lezen te activeren. Op dit moment doen we nog niets met de waarde die hieruit komt. Er zijn verschillende manieren om de waarde van de sensor te gebruiken. Zo kun je een groen lampje laten branden als de plant geen water nodig heeft en een rood lampje als de plant wel water nodig heeft. Volgens Seeedstudio, de makers van Grove sensoren, zal de sensor een waarde van 300 aan geven als de grond vochtig is. Als de waarde onder de 300 ligt, dan is de grond droog en als de waarde boven de 300 ligt, dan is de grond te nat. De exacte waarde waarbij de grond te nat en te droog is, verschilt per grondsoort, dus de juiste waardes vinden vergt altijd een beetje trial and error.

grove moisture sensor
In een droge spons of in droge grond geeft de sensor de waarde 0 aan.
grove moisture sensor
In een vochtige spons of grond geeft de sensor een waarde rond de 300 aan.
grove moisture sensor
Volledig ondergedompeld in water geeft de sensor een waarde rond de 700 aan.

ARDUINO IDE CODE


/*
   Voorbeeld code gemaakt door www.foodplanting.com
   voor de Programmeerbare Plantenkas serie.

   Deze code is gemaakt voor het bepalen van de vochtigheid van de
   bodem met een Grove Moisture Sensor.

   Deze code is zeer minimalistisch, omdat het idee is
   dat deze code gecombineerd wordt met codes voor andere
   modules. Zo wordt de vochtigheid bijvoorbeeld niet in de
   loop fase, maar in een aparte functie op geroepen en
   wordt de gemeten vochtigheid niet in de Serial Monitor
   af geprint.
*/

// Voorbereiding:
#define vochtSensorPin A0  // Dit geeft aan op welke analoge input de sensor is aangesloten, in dit geval A0.
int vochtWaarde = 0; // Een variable om de waarde van de vochtigheid van de bodem in op te slaan.


void setup() {
}

void loop() {
  vochtSensor(); // Vraag de microcontroller om de functie die de vochtigheid uit de sensor ophaalt uit te voeren.
}


int vochtSensor() {
  vochtWaarde = analogRead(vochtSensorPin); // Lees de analoge pin waarop de vochtsensor zit aangesloten uit.
}

Vragen en opmerkingen

We proberen de serie "De Programmeerbare Plantenkas" zo toegankelijk mogelijk te maken voor iedereen. Toch zijn sommige concepten best wel ingewikkeld, omdat er kennis van heel veel verschillende domeinen, zoals natuurkunde, elektrotechniek en computerwetenschappen, samen komen. Het kan daarom best zijn dat we iets niet goed uitgelegd hebben. Mocht er iets niet duidelijk zijn of iets niet zo werken zoals we het in deze tutorial uitgelegd hebben, stuur dan gerust een berichtje via de Disqus op deze pagina. Je kunt de Disqus vinden door naar beneden te scrollen, tot onder de advertenties.