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

Utilizzare le batterie più a lungo e proteggere attivamente l'ambiente

Questi componenti sono necessari:

1x  D1_Mini_ESP32_NodeMCU

1x  Convertitore step-down MT3608

 

L'idea del rinfresco alcalino

Numerosi dispositivi di uso quotidiano sono alimentati da batterie da 1,5 V. Il tipo di batteria AA domina. Le batterie alcaline, in particolare, si trovano in tutti i supermercati a un prezzo relativamente basso. Enormi quantità di queste batterie vengono costantemente smaltite e ovunque si legge di quanto sia pericoloso ricaricarle. In effetti, negli ultimi anni l'industria è riuscita a farci temere i tentativi di ricarica. Probabilmente per ragioni molto ovvie.

 

Allo stesso tempo, esiste un'ampia varietà di progetti di aggiornamento e di autocostruzione. Questi ultimi, in particolare, hanno concetti molto diversi. In alcuni casi si utilizzano tensioni pulsate complicate. Mi riferisco sempre a "rinfrescatori", non a "caricatori", perché non si tratta di un processo di ricarica. Anche se i processi chimici vengono invertiti, non si tratta di un processo di ricarica, come nel caso di una batteria ricaricabile.

Dopo diversi mesi di test, posso affermare di non aver mai avuto una sola batteria che si sia surriscaldata. Nessuna batteria ha avuto perdite, è scoppiata o ha preso fuoco. Ciò che è molto più critico con le batterie agli ioni di litio e che richiede molta attenzione, nella mia esperienza non è un problema con le batterie alcaline.

 

È importante precisare che la procedura presentata è esclusivamente per Alcalino-Batterie. Non tentare in nessun caso di ricaricare batterie che non siano espressamente etichettate come "Alka line". Anche le batterie ricaricabili non possono essere caricate con questo apparecchio.

 

 

Qui presento il risultato del mio lavoro. Si tratta di un dispositivo semplice e ben funzionante. Alla fine di questo primo articolo troverete alcuni esempi di misurazioni tipiche. Una volta sono persino riuscito a rianimare una batteria che era stata "prosciugata" fino a 0,28 V.

 

Una batteria usata può essere ricaricata per circa 3-10 volte. Non appena una batteria inizia a scaricarsi, non dovrebbe più essere utilizzata. Lo consiglio vivamente.

 

La seconda parte del mio articolo integrerà il refresh alcalino nell'Assistente Domestico. In questo modo potrete sempre vedere a che punto è il processo di aggiornamento senza dover avere il dispositivo davanti a voi. Ho diversi dispositivi in stanze diverse. La dashboard di HA è molto utile per questo.

 

Per me era importante anche la carica delicata delle batterie. Se si inseriscono quattro batterie, ogni batteria riceve un impulso di 250 ms e un tempo di riposo di 850 ms al secondo. Se viene inserita una sola batteria, la carica è molto più rapida: 250 ms di carica e circa 100 ms di riposo. Poiché non ho riscontrato alcun riscaldamento della batteria nemmeno in questa modalità operativa, non ho installato un ulteriore ritardo.

 

Il circuito

 

Vediamo innanzitutto lo schema del circuito:

 

Al centro dello schema circuitale è visibile il cuore del dispositivo, il D1 Mini ESP32 NodoMCU. Mi piace utilizzare questa scheda meravigliosamente compatta quando alle semplici connessioni WiFi si aggiungono altri compiti, come la pubblicazione di MQTT.

 

Sul lato destro sono visibili quattro unità identiche, ciascuna composta da un MOSFET di potenziamento a canale n BUZ42, un BC 547 come driver del MOSFET e un diodo luminoso. Ogni batteria riceve gli impulsi f250 ms tramite una resistenza da 48Ω. A questo scopo, il MOSFET commuta la tensione operativa di 12 V alla rispettiva batteria. La resistenza interna della batteria e la resistenza in serie formano un partitore di tensione, in modo che una batteria assorba brevemente circa 100 mA.

 

