
In diesem kleinen Tutorial zeige ich wie man eine Wasserstandserkennung mit einem Arduino Mega und einem Water Level Detection Sensor Modul bauen kann. Diese kann man zb. in einem Hauswirtschaftsraum oder Keller verwenden, um Wassereintritt durch zb. ein kaputtes Rohr festellen zu können. Ich habe das ganze zum Testen mit einer Pflanze gemacht. Allerdings ist der Sensor nicht dafür geeignet, die Feuchtigkeit der Erde eine Pflanze zu detektieren. Dafür würde sich eher ein Bodenfeuchtesensor wie der ME110 anbieten.
Materialliste
Für dieses Tutorial werden die folgenden Komponenten benötigt:
- Arduino Mega 2560 (https://amzn.to/2E4nlLX – Affiliate Link)
- Wasserstandsensor Modul (https://amzn.to/2WCZTwn – Affiliate Link)
- Female-to-Male Kabel (https://amzn.to/2JAkgXi – Affiliate Link)
Zugegeben ein Arduino Mega 2560 ist sehr überdimensioniert, aber ich hatte diesen gerade hier rumliegen. Das ganze funktioniert natürlich auch mit einem Arduino Zero oder einem ESP8266.
Aufbau der Wasserstandserkennung
Der Aufbau ist eigentlich ganz einfach und sieht wie folgt aus:

Das Sensor Modul hat drei Pins +, – und S. – wird mit Ground auf dem Arduino verbunden. Ich habe hier direkt das GND neben dem 5V Ausgang verwendet. + wird am 5V Ausgang angeschlossen. S habe ich auf dem Ausgang A0 angeschlossen. So habe ich alle Kabel dicht beieinander.
Anschließend wird der Arduino noch über das USB Kabel mit dem PC verbunden und der Sensor, in meinem Fall, in die Pflanze gesteckt (ein Glas Wasser sollte auch funktionieren, aber nur soweit wie die Kupferlinien auf den Sensor reichen.)
Quellcode und Ausgabe für die Wasserstandserkennung
Für den Arduino habe ich hier die folgenden paar Zeilen Code. Mit diesen bekommt ihr auf dem Serial Monitor der IDE eine entsprechende Ausgabe.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | int adc_id = 0; int history_value = 0; char printBuffer[128]; void setup(){ Serial.begin(9600); } void loop(){ int value = analogRead(adc_id); // get adc value if(((history_value >= value) && ((history_value - value) > 10)) || ((history_value < value) && ((value - history_value) > 10))) { sprintf(printBuffer,"ADC%d level is %d\n",adc_id, value); Serial.print(printBuffer); history_value = value; } } |
Für die Ausgabe habe ich den Sensor nun etwas in die Erde hineingesteckt und wieder herausgezogen.

Schreibe einen Kommentar