Nr.17 Feuchtigkeitssensor

Anleitung zum Feuchtigkeitssensor

 

 

 

 

 

 

 

 

Mit einem Feuchtigkeitssensor (Moisture Sensor) kann man wie es der Name schon sagt die Feuchtigkeit messen. Dies bezieht sich jedoch auf die direkt anliegende Feuchtigkeit, wie z.B. Hautfeuchtigkeit oder Bodenfeuchtigkeit, nicht jedoch von Luftfeuchtigkeit. Man kann ihn zum Beispiel verwenden, um die Feuchtigkeit im Boden von Pflanzen zu messen. Im Falle von Trockenheit könnte dann ein Alarmsignal ertönen, oder eine elektrische Wasserpumpe könnte die Pflanze automatisch mit Wasser versorgen.Der Sensor eignet sich ebenfalls, um den Wasserstand im Bereich des Sensors zu messen. Die Funktionsweise ist einfach. An den beiden Kontakten des Sensors liegt eine Spannung an. Je höher die Feuchtigkeit zwischen den beiden Kontakten ist, desto besser kann der Strom von einem Kontakt zum anderen fließen. Dieser Wert wird im Sensor elektronisch aufbereitet und in Form eines analogen Signals an einen analogen Eingang des Boards übermittelt. Da das Board, wie bereits in vorherigen Tutorials beschrieben, keine elektrische Spannung als solche messen kann, wandelt es die am analogen Pin anliegende Spannung in einen Zahlenwert um. 0 bis 5 Volt entspricht einem Zahlenwert von 0 bis 1023 (Das sind 1024 Zahlen, da die Null als erster Zahlenwert gezählt wird).

Bei dem Feuchtigkeitssensor liegt das obere Limit jedoch ca. bei dem Zahlenwert 800, wenn der Sensor komplett im Wasser eingetaucht ist. Die genaue Kalibrierung ist jedoch abhängig vom Sensor und von der Art der Flüssigkeit/Feuchtigkeit, die gemessen wird (bspw. hat Salzwasser eine bessere Leitfähigkeit und der Wert wäre entsprechend höher).

Aufbau und Material

Material: Arduino Mikrocontrollerboard, Feuchtigkeitssensor, Jumperkabel  (Materialbeschaffung: www.funduinoshop.com)

Hinweis zu Messungen:
Wir empfehlen, aufgrund der Elektrolyse durch das Wasser bzw. die Feuchtigkeit an den Sensoren, die Messungen nicht in einem Sekundenabstand durchzuführen. Aus Erfahrungen durch Tests direkt im Wasser, empfehlen wir einen Abstand von 15 Minuten zwischen jeder Messung. Bei Messungen im Sekundenbereich, bei direktem und durchgängigen Wasserkontakt, entstehen durch die Elektrolyse nach ca. 24 Stunden Schäden am Sensor.

Die Programmierung ist sehr einfach und ähnelt sehr stark dem Auslesen von Potentiometern, da einfach nur ein analoger Wert ausgelesen wird.

Code:

int messwert=0; //Unter der Variablen "messwert" wird später der Messwert des Sensors gespeichert.

void setup() 

{ ////Hier beginnt das Setup.

  Serial.begin(9600); //Die Kommunikation mit dem seriellen Port wird gestartet. Das benötigt man, um sich den ausgelesenen Wert im serial monitor anzeigen zu lassen.

}

void loop()

{ //Hier beginnt der Hauptteil  

 messwert=analogRead(A0); //Die Spannung an dem Sensor wird ausgelesen und unter der Variable „messwert“ gespeichert.

  Serial.print("Feuchtigkeits-Messwert:"); //Ausgabe am Serial-Monitor: Das Wort „Feuchtigkeits-Messwert:"

  Serial.println(messwert); //und im Anschluss der eigentliche Messwert.

  delay(500); //Zum Schluss noch eine kleine Pause, damit nicht zu viele Zahlenwerte über den Serial-Monitor rauschen.

}

Erweiterung des Programms:

Nun soll ein Alarmsignal mit Hilfe eines Piezo-Speakers ertönen, sobald die gemessene Feuchtigkeit einen bestimmten Grenzwert unterschreitet.

 

Als Grenzwert wird in diesem Fall der Wert „200“ festgelegt.

Aufbau:

 

Programm:

int messwert=0;

int PIEPS=6; //Mit dem Namen "PIEPS" wird jetzt der Pin6 bezeichnet, an dem ein Piezo-Speaker angeschlossen wird.


void setup()
{
Serial.begin(9600);
pinMode (6,OUTPUT); //Im Setup wird der Pin6 als Ausgang festgelegt.
}

void loop()

{

 messwert=analogRead(A0);

 Serial.print("Feuchtigkeits-Messwert:");

 Serial.println(messwert);

 delay(500);

if (messwert <200 ) //Hier beginnt die Abfrage: Wenn der Sensorwert kleiner als "200" ist, dann...

{ 

digitalWrite(PIEPS, HIGH); //...soll der Piezo-Speaker piepsen.
}

else //..ansonsten...

{

digitalWrite(PIEPS, LOW); //...soll er leise sein.

}

}