Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Praktische Anwendungen (Showcase)
    4. Füllstandsmessung per Pegelsonde.

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Füllstandsmessung per Pegelsonde.

    This topic has been deleted. Only users with topic management privileges can see it.
    • M
      Maze77 last edited by Maze77

      Hallo Zusammen,

      ich hatte jetzt auch mal ein wenig Zeit mir den Cdoe anzusehen.

      Meiner Hardware ist folgende:

      Ardunio MKR 1000
      LCD 2x16

      Drucksonde, DC-DC-Step Up und Messbrücke kommen noch.

      Nachdem ich mich erst einmal in das Thema einarbeiten musste, bin ich jetzt soweit, dass der Code angepasst auf meine WiFi Verbindung und das 16x2 Display läuft.

      Die Messwerte habe ich mittels Poti simuliert.

      Hierbei ist mir ein Fehler in deinem Skript aufgefallen @Eisbaeeer und zwar bei der Glättung des Analogen Messwertes.
      Der Fehler fällt bei deinen 60 Messungen nicht wirklich stark ins Gewicht, aber er ist da 🙂 Bei 2 Messungen liegst du um 100% daneben. Du hast vergessen den Wert "fuel" wieder zu resetten. Somit addierst du auf den alten Wert die neuen hinzu. Der Fehler liegt somit bei (messungen+ 1) / (messungen).
      Die eine Zeile im Code behebt den Fehler.

          // Werte aufaddieren
              fuel = 0; // Initialisierung HINZUGEFÜGT, da Berechnung sonst falsch
              for (int i = 0; i < messungen; i++)
                {
                 fuel = fuel + myArray[i];
                }
              // Summe durch Anzahl
                 fuel = fuel / messungen;
      

      Dann Frage ich mich, warum du die Prozentzahl so "seltsam" berechnest.

          percent = fuel * 0.132;
      

      Du gibts in dem Skript doch den maximalen Analog Wert an und hast den aktuellen vorliegen. Somit wäre folgender Code eigentlich richtig:

      percent = fuel / analog_value * 100;
      

      Was mir noch aufgefallen ist, ist dass die Pointerschleife zuweit läuft:

          if ( pointer > messungen ) {
            pointer = 0;
          } else {
            pointer++;  
          }
      

      Bei dir mit zB messungen = 60 ginge der Pointer von 0 bis 60 was 61 Messpunkten entspricht. (die 0 nicht vergessen).

      Was sehr schade an dem Code ist, ist der Umstand, dass er mittlerweile für ein 20x4 LCD geschrieben ist. In deiner Teile List und auch im Header vom Code stehen 16x2, was vielleicht den ein oder anderen zum "Fehlkauf" verleitet 😉

      Aber im Großen und Ganzen läuft der Code und die Kommunikation zu meinem IP-Symcon MQTT Server funktioniert auch 1A.

      Sobald der Drucksensor kommt sollte sich somit das Zisternenüberwachungsproblem erledigt haben 🙂

      Danke nochmal und Gruß
      Maze

      PS:
      Beim Arduino MKR können die Analogen Inputs mit bis zu 12Bit ausgelesen werden (0-4095).

      Eisbaeeer L 2 Replies Last reply Reply Quote 0
      • Eisbaeeer
        Eisbaeeer Developer @Maze77 last edited by

        @Maze77 Hi Maze
        Du hast dann aber nicht meinen Code von github verwendet!? Der ist und bleibt für ein zweizeiliges Display. Die Änderung auf ein 4 zeiliges ist dort nicht drin. Ich habe inzwischen schon ein paar Änderungen aber noch nicht gepusht. Ich schaue mir deine erwähnten Stellen noch an und fixe das.
        Gruß Eisbaeeer

        M 1 Reply Last reply Reply Quote 0
        • M
          Maze77 @Eisbaeeer last edited by Maze77

          @Eisbaeeer

          Ich dachte schon, dass es der richtige Code aus Git ist.

          Header war von Dir und die Version war 1.4.

          Ich schau aber nach, sobald ich am PC bin.

          edit:
          Den Sketch hatte ich von folgender Seite:

          https://github.com/Eisbaeeer/Arduino.Ethernet.Zisterne#abgleich

          edit2:
          Nur um das kurz Klarzustellen:
          Es läuft schon auf einem 16x2 LCD, aber die Uptime und nochwas werden auf Zeile 3/4 geschrieben und erscheinen somit natürlich nicht.

          1 Reply Last reply Reply Quote 0
          • L
            ltathome @Maze77 last edited by

            @Maze77 said in Füllstandsmessung per Pegelsonde.:

            Hierbei ist mir ein Fehler in deinem Skript aufgefallen @Eisbaeeer und zwar bei der Glättung des Analogen Messwertes.
            Der Fehler fällt bei deinen 60 Messungen nicht wirklich stark ins Gewicht, aber er ist da Bei 2 Messungen liegst du um 100% daneben. Du hast vergessen den Wert "fuel" wieder zu resetten. Somit addierst du auf den alten Wert die neuen hinzu. Der Fehler liegt somit bei (messungen+ 1) / (messungen).
            Die eine Zeile im Code behebt den Fehler.
            // Werte aufaddieren
            fuel = 0; // Initialisierung HINZUGEFÜGT, da Berechnung sonst falsch
            for (int i = 0; i < messungen; i++)
            {
            fuel = fuel + myArray[i];
            }
            // Summe durch Anzahl
            fuel = fuel / messungen;

            hui - das dürfte stimmen...
            @Eisbaeeer : meine Version im Diff hat zwar einen anderen Namen für die Variable aber noch den gleichen Fehler.

            1 Reply Last reply Reply Quote 0
            • M
              Maze77 last edited by Maze77

              Mal eine doofe Frage zu dem Bilin Strom zu Spannungswandler.

              Wenn ich den Wandler mit 24V speise ( auf GND und VCC) kann ich dann an dem Anschlussterminal für den Sensor (I- und I+) die 24V messen?

              ich habe nur 24V zwischen VCC und I- oder I+, aber keine Spannung zwischen beiden I polen.

              Somit bekomme ich auch keinen Strom vom Sensor.

              Wenn ich den Sensor direkt an 24V packe dann bekomme ich 4mA trocken und bei ca. 1.4m die 8mA.

              Ich scheine das Wandler Board noch nicht zu verstehen...

              Danke schonmal für Eure Anregungen.

              Maze

              edit:
              Hat sich erledigt. In @Eisbaeeer Anschluss Bild war es ersichtlich.
              Frage mich nur, warum meine Bridge da Anschlussterminals hat. Hätte man den Ground auch direkt auf I- legen können und das Terminal so auslegen, dass da eine Sonde direkt angeschlossen werden kann...

              1 Reply Last reply Reply Quote 0
              • Eisbaeeer
                Eisbaeeer Developer last edited by

                Heute mal viel gießen im Garten. Zisterne leer. Zeit für eine neue Version 😉
                Ich habe die Änderungen im Github mit einfließen lassen. Über MQTT sind jetzt dank @ltathome https://forum.iobroker.net/user/ltathome Grenzwerte setzbar. Das heisst ihr könnt Eure Frischwasser Nachspeisung oder Telegram oder was auch sonst mit einbauen. Wer noch Optimierungen findet, gerne hier posten. Der RAM ist ziemlich voll und ich hatte schon den ein oder anderen Hänger. Ich bin gespannt, wie lange die Uptime bei mir wird. Ihr findet den neuen Sketch wie immer in meinem Github: Zisterne
                Grüße Eisbaeeer

                Atifan 1 Reply Last reply Reply Quote 0
                • Atifan
                  Atifan @Eisbaeeer last edited by Atifan

                  Hi, möchte auch den Füllstand der Zisterne ermitteln und wenn zu wenig Wasser drin ist über nen Sonoff den Strom meines Hauswasserwerks abschalten, damit es nicht leer läuft.
                  Habe jetzt schon mit Ultraschallsensor und TOF VL53L1X probiert, leider sind beide zu ungenau.
                  Als nächstes wollte ich es mit diesem Füllstandsanzeiger probieren.
                  Funktioniert das alles gut und lässt sich der Füllstand gut und genau ermitteln?
                  Was brauch ich alles für Hardware?
                  Füllstandssensor
                  Stepup-Board
                  Board das 4-20mA umwandelt in 0-5V
                  Wemos D1 Mini
                  fehlt noch was?

                  1 Reply Last reply Reply Quote 0
                  • E
                    ElseKling @rostnagel last edited by ElseKling

                    Hallo zusammen,
                    die Lösung mit der Pegelsonde und MQTT wäre für mich genau die Lösung. Da sich hier die verschiedenen Ansätze vermischen (D1 mini, NodeMCU, Arduino Nano..) würde ich gerne eine Anleitung erstellen, die am Ende den Nachbau für alle Interssierten einfach in einem Ablauf ermöglicht. Im zweiten Schritt dann mit der Erweiterung des Displays.
                    Habe ich den Aufbau mit einem Node MCU so richtig verstanden oder muss der Strom-zu-Spannungs-Converter noch rein?
                    plan.jpg

                    Eisbaeeer Atifan S E 4 Replies Last reply Reply Quote 0
                    • Eisbaeeer
                      Eisbaeeer Developer @ElseKling last edited by

                      @ElseKling Hi. Ähhm, links oben ist doch der "Strom zu Spannungskonverter" schon drin. Also ich sehe keinen Fehler, sollte so passen. Rechst oben sollte eben ein Step-Up Konverter von 5V auf 24V sein, da die Pegelsonde und der Konverter nur mit 24V richtig arbeiten.
                      Gruß Eisbaeeeer

                      E 2 Replies Last reply Reply Quote 0
                      • Atifan
                        Atifan @ElseKling last edited by

                        Ja sollte so funktionieren.
                        Ich hab statt nen INA219 Board genommen, aber das was du hast geht auch.
                        2a8db343-a9e1-417f-98a3-9afa08001dd5-image.png

                        5ced65ba-776b-45c7-b272-20be2a0f6af7-image.png

                        1 Reply Last reply Reply Quote 0
                        • E
                          ElseKling @Eisbaeeer last edited by

                          @Eisbaeeer Danke. Im ersten Bild von Opossum war ein ein anderes Bauteil verwendet, nach Deinem Hinweis hat er es geändert. Dann muss ich jetzt erst mal auf den Konverter warten.

                          1 Reply Last reply Reply Quote 0
                          • S
                            Superdad @ElseKling last edited by

                            @ElseKling
                            Könntest du eventuell noch schreiben, welche Teile du in dem Bild verwendet hast?
                            Der ESP ist klar, aber wie heißen die anderen Teile einschließlich der Pegelsonde?
                            Bzw. welche Pegelsonde ist denn die Richtige?

                            Vielen Dank!

                            1 Reply Last reply Reply Quote 0
                            • Atifan
                              Atifan last edited by Atifan

                              @Superdad

                              Du benötigst

                              1. 3,3V Versorgungsspannung (durch Netzteil)
                              2. ESP8266 (z.B. Wemos D1 Mini)
                              3. MT3608 StepUp Board (für wandeln 3,3V auf 24V) https://www.amazon.de/AZDelivery-MT3608-Netzteil-Adapter-Arduino/dp/B079H3YD8V/ref=sr_1_3?__mk_de_DE=ÅMÅŽÕÑ&dchild=1&keywords=MT3608&qid=1602162188&sr=8-3
                              4. Füllstandssensor 24V, 0-5m -> https://www.amazon.de/gp/product/B07SYLYZNP/ref=ppx_yo_dt_b_asin_title_o09_s00?ie=UTF8&psc=1

                              dann entweder wenn du es so machst wie ich ein
                              5. INA219 (https://www.amazon.de/CJMCU-219-Schnittstelle-Bi-directional-Current-Raspberry/dp/B071ZRP5PL/ref=sr_1_6?dchild=1&keywords=INA219&qid=1602161925&sr=8-6)

                              oder
                              5. BIlinli Strom zu Spannungsmodul 0/4-20mA zu 0-3,3V 5V 10V Spannungsgeber (https://www.amazon.de/gp/product/B07TWLG37N/ref=ppx_yo_dt_b_asin_title_o00_s00?ie=UTF8&psc=1).

                              Auf dem ESP8266 installierst du dann Tasmota-sensors.bin (http://ota.tasmota.com/tasmota/release/tasmota-sensors.bin).

                              Bei den Pegelsonden gibt es verschiedene, 3m, 4m, 5m. Ich hab ne 5m genommen.
                              Je nachdem welche du hast musst du deine Formel anpassen wie du deinen Füllstand berechnest.
                              Bzw. es kommt auch darauf an wie du berechnest.

                              S 3 Replies Last reply Reply Quote 0
                              • S
                                Superdad @Atifan last edited by

                                @Atifan Vielen Dank für deine ausführliche Antwort!

                                1 Reply Last reply Reply Quote 0
                                • S
                                  Superdad @Atifan last edited by

                                  @Atifan Ist denn die Formel zur Berechnung des Füllstandes in Tasmota-sensors.bin?
                                  Oder muss man dazu dann ein extra Script anlegen?

                                  1 Reply Last reply Reply Quote 0
                                  • S
                                    Superdad @Atifan last edited by Superdad

                                    @Atifan Welchen Sensor hast du in Tasmota gewählt und wie übergibst du die Daten an iOBroker?
                                    Könntest du etwas dazu schreiben?

                                    Kann ich auch ein USB-Ladegerät an den ESP8266 anschließen und dann mit 3V und Grd an das Spannungsmodul gehen?

                                    Atifan 1 Reply Last reply Reply Quote 0
                                    • Atifan
                                      Atifan @Superdad last edited by Atifan

                                      @Superdad USB-Ladegerät geht, das liefert aber 5V. Dann musst auf die 5V bzw. in den USB-Eingang rein.
                                      Mit dem INA219 musst du als Sensor I2C SDA und I2C SDL je einem GPIO zuweisen.
                                      Daten werden dann per MQTT an IoBorker übertragen.
                                      Im IoBroker musst du natürlich MQTT Server laufen haben.

                                      Hier mein Tasmota Config.

                                      4423005f-f717-47e1-b97d-33e649a190b3-image.png

                                      In Tasmota in der Konsole gibst du dann noch folgendes ein:
                                      Sensor13 11

                                      Damit gaukelst du Tasmota vor, dass der Widerstand im INA219 10x kleiner oder größer wäre, bin mir jetzt garnicht mehr sicher^^.
                                      Auf jedenfall erhällst du dann eine höhere Auflösung bzw. Genauigkeit beim bestimmen des Füllstands.

                                      Bei mir entspricht 0.035A = 0cm Wasser, d.h. Zisterne ist leer, bzw. das Wasser an der Unterkante des Sensors
                                      Pro 0.001A höher entspricht bei mir einem Wasserstand von 3.225cm, das sollte bei dir gleich oder sehr ähnlich sein.
                                      0.036A wäre also 3,225cm.
                                      0.037A wäre 6.45cm.
                                      usw.

                                      Mir reicht das mit einer Genauigkeit von +-3,225cm.
                                      Es geht auch bestimmt anders und noch genauer, aber ich hab es bei mir so gelassen da es funktioniert und für mich gut genug ist 🙂

                                      Über das Relais schalte ich dann mein Hauswasserwerk ab, wenn der Füllstand bei 0cm ist.
                                      Eingeschaltet wird dann erst wieder wenn der Füllstand bei >=20cm ist.

                                      Die Tauchsonde hängt ein paar cm höher als das Ende des Ansaugschlauches, so dass keine Luft angesaugt wird und der Schlauch immer schön mit Wasser gefüllt ist.

                                      Bei mir hängt die Sonde genau auf 3m tiefe. D.h. die Maximale Wassersäule darüber ist 3m, wenn die Zisterne voll ist.
                                      Im Moment ist sie bei mir voll, d.h. 300cm.
                                      0.128A - 0.35A = 0.093A Differenz
                                      93 x 3,225 = 299,925cm Wassersäule

                                      b6122eec-9051-4185-afa7-9a9f26c0cc36-image.png

                                      Visualisieren tue ich das ganze dann mit IoBroker, InfluxDB und Grafana.

                                      b6bfdf9c-c2d8-4316-b772-9a2abc3982bc-image.png

                                      S 1 Reply Last reply Reply Quote 0
                                      • S
                                        Superdad @Atifan last edited by

                                        @Atifan said in Füllstandsmessung per Pegelsonde.:

                                        Vielen, vielen Dank für deine Antwort.

                                        Bei Sensor13 11 kommt bei mir ein Error.
                                        Habe aber auch noch nichts zusammen gebaut. Das ist noch im Zulauf.
                                        Den INA219 gibt es nur zum selber löten. Ach du Sch......!
                                        Ich und löten!!!!!
                                        Hoffentlich geht das gut?!

                                        S 1 Reply Last reply Reply Quote 0
                                        • S
                                          Superdad @Superdad last edited by

                                          Mit 3V und Grd gehe ich aber vom ESP zum MT3608 StepUp Board? Richtig?

                                          Atifan 1 Reply Last reply Reply Quote 0
                                          • Atifan
                                            Atifan @Superdad last edited by

                                            @Superdad Ja egal, du kannst auch mit 5V zum Stepup gehen und die auf 24V hochskalieren.
                                            Du kannst nur kein 3,3V Relais direkt ansteuern, sondern musst dann ein 5V Relais nehmen.

                                            Sensor13 11 geht erst wenn der INA am Tasmota ESP hängt.

                                            Das löten ist easy, das kann jeder Grobmotoriker. Sind nur 4 Kontakte.

                                            S 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            1.2k
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

                                            63
                                            604
                                            163706
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo