Alkaline - Auffrischgerät - Teil 1 - AZ-Delivery

Batterien länger nutzen und aktiv Umweltschutz betreiben

Diese Bauteile werden benötigt:

1x  D1_Mini_ESP32_NodeMCU

1x  StepDown-Wandler MT3608

 

Die Idee des Alkaline - Auffrischgerätes

Zahlreiche Geräte des täglichen Gebrauchs werden mit 1,5 V Batterien betrieben. Dabei dominiert der Batterietyp AA. Speziell Alkaline – Batterien finden sich in jedem Supermarkt für relativ kleines Geld. Unmengen dieser Batterien werden ständig entsorgt, wobei wir überall lesen können, wie gefährlich es sei, solche Batterien auf zu laden. Tatsächlich ist es in den letzten Jahren der Industrie recht gut gelungen, uns vor Ladeversuchen Angst zu machen. Wohl aus ganz naheliegenden Gründen.

 

Gleichwohl findet man Auffrischgeräte unterschiedlichster Art wie auch Selbstbauprojekte. Gerade bei Letzteren gibt es ganz unterschiedliche Konzepte. Teilweise werden komplizierte, gepulste Spannungen genutzt. Ich spreche hier stets von „Auffrischgeräten“, nicht von „Ladegeräten“, weil es sich nicht um einen Ladevorgang handelt. Es werden zwar chemische Vorgänge rückgängig gemacht, aber es handelt sich nicht um einen Ladevorgang, wie bei einem Akku.

Nach Versuchen über mehrere Monate hinweg, kann ich berichten, dass sich bei mir niemals auch nur eine Batterie erhitzt hätte. Keine Batterie ist ausgelaufen, geplatzt oder gar in Brand geraten. Was bei Lithium-Ionen Akkus viel kritischer ist und echte Sorgfalt verlangt, ist bei Alkaline – Batterien nach meiner bisherigen Erfahrung - kein Problem.

 

Wichtig ist mir noch der Hinweis, dass das vorgestellte Verfahren ausschließlich für Alkaline-Batterien anwendbar ist. Versuchen Sie bitte keinesfalls Batterien aufzufrischen, die nicht ausdrücklich als „Alka line“ gekennzeichnet sind. Auch Akkus können mit diesem Gerät nicht geladen werden.

 

 

Hier stelle ich Ihnen das Ergebnis meiner Arbeiten vor. Es ist ein einfaches, gut funktionierendes Gerät. Am Ende dieses ersten Beitrages finden Sie einige typische Beispielmessungen. Es ist einmalig sogar gelungen, eine bis auf 0,28 V „ausgelutschte“ Batterie wieder zum Leben zu erwecken.

 

Sie dürfen etwa 3-10 Aufladungen von einer benutzten Batterie erwarten. Sobald eine Batterie aus zu laufen beginnt, wird sie nicht weiter benutzt. Dazu rate ich ausdrücklich.

 

Teil 2 meines Beitrags wird das Alkaline - Auffrischgerät in den Home Assistant einbinden. Dann sehen Sie immer, wie weit der Auffrischvorgang gediehen ist, ohne das Gerät vor sich haben zu müssen. Bei mir gibt es mehrere Geräte in verschiedenen Räumen. Dabei ist das HA-Dashboard recht nützlich.

 

Wichtig war mir auch das schonende Laden der Batterien. Wenn vier Batterien eingelegt sind, erhält jede Batterie pro Sekunde einen Impuls von 250 ms und 850 ms Ruhezeit. Ist nur eine Batterie eingelegt, läuft die Ladung deutlich schneller: 250 ms Ladung und ca. 100 ms Ruhezeit. Da ich auch in diesem Betriebsmodus keine Erwärmung der Batterie feststellen konnte, habe ich kein zusätzliches Delay eingebaut.

 

Die Schaltung

 

Wenden wir uns zunächst dem Schaltplan zu:

 

Mittig im Schaltplan sehen Sie das Herz des Gerätes, den D1 Mini ESP32 NodeMCU. Dieses wunderbar kompakte Board setze ich recht gerne ein, wenn zu einfachen WiFi – Verbindungen weitere Aufgaben hinzu treten, wie zum Beispiel das MQTT – Publishing.

 

