Powerbank - Spannungsmessung - gezieltes Herunterfahren

  • Moinsen,


    ich habe mal eine Verständnis und eine dazugehörige Umsetzungsfrage.

    Mit einem RasPi Zero W habe ich mir für meinen Lagerkeller ( ohne Strom und WLAN Verbindung ) einen kleinen Umwelt Monitor gebaut. Dazu verwende ich einen DHT11, sowie einen Fototransistor der über einen MCP3201 die Helligkeit ermittelt. Temperatur und Luftfeuchte werden auf einem E-Paper dargestellt um Strom zu sparen. Zudem ist ein RTC verbaut. Die Messungen selber finden nur aller 30 Minuten statt, und werden sowohl auf dem E-Paper wie auch in einer LOG Datei abgespeichert. Dann gibt es noch einen SAVE und einen Shutdown-Button. Save bewirkt das die aktuelle Log Datei geschlossen wird und ich den USB Stick abziehen kann. Ein weitere Druck darauf bewirkt, daß das Programm in Python prüft und wartet bis der neue Datenträger erkannt ist, und darauf dann im Wurzelverzeichnis des Datenträgers eine neue Log Datei anlegt. Auch das funktioniert einwandfrei.
    Der Shutdown Button ist auf den GPIO3 geklemmt und der entsprechende Eintrag in der /boot/config.txt ist gemacht. Auch das funktioniert soweit einwandfrei. Erst den Save Button, dann den Shutdown Button, und dann kann ich die Powerbank wechseln.
    Der Lichtsensor dient eigentlich nur der Überwachung, wann jemand mit einer Latuchtel in den Keller geht. Ja, fragt gar nicht erst, der Keller steht offen, ist nur durch eine kleine Lattentür verschlossen. Und ja, es gibt dort auch kein Schloß mit Schlüssel. Auf Grund der Bauart mit Bruchsteinen am Eingangsportal für mich ein zu großer Aufwand, weil bis auf einen kleinen Diebstahl einer Obstweinflasche ist dort noch nicht wirklich etwas passiert ist. Ein große Alarmanlage mit Bewegungsmelder und Tatü Tata wollte ich mir ersparen.

    Nun zu meinen Problem im Dauerbetrieb.
    Ich hatte das grob so ausgerechnet, und das klappte die ersten Wochen auch einwandfrei, komme ich mit einer Powerbank etwas mehr als 5 Tage hin.
    Jetzt ist es mir schon einige Male passiert, daß diese Sensor, der schon fast ein 3/4 Jahr seinen Dienst verrichtet, aus ist, wenn ich zum Wechseln der Powerbank erscheine.
    Das größte Manko dabei ist, daß auch die Protokolldatei nicht vollständig auf dem USB Stick abgespeichert ist. Irgendwie endet diese Datei meist 1-2 Tage vor meinem Erscheinen. Ich nehme an, daß die Daten noch im Schreibcache lagen, und durch den Wegfall der Stromversorgung verloren gegangen sind.
    Nun wollte ich den MCP3201 durch einen 3202 oder3204 ersetzen und darüber auch die Spannung auswerten. Nur komme ich nicht direkt an den Akku heran.
    Deswegen hatte ich die Idee einfach die 5 Volt an dem 5 Volt Pins 2 oder 4 zu überwachen.
    Dabei ggf bevor die Spannung zusammenbricht, und das PI ausgeht, noch schnell die Log Datei abspeichere, und eine gezieltes Herunterfahren auslöse.

    Die 5 Volt an den Stromversorgungs-Pins zu messen ist nicht das Problem. Das habe ich an einem anderen PI schon probiert, das klappt soweit ganz gut, und auch die Werte entsprechen fast exakt dem, was ich mit meinem Spannungsmesser ermittelt habe.

    Nun meine Frage, bei welcher Spannung würdet ihr das PI abschalten lassen ? Und wie kann ich aus dem Python-Programm heraus das PI gezielt herunterfahren lassen, wenn die gemessene Spannung unterschritten wird ?

    Franky

  • > Ich nehme an, daß die Daten noch im Schreibcache lagen, und durch den Wegfall der Stromversorgung verloren gegangen sind.

    Rufe flush auf nach jedem Schreiben, und die Daten werden auf den Disk geschrieben. Oder schliesse das File, auch dann werden

    die Daten geschrieben.

  • Moinsen Tell,

    Das war bedauerlicher Weise nicht meine Frage.
    Ich lasse die Datei nicht ganz umsonst offen. Denn wenn ich die Datei jedesmal mit File Apped öffne, dann die Daten schreibe, und anschließend auch gleich wieder schließe macht das in der Betriebszeit fast einen Tag weniger aus.

    Daher hatte ich meine Frage gezielt nach einer Spannungsüberwachung für eine Powerbank, an deren Innereien man nicht herankommt auch so formuliert. Denn ich wollte damit auch noch im letzten Eintrag des Logs, die Spannung und die aktuelle Betriebszeit festhalten. Das Akkus nicht das ewige Leben haben sollte wohl bekannt sein. Nur mir nützt es wenig, wenn die Kiste dann doch aus ist, das LOG zwar geschrieben ist, ich aber keine Rückschlüsse auf die Laufzeit mit der jeweiligen Powerbank ziehen kann.

    Ich kann auf Grund der aktuellen Datenlage auch nicht sagen, daß sich dieses Abschaltproblem auf eine der drei Powerbanken die ich habe, und dafür nutze, spezifizieren läßt. Mal ist die eine Bank betroffen, mal diese, mal geht es mit der einen wieder, die zuvor von einen Abbruch verursacht hatte.


    Franky

  • Hallo Franky,


    Du redest an der Antwort von Tell vorbei. Tell hat nichts davon geschrieben, dass Du die Datei im "Append"-Mode immer wieder um Datensätze ergänzt. Tell hat geschrieben, dass Du mit "Flush()" das Schreiben jedes Datensatz erzwingen sollst. Damit ist der Puffer immer leer. Dann hast Du die Gewähr, dass die Datei so aktuell ist, dass der letzte Wert vor dem Spannungsausfall gespeichert ist und Du somit auf max. 30 Minuten genau die Laufzeit ermitteln kannst. Das ist wesentlich besser als 2 Tage danach den Ausfall festzustellen.


    Auch kann ich mir nicht vorstellen, dass die Laufzeit so erheblich reduziert wird, wenn Du die Datei zum Speichern jeweils öffnest und nach dem Schreiben wieder schliesst. Das hätte meiner Meinung nach eine erhöhte Ausfallsicherheit - falls genau beim Schreiben der Akku leer läuft und das System abschaltet.



    Beste Grüße


    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    • Icon-Tutorials (IDE: Geany) - GPIO-Library - µController-Programmierung in Icon! - ser. Devices - kein Support per PM / Konversation

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

  • Moinsen Andreas,

    Okay, Okay. Der Befehl flush war mir noch nicht bekannt. Entschuldigung, wenn ich das falsch aufgefaßt habe.
    Doch leider, so muß ich dir berichten, der USB Stick hängt über einen passiven USB Hub am PI. In der Ursprungsversion hatte ich das auch schon einmal so gemacht, wie ich es wohl falsch interpretiert laufen lassen hatte.
    Zuerst, wenn auf dem USB Stick keine Datei ist, wird diese erstellt, und nur die Startzeit abgelegt. Anschließend über Close() geschlossen. So meine Feststellung, musste ich dann für spätere Schreibvorgänge die Datei immer wieder im Append Modus öffnen. Dann hatte ich irgendwo gelesen, daß man das nicht machen sollte, solange die Stromversorgung sichergestellt sei. Dann hatte ich das Programm soweit umgeschrieben und bis jetzt auch so betreiben, daß die Datei offen bleibt. Zu meinem erstaunen hat sich dadurch die Betriebsdauer um über 18 Stunden erhöht. Anhand dieser Daten und das ursprünglich alle drei Powerbanken fast identische Betriebszeiten ermöglichten, bin ich zu diesem 5 Tage Akku Tausch Rhythmus gekommen. Da aktuell diese 5 Tage auch eher zu ein Zufallsprodukt geworden sind, würde sich wohl oder offensichtlich etwas ähnliches anbahnen - eine weitere Reduzierung der Akkulaufzeit !? Ich nehme mal an, das es wieder so sein wird.

    Zudem die eine Messung mehr, mit dem ADC und der Feststellung der Akkuspannung, bzw der 5 V GPIO Spannung mit den 30 Minuten Zyklus zu integrieren, dürfte und wird mich nicht ärmer machen. Vielleicht bekomme ich dann einen Rückschluß auf Akkuspannung, Laufzeit und durchschnittliche Umgebungstemperatur !?
    Weiterhin habe ich hier im Forum gelesen, daß man das PI immer ordentlich herunterfahren soll, um die Lebensdauer der µSD Karte nicht zu verkürzen.
    Ich weis jetzt nicht, was man alternativ ohne Eingriff ein die Powerbanken machen könnte ? Mir erschien diese Methode die einfachste.

    Franky

  • Du kannst die SD Karten auch in den Read-Only Modus (overlayFS) versetzen über sudo raspi-config. Dann kann der RPi vom Strom getrennt werden, ohne vorher herunterfahren zu müssen.

  • Ich lasse die Datei nicht ganz umsonst offen. Denn wenn ich die Datei jedesmal mit File Apped öffne, dann die Daten schreibe, und anschließend auch gleich wieder schließe macht das in der Betriebszeit fast einen Tag weniger aus.

    Nein, er meinte so was:

    Code
    import time
    
    
    with open("something", "a") as fd:
        while True:
            fd.write("Hello\n")
            fd.sync() # <-- nutzt den sync syscall, damit
                      # alles, was noch im Buffer ist, geschrieben wird.
    
            time.sleep(5)





    Nun meine Frage, bei welcher Spannung würdet ihr das PI abschalten lassen ?


    Der RPi schaltet ab, wenn 4.75 V unterschritten werden. Die Powerbanks haben einen integrierten Spannungsregler, der die 3.7 V auf 5 V erhöht. Manche Powerbanks funktionieren nicht richtig mit dem RPi. Manche schalten sich einfach nach einer Zeit ab, andere benötigen eine Mindestlast, da sie sich sonst abschalten. Wenn du also den RPi überwachen willst, wäre ein Ladecontroller besser geeignet, da dann auch die Polspannung der Zellen gemessen werden kann.



    Auch kann ich mir nicht vorstellen, dass die Laufzeit so erheblich reduziert wird, wenn Du die Datei zum Speichern jeweils öffnest und nach dem Schreiben wieder schliesst. Das hätte meiner Meinung nach eine erhöhte Ausfallsicherheit - falls genau beim Schreiben der Akku leer läuft und das System abschaltet.

    Im Bereich der Mikrocontroller-Entwicklung macht man sich darüber schon Gedanken.

    Die SD-Karten können beim Schreiben bis zu 200 mA verbrauchen, aber nicht kontinuierlich.

    Lesen braucht weniger Strom.

    Das hat mal jemand gemessen: https://goughlui.com/2021/02/2…sumption-spi-performance/


    Ergebnis: Peaks von 45 mA im Bereich von einer Mikrosekunde.


    Wenn man jede Sekunde einmal schreibt und die Datei vorher öffnet, gibt es mehrfache Zugriffe. Einmal lesen der Metadaten, dann schreiben, dann Metadaten schreiben. Das sind dann schon 3 Operationen, die aus gewissermaßen einer entstehen. Lässt man die Datei immer offen, hat man für jeden weiteren Schreibzugriff nur eine Schreiboperation und nichts Weiteres.

  • Keine Problemlösung, nur Kopfkino in der Mittagspause :)


    Das Problem vom TE ist doch, dass so eine handelsübliche Powerbank für ein paar Euro fünfzig beim Leerwerden ohne Vorwarnung abschaltet. Weiterhin ist der interne StepUp-Regler der Powerbank, der aus den 3,7V des Lithiumakkus die 5V USB-Spannung erzeugt, wohl so entworfen, dass er unabhängig von der Eingangsspannung (3,7V voll ... 3,4(?)V leer) immer 5V generiert.

    Damit hat man als Anwender keine Möglichkeit, den Ladezustand einer 08/15-Powerbank so ohne Weiteres zu ermitteln. Meistens haben solche Powerbänke zwar eine Anzeige mit einer oder mehreren LEDs, die den Ladezustand anzeigt. Aber man hat darauf keinen elektrischen/messtechnischen Zugriff. Auseinanderbraxen der Powerbank für einen elektrischen Zugang ist für mich keine Alternative, da saugefährlich (Brandgefahr)!


    Entweder eine speziell für den RPi entwickelte USV (unterbrechungsfreie Stromversorgung) verwenden oder damit leben, dass das Gespiel einfach auch mal abschaltet.


    Bei der von daxb oben vorgeschlagenen Lösung mit dem overlay-Filesystem ist in meinen Augen aber eine weitere (evtl. sehr kleine?) r/w-Partition erforderlich, die nur die Logdatei enthält. Bei einem Datenverlust wegen unkontrollierten Abschaltens wäre dann das System noch funktionsfähig und -- Achtung: Unwort! -- nur die Logdatei verloren...

  • Moinsen @All,

    zu dem Punkt von DeaD_EyE, bezüglich der Powerbanken.

    Der RPi schaltet ab, wenn 4.75 V unterschritten werden. Die Powerbanks haben einen integrierten Spannungsregler, der die 3.7 V auf 5 V erhöht. Manche Powerbanks funktionieren nicht richtig mit dem RPi. Manche schalten sich einfach nach einer Zeit ab, andere benötigen eine Mindestlast, da sie sich sonst abschalten. Wenn du also den RPi überwachen willst, wäre ein Ladecontroller besser geeignet, da dann auch die Polspannung der Zellen gemessen werden kann.

    Ich habe drei baugleiche Powerbanken der Firma "mTronic" mit 12.000mAh. Diese haben neben dem Ladeausgang USB-A auch noch einen USB-C Ausgang, den man via eines Schalters auf Dauerstromausgang stellen kann. Der gibt dann solange Strom, oder Spannung ab, bis der Akku darin leer ist.

    Da kann ich anhand meiner Beobachten mit der ursprünglichen Programmversion nur bestätigen. Jetzt verstehe ich den Sinn deines Programmbeispiels nicht so richtig.

    Ich müßte dann demzufolge meine Speicherfunktion wie folgt umbauen:

    Python
    def save(Filename, Data):
        with open(Filename, 'a') as fs:
            for Log_Text in Data:
                fs.write(Log_Text + '\n')
            fs.sync()

    Habe ich das soweit richtig verstanden ? Das würde dann aber auch bedeuten zu der anderen Aussage, daß mein Gesamtstromverbrauch wieder steigen würde ?

    Wie würdest du nun, wenn du nicht an die Innereien der Powerbanken heran kommst, die Überwachung bewerkstelligen ? Ich sehe erst einmal nur diese eine Möglichkeit über die GPIO Pins, wenn ich das Anschlußkabel nicht aufdriesseln will.

    Aber was würde es überhaupt bringen ? Oder erhöht das PI selber die geringeren 4,75 V auf 5.0 Volt bei einem Zero, so das man gezwungen ist, die tatsächliche Spannung die von der Powerbank kommt zu messen ?

    Franky

  • Hallo,

    Ich müßte dann demzufolge meine Speicherfunktion wie folgt umbauen:

    dann ist die Datei aber nur solange offen, bis der letzte 'Log_Text' geschrieben wurde, dann wird die Datei wieder geschlossen. DeaD_EyE hat in seinem Beispiel eine Dauerschleife nach dem die Datei geöffnet wurde. Um das bei umschreiben zu können, wäre es geschickt den Rest zu sehen, damit man weis um was es geht.


    Grüße

    Dennis

    “Ich benötige Informationen. Eine Meinung bilde ich mir selbst.”

  • Hallo Franky,


    Moinsen Andreas,

    Okay, Okay. Der Befehl flush war mir noch nicht bekannt. Entschuldigung, wenn ich das falsch aufgefaßt habe.
    Doch leider, so muß ich dir berichten, der USB Stick hängt über einen passiven USB Hub am PI. In der Ursprungsversion hatte ich das auch schon einmal so gemacht, wie ich es wohl falsch interpretiert laufen lassen hatte.

    OK, das erklärt dann auch den Strom-Hunger Deines Aufbaus.


    Hast Du mal probiert, was passiert, wenn Du den USB-Stick (möglichst geringer Strombedarf) über einen Adapter direkt an den RPi anschließt? Dann würde der Strombedarf für den passiven USB-Hub wegfallen. Wenn Du tatsächlich im 30-Minutentakt einen Datensatz speicherst, dann dürfte es praktisch keinen Unterschied machen, ob Du im sichereren Append-Mode ergänzt oder per write() und flush() das Speichern des aktuellen Datensatzes erzwingst. Wir reden hier von deutlich unter 1 ms, die das Speichern dauern wird.


    Was auch noch geklärt werden muss, ob die Spannung tatsächlich gegen Ende der Akku-Laufzeit geringer wird - oder bis zum letzten µA bei konstanter Spannung ausgesaugt wird. Nicht, dass wir hier einem Phantom hinterher jagen...


    Was spricht dagegen, ein paar Fakten durch Messungen zu gewinnen?

    Ich würde ein Multimeter (besser ein Oszilloskop) in die +5V oder -5V-Leitung des USB-Stick legen und dann ein Testprogramm laufen lassen:

    • Datei zum Schreiben öffnen; zunächst permanentes Schreiben einer Datenmenge, wie sie in Deiner Anwendung typisch ist - ohne delay(); dann Datei schließen ==> Erkenntnis: Wie groß ist der Strombedarf beim Schreiben?
    • Dann würde ich die Verzögerung zwischen den Aktionen erhöhen. Datei zum Schreiben öffnen; warten; schreiben; warten; schreiben; warten; Datei schließen ==> Erkenntnis (am Oszi): Welcher Strombedarf ist mit welcher Aktion verbunden, wahrscheinlich wird erst beim tatsächlichen Schreiben des Pufferinhaltes der Strombedarf nennenswert steigen
    • Die gleiche Aktion wie eben, nur dass nach jedem Schreiben ein Flush() abgesetzt wird. ==> Erkenntnis (am Oszi): Strombedarf von Flush() und somit des tatsächlichen Schreibens
    • Die gleiche Aktion nochmals, nur dass die Datei vor jedem Schreiben geöffnet wird und nach dem Schreiben wieder geschlossen wird. ==> Erkenntnis (am Oszi): Strombedarf von Open() und Close().


    Ein anderes "Messgerät", mit dem der Gesamtstrombedarf ermittelt werden könnte, ist ein USB-Messgerät für Spannung und Strom. Kostet 5 bis 10 €. Für so ein Teil habe ich mal eine Kaufempfehlung hier im Forum geschrieben. Da die Erkenntnis des Strombedarfs gemäß obiger Liste schrittweise erweitert wird, brauchst Du bloß den akkumulierten Strom durch die Schleifendurchläufe zu dividieren, um letztlich den Strombedarf pro Befehl zu erhalten.

    Sieht so aus:

    Erst dann hättest Du eine Datenbasis, die Dir die optimale - stromsparendste - Speicherstrategie vorgibt.


    Und meine finale Frage: Warum speicherst Du die Daten nicht direkt auf die SD-Karte? Das sollte den geringsten Strombedarf geben. Das geht im Rauschen von Eh-da unter.


    Beste Grüße


    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    • Icon-Tutorials (IDE: Geany) - GPIO-Library - µController-Programmierung in Icon! - ser. Devices - kein Support per PM / Konversation

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

    Edited 2 times, last by Andreas ().

  • USB-Messgerät für Spannung und Strom. Kostet 5 bis 10 €.

    Ist eine sinnvolle Investition

    "Really, I'm not out to destroy Microsoft. That will just be a completely unintentional side effect."

    Linus Benedict Torvalds, 28.9.2003


    Hast Du die Woche schon Deine Raspberry gesichert :fies: Bei mir tut das raspiBackup automatisch :shy:

  • Hallo framp,

    Ist eine sinnvolle Investition

    ich habe mir damals mehrere davon angeschafft - mit Unterspannungsschutz etc.



    Beste Grüße


    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    • Icon-Tutorials (IDE: Geany) - GPIO-Library - µController-Programmierung in Icon! - ser. Devices - kein Support per PM / Konversation

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

  • Moinsen @All

    Also mal der Reihe nach ;)

    Hast Du mal probiert, was passiert, wenn Du den USB-Stick (möglichst geringer Strombedarf) über einen Adapter direkt an den RPi anschließt? Dann würde der Strombedarf für den passiven USB-Hub wegfallen. Wenn Du tatsächlich im 30-Minutentakt einen Datensatz speicherst, dann dürfte es praktisch keinen Unterschied machen, ob Du im sichereren Append-Mode ergänzt oder per write() und flush() das Speichern des aktuellen Datensatzes erzwingst. Wir reden hier von deutlich unter 1 ms, die das Speichern dauern wird.

    Ja, hier muß ich dir von einem Phänomen berichten. Ich habe es auch schon mit einem OTG-Adapter probiert. Es macht keinen wirklichen Unterschied in der Laufzeit. Mal von wenigen Minuten bis allerhöchstens einer Stunde abgesehen. Der LAN Adapter bzw. das LAN Interface habe ich deaktiviert. Zudem ist der USB Hub besser in ein Gehäuse zu integrieren. Ich hatte nämlich auch das Problem mit diesem OTG µUSB to USB-A Adapter, daß wenn ich bei Bedarf den USB Stick nicht tauschen kann, solange das PI noch läuft. Ich wollte diesen Adapter nicht irgendwie in diese µUSB Buchse am PI einkleben. Dieser Adapter ist entweder so ( ich will mal nicht schimpfen ) wacklig und klapprig, das es diesen immer mit herausgezogen hat. Also der Adapter blieb im Stick stecken, und wurde nur aus der PI Buchse gezogen. Das hatte wiederum immer einen Neustart zur Folge. Egal ob dieser Adapter eingesteckt, oder abgezogen wurde. Deswegen hatte ich mich für diesen größeren und besser händelbaren USB HUB entscheiden.
    Ich wiederhole noch einmal: Mit diesem USB HUB, und ohne das ich weitere Änderungen am Programm vorgenommen habe, hat es schließlich schon über ein halbes Jahr funktioniert. Immer noch mit der Methode, die Datei bleibt offen, und wird erst geschlossen, wenn der Save-Button gedrückt wurde.

    Und meine finale Frage: Warum speicherst Du die Daten nicht direkt auf die SD-Karte? Das sollte den geringsten Strombedarf geben. Das geht im Rauschen von Eh-da unter.

    Das hatte ich wohl glaube schon erläutert. Weil sonst müßte ich mir noch etwas schreiben, damit ich die Daten abholen kann. So wird es direkt auf den USB Stick geschrieben, denn ich jederzeit zur Auswertung austauschen kann.
    Klar es wäre eine Idee, zu sagen, ich speichere das auf der SD Karte, und mit dem Save Button, löse ich dann eine Übertragung auf den USB aus.

    Die vorgeschlagenen Messungen werde ich mal in Angriff nehmen, aber sicherlich an diesem Gerät, da müßte ich auf ein anderes PI ausweichen. Ich werde berichten. Obwohl mir der Sinn nicht so richtig verständlich ist.
    [ Ich hatte schon geschrieben, Datei bleibt offen, und wird nur über den Save-Button geschlossen = mit frisch gekauften Powerbanken ist die Betriebszeit gesichert und bestätigt.
    Mit der Methode Open as append - Write - Close verringerte sich die Betriebsdauer um ca. 18h.
    Aktuell läuft das Programm immer noch im Modus "Datei bleibt offen".]

    Meine Frage wäre, ob ein undervoltage in die /var/log/syslog geschrieben wird, kurz bevor der RPi "verhungert".

    Ja, diese Meldung gibt es und tritt, wenn ich das jetzt richtig zusammengefaßt habe, nach ungefähr 18 bis 20 Stunden nach dem Akkuwechsel und Neustart das erste Mal auf. Dennoch läuft das PI noch Tage weiter, bevor es "verhungert" :shy:

    Aber noch einmal: Ich möchte mich für all eure Vorschläge und Lösungsvarianten bedanken, dennoch finde ich bis jetzt keine Erklärung, warum nun nur noch manchmal die vorausberechnete Laufzeit erreicht wird, dann wieder mal nicht, und noch einmal nicht, und dann hält die selbe Bank ( alle durchnumeriert , und immer frisch geladen bevor sie zum Einsatz kommt ) dann hält sie doch wieder die 5 Tage durch ? Ich kann mit den bisherigen Daten nicht sagen, dieser oder jener Akku ist jetzt für immer soweit verbraucht, gealtert, daß dieser nicht mehr dafür genutzt werden kann. Jeder dieser Powerbanken hat nun schon mindestens einmal vorzeitig "versagt". Es ist einfach ein willkürlicher Vorgang geworden.

    Franky

  • Alternativ könnte man auch in ein Stromkabel + Steckdose investieren, welches in den Lagerkeller gelegt wird. Dann muss man sich nicht mit Akkus herumärgern.

  • Moinsen daxb,

    Alternativ könnte man auch in ein Stromkabel + Steckdose investieren, welches in den Lagerkeller gelegt wird. Dann muss man sich nicht mit Akkus herumärgern.

    Das würde ich gerne tun. Du besorgst mir dann aber die schriftliche Genehmigung vom sächsischen Staatsministerium, daß ich die unter Schutz stehenden Weinberg-Trockenmauern untertunneln darf, zudem ob ich bauliche Eingriffe in die unter Naturschutz stehenden Felsformationen des Elbtals durchführen darf.

    Vielleicht hätte man erst einmal nachfragen sollen, warum das Projekt mit Akkus aufgebaut wurde, bevor man hier so sinnfreie Äußerungen abgibt.
    Nur mal damit du eine kleine Vorstellung bekommst: Die Wiederherstellung von einem einzigen Meter Trockenbau- Weinbergmauer kostet von einer zertifizierten Fachfirma ausgeführt etwa 27.000 €.
    Ich erwarte diesbezüglich eine entsprechenden Kostenbeteiligungszusicherung.

    Franky

  • Franky07

    Liege ich richtig, dass alleine schon dieses andauernde Durchtauschen der Powerbanks in diesem kurzen Zeitrahmen von 4-5 Tagen nervig ist?


    Wäre es eine Lösung, wenn man stattdessen zwei 50Ah-Bleibatterien anschafft? Wenn ich richtig gerechnet habe, sollte das für 30 Tage je Durchlauf reichen. So müsstest du nur monatlich den Akku wechseln. Bei der Stromversorgung könnte man dann auch darüber nachdenken die Daten täglich per Mobilfunkstick an dich zu senden.


    Falls du jetzt wieder zickig wie bei Tell und daxb reagierst: Nein, ich beteilige mich nicht an den Kosten. ;)

    Viele Grüße,

    Peter

  • Ich erwarte diesbezüglich eine entsprechenden Kostenbeteiligungszusicherung.

    Wieso sollte irgendjemand für dich deine Kosten übernehmen?

    Du möchtest doch etwas machen.


    Habe ich das soweit richtig verstanden ? Das würde dann aber auch bedeuten zu der anderen Aussage, daß mein Gesamtstromverbrauch wieder steigen würde ?

    Bei dem sync geht es nicht um den Stromverbrauch, sondern darum, dass Daten auf das Medium geschrieben werden und das Programm bleibt so lange stehen, bis die Daten geschrieben sind.


    Schreiben musst du sowieso irgendwann. Die Zugriffe können reduziert werden, wenn du die Datei permanent offen hältst und nach jedem Durchlauf der for-Schleife den sync machst. Den sync könnte man auch nach jedem Schreibvorgang aufrufen. Das hängt davon ab, wie schnell die for-Schleife einmal komplett durchläuft. Wenn z.B. zwischen den Iterationen immer eine Sekunde Pause ist, kann man den sync machen. Wenn der gesamte Durchlauf der for-Schleife insgesamt z.B. nur eine Sekunde braucht, kann man den sync dann immer danach machen, also so wie du es im Beispiel gemacht hast.


    Wie würdest du nun, wenn du nicht an die Innereien der Powerbanken heran kommst, die Überwachung bewerkstelligen ?

    LiFePO4-Zellen (Lithiumeisenphosphat) mit Ladecontroller verwenden, der auch eine Überwachung hat (analog oder via I2C).

    Die Zellen brennen auch nicht ganz so schnell ab. Link: https://www.berrybase.de/batte…-akku-3-2v-1000mah?c=2416

    Der hat auch einen integrierten ADC, mit dem man die Spannung abfragen kann.


    Wenn keine Netzspannung zur Verfügung steht, dann musst du den Akku immer wechseln.

    Wenn du die Laufzeit erhöhen willst, benötigst du mehr Zellen.

  • Moinsen,

    Was spricht dagegen, ein paar Fakten durch Messungen zu gewinnen?

    Ich würde ein Multimeter (besser ein Oszilloskop) in die +5V oder -5V-Leitung des USB-Stick legen und dann ein Testprogramm laufen lassen:

    Das Ergebnis ist kein Ergebnis.
    Mit meinem Multimeter bekomme ich hier nichts genaues heraus.
    Wenn das Zero alleine an der Powerbank hängt, und eigentlich nichts macht, habe ich mit der MIN/MAX Funktion am Multimeter bei der Strommessung einen Delta-I Wert von 3,2 mA. Der Zustand des PI ist: unter Spannung gesetzt, und hochgefahren. Software-seitig ist meinerseits kein Programm gestartet, nur das RasbianOS läuft.
    Nun bin ich deinem Ratschlag gefolgt, und kann nur folgendes berichten. Nur dann, wenn ich die Schreibaktionen über einen längeren Zeitraum andauern und nach jedem write Befehl einen sync Befehl folgen lassen, steigt der durchschnittliche Stromverbrauch um 18mA. Füge ich zwischen den einzelnen write/sync Folgen noch ein sleep von einigen Sekunden ein ( hier habe ich verschiedene Werte von 5 bis 60 Sekunden ausprobiert ) geht offensichtlich dieser Spitzenimpuls in den ganz normalen Schwankungen unter. Mit meinem OSZI kann ich keine DELTA-I Messung machen. Selbst mit einem Shunt von 0,1 Ohm ist die Darstellung nur ein wildes Rauschsignal. Die Datei ist geöffnet worden, beschrieben worden, und am Ende der Testzeit ist diese Datei wieder geschlossen worden. Bei der Methode mit open/append , write und close, und das aber als Bestandteil der Testschleife für einen Zeitraum X und ohne sleep ist der Durchschnittsverbrauch sogar um 33mA gestiegen.
    Also nicht genaues

    Liege ich richtig, dass alleine schon dieses andauernde Durchtauschen der Powerbanks in diesem kurzen Zeitrahmen von 4-5 Tagen nervig ist?

    Nein das ist nicht der Fall, da ich ohnehin ein- bis zweimal pro Woche auf dem Grundstück bin.
    Der Ursprünglich erreichte 5 Tages Rhythmus war für mich vollkommen OKAY. Mich stört jetzt nur, das nach nun über 9 Monaten, aber schon beginnend vor etwa 2 Monaten diese Akkulebensdauer nicht mehr konstant oder dauerhaft erreicht wird. Aber um herauszubekommen, wie lange die nun schon gebrauchten, jedoch nicht übermäßig genutzten Powerbanken durchhalten, suche ich nach einer Methode, wie ich das ohne höheren Strombedarf, hervorgerufen durch wiederkehrende Schreibvorgänge erfassen kann, wie sich die Nutzungszeit verringert. Also war mein Gedankenansatz, daß ich einmal minütlich die Spannung an den 5 Volt GPIOs messe, aber dann nur im 30 Minuten Takt den letzten Wert der Spannungsmessung in das Protokoll schreibe. Anschließend wollte ich das Zero ab einer mir noch nicht bekannten Spannung gezielt über Python herunterfahren lassen. Soweit mein Gedankenansatz.
    Größere Akkus oder gar Autobatterien vergiß es. Die müßte ich Talseitig über hundert Stufen und Absätze nach oben zu dieser kleinen "Felshöhle" buckeln. Auch das Thema Mobilfunk kannst du komplett streichen, schon knapp einen Meter in dieser Höhlenkammer funktioniert kein Handy mehr. Zudem würde das weiteren Strom benötigen, den ich dann noch über eine Zusatzeinspeisung in den USB Hub bereitstellen müßte. Sorry, für mich komplett der falsche Lösungsansatz.

    Schreiben musst du sowieso irgendwann. Die Zugriffe können reduziert werden, wenn du die Datei permanent offen hältst und nach jedem Durchlauf der for-Schleife den sync machst. Den sync könnte man auch nach jedem Schreibvorgang aufrufen. Das hängt davon ab, wie schnell die for-Schleife einmal komplett durchläuft. Wenn z.B. zwischen den Iterationen immer eine Sekunde Pause ist, kann man den sync machen. Wenn der gesamte Durchlauf der for-Schleife insgesamt z.B. nur eine Sekunde braucht, kann man den sync dann immer danach machen, also so wie du es im Beispiel gemacht hast.

    Wie ich schon mehrfach ausgeführt habe, die Methode mit der längsten Laufzeit, jedoch mit den Risiko eines Datenverlustes ist die Methode: Datei öffnen, offen lassen, aller 30 Minuten über write den Protokolleintrag ergänzen, und was bisher auch fast immer geklappt hat, erst über den SAVE Button die Datei mit close schließen. Da ich jetzt meßtechnisch ohne einen vollen Langzeitversuch keine Aussage machen kann, ob sich oder wie sich die sync Anweisung auf die Laufzeit auswirkt wollte ich jetzt auch nicht irgendwelche Programnmänderungen vornehmen, die den Effekt des vorzeiten Ausfalls, oder des Leer-werdens der Powerbank beschleunigen.

    LiFePO4-Zellen (Lithiumeisenphosphat) mit Ladecontroller verwenden, der auch eine Überwachung hat (analog oder via I2C).

    Die Zellen brennen auch nicht ganz so schnell ab. Link: https://www.berrybase.de/batte…-akku-3-2v-1000mah?c=2416

    Der hat auch einen integrierten ADC, mit dem man die Spannung abfragen kann.


    Wenn keine Netzspannung zur Verfügung steht, dann musst du den Akku immer wechseln.

    Wenn du die Laufzeit erhöhen willst, benötigst du mehr Zellen.

    Der Link ist zwar nicht schlecht, aber nur 1.000 mAh nützt mir recht wenig, oder bringt mich nicht wirklich vorwärts.
    Ich kann auch nicht zweimal täglich zu dem Grundstück fahren, den Berg hochrennen, um nachzusehen ob der Kasten noch läuft.

    Ich wäre auch bereit, meinen Wechselrhythmus anzupassen, aber dazu brauche ich erst einmal Werte oder Zeiten, die mit den nun schon gebrauchten aber dennoch nur wenigen Monate alten Powerbanken noch erreicht werden.
    Diese Meßwerte bekomme ich aber nur direkt von der Kiste selber.

    Die einfach Frage wie sie auch im Ausgangspost schon steht, kann man über die PIns 2 oder 4 am Zero einen Rückschluß auf die Restkapazität der Powerbank ziehen ? Wenn ja, wie oder mit welchem Abschaltwert ? Und wer hat das schon einmal so versucht, und welche Erfahrungen hat er mit dieser Methode gesammelt. Diese einfachen Fragen, darauf bekomme ich bedauerlicher Weise hier keine Antwort.
    Ein klares Ja, geht ! Oder geht mit gewissen Einschränkungen ! Oder nein das klappt nicht. würde mir hier schon ausreichen !

    Ich werde mich jetzt heranmachen, eine kleine Erweiterungsplatine zusammenlöten, den 2 Chanel ADC mit Spannungsteiler zusammenbauen und in die Kiste einbauen. Erwartet aber bitte nicht, daß ich dann hier noch große oder ausschweifende Darlegungen machen werde, wenn man hier im Forum klar gestellte, eigentlich in sich geschlossene, Fragen nicht beantwortet bekommt.
    Ihr mag zwar sehr viel Fach- und Detailwissen haben, dennoch wird hier ein Hype wegen zwei einfacher Fragen begonnen.

    Ich mache es jetzt einfach, auf auf die Gefahr hin, daß es nicht funktioniert, denn hier bekommt man keine wirtliche Unterstützung.
    Entschuldigt, wenn ich das so sagen muß.

    Franky