ESP8266 WiFi – Grondvochtigheid sensor (3-aderig) (MCP3008/ArduinoIDE)
Deze pagina beschrijft hoe je een grondvochtigheid sensor kan uitlezen op de ESP8266 met behulp van de MCP3008 chip en ArduinoIDE firmware.
Hardware
3-aderige vochtsensoren:
Van links naar rechts: wRobot, Onbekend, Funduino
Met deze module kun je de grondvochtigheid meten, er loopt een spanning van de ene zijde van de sensor naar de andere, hier wordt de ohmse weerstand gemeten en kan er een waarde gegeven worden aan de vochtigheid, waarbij meer vocht een lagere waarde geeft.
Er zijn verschillende soorten sensoren in omloop, afhankelijk van de fabrikant, zie boven, al deze sensoren zijn analoog (er zit geen DA converter bij) en dus niet meteen geschikt voor een Raspberry Pi.
Pinout module:
Pin (vanaf bovenkant): | Functie: |
S | Analoge uitgang |
GND | GND |
VCC | +5v |
LET OP: Er zijn ook andere versie in omloop, controleer altijd de pinout of raadpleeg de handleiding!
Aansluiten op de ESP-12 module
Wat heb je nodig?
1) ArduinoIDE software
2) ESP8266 ArduinoIDE board/omgeving
3) Arduino MCP3008 bibliotheek
4) Een weerstand 220 of 1000 Ohm (afhankelijk van je LDR waarde)
Sluit de grond vochtigheid + MCP3008 aan zoals aangegeven op onderstaand schema:
Script
Met onderstaande script kun je de vochtsensor uitlezen via de MCP3008:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
#include <MCP3008.h> // MCP3008 pin configuratie #define CLOCK_PIN 2 #define MISO_PIN 5 #define MOSI_PIN 4 #define CS_PIN 14 MCP3008 adc(CLOCK_PIN, MOSI_PIN, MISO_PIN, CS_PIN); // configureer de MCP3008 constructor. int sensorWaarde = 0; // Variabele om de sensor waarde op te slaan. void setup() { Serial.begin(9600); // Start de seriele poort op 9600 baud. } void loop() { sensorWaarde = adc.readADC(0); // Lees de waarde van de sensor via kanaal 1 van de MCP3008 // Print de waarde van de sensor op de seriële monitor. Serial.print("Sensor waarde = " ); Serial.println(sensorWaarde); delay(1000); } |
Tegengaan van snelle corrosie door stroom
Afhankelijk van wat voor een materiaal er gebruikt wordt op de sensor, kan het voorkomen dat deze (sneller) corrodeert:
Wanneer er gelijkstroom door 2 elektroden van de sensor gevoerd wordt, treed er sneller corrosie op op de sensor, dit komt door elektrolyse, na een mum van tijd zijn de elektroden vergaan, om dit tegen te gaan is het raadzaam alleen de sensor te activeren wanneer er daadwerkelijk gemeten wordt, op deze manier kan de elektrode wel aanzienlijk langer meegaan!
Dit kan bijvoorbeeld in combinatie met:
– Een transistor.
– Een (Solid State) relais.
Ps. In principe zou je de polariteit per uitlezing moeten omdraaien om het corroderen van de polen te wisselen, anders zal telkens 1 pool belast worden en vergaan, je kan het beter verdelen over 2 polen, wellicht mogelijk met een schakeling.