Utiliser les piles plus longtemps et protéger activement l'environnement
Ces composants sont nécessaires :
1x Convertisseur StepDown MT3608
L'idée de l'appareil de rafraîchissement alcalin
De nombreux appareils d'usage quotidien fonctionnent avec des piles de 1,5 V. Le type de pile AA domine. Les piles alcalines, en particulier, se trouvent dans tous les supermarchés pour un prix relativement bas. Des quantités énormes de ces piles sont constamment jetées, et nous pouvons lire partout à quel point il est dangereux de les recharger. En effet, ces dernières années, l'industrie est parvenue à nous faire craindre les tentatives de recharge. Pour des raisons évidentes.
On trouve également des appareils de rafraîchissement de différents types ainsi que des projets d'autoconstruction. Pour ces derniers, il existe des concepts très différents. Certains utilisent des tensions pulsées compliquées. Je parle toujours ici d'"appareils de rafraîchissement" et non de "chargeurs", car il ne s'agit pas d'un processus de charge. Les processus chimiques sont certes inversés, mais il ne s'agit pas d'un processus de charge, comme pour une batterie.
Après plusieurs mois d'essais, je peux affirmer qu'aucune pile n'a jamais chauffé. Aucune pile n'a fui, n'a éclaté ou n'a pris feu. Ce qui est beaucoup plus critique avec les batteries lithium-ion et exige un réel soin, n'est pas un problème avec les piles alcalines, selon mon expérience jusqu'à présent.
Il me semble important de préciser que la méthode présentée est exclusivement destinée à l'évaluation de la qualité de l'eau. Alcaline-n'est pas applicable aux piles. N'essayez en aucun cas de rafraîchir des piles qui ne sont pas explicitement marquées "Alka line". Les piles rechargeables ne peuvent pas non plus être rechargées avec cet appareil.

Je vous présente ici le résultat de mes travaux. Il s'agit d'un appareil simple qui fonctionne bien. A la fin de ce premier article, vous trouverez quelques exemples de mesures typiques. Une fois, j'ai même réussi à redonner vie à une pile "usée" jusqu'à 0,28 V. Je n'ai donc pas eu besoin d'une nouvelle pile.
Vous pouvez vous attendre à environ 3-10 recharges d'une batterie utilisée. Dès qu'une batterie commence à s'épuiser, il faut arrêter de l'utiliser. Je le conseille vivement.
La deuxième partie de mon article intégrera l'appareil de rafraîchissement alcalin dans l'assistant domestique. Vous pourrez ainsi voir où en est le processus de rafraîchissement sans avoir l'appareil devant vous. Chez moi, il y a plusieurs appareils dans différentes pièces. Le tableau de bord HA est très utile à cet égard.
Il était également important pour moi de charger les batteries en douceur. Lorsque quatre batteries sont insérées, chaque batterie reçoit une impulsion de 250 ms par seconde et 850 ms de temps de repos. Si une seule batterie est insérée, la charge est nettement plus rapide : 250 ms de charge et environ 100 ms de temps de repos. Comme je n'ai pas non plus constaté d'échauffement de la batterie dans ce mode de fonctionnement, je n'ai pas ajouté de délai supplémentaire.
Le circuit
Commençons par le schéma électrique :

