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 12 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:

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

int messwert=0;

void setup()

{

  Serial.begin(9600);

}

void loop()

{

 messwert=analogRead(A0);

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

  Serial.println(messwert);

  delay(500);

}

Unter der Variablen „messwert“ wird später der Messwert des Sensors gespeichert.

Hier beginnt das Setup.

Die Kommunikation mit dem seriellen Port wird gestartet. Das benötigt man, um sich den ausgelesenen Wert im serial monitor anzeigen zu lassen.

 Hier beginnt der Hauptteil

 Mit dieser Klammer wird der Loop-Teil geöffnet.

Die Spannung an dem Sensor wird ausgelesen und unter der Variable „messwert“ gespeichert.

Ausgabe am Serial-Monitor: Das Wort „Feuchtigkeits-Messwert: „ und im Anschluss der eigentliche Messwert.

 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:

SKIZZE FOLGT

 

Programm:

int messwert=0;

int PIEPS=6;


void setup()
{
Serial.begin(9600);
pinMode (6,OUTPUT);
}

void loop()

{

 messwert=analogRead(A0);

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

 Serial.println(messwert);

 delay(500);

if (messwert <200 )

{

digitalWrite(PIEPS, HIGH);

}

else

{

digitalWrite(PIEPS, LOW);

}

}

Mit dem Namen „PIEPS“ wird jetzt der Pin6 bezeichnet, an dem ein Piezo-Speaker angeschlossen wird.

Im Setup wird der Pin6 als Ausgang festgelegt.

Hier beginnt die Abfrage: Wenn der Sensorwert kleiner als „200“ ist, dann…

…soll der Piezo-Speaker piepsen.

…ansonsten…

…soll er leise sein.

Schreibe einen Kommentar