A sinistra del microprocessore si trovano quattro reti di resistenze identiche, collegate ai terminali positivi delle batterie e a GND. In questo modo si misura la tensione delle batterie per seguire il processo di aggiornamento. La misurazione viene effettuata prima il rispettivo impulso di tensione.

 

Il microprocessore è alimentato da un convertitore LM 2596 - StepDown, installato nella scheda AZ MT3608. Poiché sull'MCU si utilizzano ingressi di misura ad alta impedenza, questa scheda deve essere posizionata il più lontano possibile dagli ingressi analogici utilizzati dal processore.

 

Come per i progetti precedenti, anche questa volta ho disegnato sullo stock nella cassetta degli attrezzi. L'usato MOSFET fa un buon lavoro, ma richiede un driver. Se lo si sostituisce con un  "MOSFET a livello logico" come l'IRL 520, si risparmia lo stadio driver.

 

Come per i progetti precedenti, sto nuovamente valutando la possibilità di creare un circuito stampato e di farlo produrre se c'è interesse nella comunità. I circuiti stampati per il tester di idoneità delle batterie hanno appena raggiunto la seconda edizione. Chiunque si occupi di rinfrescare le batterie vorrà certamente misurarne la resistenza interna (di cui si parlerà più avanti) per poterne determinare il successo. Se siete interessati a un circuito stampato, contattatemi via michaelklein495(at)gmail.de.

 

Lo schizzo

 

Per maggiore chiarezza, il disegno si compone di tre parti. Innanzitutto, diamo un'occhiata al programma principale:

 

Rinfresco_alcalino_1_2_parte_1_FATTO

 

Lo schizzo è complessivamente abbastanza compatto. Nelle prime due righe, gli array sono riservati ai valori grezzi della tensione della batteria e alle tensioni calcolate.

 

Il Array con il nome battload[] registra la frequenza con cui la tensione della batteria ha raggiunto o superato il valore Ulimit. La logica è molto semplice: può accadere che il limite venga visualizzato come raggiunto durante la misurazione della tensione, ma sia stato raggiunto solo per un breve periodo. Per garantire che la batteria sia davvero carica, il limite viene registrato dieci volte in totale. Quando battload[] raggiunge lo zero per una batteria, questa è considerata carica. La tensione scende quindi abbastanza rapidamente a 1,5 ... 1,65 V.

 

Il ciclo vuoto impostazione() si limita a inizializzare l'interfaccia seriale e i pin di uscita. Per il momento non c'è altro da fare.

 

Poi si passa direttamente al vuoto anello().  La funzione misure(), che recupera i valori grezzi dagli ingressi analogici e li converte in tensioni della batteria.

Segue un ciclo su tutte e quattro le batterie. Per prima cosa controlla se le tensioni delle batterie sono comprese tra 0,2 e Ulimit. Controlla inoltre se è già stato raggiunto il limite 10x.  era.

 

Se la tensione della batteria rientra nell'intervallo desiderato e non è ancora completamente carica, lo schizzo invia un impulso di carica della durata di 250 ms alla rispettiva batteria e disattiva nuovamente la corrente.

Questo è il processo di ricarica: è tutto ciò che serve! Questo processo viene ripetuto fino al raggiungimento o al superamento di Ulimit per 10 volte.

 

Le seguenti query if sono utilizzate per il semplice funzionamento del dispositivo. Se riconosce (1a query if) che la tensione di una batteria è = 0 (batteria mancante o difettosa), lo sketch imposta la rispettiva variabile battload[] su 10 in preparazione del successivo processo di carica.

 

La seguente query if verifica se la tensione della rispettiva batteria è >= Ulimit e, se necessario, esegue il conteggio di battload[] per questa batteria.

A questo punto vengono misurate nuovamente tutte le tensioni della batteria. Se una delle tensioni è > Ulimit tutti Le tensioni della batteria vengono emesse in una piccola tabella tramite l'interfaccia seriale. Questa funzione viene utilizzata per il debug e per una panoramica.

 

