Zisternenfüllstandsmessung mit Time Of Flight-Sensor (die Zweite mit Version 1029)

Es ist leider mal wieder lange nix passiert hier im Blog. Das letzte Jahr war nicht so prickelnd und ich hab meine Arbeit an meinen Bastelprojekten quasi eingestellt.

Offensichtlich waren aber die dunklen Wintermonate bei einigen Leuten Ansporn, um ihre Heimautomatisierung und Sensorik zu überarbeiten. Es gab viele Einträge im Blog und ich bekam viele Anfragen per Mail bzgl. des Time Of Flight-Sensor VL53L0X als möglicher Ersatz des Ultraschallsensors HC-SR04. Ich hatte ja auch bei der Version 1028 nach fleißigen Testern und Rückmeldungen gefragt. Vielen Dank euch dafür! Das hat mich auch motiviert mal wieder was an dieser Front zu tun.

Auch wenn mein Ultraschallsensor für seine 2,50€ seit 3 Jahren tadellos seine Arbeit in der Zisterne verrichtet und ich bisher keine Notwendigkeit sehe diesen zu ersetzen, habe ich mir einen weiteren Sensor zu Testzwecken beschafft und in die Software implementiert. Ergebnis ist die Version 1029 der Software.

Neben dem ToF VL53L0X kann nun auch der VL53L1X angeschlossen und genutzt werden. Zu den Unterschieden der beiden Sensoren findet man einiges im Internet. Welcher Sensor nun im jeweiligen Anwendungsfall die bessere Wahl ist, muss jeder selber herausfinden bzw. freue ich mich auch wieder auf Rückmeldungen im Blog oder per Mail bzgl. eurer Erfahrungen.

Zu den beiden ToF-Sensoren nur ganz kurz folgende Zeichnung bzgl. der Öffnungskegel in Abhängigkeit zum Messabstand. Dazu aber noch weiter unten ein bisschen mehr Details da es anscheinend bei den möglichen Abständen etc. nicht verallgemeinert werden kann, welcher Sensor die bessere Wahl ist. Ich habe dazu auch (bisher) keine Tests gemacht!

Der Anschluss des VL53L1X erfolgt analog des VL53L0X. Die notwendigen PINs zum Anschluss sind u.a. in der Applikation angegeben. Hier aber nochmal schnell das Anschlussschema für die beiden ToF-Sensoren.

Anschlussschema für VL53L0X und VL53L1X

Die Version 1029 unterstützt weiterhin den Ultraschallsensor sowie die Displays und den Temperatursensor. Für das komplette Anschluss-Schema schaut bitte in den älteren Blog-Eintrag hier.

Die beiden ToF-Sensoren unterstützen seitens der API noch verschiedene Einstellungen die ich in der ersten Version 1028 nicht implementiert hatte und für den VL53L0X nur die Nutzung der Default-Einstellungen möglich war. In der neuen Version habe ich im ersten Anlauf zumindest ein paar wenige Einstellungsmöglichkeiten implementiert.

Dazu gehört für beide ToF-Sensoren die Möglichkeit den Abstandsmodus anzupassen. Hier holt man auch aus dem VL53L0X noch mehr heraus als im Datenblatt angegeben ist und muss bei größeren Abständen nicht zwingend auf den VL53L1X wechseln. Zudem habe ich beim VL53LoX noch die mögliche Anpassung des Timings implementiert. Hier kann zwischen dem Default-Wert auch noch High-Accuracy (hohe Genauigkeit) und High-Speed gewählt werden. Auch hier gibt es anscheinend kein Patentrezept um gute Messwerte zu erreichen und ausprobieren scheint die Devise.

Da ich diese Werte im “Setup” setze, ist nach Änderung in der WebUI ein Neustart des Sensors notwendig damit die neu eingstellten Werte greifen. Beim VL53L1X muss man den ESP auch ggf. mal vom Strom trennen. Der scheint da etwas zickig was ich auch schon erfahren musste als es nur seltsame Werte bei der Messung gab.

Auswahl der Sensoren in der WebUI

