Jul 212015
 

Den Wasserstand meiner Zisterne habe ich lange mit einem 8-Stufen LED überwacht. Die Einteilung in 8 Stufen ist recht grob, pro Stufe werden ca 875 Liter dargestellt.

Um hier eine genauere Messung durchführen zu können, habe ich einen Ultraschall-Sensor in die Zisterne gebaut, der mit einem Raspberry-Pi angesteuert und ausgewertet wird.

Alle 5 Minuten wird ein Ultraschallimpuls losgeschickt und wieder aufgefangen und an der Laufzeit errechnet, wie weit die Wasseroberfläche vom Sensor entfernt ist.

Die Messung schwankt mit ± 1,5 cm, ab und zu ist auch ein ganz krummer Wert dabei, daher messe ich in kurzem Abstand 10 mal und bilde dann den Mittelwert.

Die gemssenen Werte schreibe ich in eine Round-Robin-Database und erzeuge daraus Grafiken:





 

Verwendete Hardware:

Raspberry PI 2
mit Gehäuse,
Netzteil
und SD-Karte
Ultraschallsensor oder Ultraschallsensor wasserdicht Kabel Schlagschrauber

 

Gehäuse für Ultraschallsensor

 

Werkzeug:

Lötkolben

Schraubendreher für Lüsterklemmen

Schlagschrauber

Verwendete Bookware:

In ein schwarzes Plastikgehäuse habe ich Löcher für den Ultraschallsensor gefräst, den Sensor eingepasst und daran ein übrig gebliebenes 4 x 2 Cat 7 Netzwerkkabel angelötet (Lötfett leistet hier wunderbare Dienste!)

 

Gehäuse noch offen, 4 der 8 Adern in Gebrauch

Gehäuse noch offen, 4 der 8 Adern in Gebrauch

 

Sensor anlöten

Sensor anlöten

Dieses habe ich dann mit der Makita an die Innenwand des Zisternenschachts getackert 🙂

von oben

von oben

Ultraschallsensor pi im Gehäuse

Ultraschallsensor pi im Gehäuse

 

Das Kabel wird durch das Rohr bis nach außen geführt, um dann gleich wieder im Lichtschacht zu verschwinden.

Kabel in Zisterne

Kabel in Zisterne

Von dort geht es weiter durch den Fensterrahmen in den Heizungskeller, wo der Raspberry sitzt und das ganze ansteuert.

Durch den Kunststofffensterrahmen gebohrt

Durch den Kunststofffensterrahmen gebohrt

Raspberry transparentes Gehäuse

Raspberry transparentes Gehäuse

 

Software:

Es läuft per cronjob alle 5 Minuten ein Python-Script, das 10 x die Entfernung zur Wasseroberfläche misst, den Mittelwert bildet und per ftp auf die Homepage schiebt. Dort wird sie durch ein WordPress Plugin dargestellt:

#!/usr/bin/python
# coding=utf8
import time
import ftplib
import RPi.GPIO as GPIO
#from __future__         import print_function

GPIO.setmode(GPIO.BOARD)
trig=11
echo=13
GPIO.setup(echo,GPIO.IN)
GPIO.setup(trig,GPIO.OUT)
voll=50 # 50 cm von Sensor bis Wasseroberfläche = voll
leer=230 # 230 cm von Sensor bis Wasseroberfläche= leer
entfernung=0
gesamt=0

liter_pro_cm=3.1415*112.5*112.5*1/1000  #pi * radius * radius * 1cm /1000 sonst milliliter
print "Liter pro cm: ",liter_pro_cm

for i in range(0,10):
        GPIO.output(trig,True)
        time.sleep(0.00001)
        GPIO.output(trig,False)
        while GPIO.input(echo) == 0:
                pass
        start=time.time();
        while GPIO.input(echo) == 1:
                pass
        ende = time.time();
        entfernung=((ende - start) * 34300) / 2
        print entfernung
        gesamt=gesamt+entfernung
        time.sleep(0.75)

mittelwert=gesamt/10
volumen=(leer-mittelwert)*liter_pro_cm
print "Entfernung: ",  mittelwert, " cm"
print "Volumen: ", volumen
print "- - - - - - - - - - - - - - - - - - - - - "
f1=open('/home/pi/entfernung.txt','w')
print >> f1, '%d' % (mittelwert)
f1.close()

f2=open('/home/pi/volumen.txt','w')
print >> f2, '%d' %(volumen)
f2.close()

f1l=open('/home/pi/entfernung.txt','r')
f2l=open('/home/pi/volumen.txt','r')

serverftp = ftplib.FTP('ftp.server.de', 'user', 'pass')
serverftp.storbinary('Stor entfernung.txt', f1l)
serverftp.storbinary('Stor volumen.txt', f2l)
serverftp.quit()