Auf der rechten Seite sehen Sie vier identische Einheiten, aus je einem n-channel enhancement MOSFET BUZ42, einem BC 547 als MOSFET-Treiber sowie einer Leuchtdiode. Jede Batterie bekommt ihre f250 ms-Impulse über einen 48Ω-Widerstand zugeleitet. Dazu schaltet der MOSFET die Betriebsspannung von 12 V auf die jeweilige Batterie. Der Innenwiderstand der Batterie und der Vorwiderstand bilden einen Spannungsteiler, so dass eine Batterie kurzzeitig etwa 100 mA aufnimmt.

 

Links vom Mikroprozessor befinden sich vier identische Widerstandsnetzwerke, die mit den Pluspolen der Batterien und GND verbunden sind. Damit wird die jeweilige Batteriespannung gemessen, um den Auffrischvorgang zu verfolgen. Die Messung erfolgt vor dem jeweiligen Spannungsimpuls.

 

Die Stromversorgung des Mikroprozessors erfolgt über einen LM 2596 - StepDown Converter, der im AZ-Board MT3608 verbaut ist. Da wir hochohmige Messeingänge an der MCU verwenden, sollte dieses Board möglichst weit entfernt von den genutzten Analogeingängen des Prozessors angeordnet werden.

 

Wie schon bei vorhergehenden Projekten, so habe ich auch diesmal auf den Bestand der Bastelkiste zurückgegriffen. Der eingesetzte MOSFET leistet zwar gute Arbeit, benötigt aber einen Treiber. Setzt man an seine Stelle einen  „Logic Level MOSFET “ wie z.B. den IRL 520, dann erspart dies die Treiberstufe.

 

Wie schon bei zurückliegenden Projekten überlege ich auch diesmal wieder, eine gedruckte Platine zu erstellen und fertigen zu lassen, falls Interesse in der Community besteht. Platinen für den Akku-/ Batteriefitnesstester haben gerade die zweite Auflage erreicht. Wer Batterien auffrischt, will sicher auch deren Innenwiderstand messen (dazu später), um den Erfolg bestimmen zu können. Bei Interesse an einer Platine kontaktieren Sie mich gerne via michaelklein495(at)gmail.de.

 

Der Sketch

 

Der Sketch setzt sich zwecks Übersichtlichkeit aus drei Teilen zusammen. Wir schauen uns zunächst das Hauptprogramm an:

 

Alkaline_Auffrischen_1_2_Teil_1_FERTIG

 

Der Sketch fällt insgesamt recht kompakt aus. In den ersten beiden Zeilen werden Arrays für die Rohwerte der Batteriespannung und die berechneten Spannungen reserviert.

 

Das Array mit dem Namen battload[] hält fest, wie oft eine Batteriespannung den Wert Ulimit erreicht bzw. überschritten hat. Die Logik dahinter ist ganz einfach: Es kann vorkommen, dass bei der Spannungsmessung das Limit als erreicht angezeigt wird, aber erst einmal nur kurzfristig erreicht wurde. Damit wir sicher sind, dass die Batterie wirklich aufgeladen ist, wird insgesamt zehnmal das Erreichen des Limits festgehalten. Wenn battload[] für eine Batterie auf Null angekommen ist, gilt sie als aufgeladen. Die Spannung fällt danach recht schnell auf 1,5 … 1,65 V ab.

 

Die Schleife void setup() beschränkt sich auf die Initialisierung der seriellen Schnittstelle und der Ausgabepins. Mehr gibt es hier erst mal nicht zu tun.

 

Danach geht es sofort in die void loop().  Dort wird zunächst die Funktion messungen() aufgerufen, die von den Analogeingängen die Raw-Werte abholt und in Batteriespannungen umrechnet.

Es folgt eine Schleife über alle vier Batterien. Dort wird zunächst überprüft, ob die Batteriespannungen zwischen 0,2 und Ulimit liegen. Außerdem wird überprüft, ob bereits 10x Ulimit erreicht  wurde.

 

Liegt die Batteriespannung im gewünschten Bereich und ist noch nicht voll aufgeladen, dann sendet der Sketch einen Ladeimpuls von 250ms Dauer an die jeweilige Batterie und schaltet den Strom wieder ab.

Das ist der Ladevorgang - mehr braucht es nicht! Dieser Vorgang wird so lange wiederholt, bis Ulimit 10x erreicht oder überschritten wurde.

 

Die nachfolgenden if-Abfragen dienen der einfachen Bedienung des Gerätes. Wenn es erkennt (1. if-Abfrage), dass die Spannung an einer Batterie = 0 ist (Batterie fehlt oder ist defekt), dann setzt der Sketch die jeweilige battload[] - Variable auf 10, in Vorbereitung auf den nächsten Ladevorgang.

 