Au centre du schéma électrique, vous voyez le cœur de l'appareil, le D1 Mini ESP32 NodeMCU. J'utilise volontiers cette carte merveilleusement compacte lorsque d'autres tâches viennent s'ajouter aux simples connexions WiFi, comme par exemple la publication MQTT.
Sur le côté droit, vous voyez quatre unités identiques, composées chacune d'un MOSFET d'amplification à canal n BUZ42, d'un BC 547 comme pilote de MOSFET ainsi que d'une diode électroluminescente. Chaque pile reçoit ses impulsions f250 ms via une résistance 48Ω. Pour cela, le MOSFET commute la tension de service de 12 V sur la batterie correspondante. La résistance interne de la batterie et la résistance série forment un diviseur de tension, de sorte qu'une batterie absorbe brièvement environ 100 mA.
À gauche du microprocesseur se trouvent quatre réseaux de résistances identiques, reliés aux pôles positifs des batteries et à GND. Cela permet de mesurer la tension respective des batteries afin de suivre le processus de rafraîchissement. La mesure s'effectue avant l'impulsion de tension correspondante.
L'alimentation électrique du microprocesseur est assurée par un convertisseur LM 2596 - StepDown, qui est monté sur la carte AZ MT3608. Comme nous utilisons des entrées de mesure à haute impédance sur le MCU, cette carte doit être placée le plus loin possible des entrées analogiques utilisées par le processeur.
Comme pour les projets précédents, j'ai eu recours au stock de la boîte de bricolage. Le modèle utilisé MOSFET fait certes du bon travail, mais il a besoin d'un pilote. Si l'on met à sa place un "Logic Level MOSFET ", comme par exemple l'IRL 520, cela permet d'éviter l'étage de commande.
Comme pour les projets précédents, j'envisage à nouveau de créer et de faire fabriquer un circuit imprimé, si la communauté est intéressée. Les circuits imprimés pour le testeur de piles/batteries viennent d'atteindre leur deuxième édition. Les personnes qui renouvellent leurs batteries souhaitent certainement mesurer leur résistance interne (nous y reviendrons plus tard) afin de pouvoir déterminer leur succès. Si vous êtes intéressé par une platine, n'hésitez pas à me contacter via michaelklein495(at)gmail.de.
Le sketch
Pour des raisons de clarté, le sketch se compose de trois parties. Nous allons tout d'abord examiner le programme principal :
Rafraîchir_alcaline_1_2_partie_1_FERTIG
Dans l'ensemble, le sketch est assez compact. Dans les deux premières lignes, des tableaux sont réservés pour les valeurs brutes de la tension de la batterie et les tensions calculées.
Le site Tableau avec le nom battload[] enregistre le nombre de fois où une tension de batterie a atteint ou dépassé la valeur Ulimit. La logique est très simple : il peut arriver que la limite soit affichée comme atteinte lors de la mesure de la tension, mais qu'elle ne le soit d'abord que brièvement. Pour être sûr que la batterie est vraiment chargée, la limite est enregistrée dix fois au total. Lorsque battload[] est arrivé à zéro pour une batterie, celle-ci est considérée comme chargée. La tension chute ensuite assez rapidement à 1,5 ... 1,65 V.
La boucle void setup() se limite à l'initialisation de l'interface série et des broches de sortie. Il n'y a rien d'autre à faire ici pour le moment.
Ensuite, nous nous rendons immédiatement void loop(). On y trouve d'abord la fonction mesures() est appelée, qui récupère les valeurs brutes des entrées analogiques et les convertit en tensions de batterie.
Il s'ensuit une boucle sur les quatre batteries. On y vérifie d'abord si les tensions des batteries sont comprises entre 0,2 et Ulimit. On vérifie également si Ulimit a déjà été atteint 10 fois. a été
Si la tension de la batterie se situe dans la plage souhaitée et qu'elle n'est pas encore complètement chargée, le sketch envoie une impulsion de charge de 250 ms à la batterie concernée et coupe le courant.
C'est le processus de chargement - il n'en faut pas plus ! Ce processus est répété jusqu'à ce que la limite U soit atteinte ou dépassée 10 fois.
Les requêtes if suivantes servent à faciliter l'utilisation de l'appareil. Lorsqu'il détecte (1ère requête if) que la tension d'une batterie est = 0 (batterie manquante ou défectueuse), le sketch met la variable battload[] correspondante à 10, en préparation du prochain processus de charge.
La requête if suivante vérifie si la tension de la batterie concernée est >= Ulimit et, le cas échéant, décrémente battload[] pour cette batterie.
Toutes les tensions de la batterie sont alors mesurées une nouvelle fois. Si l'une des tensions est > à Ulimit, les batteries sont tous Tensions de batterie sorties dans un petit tableau via l'interface série. Cette fonction sert au débogage et à la vue d'ensemble.
C'est à peu près tout. Je pense que je peux laisser les fonctions simples de mesure et de sortie de tableau à votre attention. Elles sont simples et évidentes. J'ai confié cette fois-ci la tâche fastidieuse de la saisie des tableaux à une IA et je n'ai pas été déçu :-)
Fonctionnement de l'appareil
Le sketch permet de comprendre le fonctionnement simple de l'appareil :
1. si vous n'allumez que l'alimentation 5V sans la tension de charge, vous pouvez mesurer les tensions de la batterie 1 ... 4. Il vous est certainement encore familier, grâce à mon article de blog "Testeur de forme pour batterie/accu", que cette mesure de tension ne donne que très peu d'informations sur l'état de santé d'une batterie. Seule la mesure de la résistance interne fournit des informations utiles. Pour classer les batteries comme "sans espoir" ou "à essayer", c'est tout à fait valable.
2. en mode classique avec alimentation complète 12V / 5V, l'appareil n'affiche pas de LED allumée. Vous insérez une pile dans le 1er compartiment. La 1ère LED clignote et indique ainsi le processus de chargement. La même chose avec d'autres piles et vous obtenez une lumière défilante, car les piles (voir sketch) reçoivent leurs impulsions de charge à tour de rôle. Il existe une petite vidéo à ce sujet, qui est jointe à cet article.
3. lorsqu'une batterie est chargée, la LED correspondante s'éteint et la batterie peut être retirée, même si d'autres batteries sont encore en cours de chargement. Il est maintenant possible d'insérer une autre pile à la place de la pile chargée et le cycle recommence.
Résultats pratiques
Chaque pile listée ci-dessous a d'abord été testée pour sa résistance interne à l'aide du testeur de forme pour piles/accumulateurs, puis insérée dans le dispositif de rafraîchissement alcalin. Vous pouvez voir les valeurs mesurées et la durée du processus de recharge.
Ensuite, la mesure a été répétée à l'aide du testeur de condition physique à piles/accumulateurs pour que la différence soit visible :
Ua [V] Ri[Ω]@10mA Durée de chargement 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 est la tension initiale de la batterie à rafraîchir ; Ri[Ω]@10mA est la résistance interne pour une charge maximale de 10 mA.
Ue est la détente et Ri[Ω]@50mA la résistance interne, mais à une charge maximale de 50 mA.
Nous voyons dans ce tableau (qui, avec trois entrées, ne fournit évidemment pas de statistiques) que ce sont apparemment les "mauvaises" batteries comme #44 qui peuvent connaître une incroyable "résurrection". Ce n'est pas une garantie ni un "miracle", mais cela s'est vérifié à plusieurs reprises au cours de quelque 25 essais. Sur cet exemplaire, la résistance interne a été divisée par deux !
C'est intentionnellement que j'ai chargé les batteries avec seulement 10 mA lors du test initial, car sinon le test pourrait ne pas aller jusqu'au bout. Vous vous souvenez que le testeur de condition physique pour batteries/accumulateurs augmente la charge en 10 étapes. Si vous allez tout de suite à "50 mA de charge maximale", il se peut que l'appareil à tester ne puisse pas fournir ce courant et que la mesure reste "bloquée". Donc d'abord 10 mA pour le premier test.
Une fois la pile rafraîchie, on la teste avec un courant 5 fois plus élevé : 50 mA. Si une pile ne supporte pas cela, il vaut mieux la mettre à la poubelle.
C'est d'ailleurs de cette boîte d'élimination que provient #44 ! J'ai été étonné de voir comment cette pile a pu être rafraîchie, alors que pour #23 par exemple, on peut certes voir un effet, mais il n'était pas grandiose.
#18 a été rafraîchie pendant 30 minutes seulement, à titre d'essai, pour voir quel effet on pouvait obtenir avec cette méthode. Bien entendu, la tension finale de 1,65 V n'a pas été atteinte. Il était clair au préalable que la batterie n'était pas usée, mais que seul un effet partiel était possible. Les résultats le montrent.
Digression : comment sont constituées les piles alcalines ? Quel processus chimique fournit le courant ?
Comme je suis physicien et non chimiste, je me suis "renseigné". Voici en bref :
Voici comment se déroulent les réactions chimiques (dans une représentation simplifiée) :
Anode (oxydation, zinc löst se) : Zn + 2 OH- → ZnO + H2O + 2 e-
Cathode (réduction, MnO2 réagit) : 2 MnO2 + H2O + 2 e- → Mn2O3 + 2 OH-
Réaction totale (simplifiée) : Zn + 2 MnO2 → ZnO + Mn2O3
L'électrolyte alcalin (KOH) fournit un höune densité énergétique plus élevée et une meilleure puissance, même à des températures plus basses, que les anciennes piles zinc-carbone.
MnO2 comme matériau cathodique.öLa tension de décharge est stable jusqu'à l'extinction de l'appareil.ötation du zinc.
—
Cette représentation illustre grossièrement le processus d'oxydation et de réduction qui se déroule dans la cellule. Apparemment, les impulsions de courant permettent d'éliminer les dépôts qui entravent le flux de courant et d'augmenter ainsi la surface de réaction - qui fournit le courant et réduit le cas échéant la résistance interne. Ainsi, le matériau restant dans la cellule est à nouveau un peu plus disponible pour participer à un processus d'oxydoréduction. C'est à peu près ainsi que je comprends les explications des spécialistes compétents qui s'y connaissent. Aucune garantie !
Après tout, je trouve intéressant de voir à quel point cela fonctionne en pratique et à quel point c'est simple.
Noël a encore apporté son lot de piles soi-disant vides qui alimentaient des éclairages quelconques. Maintenant, après avoir rafraîchi ces piles, je les remets dans des appareils qui ne consomment pas beaucoup d'électricité, qui n'ont donc pas besoin de faire fonctionner des moteurs, etc.
C'est une autre expérience de la gestion du rafraîchissement des batteries : La deuxième vie doit être plus calme que la première. Autrement dit : si la pile a travaillé "jusqu'à épuisement" dans un luminaire avec une charge continue de 50 mA, je recommande pour la 2e utilisation par exemple un réveil avec affichage LCD qui ne consomme en permanence que 1 ... 5 mA.
Qu'en est-il des autres piles - ici, seules les piles AA sont rafraîchies ?
Le procédé convient en principe à tout élément alcalin de tension nominale 1,5 V. Pour les piles AAA, la résistance de charge doit être augmentée à 100 Ω. Je n'ai pas testé les piles AAAA.
Les piles boutons ne peuvent pas être chargées.
Pour les piles de taille C ou D, le processus de chargement dure simplement un peu plus longtemps que pour les piles AA, par exemple.
Encore une remarque : il peut y avoir des batteries qui n'atteignent plus la tension finale de 1,65 V. Dans ce cas, le processus de chargement ne s'arrête pas automatiquement. Lorsque nous aborderons l'intégration de l'assistant domestique dans la deuxième partie, cette situation sera résolue grâce à une minuterie que vous pourrez configurer dans le HA.
Conclusion
Nous avons découvert une technique qui permet de réduire nos achats de piles et d'aider un peu l'environnement. Rien que pour cela, l'effort raisonnable en vaut la peine. En outre, nous avons appris quelque chose de plus.
Dans la deuxième partie, vous découvrirez comment fonctionne la connexion avec l'assistant domestique.
D'ici là, je me réjouis de vos questions, idées et commentaires. N'hésitez pas non plus à faire part de vos expériences pratiques avec l'appareil.
Votre
Michael Klein