f1l.close()
f2l.close()

 

 

  24 Responses to “Überwachung der Zisterne mit dem Raspberry Pi :-)”

  1. Klasse, du hast es umgesetzt und mich zugleich wieder angesteckt. Sehr geil. Ich hab auch noch zwei Raspberry Pi die eine Aufgabe suchen. Bisher bin ich mit der LED Anzeige Lösung auch zufrieden, man hatte aber auch nur einen Anhaltspunkt.Wenn meine Outdoor-Küche soweit fertig ist, könnte das mein nächstes Projekt werden.

  2. Die Lösung klingt super ! Ein Detail hätte ich gern gewusst, gehst Du direkt mit dem Echo des Sensors in den Pi, oder hast Du noch einen Widerstand dazwischen ?

    • Hallo Marcella, das Echosignal geht via 10kOhm an den Pi. Und mit zusätzlichen 10kOhm an GND.


      Sensor -- 10k -- 10k -- GND
      und zwischen den 10k geht die Leitung in den Pi.

  3. Hallo papanoni,

    finde die Lösung super und möchte diese auch umsetzen allerdings stop das Script bei print >> f1, ‚%d‘ %(Mittelwert)

    hättest du einen Tip für mich, muss ich evtl. noch etwas installieren .

    Gruß
    Stefan

  4. Hi,

    danke für das Bereitstellen des Quellcodes.
    Ich erhalte leider auch die Fehlermeldung wie Stefan:

    File „zisterne1.py“, line 42
    print >> f1, ‚%d‘ % (mittelwert)
    ^
    SyntaxError: invalid syntax

    ich bin mit Python leider nicht vertraut, nehme aber an, dass man „&gt“ durch > ersetzen könnte.

    zusätzlich frage ich mich, wie man am elegantesten das Diagramm erstellt und befüllt.

    Kannst du dazu auch ein paar Informationen geben?

  5. Das Code-Plugn konvertiert die „>“ in > „>“ sollte klappen

  6. […] Quelle: Überwachung der Zisterne mit dem Raspberry Pi […]

  7. Hallo,

    welches WordPress-Plugin wird für die Visualisierung verwendet? Und noch eine Frage: Du hättest doch auch Sensor + Pi in ein Gehäuse direkt in den Zisternenschacht hängen können – Anbindung via WLAN sollte dann funktionieren – somit wäre nur der Stromanschluss nötig.

    VG,

    Matthias

    • Schön von Dir zu hören! Das WordPress Plugin habe ich mir selber geschrieben, bei Interesse maile ich es Dir gerne! Das Klima in der Zisterne ist mir zu feucht um den Pi dauerhaft dort einzusetzen. Auch bezweifel ich dass das WLAN bis da runter reicht. Und ich nutze meinen Pi auch noch fü die Kameraüberwachung (Zoneminder), dazu muss er am bandbreiten LAN hängen.

      Mein Sensor funktioniert auch nicht, der misst nur Grütze 🙁

  8. wenn ganz krumme Werte dabei sind würde ich auf den Median statt Mittelwert setzen!

  9. Richtig coole Sache. Danke für die Anleitung.
    Ich habe nur noch nicht ganz kapiert welches Kabel an welchen PIN angeschlossen werden muss.
    Wo finde ich diese Information?
    Danke im voraus!!!

    • Hat sich erledigt. Wer lesen kann ist klar im Vorteil 🙂

  10. hast Du eine Bezugsquelle für den Sensor?

  11. Kann mir einer die Verdrahtung zwischen Sensor und USB Stecker schicken/erläutern? Und auf welche Leitung kommen die beiden 10k Widerstände? DANKESCHÖN!

    • Was willst Du denn mit USB? Der Senosr wird direkt an die PINs des Pi angeschlossen: Verkabelung Ultraschallsensor Raspberry pi

  12. Toll. Und ziemlich genau das, was ich für meine zisterne suche. leider fehlt mir die Zeit zum Nachbau. Hat jemand Interesse, mir eins gegen Bezahlung zu bauen? Perfekt wäre eine all-in-one Lösung: Batterieversorgung (Platz ist ja vorhanden und ich vermute, mit ein paar Monozellen und nur 1x/Tag chronjob läuft das ziemlich ewig), WLAN Anbindung (dtarkes Netz vorhanden, da WLAN REPEATER direkt neben der Zisterne). Könnte mir gut vorstellen, dass noch mehr Leute so wie ich gerne eine Komplettlösung kaufen …
    Beste Grüße

  13. Eine kurze Frage, wie lang kann des das Kabel von Raspberry zu dem Fühler / Ultraschall maximal sein?

    besten Dank

    • Wie lang willst du es denn? Probier es doch mal aus. Wenn die Spannung zu dolle abfällt, den Widerstand zwischen Echo und PIN 13 verkleinern.

  14. Sehr cool. Würde die Lösung gerne adaptieren. Verrätst Du uns, wie das Kabel aus dem Rohr wieder herausgeführt wird? Stelle mir vor, dass es am Fallrohr herauskommt, um dann in den Lichtschacht geführt zu werden. Ist da ein Adapter im Siel, oder ein Loch gebort oder was? Für ein Foto wäre ich dankbar.

    Außerdem interessiert mich die Frage der Langzeitstabilität des Systems. Insbesondere: wie macht sich der Sensor unter diesen Bedingungen nach sagen wir einem Jahr?

    • Das Negative vorweg: Das System ist zur Zeit außer Betrieb, der Sensor hat schlapp gemacht. Leider ist die Zisterne momentan randvoll, so dass ein gescheites Arbeiten darin nicht möglich ist 😀

      Hier ein paar Bilder zur Kabeldurchführung zwischen Zisterne und Keller:
      Zisterne1
      Lichtschacht_dreckig
      Loch_Fensterrahmen_fuer_Kabel

      Bitte den Dreck und die toten Insekten nicht beachten. Aber wir sind ja unter uns 😉

  15. Hallo,
    es gibt ein Modul mit Wasserdichtem Sensor: Bei Ali nach
    „K02 integrierte ultraschall bis hin modul parkplatz sensor wasserdicht ultraschall-sensormodul“ suchen.
    Gruss Bernd

  16. Hi,

    wozu sind diese Zeilen da?

    voll=50 # 50 cm von Sensor bis Wasseroberfläche = voll
    leer=230 # 230 cm von Sensor bis Wasseroberfläche= leer

    voll & leer wird im Script dann gar nicht mehr weiter verwendet?

  17. Kann mir jemand eine fertige Variante löten und schicken? Hab noch nie gelötet…

Sorry, the comment form is closed at this time.