Die folgende if-Abfrage prüft, ob die Spannung der jeweiligen Batterie >= Ulimit ist und zählt ggfls. battload[] für diese Batterie herunter.

Nun werden nochmals alle Batteriespannungen gemessen. Wenn irgendeine der Spannungen > Ulimit ist, werden alle Batteriespannungen in einer kleinen Tabelle via serielle Schnittstelle ausgegeben. Diese Funktion dient dem Debugging und zur Übersicht.

 

Das war’s auch schon. Ich denke, die simplen Funktionen für die Messungen und Tabellenausgabe darf ich Ihrer Aufmerksamkeit überlassen. Sie sind einfach und selbsterklärend. Die lästige Tipparbeit der Tabellenausgabe habe ich diesmal einer AI anvertraut und wurde nicht enttäuscht :-)


Betrieb des Gerätes 

Aus dem Sketch ergibt sich die einfache Funktionsweise des Gerätes:

1. Wenn Sie nur die 5V-Stromversorgung ohne die Ladespannung einschalten, können Sie die Spannungen von Batterie 1 … 4 messen. Es ist Ihnen aus meinem Blogbeitrag „Akku-/Batterie-Fitnesstester“ sicher noch vertraut, dass diese Spannungsmessung nur sehr wenig über den Gesundheitszustand einer Batterie aussagt. Allein die Messung des Innenwiderstandes liefert brauchbare Aussagen. Um Batterien als „hoffnungslos“ oder „mal versuchen“ ein zu stufen, taugt es allemal.

 

2. Im klassischen Betrieb mit voller Stromversorgung 12V / 5V zeigt das Gerät keine leuchtende LED. Sie legen eine Batterie ins 1. Fach ein. Die 1. LED blinkt und zeigt damit den Ladevorgang an. Das gleiche mit weiteren Batterien und Sie bekommen ein Lauflicht, da die Batterien (siehe Sketch) reihum ihre Ladeimpulse erhalten. Es gibt dazu ein kleines Video, das diesem Beitrag beigefügt ist.

 

3. Wenn eine Batterie aufgeladen ist, erlischt die zugehörige LED und die Batterie kann entnommen werden, auch wenn andere Batterien immer noch aufgeladen werden. Es kann jetzt an die Stelle der fertig geladenen Batterie eine andere Batterie eingesetzt werden und der Zyklus beginnt von vorne.

 

Praktische Ergebnisse

Jede Batterie, die unten aufgelistet ist, wurde zunächst mit dem Akku-/Batterie-Fitnesstester auf ihren Innenwiderstand untersucht und danach in das Alkaline-Auffrischgerät eingesetzt. Sie sehen die Messwerte und die Dauer des Aufladeprozesses.

Danach wurde die Messung mit dem Akku-/Batterie-Fitnesstester wiederholt, damit der Unterschied sichtbar wird:

 

                        Ua [V]              Ri[Ω]@10mA  Ladedauer      Ue [V]  Ri[Ω]@50mA

 

Batterie #23    1,51                 0,78                 70 min            1,6                   0,73

 

Batterie #44    0,96                 1,1                   125 min          1,5                   0,61

 

Batterie #18    1,33                 0,69                 30 min            1,42                 0,65

 

Ua ist die Anfangsspannung, der aufzufrischenden Batterie; Ri[Ω]@10mA der Innenwiderstand bei 10 mA Maximalbelastung.

 

Ue ist die Entspannung und Ri[Ω]@50mA der Innenwiderstand, aber bei 50 mA Maximalbelastung.

 

Wir sehen aus dieser Tabelle (die mit drei Einträgen natürlich keine Statistik liefert), dass offenbar gerade die „schlechten“ Batterien wie #44 eine unglaubliche „Auferstehung“ erleben können. Das ist keine Garantie und auch kein „Wunder“, sondern hat sich bei rund 25 Versuchen immer wieder gezeigt. Bei diesem Exemplar hat sich der Innenwiderstand halbiert! 

Absichtlich habe ich die Batterien beim Anfangstest mit nur 10 mA belastet, weil sonst der Test evtl. nicht zu Ende läuft. Sie erinnern sich, dass der Akku-/Batterie-Fitnesstester in 10 Schritten die Belastung erhöht. Wenn Sie gleich auf „50 mA Maximalbelastung“ gehen, kann es sein, dass der Prüfling diesen Strom gar nicht liefern kann und die Messung „stecken bleibt“. Also erst mal 10 mA beim ersten Test.