Die weiteren Einstellmöglichkeiten des VL53L1X muss ich mir noch genauer anschauen und implementiere sie dann ggf. in einem nächsten Update. Hier gibt es z.B. noch die Möglichkeit zur Anpassung des Timings (ähnlich dem VL53L0X was ich dort bereits implementiert habe), die Anpassung der Größe des Empfangs-Arrays (SPAD) sowie der Anpassung der Region of Interest (ROI) und Definition eines Offsets. Mit diesen Parametern kann man u.a. “spielen”, falls der Sensor hinter eine Glasscheibe verbannt werden soll.

Aktueller Zoo an möglichen Senoren

Den Download der neuesten Version gibt es hier:

http://www.bubux.de/heimautomatisierung/ota/zisterne_aktuell.bin

Gruß Chris

16 Gedanken zu „Zisternenfüllstandsmessung mit Time Of Flight-Sensor (die Zweite mit Version 1029)

  • 18. Januar 2022 um 11:01 Uhr
    Permalink

    Hallo Chris,
    vielen Dank für die wie immer hervorragende Arbeit. Habe den VL53L1X gestern Abend auf Anhieb zum laufen gebracht. Klasse. Ob und wie er sich in meiner Zisterne macht muss ich dann am WE mal schauen und werde berichten. Wenn bei Dir der SR04 seit Jahren gut läuft freu Dich.
    Meiner leidet spätestens nach 3 Monaten unter Kondensation. Nach Trocknung geht er dann wieder. Daher setze ich große Hoffnung auf den VL53. Spannend wird nur wie der relativ breite Kegel des L1X im schmalen und tiefen Fass funktioniert.
    Gruß Rainer

    Antwort
  • 28. Januar 2022 um 15:47 Uhr
    Permalink

    Erfolg. Der VL53L1X ist in der Zisterne verbaut und sendet korrekte Messwerte (per MQTT an meine Solaranzeige). Der Sensor sitzt in einer Verteilerdose oben auf einem dunkelbraunen 100 er Fallrohr das in der Zisterne steht. Spannend wird, ob er bis zum Boden messen wird (260 cm) wenn die Zisterne im Frühjahr leer wird.

    Antwort
  • 9. Februar 2022 um 15:04 Uhr
    Permalink

    Hallo,
    das Projekt ist wirklich klasse und funktioniert wirklich super. Nun wollte ich die aktuelle Version 1029 aufspielen. Wie lässt sich das aktuelle Update aufspielen? Über cmd funktioniert es leider nicht (error…).
    Ist es irgendwie möglich den d1 mini in deepsleep zu versetzen und nur zu wecken, wenn man eine Abfrage der URL startet?

    Vielen Dank

    Antwort
    • 13. Februar 2022 um 11:35 Uhr
      Permalink

      Hallo Thomas,

      freut mich, dass es Dir gefällt!
      Das Aufspielen einer neuen Version geht nur per Flashen oder per OTA.
      OTA hab ich aktuell aber immer noch nicht komplett automatisiert. Ich bräuchte hier Deine MAC-Adresse (z.B. per Mail) um das anzuschubsen und Du musst OTA in der Software aktivieren.

      Deepsleep und der Zugrif auf die Webseite beißen sich. Das geht meines Wissens nicht.
      Daher gibt es aktuell auch kein Deepsleep.

      Gruß
      Chris

      Antwort
  • 28. Februar 2022 um 10:44 Uhr
    Permalink

    Servus Chris,

    ein tolles Projekt hast du da zusammengefasst! Respekt!
    Ich hätte zwei Feature Reqests 😉
    – Passwortabfrage bei Login (erhöht die Sicherheit)
    – Zisternennachspeisung (Ich nutze meine Zisterne für WC Spülung, und wenn die Zisterne Leer wird, muss ich diese mit Brunnenwasser nachfüllen. Hätte dafür ein Magnetventil eingebaut und das über ein Relais über den Arduino bzw. deine Zisternensteuerung gerne schalten wollen (mittels Relais, bspw. bei 25 % Füllstand -> Nachspeisung ein bis 35 %)) Cool wäre es wenn die Werte in % in der Config manuell eingetragen werden könnten!

    Von der Qualität her bist du schon auf einem hohen Niveau unterwegs (in meinen Augen schon fast Serienrreif 😉

    Lg,
    Martin

    Antwort
    • 21. März 2022 um 17:51 Uhr
      Permalink

      Hallo Martin,

      vielen Dank!
      An der Steuerung eines Ausgangs abhängig vom Zisternensatnd (z.B. für ein Magentventil) bin ich dran. Das kommt demnächst.

      Gruß
      Chris

      Antwort
      • 19. April 2022 um 14:48 Uhr
        Permalink

        Hallo Chris,

        wäre super wenn dieser Ausgang von der Config so realisiert werden würde, dass er auch für eine Zisternenrückspülung (für den Filter) verwendet werden kann. Hierzu verwende ich aktuell ein Releis welches per Timer einmal pro Woche für z.B. 20 Sekunden öffnet.

        Grüße
        Stefan

        Antwort
  • 27. März 2022 um 17:30 Uhr
    Permalink

    Hallo,
    Das Projekt würde mich sehr interessieren, doch leider funktioniert der Link zum Download der aktuellen Version nicht.

    Antwort
  • 30. April 2022 um 22:55 Uhr
    Permalink

    Servus,

    erstmal vielen Dank für die ganze Arbeit. Funktioniert soweit echt super und zuverlässig.

    Ist es evtl. noch möglich, ein oder zwei (Schwimm-)Schalter mit einzuprogrammieren?
    Ich möchte damit zwei nebeneinander stehende und miteinander verbundene Wassertonnen überwachen und da wären ein oder zwei integrierte Schwimmschalter als “fallback” super.

    Vielen Dank und Grüße
    Jochen

    Antwort
    • 2. Mai 2022 um 18:24 Uhr
      Permalink

      Hallo Jochen,

      ich bin dabei zwei Ausgänge schaltbar zu machen. Eine erste Version kommt in den nächsten Tagen.

      Gruß
      Chris

      Antwort
      • 3. Mai 2022 um 11:03 Uhr
        Permalink

        Hallo Chris,

        Vielen Dank, das klingt echt super!

        Jochen

        Antwort
  • 2. Mai 2022 um 22:21 Uhr
    Permalink

    Hallo zusammen,
    ich habe immer wieder Probleme mit meinem HC-SR04 und schon dem dritten im Einsatz. Die Sensoren korrodieren durch die hohe Luftfeuchtigkeit schnell.
    Habe nun diesen hier gekauft: https://www.dfrobot.com/product-1935.html. Der ist wasserdicht und scheint dem HC-SR04 ähnlich zu sein. Heute habe ich ihn angeschlossen und er scheint, auf den ersten Blick zu funktionieren. Unklar ist, ob tiefere Messungen in der Zisterne noch korrekte Ergebnisse liefern. Scheint nach Datenblatt aber vielversprechend.

    Grüße

    Antwort
    • 4. Mai 2022 um 19:09 Uhr
      Permalink

      Hallo Philipp,

      danke für den Tipp. Ich werde im nächsten Artikel (es gibt demnächst eine neue Version die Ausgänge steuern kann) eine Zusammenfassung der bisher implementierten Abstandsmess-Sensoren zusammenschreiben. Da kommt der dabei.

      Gruß
      Chris

      Antwort
  • 29. Mai 2022 um 10:12 Uhr
    Permalink

    Hallo Chris, danke für deine tolle Arbeit. Wann kommt den die Einbindung des Temperatursensors DS18B20. Den gibt es ja in einer Metallhülse komplett wasserdicht, der wäre dann für die Umgebungsluft in der Zisterne zu messen perfekt. Wird eigentlich mit der Temperatur auch die Ultraschallmessung korrigiert ? Ist es eigentlich auch nochmal vorgesehen das der Quellcode von dir geteilt wird. Dann könnten alle hier dir helfen die Software weiter anzupassen. Wäre super. Ich könnte dir helfen eine Platine zu entwickeln wo man dann alles sauber anschließen kann. Auch wäre es cool das Projekt mit dem ESP 32 weiterzuentwickeln der hätte Bluetooth und auch ein besseres WLAN Modul an Board. 😉

    Antwort
  • 1. Juni 2022 um 20:35 Uhr
    Permalink

    Hallo Chris,

    wann können wir den mit der nächsten Version rechnen. Außerdem bekomme ich den Display nicht zum laufen da er zwar die IP Adresse anzeigt aber danach der Füllstand fehlt. Auch wäre es cool wenn die alternativen Temperatursensoren mit in der nächsten Version wären. Korrigieren die eigentlich auch automatisch den Ultraschallsondenwert.

    Gruß Martin

    Antwort

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert