Füllstand in der Zisterne mit Arduino

Etwas Technik im Garten darf schon sein. Unser Wasservorrat zu Hause bezieht sich aus diversen Fässern und aus einer Zisterne, welche an zwei Dachflächen vom Haus angeschlossen ist. Sie fasst einige Kubikmeter und lässt sich aber schwer einschauen, da sie ebenerdig und nur mit einer kleinen Öffnung versehen ist.
Nebenbei, danke PC-Welt für die Online-Veröffentlichung im Ratgeber unter: http://www.pcwelt.de/ratgeber/Mit-Arduino-den-Fuellstand-einer-Zisterne-kontrollieren-9937215.html.
 

 
Mitunter rätselt man also, wieviel Wasser noch zur Verfügung steht. Also sollte eine Füllstandsanzeige realisiert werden, die den Füllstand auch noch in Liter Wasser umrechnet. Die Rechenaufgaben soll ein Arduino Nano übernehmen, die Anzeige ein OLED-Display. Unser 0.96 Zoll-OLED für den SPI-Bus ist recht klein, reicht uns aber aus. Softwaremäßig angebunden ist es über die Adafruit-Library für den SSD1306-Controller.

Da wir hier schon einige Erfahrungen haben, setzen wir einen Ultraschallsensor (HC-SR04) zur Bestimmung des Abstands zur Wasseroberfläche ein. Der funktioniert gut in Ölbehältern, bei Wasser müsste er eigentlich etwas gegen Luftfeuchte geschützt werden...
 

 
Aber Messungen mittels Schwimmer und Seilzug oder Rohrkondensator (Wasser als Dielektrikum) haben wir schnell wieder verworfen, weil entweder zu kompliziert zu realisieren oder auf Dauer auch nicht korrosionsfest. Bleibt unsere Distanzmethode per US-Sensor als Alternative. Und die ist dank diverser Libraries zudem einfach in's eigene Arduino-Sketch zu integrieren gewesen. Zuerst also die Schaltung auf einem Breadboard aufgebaut (im Bild mit Sensor, Arduino Nano V3 und Display) und das Sketch getestet.

Zur Mathematik: Der Behälter ist kreisrund, und da Durchmesser, Abstand des Überlaufs zum Boden und Einbauhöhe des Sensors bekannt sind, lässt sich alles recht leicht ausrechnen. Ich habe mir überlegt, den Ultraschallsensor mittels einer Spange am Betondeckel zu befestigen, dadurch kann er im Winter und für Wartungsaufgaben leicht wieder entfernt werden.
 

 
Der Sensor sitzt in einer Miniverteilerdose (aus dem Handel), die Platine im Inneren ist dank Heißkleber und Lack recht gut geschützt. Die eigentlichen Sender und Empfänger des HC-SR04 sind bisher nicht modifiziert worden. Mal sehen, inwieweit die Luftfeuchte in der Zisterne das Ganze angreift.

Dann soll auf einen abgedichteten Sensor (wie u.a. in PKWs verbaut) ausgewichen werden. Ein neues Modul von Sodial liegt dazu schon bereit. Die restliche Elektronik (Nano, Display, Batterie) ist, wie im Bild ganz oben zu sehen, im Gehäuse einer LED-Leuchte untergebracht. Dadurch war alles regensicher (mit Silikon nachgeholfen) und preiswert zu realisieren.
 

 
Wir haben inmitten des Gartens keine Möglichkeit, an das Stromnetz zu gehen. Die Stromversorgung der Schaltung übernimmt deshalb ein 9V-Block und ja, die Anzeige ist nicht permanent in Betrieb dadurch. Der Verbrauch ist zwar moderat, aber für einen Dauerbetrieb hätten wir einen Akku tagsüber aufladen müssen. Das kleine Solarpanel der originalen Leuchte ist dazu bei weitem nicht ausreichend. Vielleicht entwerfen wir später eine Hardware mit großem 5V-Panel und die Anlage funkt dann etwa seine Messwerte permanent ins Netzwerk. Das soll aber eher die nächste Ausbaustufe sein.

Jetzt trennt erst einmal ein Schalter. Das macht wenig Aufwand in der Bedienung, man darf nur das Ausschalten nicht vergessen. Im Bild oben ist die innere Elektronik ohne Schalter und 9V-Block zu sehen. Da wir keine weiteren externen Bauteile haben, reicht uns für den fertigen Aufbau eine Rasterplatine, auf der eine Fassung für den Arduino und die Verbindungskabel verlötet sind.
 

 
Das letzte Bild zeigt die am Betonrand angebrachte Spange mit dem Sensor, welcher im Inneren nach unten auf den Wasserspiegel zeigt. Ein Verbindungskabel geht zur Anzeigeelektronik. Deckel zu und geschafft! Die Anzeige hat nun zwei Modi, im Abstand von 10 Sekunden wechselnd, zeigt sie entweder die Füllmenge in Litern (siehe Abbildung Breadboard) und eine kleine Füllstandsgrafik oder aber klassisch den Füllstand in Zentimetern an (erste Abbildung ganz oben). Erreicht dieser die maximale Höhe, wird zusätzlich mit dem Label "voll" quittiert. Im Fehlerfall gibt es einen entsprechenden Hinweis im Display und es wird im Sekundenabstand die letzte Messung wiederholt. Ist bisher nicht aufgetreten, keine unerwünschten Reflektionen im Inneren also. Aber zum Debugging sind derlei Ausgaben immer ganz hilfreich.

Außerdem haben wir unsere Software recht tolerant aufgebaut. So dürfen Messungen, die über die Grenzwerte hinausgehen, auch auf ein einstellbares Maß (z.B. 5cm) scheitern, dann wird auf- oder abgerundet. Recht günstig, wenn man sich mit den Zisternenmaßen beim Ausmessen etwas vertut oder beim Einbau des Sensors von der ursprünglich geplanten Höhe etwas abweicht...
 

Swen Hopfe

Kommentare

Hallo, eine Bauteilliste und ein Link wo man die Software bekommt wäre schön, dann könnte man das Projekt nachbauen

Hallo frankenboy,

leider existiert eine Bauteilliste im Moment nicht. ...wenn ich nur die Zeit dazu hätte, dann könnte ich auch auf git mal was veröffentlichen.

Gruß Swen

Neuen Kommentar schreiben

Filtered HTML

  • Internet- und E-Mail-Adressen werden automatisch umgewandelt.
  • Zulässige HTML-Tags: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • HTML - Zeilenumbrüche und Absätze werden automatisch erzeugt.

Plain text

  • Keine HTML-Tags erlaubt.
  • Internet- und E-Mail-Adressen werden automatisch umgewandelt.
  • HTML - Zeilenumbrüche und Absätze werden automatisch erzeugt.