Wenn die Batterie aufgefrischt ist, wird mit dem 5-fachen Strom getestet: 50 mA. Wenn das eine Batterie nicht packt, packt man sie am besten in die Entsorgungskiste.

Aus dieser Entsorgungskiste stammt #44 im übrigen! Ich war erstaunt, wie diese Batterie aufgefrischt werden konnte, während z.B. bei #23 zwar ein Effekt zu sehen ist, aber grandios war er nicht.

#18 wurde testweise nur 30 min lang aufgefrischt, um zu schauen, welcher Effekt damit erzielt werden kann. Selbstverständlich wurde so die Endspannung von 1,65 V nicht erreicht. Vorab war klar, dass die Batterie nicht verbraucht ist, sondern nur ein Teileffekt möglich ist. Die Ergebnisse zeigen dies.

Exkurs: Wie sind Alkaline-Batterien aufgebaut? Welcher chemische Prozess liefert den Strom?

 

Weil ich Physiker bin und kein Chemiker, habe ich mich „schlau gelesen“. Hier in aller Kürze:

Die chemischen Reaktionen (in vereinfachter Darstellung) laufen so ab:

Anode (Oxidation, Zink löst sich): Zn + 2 OH– ZnO + H2O + 2 e–

Kathode (Reduktion, MnO2 reagiert): 2 MnO2 + H2O + 2 e– Mn2O3 + 2 OH–

Gesamtreaktion (vereinfacht): Zn + 2 MnO2 ZnO + Mn2O3

 

Alkalisches Elektrolyt (KOH) liefert eine höhere Energiedichte und bessere Leistungsabgabe, auch bei niedrigeren Temperaturen, als ältere Zink-Kohle-Zellen.

 

MnO2 als Kathodenmaterial ermöglicht stabile Entladungsspannung bis zur Erschöpfung des Zinks.

Diese Darstellung verdeutlich grob den Oxidations- und Reduktionsprozess, der in der Zelle abläuft. Offenbar ist es möglich, mit den Stromimpulsen Ablagerungen zu entfernen, die den Stromfluss behindern und so die reagierende Fläche - die den Strom liefert und den Innenwiderstand ggfls verringert - zu vergrößern. Damit steht von dem verbliebenen Material der Zelle wieder etwas mehr zur Verfügung, das an einem Redox-Prozess teilnehmen kann. So - in etwa - verstehe ich die Darstellungen kompetenterer Fachleute, die sich damit auskennen. Keine Garantie!

Immerhin finde ich es interessant, wie gut das praktisch funktioniert und wie einfach es ist.

Weihnachten hat wieder eine Reihe von vermeintlich leeren Batterien gebracht, die irgendwelche Beleuchtungen betrieben haben. Nun setze ich diese Batterien nach der Auffrischung wieder in Geräte ein, die keinen so hohen Stromverbrauch haben, also keine Motoren betreiben müssen etc.

 

Das ist ein weitere Erfahrung des Umgangs mit Auffrischung von Batterien: Das 2. Leben muss ruhiger verlaufen, als das erste. Will heißen: Hat die Batterie „bis zur Erschöpfung“ in einer Leuchte bei 50mA Dauerbelastung gearbeitet, dann empfehle ich für den 2. Einsatz z.B. einen Wecker mit LCD-Anzeige, der dauerhaft nur 1 .. 5 mA braucht.

 

Was ist mit anderen Batterien - hier werden ja nur AA-Batterien aufgefrischt?

Das Verfahren eignet sich grundsätzlich für jede Alkaline Zelle mit 1,5 V Nennspannung. Bei AAA-Zellen sollte der Ladewiderstand auf 100 Ω erhöht werden. AAAA habe ich nicht getestet.

 

Knopfzellen können nicht geladen werden.

Bei Batterien der Größe C oder D dauert der Ladevorgang lediglich etwas länger, als z.B. bei AA.

Noch ein Hinweis: Es kann Batterien geben, die nicht mehr die Endspannung von 1,65 V erreichen. Dann endet der Ladevorgang nicht automatisch. Wenn wir in Teil 2 die Home Assistant - Integration besprechen, löst sich diese Situation durch einen Timer im HA, den Sie einrichten können.

Fazit

Wir haben eine Technik kennen gelernt, die unseren Batterieeinkauf reduziert und der Umwelt ein wenig hilft. Allein dafür lohnt sich der überschaubare Aufwand. Außerdem haben wir etwas dazu gelernt.

 