Questo è tutto quello che c'è da fare. Penso di poter lasciare alla vostra attenzione le semplici funzioni per le misurazioni e l'output della tabella. Sono semplici e autoesplicative. Questa volta ho affidato la noiosa digitazione dell'output della tabella a un'intelligenza artificiale e non sono rimasto deluso :-)


Funzionamento del dispositivo 

Lo schizzo mostra il semplice funzionamento del dispositivo:

1. Se si accende solo l'alimentazione a 5 V senza la tensione di carica, è possibile misurare le tensioni della batteria 1 ... 4. Come saprete dal mio post "Battery fitness tester", questa misurazione della tensione dice molto poco sullo stato di salute di una batteria. Solo la misurazione della resistenza interna fornisce informazioni utili. È sempre utile per classificare le batterie come "senza speranza" o "da provare".

 

2 Nel funzionamento classico con un'alimentazione completa a 12 V / 5 V, il dispositivo non presenta un LED illuminato. Inserire una batteria nel 1° scomparto. Il 1° LED lampeggia, indicando il processo di carica. Facendo lo stesso con le altre batterie, si vedrà una luce accesa mentre le batterie (vedi schizzo) ricevono a turno i loro impulsi di carica. A questo articolo è allegato un breve video.

 

3. Quando una batteria è carica, il LED associato si spegne e la batteria può essere rimossa, anche se altre batterie sono ancora in carica. A questo punto è possibile inserire un'altra batteria al posto di quella completamente carica e il ciclo ricomincia.

 

Risultati pratici

Ogni batteria elencata di seguito è stata prima testata per la resistenza interna con il tester di idoneità della batteria e poi è stata inserita nel dispositivo di ricarica alcalina. È possibile vedere i valori misurati e la durata del processo di ricarica.

La misurazione è stata poi ripetuta con il tester per la batteria/il fitness della batteria per visualizzare la differenza:

 

                        Ua [V]              Ri[Ω]@10mA  Tempo di ricarica      Ue [V]  Ri[Ω]@50mA

 

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

 

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

 

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

 

Ua è la tensione iniziale della batteria da ricaricare; Ri[Ω]@10mA è la resistenza interna a un carico massimo di 10 mA.

 

Ue è il rilassamento e Ri[Ω]@50mA la resistenza interna, ma con un carico massimo di 50 mA.

 

Da questa tabella (che ovviamente non fornisce alcuna statistica con tre voci) si evince che sono ovviamente le batterie "cattive" come la n. 44 che possono subire un'incredibile "resurrezione". Non si tratta né di una garanzia né di un "miracolo", ma è stato ripetutamente dimostrato in circa 25 test. In questo esempio, la resistenza interna si è dimezzata! 

Ho intenzionalmente caricato le batterie con soli 10 mA durante il test iniziale, perché altrimenti il test non sarebbe stato completato. Ricordate che il tester per l'idoneità delle batterie aumenta il carico in 10 passi. Se si passa direttamente a "50 mA di carico massimo", il dispositivo in prova potrebbe non essere in grado di fornire questa corrente e la misurazione si "blocca". Per questo motivo, per il primo test si deve partire da 10 mA.

Una volta ricaricata, la batteria viene testata con una corrente 5 volte superiore: 50 mA. Se una batteria non è in grado di sopportare questa corrente, è meglio metterla nel contenitore di smaltimento.

Per inciso, il numero 44 proviene da questa scatola di smaltimento! Mi ha stupito il modo in cui questa batteria poteva essere rinfrescata, mentre nel #23, ad esempio, si può notare un effetto, ma non grandioso.

#18 è stato rinfrescato solo per 30 minuti come test per vedere quale effetto si poteva ottenere. Naturalmente, la tensione finale di 1,65 V non è stata raggiunta. Era chiaro in anticipo che la batteria non era esaurita, ma che era possibile ottenere solo un effetto parziale. I risultati lo dimostrano.

