Aziz Bench

Calcolo dell’autonomia della batteria per ESP32 e Arduino

Stima l’autonomia di un nodo ESP32, Arduino o nRF che dorme in deep sleep e si sveglia per misurare e trasmettere. Parti da un preset e sostituisci i valori con quelli misurati sul tuo circuito.

Autonomia stimata
6,1mesi
≈ 187 giorni · risveglio ogni 15 min
Corrente media
379 µA
Consumo al giorno
9,1 mAh
Risvegli per carica
18.000
Profilo di corrente · un ciclo
Microcontrollore e radio
µA

Solo il chip o il modulo. Regolatore e resto della scheda vanno nei consumi sempre presenti.

Ciclo di risveglio
Fase attiva · CPU e sensori
mA
ms
Trasmissione · radio accesa
mA
ms
Consumi sempre presenti
µA
µA

Sensori in standby, LED, partitore per leggere la batteria. Un partitore 100k + 100k su una LiPo carica assorbe circa 21 µA.

Batteria
mAh
%
%/mese

La quota utilizzabile è la parte di carica che il circuito sfrutta prima che la tensione scenda sotto il suo minimo.

Dove va la carica

    Cosa migliorare

    Autonomia e intervallo di risveglio

    La linea tratteggiata è il limite fissato da sleep, consumi continui e autoscarica. Più ti avvicini a quella linea, meno rende allungare l'intervallo.

    Testo pronto da incollare in un forum o in una issue.

    Il calcolo lavora in mAh e presuppone un regolatore lineare (LDO), dove la corrente presa dalla batteria è circa quella del circuito. Con un convertitore switching l'autonomia reale di solito è migliore. Temperatura e invecchiamento della batteria non sono considerati.

    Come funziona la stima

    Un nodo a batteria passa quasi tutta la vita a dormire. Ogni pochi minuti si sveglia, legge i sensori, accende la radio per inviare i dati e torna a dormire. L’autonomia dipende dalla corrente media su un ciclo completo, non dai picchi.

    I_media = (I_attiva × t_attiva + I_radio × t_radio + I_sleep × t_sleep) / T
              + I_regolatore + I_periferiche + I_autoscarica
    
    autonomia = capacità utilizzabile / I_media

    L’autoscarica viene trasformata in una corrente costante equivalente. Una LiPo da 2000 mAh che perde circa il 2% al mese si comporta come un carico in più da 55 µA, più di cinque volte il consumo di un ESP32 in deep sleep.

    Con il preset iniziale (modulo ESP32 nudo, regolatore HT7333, LiPo da 2000 mAh, un risveglio ogni 15 minuti con 2 secondi di WiFi) la corrente media è di circa 379 µA e la batteria dura circa 6 mesi. Il WiFi pesa il 70% della carica, quindi accorciare la connessione è l’intervento più efficace.

    Correnti tipiche in deep sleep

    ChipModalitàCorrente tipica
    ESP32Deep sleep, timer RTC≈ 10 µA
    ESP32-C3Deep sleep≈ 5 µA
    ESP32-S3Deep sleep, timer RTC≈ 8 µA
    ATmega328P (Uno, Nano, Pro Mini)Power-down con watchdog≈ 4 µA
    nRF52840System ON con RTC≈ 2–3 µA
    RP2040 (scheda Raspberry Pi Pico)Dormant≈ 0,8 mA

    Valori indicativi del solo chip, dai datasheet dei produttori, a circa 3,3 V e temperatura ambiente. Una scheda di sviluppo aggiunge regolatore, LED e convertitore USB-seriale, spesso centinaia di volte di più.

    Perché una DevKit ESP32 scarica la batteria anche in deep sleep

    Il chip ESP32 scende a circa 10 µA, ma una DevKit tipica continua ad assorbire diversi milliampere. Il solo regolatore AMS1117 consuma circa 5 mA a riposo, il LED di alimentazione resta acceso e il chip USB-seriale resta alimentato. Su una LiPo da 2000 mAh i mesi diventano circa una settimana.

    Scegli il preset "ESP32 DevKit così com’è" qui sopra per vedere la differenza. Per l’uso a batteria passa a un modulo nudo o a una scheda progettata per il basso consumo, con un regolatore a bassa corrente di riposo come MCP1700 o HT7333.

    Domande frequenti

    Quanto dura un ESP32 a batteria?

    Dipende soprattutto da quanto spesso si sveglia e da quanto resta acceso il WiFi. Un modulo ESP32 nudo con un regolatore a bassa corrente di riposo, che si sveglia ogni 15 minuti per circa 2 secondi di WiFi, dura circa 6 mesi con una LiPo da 2000 mAh, e più di un anno se si sveglia una volta all’ora. Una scheda di sviluppo usata così com’è dura circa una settimana.

    Posso alimentare un ESP32 con una pila CR2032?

    Non in modo affidabile con il WiFi. I picchi di trasmissione superano i 200 mA, mentre una CR2032 è pensata per carichi di pochi milliampere: la tensione crolla e il chip si resetta. Con le pile a bottone usa un chip BLE come l’nRF52, oppure passa a una LiPo o a pile AA.

    Quale regolatore di tensione usare per un ESP32 a batteria?

    Un LDO con bassa corrente di riposo, come MCP1700 (circa 1,6 µA) o HT7333 (circa 4 µA). Verifica che la sua corrente massima sia adatta ai picchi del WiFi e aggiungi un condensatore di riserva vicino al modulo. Evita l’AMS1117 montato su molte schede: consuma circa 5 mA anche a vuoto.

    Come si misura la corrente in deep sleep?

    Un multimetro in serie sulla portata dei µA va bene per la corrente di sleep, ma il suo shunt può far cadere abbastanza tensione da resettare la scheda al risveglio. Un power profiler come il PPK2 di Nordic registra l’intero ciclo, dai microampere alle centinaia di milliampere, e i suoi valori si inseriscono direttamente in questo calcolatore.

    Perché conta l’autoscarica della batteria?

    Con intervalli di risveglio lunghi la corrente media diventa così piccola che le perdite della batteria stessa diventano la voce principale. Una LiPo che perde il 2% al mese equivale a circa 55 µA su 2000 mAh. Per durare anni, una pila al litio primario Li-SOCl₂ perde circa l’1% all’anno.