In Teil 2 erfahren Sie, wie die Verbindung mit dem Home Assistant funktioniert.

Bis dahin freue ich mich auf Ihre Fragen, Ideen und Kommentare. Berichten Sie gerne auch von Ihren praktischen Erfahrungen mit dem Gerät.

 

Ihr

Michael Klein

D1 miniProjekte für anfänger

9 Kommentare

roompi

roompi

irgendwie stimmt hier etwas nicht – hast Du einen WeMos D1 mini verwendet oder einen ESP32? Wenn ein D1 mini, dann ist es aber ESP8266 und kein ESP32. Und die Pins hauen damit auch nicht hin.

Karl-Heinz Lippert

Karl-Heinz Lippert

Hallo, im Sketch fehlt die Funktion “void messungen()” …
So kann das Ganze nicht funktionieren.
Ich bin noch im theoretischen Teil – aber das sollte auffallen.
Viele Grüße

Michael

Michael

Wirklich ein sehr tolles und interessantes Projekt.
Es hat mich auch schon immer extremst gestört, dass man soviele Batterien entsorgt und
dann einfach eine neue aus der Verpackung nimmt.
Vor Deinem Bericht war mir allerdings nicht bewusst, dass man alte Alkaline Batterien wieder beleben kann vielen.
Danke für Deine Aufklärung.
Viele Grüße
Michael

Kurt Grunwald

Kurt Grunwald

Guten Tag, erstmal danke für die prima Arbeit.
Bei dem obigen Programm bekomme ich beim Kompilieren einen Fehler.
Kann das sein, das ich das falsche Board angegeben habe? oder läuft das Progrmm nicht mit der alten Arduino IDE? Vielleicht können Sie das einzustellende Board im Boardverwalter mit angeben.
Vielen Dank.

Arduino: 1.8.19 (Windows 7), Board: “WEMOS D1 MINI ESP32, 80MHz, Default, 240MHz (WiFi/BT), 921600, None, Disabled”
C:\-MEINE\arduino-1-8-19\arduino-builder -dump-prefs -logger=machine -hardware C:\-MEINE\arduino-1-8-19\hardware -hardware C:\-MEINE\arduino-1-8-19\portable\packages -tools C:\-MEINE\arduino-1-8-19\tools-builder -tools C:\-MEINE\arduino-1-8-19\hardware\tools\avr -tools C:\-MEINE\arduino-1-8-19\portable\packages -built-in-libraries C:\-MEINE\arduino-1-8-19\libraries -libraries C:\-MEINE\arduino-1-8-19\portable\sketchbook\libraries -fqbn=esp32:esp32:d1_mini32:FlashFreq=80,PartitionScheme=default,CPUFreq=240,UploadSpeed=921600,DebugLevel=none,EraseFlash=none -ide-version=10819 -build-path C:\Users\PcM\AppData\Local\Temp\arduino_build_225214 -warnings=none -build-cache C:\Users\PcM\AppData\Local\Temp\arduino_cache_837457 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.openocd-esp32.path=C:\-MEINE\arduino-1-8-19\portable\packages\esp32\tools\openocd-esp32\v0.12.0-esp32-20250707 -prefs=runtime.tools.openocd-esp32-v0.12.0-esp32-20250707.path=C:\-MEINE\arduino-1-8-19\portable\packages\esp32\tools\openocd-esp32\v0.12.0-esp32-20250707 -prefs=runtime.tools.mklittlefs.path=C:\-MEINE\arduino-1-8-19\portable\packages\esp32\tools\mklittlefs\4.0.2-db0513a -prefs=runtime.tools.mklittlefs-4.0.2-db0513a.path=C:\-MEINE\arduino-1-8-19\portable\packages\esp32\tools\mklittlefs\4.0.2-db0513a -prefs=runtime.tools.mkspiffs.path=C:\-MEINE\arduino-1-8-19\portable\packages\esp32\tools\mkspiffs\0.2.3 prefs=runtime.tools.mkspiffs-0.2.3.path=C:\-MEINE\arduino-1-8-19\portable\packages\esp32\tools\mkspiffs\0.2.3 -prefs=runtime.tools.xtensa-esp-elf-gdb.path=C:\-MEINE\arduino-1-8-19\portable\packages\esp32\tools\xtensa-esp-elf-gdb\16.3_20250913 prefs=runtime.tools.xtensa-esp-elf-gdb-16.3_20250913.path=C:\-MEINE\arduino-1-8-19\portable\packages\esp32\tools\xtensa-esp-elf-gdb\16.3_20250913 -prefs=runtime.tools.esp-rv32.path=C:\-MEINE\arduino-1-8-19\portable\packages\esp32\tools\esp-rv32\2511 -prefs=runtime.tools.esp-rv32-2511.path=C:\-MEINE\arduino-1-8-19\portable\packages\esp32\tools\esp-rv32\2511 prefs=runtime.tools.dfu-util.path=C:\-MEINE\arduino-1-8-19\portable\packages\arduino\tools\dfu-util\0.11.0-arduino5 -prefs=runtime.tools.dfu-util-0.11.0-arduino5.path=C:\-MEINE\arduino-1-8-19\portable\packages\arduino\tools\dfu-util\0.11.0-arduino5 prefs=runtime.tools.esp-x32.path=C:\-MEINE\arduino-1-8-19\portable\packages\esp32\tools\esp-x32\2511 -prefs=runtime.tools.esp-x32-2511.path=C:\-MEINE\arduino-1-8-19\portable\packages\esp32\tools\esp-x32\2511 -prefs=runtime.tools.esptool_py.path=C:\-MEINE\arduino-1-8-19\portable\packages\esp32\tools\esptool_py\5.1.0 prefs=runtime.tools.esptool_py-5.1.0.path=C:\-MEINE\arduino-1-8-19\portable\packages\esp32\tools\esptoolpy\5.1.0 -prefs=runtime.tools.riscv32-esp-elf-gdb.path=C:\MEINE\arduino-1-8-19\portable\packages\esp32\tools\riscv32-esp-elf-gdb\16.320250913 -prefs=runtime.tools.riscv32-esp-elf-gdb-16.320250913.path=C:\MEINE\arduino-1-8-19\portable\packages\esp32\tools\riscv32-esp-elf-gdb\16.320250913 -prefs=runtime.tools.esp32-arduino-libs.path=C:\MEINE\arduino-1-8-19\portable\packages\esp32\tools\esp32-arduino-libs\idf-releasev5.5-9bb7aa84-v2 -prefs=runtime.tools.esp32-arduino-libs-idf-releasev5.5-9bb7aa84-v2.path=C:\MEINE\arduino-1-8-19\portable\packages\esp32\tools\esp32-arduino-libs\idf-releasev5.5-9bb7aa84-v2 -verbose C:\MEINE\arduino-1-8-19\portable\sketchbook\AlkalineAuffrischen12Teil1final\AlkalineAuffrischen12Teil1final.ino