Excursus: Come sono costruite le batterie alcaline? Quale processo chimico fornisce l'elettricità?

 

Poiché sono un fisico e non un chimico, ho fatto qualche "lettura intelligente". Ecco in breve:

Le reazioni chimiche (in forma semplificata) procedono come segue:

Anodo (ossidazione, zinco löstesso): Zn + 2 OH- ZnO + H2O + 2 e-

Catodo (riduzione, MnO2 reagisce): 2 MnO2 + H2O + 2 e- Mn2O3 + 2 OH-

Reazione totale (semplificata): Zn + 2 MnO2 ZnO + Mn2O3

 

L'elettrolita alcalino (KOH) fornisce un'alta concentrazione di calore.ödensità energetica più elevata e migliore potenza, anche a temperature più basse, rispetto alle vecchie celle zinco-carbonio.

 

MnO2 come materiale catodico ermöLa tensione di scarica rimane stabile fino a quando ilödello zinco.

Questo diagramma illustra approssimativamente il processo di ossidazione e riduzione che avviene nella cella. È ovviamente possibile utilizzare gli impulsi di corrente per rimuovere i depositi che ostacolano il flusso di corrente e quindi aumentare la superficie di reazione - che fornisce la corrente e riduce la resistenza interna, se necessario. Ciò significa che una maggiore quantità di materiale rimanente nella cella è disponibile per partecipare a un processo redox. Questo è più o meno il modo in cui capisco le spiegazioni di esperti più competenti che hanno familiarità con l'argomento. Nessuna garanzia!

Dopotutto, trovo interessante quanto funzioni bene nella pratica e quanto sia facile.

Il Natale ha portato ancora una volta un certo numero di batterie presumibilmente morte che alimentavano qualche tipo di illuminazione. Ora, dopo averle rinfrescate, le sto reinserendo in dispositivi che non hanno un consumo energetico così elevato, cioè che non devono far funzionare motori, ecc.

 

Questa è un'altra esperienza di gestione del refresh della batteria: La seconda vita deve essere più fluida della prima. In altre parole: se la batteria ha funzionato "fino all'esaurimento" in una luce con un carico continuo di 50 mA, per il secondo utilizzo consiglio, ad esempio, una sveglia con display LCD che necessita solo di 1 ... 5 mA. 5 mA.

 

E per quanto riguarda le altre batterie, solo le batterie AA sono state ricaricate qui?

La procedura è generalmente adatta a qualsiasi cella alcalina con una tensione nominale di 1,5 V. Per le celle AAA, la resistenza di carica deve essere aumentata a 100 Ω. Non ho testato le AAAA.

 

Le celle a bottone non possono essere caricate.

Con le batterie di formato C o D, il processo di ricarica richiede solo un po' più di tempo rispetto alle batterie AA, ad esempio.

Un'altra nota: è possibile che le batterie non raggiungano più la tensione finale di 1,65 V. In questo caso, il processo di carica non termina automaticamente. In questo caso, il processo di carica non si conclude automaticamente. Quando parleremo dell'integrazione dell'assistente domestico nella Parte 2, questa situazione è risolta da un timer nell'HA che è possibile impostare.

Conclusione

Abbiamo imparato una tecnica che riduce l'acquisto di batterie e aiuta un po' l'ambiente. Questo vale da solo lo sforzo che si può fare. Abbiamo anche imparato qualcosa di nuovo.

 

Nella seconda parte si spiega come funziona il collegamento con l'assistente domestico.

Fino ad allora, attendo le vostre domande, idee e commenti. Non esitate inoltre a raccontarmi le vostre esperienze pratiche con il dispositivo.

 

Il tuo

Michael Klein

D1 miniProjekte für anfänger

9 commenti

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 ?

Lascia un commento

Tutti i commenti vengono moderati prima della pubblicazione