Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Off Topic
  4. Widerstands-Tankgeber auslesen

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    2.5k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    990

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.3k

Widerstands-Tankgeber auslesen

Geplant Angeheftet Gesperrt Verschoben Off Topic
43 Beiträge 6 Kommentatoren 379 Aufrufe 6 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • MartinPM MartinP

    Habe jetzt mal eben ein wenig gerechnet ...

    Der ADC hat soweit ich weiß eine maximale Eingangsspannung von 1 Volt - um diese mit 3,3 V auszureizen, müsste man einen Vorwiderstand von 437 Ohm benutzen.

    Mit 470 Ohm ist man nahe genug daran ...
    Wenn man die Schaltung mit 24 Volt speist, müsste der Vorwiderstand 4370 Ohm betragen, also 4,7 kOhm. Die Nichtlinearität wäre da deutlich geringer ...

    96cdd77a-9035-43e7-aba2-74e2dc49be94-grafik.png

    gnuplot

    gnuplot> set xrange [0:190]
    gnuplot> set yrange [-0.1:1.0]                 
    gnuplot> plot [0:190] 3.3*x/(470+x), x/190, 24*x/(4700+x)  
    gnuplot> 
    

    Ist aber eigentlich eine akademische Diskussion, da ja auch die Behältergeometrie eingeht ...

    Wenn man der Mathematik ausweichen will, ggfs einfach eine Lookup-Table verwenden ...

    mickemupM Offline
    mickemupM Offline
    mickemup
    schrieb am zuletzt editiert von mickemup
    #41

    @MartinP
    Schöne Berechnungen.
    Aber ob es "linear" ist oder nicht, macht doch nichts aus.
    Er kennt ja seine Konfig und kann aus der Spannung am ADC den Widerstand vom Geber berechnen.
    Und von da an ist es dann wieder linear (natürlich Tankformabhängig)

    Speisung via 3.3V hat meiner Meinung nach mehrere Vorteile:

    • Weniger "Verlustleistung"

    • Gleiche Source für ADC und Geber (Falls z:B die 24V varieren, variert auch der ADC Ausgang obwohl am Geber nichts ändert

    • Beim "Kratzen" steigt die Spannung sicher nie über 3.3V

    • Sehr kleinlich, aber bei tiefen Füllständen hast du mit 3.3V (gemäss deinem Plot) die bessere Auflösung ;-)

    1 Antwort Letzte Antwort
    0
    • jvfleJ Online
      jvfleJ Online
      jvfle
      schrieb zuletzt editiert von
      #42

      Vielen Dank für die rege Unterstützung und euer Interesse. Auf dem ESP32 hatte ich Tasmota Firmware geflasht. Ich bin davon ausgegangen, dass die Sketche von Arduino mit Tasmota kompatibel sind und deshalb einen Fehler vermutet. Nun ja, war es auch. Im nachhinein hatte ich noch gelesen, dass der Speicherplatz auf dem ESP für mein Vorhaben zu klein ist. Ich habe mich also nach einer Alternative umgeschaut. Nun versuche ich ein Javascript auszuprobieren. Übrigens der Tankgeber war tatsächlich defekt. Gestern kam Ersatz, den habe ich gleich mal getestet und siehe da, ich konnte entsprechende Werte auf meinem Spannungsmesser ablesen.
      Die Tankgrößen sind mir bekannt. Somit kann ich die gemessenen Werte an den Tankinhalt anpassen. Es kommt mir dabei nicht so sehr auf den Liter an, es ei denn die Abweichungen sind gravierend. Ich möchte nur verhindern, dass ich nicht "leerlaufe".
      Vielen Dank auch für die Berechnungen und der Grafik. So kann ich mir ein genaueres Bild machen. BG

      1 Antwort Letzte Antwort
      0
      • jvfleJ Online
        jvfleJ Online
        jvfle
        schrieb zuletzt editiert von
        #43

        Hallo zusammen, ich hätte nicht gedacht, dass mein Vorhaben so kompliziert wird, auch wenn es Spaß macht.
        Also ich habe jetzt meinen Tankgeber auf einem Breadboard nachgestellt. Funktioniert alles sehr gut, aber der simulierte Widerstand des Tankgebers bei 190 Ohm erfordert einen Vorwiderstand des Spannungsteilers von 1295 Ohm um einen Wert von 3,12 Volt zu bekommen. Das wäre erst einmal ein guter Anfang. Mein ESP32 zeigt mir auch diesen Wert auf der Tasmota Software an.
        Ich konnte den ESP32 auch im IOBroker einbinden. Der ESP32 ist unter dem Ordner: sonoff.0.ESP32_Wroom_1 angelegt mit einigen Unterordnern und States. Unter den Unterordnern Results/States ist der Datenpunkt für den GPIO34 zu finden.

        "sonoff.0.ESP32_Wroom_1.RESULT.GPIO.34" und auch hier "javascript.0.esp32.gpio34_voltage"

        Beide zeigen keinen Wert, außer 0 bzw. 0V, an und das ist mein Problem. ich bekomme die Werte von Tasmota nicht in den IOBroker eingelesen. Ich habe verschiedene Sachen ausprobiert, aber keine Lösung gefunden. Vielleich kann mir jemand einen Schubs in die richtige Richtung geben? Das wäre sehr nett. Das hier ist mein letzter Versuch.

        
        var dp = 'sonoff.0.ESP32_Wroom_1.RESULT.GPIO.34';
        var voltageDP = 'javascript.0.esp32.gpio34_voltage';
        
        createState(voltageDP, 0, {
            name: 'GPIO34 Spannung',
            unit: 'V',
            type: 'number',
            role: 'value.voltage'
        });
        
        // Alle 1 Sekunde den Datenpunkt abfragen
        setInterval(function() {
            getState(dp, function(state) {
                if (state && state.val !== null) {
                    var voltage = parseFloat(state.val);
                    if (!isNaN(voltage)) {
                        setState(voltageDP, voltage, true);
                        log('Spannung GPIO34: ' + voltage + ' V');
                    }
                }
            });
        }, 1000); // Intervall in Millisekunden
        

        Beste Grüße

        1 Antwort Letzte Antwort
        0
        Antworten
        • In einem neuen Thema antworten
        Anmelden zum Antworten
        • Älteste zuerst
        • Neuste zuerst
        • Meiste Stimmen


        Support us

        ioBroker
        Community Adapters
        Donate

        305

        Online

        32.6k

        Benutzer

        82.3k

        Themen

        1.3m

        Beiträge
        Community
        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
        ioBroker Community 2014-2025
        logo
        • Anmelden

        • Du hast noch kein Konto? Registrieren

        • Anmelden oder registrieren, um zu suchen
        • Erster Beitrag
          Letzter Beitrag
        0
        • Home
        • Aktuell
        • Tags
        • Ungelesen 0
        • Kategorien
        • Unreplied
        • Beliebt
        • GitHub
        • Docu
        • Hilfe