C:\-MEINE\arduino-1-8-19\arduino-builder -compile -logger=machine -hardware C:\-MEINE\arduino-1-8-19\hardware -hardware C:\-MEINE\arduino-1-8-19\portable\packages -tools C:\-MEINE\arduino-1-8-19\tools-builder -tools C:\-MEINE\arduino-1-8-19\hardware\tools\avr -tools C:\-MEINE\arduino-1-8-19\portable\packages -built-in-libraries C:\-MEINE\arduino-1-8-19\libraries -libraries C:\-MEINE\arduino-1-8-19\portable\sketchbook\libraries -fqbn=esp32:esp32:d1_mini32:FlashFreq=80,PartitionScheme=default,CPUFreq=240,UploadSpeed=921600,DebugLevel=none,EraseFlash=none -ide-version=10819 -build-path C:\Users\PcM\AppData\Local\Temp\arduino_build_225214 -warnings=none -build-cache C:\Users\PcM\AppData\Local\Temp\arduino_cache_837457 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.openocd-esp32.path=C:\-MEINE\arduino-1-8-19\portable\packages\esp32\tools\openocd-esp32\v0.12.0-esp32-20250707 -prefs=runtime.tools.openocd-esp32-v0.12.0-esp32-20250707.path=C:\-MEINE\arduino-1-8-19\portable\packages\esp32\tools\openocd-esp32\v0.12.0-esp32-20250707 -prefs=runtime.tools.mklittlefs.path=C:\-MEINE\arduino-1-8-19\portable\packages\esp32\tools\mklittlefs\4.0.2-db0513a -prefs=runtime.tools.mklittlefs-4.0.2-db0513a.path=C:\-MEINE\arduino-1-8-19\portable\packages\esp32\tools\mklittlefs\4.0.2-db0513a -prefs=runtime.tools.mkspiffs.path=C:\-MEINE\arduino-1-8-19\portable\packages\esp32\tools\mkspiffs\0.2.3 prefs=runtime.tools.mkspiffs-0.2.3.path=C:\-MEINE\arduino-1-8-19\portable\packages\esp32\tools\mkspiffs\0.2.3 -prefs=runtime.tools.xtensa-esp-elf-gdb.path=C:\-MEINE\arduino-1-8-19\portable\packages\esp32\tools\xtensa-esp-elf-gdb\16.3_20250913 prefs=runtime.tools.xtensa-esp-elf-gdb-16.3_20250913.path=C:\-MEINE\arduino-1-8-19\portable\packages\esp32\tools\xtensa-esp-elf-gdb\16.3_20250913 -prefs=runtime.tools.esp-rv32.path=C:\-MEINE\arduino-1-8-19\portable\packages\esp32\tools\esp-rv32\2511 -prefs=runtime.tools.esp-rv32-2511.path=C:\-MEINE\arduino-1-8-19\portable\packages\esp32\tools\esp-rv32\2511 prefs=runtime.tools.dfu-util.path=C:\-MEINE\arduino-1-8-19\portable\packages\arduino\tools\dfu-util\0.11.0-arduino5 -prefs=runtime.tools.dfu-util-0.11.0-arduino5.path=C:\-MEINE\arduino-1-8-19\portable\packages\arduino\tools\dfu-util\0.11.0-arduino5 prefs=runtime.tools.esp-x32.path=C:\-MEINE\arduino-1-8-19\portable\packages\esp32\tools\esp-x32\2511 -prefs=runtime.tools.esp-x32-2511.path=C:\-MEINE\arduino-1-8-19\portable\packages\esp32\tools\esp-x32\2511 -prefs=runtime.tools.esptool_py.path=C:\-MEINE\arduino-1-8-19\portable\packages\esp32\tools\esptool_py\5.1.0 prefs=runtime.tools.esptool_py-5.1.0.path=C:\-MEINE\arduino-1-8-19\portable\packages\esp32\tools\esptoolpy\5.1.0 -prefs=runtime.tools.riscv32-esp-elf-gdb.path=C:\MEINE\arduino-1-8-19\portable\packages\esp32\tools\riscv32-esp-elf-gdb\16.320250913 -prefs=runtime.tools.riscv32-esp-elf-gdb-16.320250913.path=C:\MEINE\arduino-1-8-19\portable\packages\esp32\tools\riscv32-esp-elf-gdb\16.320250913 -prefs=runtime.tools.esp32-arduino-libs.path=C:\MEINE\arduino-1-8-19\portable\packages\esp32\tools\esp32-arduino-libs\idf-releasev5.5-9bb7aa84-v2 -prefs=runtime.tools.esp32-arduino-libs-idf-releasev5.5-9bb7aa84-v2.path=C:\MEINE\arduino-1-8-19\portable\packages\esp32\tools\esp32-arduino-libs\idf-releasev5.5-9bb7aa84-v2 -verbose C:\MEINE\arduino-1-8-19\portable\sketchbook\AlkalineAuffrischen12Teil1final\AlkalineAuffrischen12Teil1final.ino

