PiUS - Die Zisterne sendet Daten zum Wasserstand

  • Projekt PiUS - Raspberry Pi UltraSonic


    Gemeinschaftsprojekt von Dirk Weyand (Software) und Neueinsteiger (Hardware, weil ich Software nicht kann)


    Alle Neuerungen werden durch Ergänzungen am Ende dieses Beitrages zu sehen sein.


    Ziel des Projektes ist es, den Pegel des Wasserstandes einer Regenwasserzisterne grafisch darzustellen, um langfristige Verläufe erkennen zu können. Abgewandelt kann dies wahrscheinlich auch für den Pegel von Öltanks genutzt werden.


    Zuerst musste eine Möglichkeit gefunden werden, den Pegel zu messen. Einen guten Ansatz fand ich hier: http://www.forum-raspberrypi.d…gsmessung-mit-ultraschall


    Um den Sensor und die Steckverbindung bestmöglich vor der Nässe zu schützen, habe ich die Steckverbindung in ein entsprechend abdichtendes Gehäuse gebaut, dass im Inneren der Zisterne befestigt wurde.


    Bei der Verbindung zum RasPi habe ich mich für eine Key-Stone Cat 6a Buchse und ein Patchkabel entschieden. Der Grund liegt in der langen Kabelstrecke. Das Kabel bis zum RasPi ist 20 m lang. Daher habe ich jeweils ein Adernpaar (ein Patchkabel hat 4x2 Adern) miteinander verbunden, so dass sich der Querschnitt der Verbindung verdoppelt und somit der Leitungswiderstand verringert. Obwohl bei mir auf der Seite des RasPi nochmals eine RJ45 Einbaubuchse einen weiteren Widerstand darstellt, wird das Signal sauber übertragen. Die Pegelanpassung mit den zwei Widerständen wird direkt an den GPIOs des RasPi vorgenommen, nicht in der Zisterne.


    In den Deckel der Dose habe ich passend vier Löcher gebohrt, um die Pins des Sensors dort hindurch in die Dose stecken zu können. Das Kabel, dass am Key-Stone befestigt ist, wurde über eine Lochrasterplatine an eine Buchsenleiste gelötet, die dann auf die Pins des Sensors gesteckt wird, die in das Innere der Dose ragen. Die Kabelenden wurden mit Heisskleber an der Lochrasterplatine befestigt, um einem Kabelbruch bei der Montage vorzubeugen.


    Damit zumindest die Elektronik des Sensors möglichst gut vor der Nässe geschützt ist, wurde die Sensorplatine am Rand mit Isolierband umwickelt und der entstandene Raum dann beidseitig mit Heisskleber gefüllt. Nachdem dieser abgekühlt war, wurde das Isolierband entfernt und nochmals eine Wulst Heisskleber über die Außenkante der Platine gezogen. Somit sollte die Elektronik bestmöglich geschützt sein.


    Damit war der Hardwareteil erledigt. Nun folgte noch das Problem mit der Software. Leider habe ich es nicht geschafft, das hier genutzte Python-Script so zu verändern, dass die Ausgabe in eine Datei erfolgt. Hilfe kam dann von unerwarteter Stelle.


    Dirk Weyand von www.tgd-consulting.de, wo ich vor einigen Wochen eine sehr geniale Raspberry Pi Cam Software gefunden habe, bot mir seine Hilfe bei der Lösung des Problems an, die ich gerne annahm.


    Herausgekommen ist nach vielen Tagen und Nächten mit zahllosen Testläufen und Updates das beigefügte Script.


    Das Script wird im entsprechenden Verzeichnis (z. B. /home/pi/zisterne/ ) mit dem Befehl sudo ./r3 PiUltraSonic.r aufgerufen. Zuvor muss der Interpreter r3 von der Seite des Autors heruntergeladen und in das gleiche Verzeichnis entpackt werden.


    Die "Globals" sollten selbsterklärend sein.


    In den kommenden Tagen und Wochen wird das Projekt weiter entwickelt. Es soll mit Hilfe von gnuplot automatisch eine Tages-, Wochen-, Monats- und Jahresgrafik erzeugt werden, die über die Homepage zugänglich ist. Die ersten Tests sehen vielversprechend aus.






    edit:


    13.05.2014 aktuelle Version 0.9.0 hinzugefügt und Code eingestellt
    14.05.2014 aktuelle Version 0.9.1 hinzugefügt und Code eingestellt
    15.05.2014 erste Tagesgrafik manuell aus den gesammelten Daten erstellt und angefügt
    20.05.2014 aktuelle Version 1.0.0 hinzugefügt und Code eingestellt
    28.05.2014 aktuelle Version 1.0.3 hinzugefügt und Code eingestellt
    20.01.2014 aktuelle Version 1.6.2 erschienen. Der Code ist inzwischen so umfangreich, dass der Autor ihn nicht mehr kostenlos zur Verfügung stellen möchte. Ich halte den Preis für sehr fair und kann daher einen Kauf uneingeschränkt empfehlen.
    24.01.2014 aktuelle Version 1.7.1 erschienen - Änderungen siehe Beitrag #17

    • Official Post

    Hmmm ,ich frage mich warum man es in so einer exotischen Sprache umsetzen musste und dann noch auf das Go des Fremd-Autoren hoffen muss. Das Script von boandlkramer macht am ende nichts anderes, nur das ihm 3 Zeilen fehlen um die Werte in eine Textdatei zu speichern.

    Der Unterschied zwischen Genie und Wahnsinn definiert sich im Erfolg.

    Edited once, last by dbv ().

  • Genau diese "drei Zeilen" habe ich nicht hinbekommen. In welcher Sprache das Script geschrieben ist, ist doch letztlich egal. Wichtig ist, dass es überschaubar ist, gut läuft und wenn möglich die begrenzten Ressourcen des RasPi schont. All das ist gegeben.


    Im Übrigen ist das Script des Autors wesentlich umfangreicher als das von Dir verlinkte Script. Da ich in keine Copyright-Falle tappen möchte, hole ich mir grundsätzlich das Okay eines Autors ein, bevor ich seine Ideen kopiert veröffentliche.


  • Hmmm ,ich frage mich warum man es in so einer exotischen Sprache umsetzen musste und dann noch auf das Go des Fremd-Autoren hoffen muss. Das Script von boandlkramer macht am ende nichts anderes, nur das ihm 3 Zeilen fehlen um die Werte in eine Textdatei zu speichern.



    Naja, darf ich dich an deine Signatur erinnern: "Der Unterschied zwischen Genie und Wahnsinn definiert sich im Erfolg. "


    :lol::bravo2:

    --
    man ist das System-Anzeigeprogramm für die Handbuchseiten von Linux.

  • Das Projekt hat den Betastatus verlassen und ist jetzt offiziell hier zu sehen: http://pius.tgd-consulting.de/de/index.html


    Der dort abgebildete Screenshot ist nicht mehr ganz aktuell. In der aktuellen Version gibt es die Möglichkeit, sich die Historiendaten anzeigen zu lassen. Ich habe einen entsprechenden Screenshot im ersten Beitrag hinzugefügt.


    Ich habe die aktuelle Version des Scriptes 1.0.3 im ersten Beitrag eingefügt.

  • Hallo,
    wie startet man das Script?
    Ich habe die "r3" und und die "PiUltraSonic.r" Datei in ein Verzeichnis Zisterne gelegt.
    Wollte es mit "sudo ./r3 PiUltraSonic.r" starten. Erhalte aber die Fehlermeldung "sudo: ./r3: command not found"
    Was mache ich falsch? Muss noch etwas installiert werden?

  • Danke,
    den Autostart hab ich anderweitig hinbekommen. Das Script läuft nun automatisch. Eine kleine Änderung ist aber noch nötig.
    Ich benötige nur die Pegel Infos (die reine Zahl) aus der wasserstand.txt Datei, um den Inhalt auf meiner Webseite wiedergeben zu können.
    Das Datum hab ich aus dem Script schon entfernt. Nun möchte ich aber, dass immer nur ein Wert in der Datei steht. Also wenn ein neuer Wert geschrieben wird, soll der alte gelöscht werden. Wo und wie muss ich in dem Script eingreifen?
    Danke.

  • Update


    Die Version 1.6.2 ist erschienen. Die GPIOs sind nun in den Globals frei konfigurierbar. Was aber (für mich) viel interessanter ist, sind die neuen Möglichkeiten in den Systemeinstellungen. Einen Screenshot habe ich dem ersten Post hinzugefügt.


    Es ist nun möglich, per frei definierbarem Pegelstand einen GPIO zu schalten oder ein Script zu starten. Auch mehrere Ereignisse sind möglich. Ebenso ist die Funktion Heartbeat zur Live-Überwachung eingeführt worden. Eine genaue Beschreibung der neuen Funktionen sind in den FAQ des Entwicklers zu finden.


    Die Software läuft bei mir inzwischen seit Mai 2014, zeichnet absolut zuverlässig die Daten auf und erstellt sehr aussagekräftige Grafiken.

  • Sehr schnell gab es schon wieder ein Update (1.7.1). Zu den bereits erwähnten Funktionen (Schalten von GPIOs und Start von Scripten) ist der Versand von E-Mails hinzugefügt worden. Somit ist es jetzt möglich, sich per E-Mail informieren zu lassen, sobald ein vorher frei definierter Füllstand erreicht wird. Hierzu müssen lediglich die Daten des E-Mail Anbieters in einer Datei hinterlegt werden.


    Ebenfalls ist eine Notizbuch Funktion hinzu gekommen. Es handelt sich dabei um ein großes Freitextfeld. Ich werde dieses nutzen, um die Daten der Filterreinigung, etc. einzutragen.


    Wer die Software in Verbindung mit einem Öltank nutzt, könnte zum Beispiel Liefertermine, Preise, etc. dort hinterlegen.

  • Hallo,


    ich finde deine Idee sehr interessant.


    Eine Frage zum Ultraschall Sensor. Brauche es im Wasser einen Art Schwimmer auf den der Sensor reflektiert? Oder reicht die Wasseroberfläche dafür?


    Gruss twisters

  • Ist immer noch das gleiche Sensormodul im Einsatz?


    Habe etwas Bedenken, dass ich dieses Modul in einer Zisterne mit Betondeckel verwende.
    Die Elektronik lässt sich schützen, jedoch nicht die Schallsender bzw. Empfänger.
    In einer Zisterne herrschen doch hohe Luftfeuchtigkeiten vor.


    Des weiteren könnte ich in deiner Dose Kondenswasser bilden.


    Gruß Georg

    Gruß Georg


    ... und sie leben doch :cool:


    Raspberry Pi B+, Raspberry Pi2, Raspberry Pi3