17 commentaires
Bernd-Steffen
Hallo Herr Klein, sehr schönes Projekt, was ich auch schon nachgebaut habe! Leider fehlen hier im Blog zwei wichtige Unterprogramme, ohne die sowohl Teil 1 als auch Teil2 nicht funktionieren: Messungen.ino und Tabellenoutput.ino !
Damit gibt es auch keine Compilierfehler mehr und das Ganze funktioniert super!
Paul Fried
Sehr schönes Projekt! Gibt es dazu einen Bausatz?
Lars Sternkopf
Hallo, das Projekt ist interessant, aber unvollständig. Wo ist der Code für die Funktion messungen() und printTable() ? Ein lesbarer Schaltplan (PDF mit vernünftiger Auflösung) wäre auch hilfreich.
Aber scheinbar wird das hier nicht mehr gepflegt (siehe Kommentar von Karl-Heinz Lippert).
Lars Sternkopf
Hallo, gibt es den Schaltplan auch in etwas höherer Auflösung?
Edwin Jonkman
Ich habe eine Frage zur sketch. In der sketch (und der Erklärung) wird auf die Funktion „messungen();“ verwiesen, diese ist aber nirgends aufgeführt. Könnten Sie mir bitte sagen, was hier falsch ist?
hypertrax
Mmmh….
Erstmal… ja, interessantes Projekt… aber….
1.) Fehlerhafte BOM: Sie geben im Schaltplan als auch im Text an das ein Step-Down Wandler LM2506 verwendung finet um die 5V für den D1 zur Verfügung zu stellen.
Im Text heist es dazu “Zitat -:Die Stromversorgung des Mikroprozessors erfolgt über einen LM 2596 – StepDown Converter, der im AZ-Board MT3608 verbaut ist”
Soweit ich das aber sehe ist das MT3608-Board doch ein “STEP-UP-Modul”
Obendrein führt auch der Link ganz am Anfang des Blog zu diesem Step-UP-Modul MT3608. Meines erachtens müsste hier doch eher auf das Step-Down-Modul “LM2596S”
verwiesen werden. (im Schaltplan ist imm übrigen der “richtige” “LM2596S” dargestellt.
2.) Im Schaltplan is ganz links ein Bauteil mit der Kennzeichnung V1 dargestellt ohne weitere Angaben. Was soll das denn sein? Und… Die Beschaltung kann doch wohl so auch nicht richtig sein da an dem “unteren Beinchen” sowohl “PWR_FLAG” als auch “GND” anliegen soll ??? Da PWR_FLAG aber oben am Step-Down-Modul die +12V abgreift würde das doch zu einem Kurzschluss führen! (oder sollen diese “PWR_FLAG” irgendwelche Messpunkte darstellen ?)
Wenn dieses “V1” Bauteil aber die exteren Spannungsversorgung darstellen soll, so müsste da doch da der “Abgang” auf “+12V Vdd” gehen und nicht wie gezeichnet auf “+5V Vdd” – Oder aber die Schaltung soll denn doch mit 5V Betriebsspannung versorgt werden, dann aber wäre wiederum der Rest falsch weil dann ja in der Tat ein STEP-UP MT3608 zur Erzeugung der +12V benötigt würde….
Alles recht verwirrend… Irgendwie passt das alles nicht so recht zusammen….
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.
Leif Ljungström
Sehr interessantes Projekt. Ich bin an Leiterplatten interessiert, falls Sie dies entwickeln werden. Mit freundlichen Grüßen,
Leif Ljungström
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 Klein
DEN RICHTIGEN BOARDMANAGER WÄHLEN.
Bitte, benutzen Sie „ESP32 Dev Module“. Damit läuft der Compiler problemlos.
Viele Grüsse
Michael Klein
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
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
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
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
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
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
Könnten Sie auch ein Foto der Leiterplatte mit einbinden ?