Using board ‘d1_mini32’ from platform in folder: C:\-_MEINE\arduino-1-8-19\portable\packages\esp32\hardware\esp32\3.3.5

Using core ‘esp32’ from platform in folder: C:\-_MEINE\arduino-1-8-19\portable\packages\esp32\hardware\esp32\3.3.5

cmd /c if exist “C:\\-MEINE\\arduino-1-8-19\\portable\\sketchbook\\Alkaline_Auffrischen_1_2_Teil_1final\\partitions.csv” COPY /y “C:\\-MEINE\\arduino-1-8-19\\portable\\sketchbook\\Alkaline_Auffrischen_1_2_Teil_1final\\partitions.csv” “C:\\Users\\PcM\\AppData\\Local\\Temp\\arduino_build_225214\\partitions.csv”

cmd /c if not exist “C:\\Users\\PcM\\AppData\\Local\\Temp\\arduino_build_225214\\partitions.csv” if exist “C:\\-MEINE\\arduino-1-8-19\\portable\\packages\\esp32\\hardware\\esp32\\3.3.5\\variants\\d1mini32\\partitions.csv” COPY “C:\\-MEINE\\arduino-1-8-19\\portable\\packages\\esp32\\hardware\\esp32\\3.3.5\\variants\\d1mini32\\partitions.csv” “C:\\Users\\PcM\\AppData\\Local\\Temp\\arduino_build_225214\\partitions.csv”

