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.
    • L
      ltathome last edited by

      Hallöchen - lese schon ne ganze Weile mit - die Bautieile sind im Zulauf - mir fehlt noch die Sonde und das Ethernet-Shield. Ich habe mal versucht den Nano zu flashen und bekomme das hier:

      avrdude: Version 6.3-20190619
               Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
               Copyright (c) 2007-2014 Joerg Wunsch
      
               System wide configuration file is "/home/lutz/.arduino15/packages/arduino/tools/avrdude/6.3.0-arduino17/etc/avrdude.conf"
               User configuration file is "/home/lutz/.avrduderc"
               User configuration file does not exist or is not a regular file, skipping
      
               Using Port                    : /dev/ttyUSB0
               Using Programmer              : arduino
               Overriding Baud Rate          : 57600
               AVR Part                      : ATmega328P
               Chip Erase delay              : 9000 us
               PAGEL                         : PD7
               BS2                           : PC2
               RESET disposition             : dedicated
               RETRY pulse                   : SCK
               serial program mode           : yes
               parallel program mode         : yes
               Timeout                       : 200
               StabDelay                     : 100
               CmdexeDelay                   : 25
               SyncLoops                     : 32
               ByteDelay                     : 0
               PollIndex                     : 3
               PollValue                     : 0x53
               Memory Detail                 :
      
                                        Block Poll               Page                       Polled
                 Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
                 ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
                 eeprom        65    20     4    0 no       1024    4      0  3600  3600 0xff 0xff
                 flash         65     6   128    0 yes     32768  128    256  4500  4500 0xff 0xff
                 lfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
                 hfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
                 efuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
                 lock           0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
                 calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
                 signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00
      
               Programmer Type : Arduino
               Description     : Arduino
               Hardware Version: 2
               Firmware Version: 1.16
               Vtarget         : 0.0 V
               Varef           : 0.0 V
               Oscillator      : Off
               SCK period      : 0.1 us
      
      avrdude: AVR device initialized and ready to accept instructions
      
      Reading | ################################################## | 100% 0.00s
      
      avrdude: Device signature = 0x1e950f (probably m328p)
      avrdude: reading input file "/tmp/arduino_build_243251/Zisterne.ino.hex"
      avrdude: writing flash (29122 bytes):
      
      Writing | ################################################## | 100% 8.48s
      
      avrdude: 29122 bytes of flash written
      avrdude: verifying flash memory against /tmp/arduino_build_243251/Zisterne.ino.hex:
      avrdude: load data flash data from input file /tmp/arduino_build_243251/Zisterne.ino.hex:
      avrdude: input file /tmp/arduino_build_243251/Zisterne.ino.hex contains 29122 bytes
      avrdude: reading on-chip flash data:
      
      Reading | ################################################## | 100% 6.53s
      
      avrdude: verifying ...
      Beim Hochladen des Sketches ist ein Fehler aufgetreten
      avrdude: verification error, first mismatch at byte 0x7000
               0xff != 0x19
      avrdude: verification error; content mismatch
      
      avrdude done.  Thank you.
      

      Wenn man den Fehler googelt kommt ein Hinweis auf "zu groß" - welche Größe hat denndas binary bei euch? sind ggfls. die gebundenen Libs zu dick?

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

        @ltathome Hast du das über die IDE hochgeladen? Siehr mir so aus, als ob du die compilierte Datei direkt hochlädst?

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

          @Eisbaeeer Ja - ich hatte zwischenzeitlich auch den Bootloader nochmal neu gebraten, weil ich sicher gehen wollte, dass optiboot drauf ist (kleiner).

          Im Moment hab ich das gelöst, indem ich per #ifndef HAS_DISPLAY... die ganzen Serial-Ausgaben und Aufrufe abgeklemmt habe.

          Der Sketch ist aktuell bei mir jetzt 28428 Bytes groß bis 0x7000 = 28672 habe ich also noch gut 200 Bytes platz...

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

            @ltathome Ich habe noch ein wenig experimentiert mit dem Code:

            wenn man die Ermittlung der Uptime z.B. so macht und das Zusammenbauen des Strings nicht doppelt (an mehreren Stellen), dann kommt man mit der Code-Size runter (Fragmente):

            ...
            int secs = 0, mins = 0, hours = 0;
            int days = 0;
            char uptime[25];
            ...
            void set_uptime() {
                secs++;
                secs = secs % 60;
                if (secs == 0) {
                    mins++;
                    mins = mins % 60;
                    if (mins == 0) {
                        hours++;
                        hours = hours % 24;
                        if (hours == 0) {
                            days++;
                            days = days % 10000;   // Nach 9999 Tagen zurück auf 0 (das sind 27 Jahre....)
                        }
                    }
                }
                sprintf(uptime, "%4dd %2dh %2dm", days, hours, mins);
            }
            ... 
                // System 
                /*  
                String upsum;
                upsum = String(days);
                upsum = String(upsum + "d ");
                upsum = String(upsum + hours);
                upsum = String(upsum + "h ");
                upsum = String(upsum + mins);
                upsum = String(upsum + "m");
                upsum.toCharArray(buff, 25);
                */
                client.publish("Zisterne/Uptime", uptime); 
            
            Eisbaeeer 1 Reply Last reply Reply Quote 1
            • Eisbaeeer
              Eisbaeeer Developer @ltathome last edited by

              @ltathome machst du einen pull-request?

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

                @Eisbaeeer kann ich gerne machen, wenn man mir sagt wie - bisher habe ich auschließlich gecloned. Damit ich mit meinen sonstigen Anpassungen (4-zeiliges Display) den Stand nicht verhunze, setz ich das nochmal ganz sauber separat auf.

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

                  @ltathome
                  Wäre cool. Du könntest z.B. über

                  #define 4rowdisplay // 4x20 display oder 2x16 display

                  #if 4rowdisplay
                  ... Code für 4 zeiliges Display
                  #endif
                  #if 2rowdisplay
                  ... Code für 2 zeiliges Display
                  #endif
                  Das ganze konfigurierbar machen. 😉
                  Einen Pull-request machst du ganz einfach aus dem fork heraus. Da gibt es einen Button.
                  Ich kann dir da gerne behilflich sein.
                  Gruß Eisbaeeer

                  P.S. du kannst den Stand gar nicht verhundsen. Erstens muss ich den pull-request vorher bestätigen und zweitens gibt es in github eine versionierung. Also nur zu!

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

                    @Eisbaeeer said in Füllstandsmessung per Pegelsonde.:
                    na dann ....

                    Ich hätte den Code für 4x20 fertig. Ich sehe da noch ein Problem - aber vllt. liegt das auch an meiner Unwissenheit....

                    Ich habe dein Repo gecloned, in der IDE Zisterne.ino geöffnet - und dann mosert die IDE, dass sie gerne ein Verzeichnis "Zisterne" hätte, legt das Verzeichnis an und schiebt das File darein, der anschließende Compile mosert dann über ein fehlendes progress.h, was ich dadurch gelöst habe, dass ich das ebenfalls in den Ordner "zisterne" verschoben habe.

                    Dies nur als Vorwarnung - welchen Button meinst du? was ist jetzt das korrekte vorgehen? und sollen wir das "irgendwie" per Chat lösen? wir spammen hier den Thread voll....

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

                      Das wäre die Version mit den Anpassungen (jetzt korrigiert):

                      Zisterne.ino

                      1 Reply Last reply Reply Quote 0
                      • B
                        BoBeRzE last edited by BoBeRzE

                        Hallo Leute,

                        ich bin nun auch mal dazu gekommen meine Zisterne mit der Pegelsonde zu überwachen, zumindest wollte ich heute alles zusammenbauen... Offensichtlich hab ich die Schaltung falsch aufgebaut. Mein Sonnoff SV ist gestorben. Den will bzw. wollte 😖 ich nutzen um ein elektronisches Ventil zu öffnen wenn der Füllstand zu hoch wird. Seht ihr den Fehler? Ungewollte Brücken auf der Rückseite sind nicht vorhanden. Schwarz ist immer Minus, Rot immer Plus

                        IMG_20200314_204139.jpg

                        IMG_20200314_204218.jpg

                        IMG_20200314_204236.jpg

                        Vielen Dank im Voraus

                        1 Reply Last reply Reply Quote 0
                        • B
                          Beowolf last edited by Beowolf

                          Wenn keine Module eingesteckt sind, sind dann alle Spannungen da wo sie sein sollen?

                          1 Reply Last reply Reply Quote 0
                          • B
                            BoBeRzE last edited by BoBeRzE

                            @Beowolf

                            Danke für das Feedback. Gemessen habe ich schon mal und bin der Meinung dass alles passt. Aber wie gesagt, der Sonoff ist tot, also muss ich einen Fehler haben. Ich messe heute Abend noch mal und zeichne ne Werte in meine Bilder ein.

                            Vielen Dank

                            1 Reply Last reply Reply Quote 0
                            • B
                              Beowolf last edited by

                              Ist die Masse der 3,3 Volt die selbe (also verbunden) wie bei den 24 Volt?

                              1 Reply Last reply Reply Quote 0
                              • B
                                BoBeRzE last edited by BoBeRzE

                                @Beowolf

                                Hi, zum Messen werde ich heute nicht mehr kommen. Aber die Masse der 3.3V Leitung geht direkt auf die Header vom Sonoff, das ist quasi die passende Masse für 3.3V. Sie geht also nicht direkt auf die Masse der 24V Zuleitung. Hoffe ist einigermaßen verständlich ausgedrückt 🙂

                                MfG BoBeRzE

                                1 Reply Last reply Reply Quote 0
                                • B
                                  Beowolf last edited by

                                  Ich kenne jetzt den Sonoff nicht so genau, aber wenn die beiden Massen nicht das selbe Potential haben, wäre das ein Grund warum es nicht funktioniert.

                                  1 Reply Last reply Reply Quote 0
                                  • B
                                    BoBeRzE last edited by BoBeRzE

                                    Ich hatte zwar früher in der Ausbildung auch elektronische Schaltungen aber das Wissen ist nur noch zu Bruchteilen vorhanden 🙄

                                    Der Sonoff bietet drei GPOs inkl. VCC (3.3V) und GND. Betrieben wird der Sonoff mit mit 24V. Ob ich jetzt einen Temp-Sensor daran betreibe oder einen ADS1115 sollte doch keinen Unterschied machen. Das Einzige auf was geachtet werden muss ist, dass an den analogen Eingängen vom ADS1115 nicht mehr als 3.3V anliegen weil der ADS1115 selber nur mit 3.3V versorgt wird. Sicherlich wird intern irgendwann wieder alles auf die Masse vom 24V Netzteil geführt, sollten also das selbe Potential haben.

                                    Ich vermute das irgendwo eine Überspannung vorliegt. Deswegen hat es mir ja den Sonoff zerschossen.

                                    Am Eingang vom Sonoff kommen 24V an, dieser wandelt intern auf 3.3V für den ADS1115. Das Modul welches Strom zu Spannung (nachfolgend ItoU-Module) rechnet ist ebenfalls mit 24V (P1 - VCC) versorgt. Vom ItoU-Module P1 (+) geht es auf Plus von der Pegelsonde. Minus von der Pegelsonde geht auf Plus (P2 +) vom ItoU-Module. P2 (-) geht auf P1 (GND). P1 (VOUT) geht an A0 vom ADS1115.

                                    Hoffe man kann den Schaltungsverlauf etwas nachvollziehen.

                                    Danke

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

                                      @BoBeRzE Nur eine Idee. Könnte es sein, dass du sekundärseitig (3.3V Seite) einen Kurzschluss produziert hast und damit den Spannungsregler über den Jordan geschossen hast?
                                      Wie ist denn die Belegung auf dem 3x3 Pfostenstecker auf dem Sonoff?
                                      Weitere Idee, Pins sind von oben gesehen, ist mir auch schon passiert, dass ich von unten die falschen verdrahtet habe (wäre auch wieder Masse auf 3.3V, dann Tot).
                                      Wenn du ein Labornetzteil hast, die 24V mit den Strombegrenzer einstellen, dass der nächste Sonoff beim Test nicht kaputt geht. Aber immer vorher nochmals alles kontrollieren. So wie mein Vorredner schon sagte, alle Punkte durchmessen, ohne gesteckte Module. Dann das Sonoff, nochmals messen. Dann den A/D Wandler, nochmals messen. Dann den Pegelwandler ...
                                      Stückweise voranarbeiten. Fehlersuche kann auch spaß machen 😉
                                      Viel Erfolg beim Suchen!
                                      Grüße Eisbaeeer

                                      1 Reply Last reply Reply Quote 0
                                      • B
                                        BoBeRzE last edited by BoBeRzE

                                        Danke für die Hinweise. Das mit dem "spiegelverkehrt" habe ich bedacht. Ich werde aber alle Punkte noch mal durchgehen wenn ich zuhause bin. Ein neues Modul ist schon bestellt und sollte die Woche kommen. Wäre schön wenn ich das nicht gleich wieder grille 🤡

                                        Ich melde mich.

                                        Mir fällt gerade ein wichtiges Detail ein... Der Aufbau vom "Strom zu Spannungs-Wandler" bzw. die daran angeschlossenen Pegelsonde passt aber wie ich beschrieben habe, oder? Habe diesen Part zuletzt verdrahtet und zwischendurch immer mal die Komponenten am Strom gehabt. Da lief noch alles. Nicht das in diesem Part der Fehler steckt.

                                        Vielen Dank

                                        EDIT1: Ein Netzteil mit Strombegrenzer habe ich leider nicht.
                                        EDIT2: Habe jetzt mal an folgenden Punkten Spannung gemessen:

                                        IMG_20200314_204139.jpg

                                        Für mich ist das soweit i.O.

                                        Kann jemand ggf. nochmal was zur Verkabelung von der Pegelsonde mit dem "Strom zu Spannungs-Modul" schreiben? Irgendwie glaube ich dass da der Fehler liegt...

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

                                          Soderle - morgen oder Sonntag - wenn das Wetter mitspielt, kalibriere ich das Teil mit voller Zisterne.

                                          Im Code ist das maximale Volumen hinterlegt - das wird bei maximalem analogen Wert erreicht - soweit klar.
                                          Zwei Fragen:

                                          1. Gemäß Spez. kann der Nano 5V am Analogen Eingang - ich würde das Poti für den maximalen Wert also auf "Knapp drunter" einstellen, wenn die Sonde bei voller Zisterne ganz unten ist. Der Analoge Maximalwert müsste doch dann recht dicht an 1023 sein und nicht rund 25% niedriger (wie im Code) oder?
                                          2. Im Code wird der Prozentsatz aus dem analogen Wert ermittelt, indem mit 0,132 multipliziert wird und dann auf 100 gekappt. Das erschliest sich mir nicht. Der Prozentsatz x ist doch:

                                          x = 100% / maximaler Analoger Wert * analoger Messwert

                                          oder habe ich einen denkfehler?

                                          Und wo bekomme ich die schöne Visualisierung aus dem Thread weiter oben her?

                                          Warum ist der maximale Wert nicht per se bei 1023?
                                          Das müsste doch der gewünschte wert für eine maximale Auflösung sein und dem maximalen
                                          EDIT: nachdem ich heute kalibriert hab und nur auf 1,4V kam, habe ich mir die Mühe gemacht und den ganzen Thread nochmal gelesen..
                                          Ich habs jetzt auch verstanden:

                                          1. den maximalen Wert erreicht man nur, wenn die Sonde auch die volle Nenntiefe versenkt ist - logisch - bei ner 5m Sonde und 2,50 max Tiefe (6,5cbm - Zisterne) passiert das nie.
                                          2. Die 5v-Story stehen ebenfalls im Thread weiter vorne - sowei auch das geklät - ich werde morgen nochmal mit beiden Jumpern gesteckt testen - dann müsste ich deutlich dichter an die 5V

                                          Nur das Thema Multiplikation mit 0,132 leuchtet mir immer noch nicht ein.

                                          1 Reply Last reply Reply Quote 0
                                          • B
                                            BoBeRzE last edited by BoBeRzE

                                            Hallo Leute,

                                            ich wollte nochmal nachfragen ob mir jemand bei meinem Problem helfen kann. Einen neuen Sonoff SV habe ich schon liegen, will den aber nicht gleich wieder zerstören 😧

                                            Zur besseren Veranschaulichung habe ich euch mal die derzeitige Schaltung gezeichnet. Vielleicht kann da einer schneller den Fehler finden.

                                            pegelsonde_v2.png

                                            Vielen Dank

                                            BoBeRzE

                                            EDIT: Ich habe jetzt noch mal Schritt für Schritt alles aufgebaut und gemessen. Die oben gezeigte Schaltung funktioniert. Mein Problem ist also gelöst. Wer weiß wie ich mir da zwischendurch den Fehler eingefangen habe und den ersten Sonnoff gegrillt habe. Vielleicht kann jemand mit dem Schaltbild etwas anfangen.

                                            Vielen Dank

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            1.0k
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

                                            63
                                            604
                                            164060
                                            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