cmd /c if not exist “C:\\Users\\PcM\\AppData\\Local\\Temp\\arduino_build_225214\\partitions.csv” COPY “C:\\-_MEINE\\arduino-1-8-19\\portable\\packages\\esp32\\hardware\\esp32\\3.3.5\\tools\\partitions\\default.csv” “C:\\Users\\PcM\\AppData\\Local\\Temp\\arduino_build_225214\\partitions.csv”

cmd /c IF EXIST “C:\\-MEINE\\arduino-1-8-19\\portable\\sketchbook\\Alkaline_Auffrischen_1_2_Teil_1final\\bootloader.bin” ( COPY /y “C:\\-MEINE\\arduino-1-8-19\\portable\\sketchbook\\Alkaline_Auffrischen_1_2_Teil_1final\\bootloader.bin” “C:\\Users\\PcM\\AppData\\Local\\Temp\\arduino_build_225214\\Alkaline_Auffrischen_1_2_Teil_1_final.ino.bootloader.bin” ) ELSE ( IF EXIST “C:\\-MEINE\\arduino-1-8-19\\portable\\packages\\esp32\\hardware\\esp32\\3.3.5\\variants\\d1mini32\\bootloader.bin” ( COPY “C:\\-MEINE\\arduino-1-8-19\\portable\\packages\\esp32\\hardware\\esp32\\3.3.5\\variants\\d1mini32\\bootloader.bin” “C:\\Users\\PcM\\AppData\\Local\\Temp\\arduino_build_225214\\Alkaline_Auffrischen_1_2_Teil_1_final.ino.bootloader.bin” ) ELSE ( “C:\\-MEINE\\arduino-1-8-19\\portable\\packages\\esp32\\tools\\esptoolpy\\5.1.0\\esptool.exe” —chip esp32 elf2image —flash-mode dio —flash-freq 80m —flash-size 4MB -o “C:\\Users\\PcM\\AppData\\Local\\Temp\\arduino_build_225214\\Alkaline_Auffrischen_1_2_Teil_1_final.ino.bootloader.bin” “C:\\-MEINE\\arduino-1-8-19\\portable\\packages\\esp32\\tools\\esp32-arduino-libs\\idf-release_v5.5-9bb7aa84-v2\\esp32\\bin\\bootloader_dio80m.elf” ) )

[PYI-708:ERROR] Failed to load Python DLL ‘C:\Users\PcM\AppData\Local\Temp\_MEI14282\python313.dll’.

LoadLibrary:

exit status -1

Fehler beim Kompilieren für das Board WEMOS D1 MINI ESP32.

Walter Wengler

Walter Wengler

Hallo Michael,
ich finde dieses Projekt sehr spannend, da ich selbst jede Menge Geräte im Smarthome Bereich habe, die AA Batterien benötigen. Ich freue mich schon auf zweiten Teil Ihres Blog.
Viele Grüße
Walter

Festus

Festus

Prima
Schönes Projekt. Obwohl nichts “passieren” kann sollte der Aufbau des Gerätes doch feuerhemmend erfolgen. Sehr gut gefällt mir die geringe Größe und die Übersichtlichkeit des Programms.

Ulrich

Ulrich

Die Funktion erinnert mich an die 80-er Jahre im Osten. Kollegen mit “West”-Verwandschaft bekamen Digitaluhren geschickt, solche “LR/AG” Knopfzellen gabs damals nicht.
Wir haben die Batterien aufgefrischt mit Einweggleichrichtung und über Widerstand mit kleiner negativen Gegenspannung. Danach liefen manche Uhren noch Monate.

Alex

Alex

Der code meldet mehrere Fehler!! Habe Chatgpt dazu gefragt und es hat den code überarbeitet, jetzt keine Fehlermeldungen beim Compilen !! Das Thema interessiert mich, weil zur Weihnachtszeit wieder viele Batterien zusammen kamen !!

taskkill

taskkill

Könnten Sie auch ein Foto der Leiterplatte mit einbinden ?

Kommentar hinterlassen

Alle Kommentare werden von einem Moderator vor der Veröffentlichung überprüft

Empfohlene Blogbeiträge

  1. ESP32 jetzt über den Boardverwalter installieren - AZ-Delivery
  2. Internet-Radio mit dem ESP32 - UPDATE - AZ-Delivery
  3. Arduino IDE - Programmieren für Einsteiger - Teil 1 - AZ-Delivery
  4. ESP32 - das Multitalent - AZ-Delivery