ho messo su , una 'classica' combinazione come dal titolo, invio i dati su influxdb via wifi e appunto alimento il tutto con una lipo da 3,7v 600 mAh.
Ovviamente ho anche inserito nel loop principale una riga, per mandare in sleep l'intero apparato per 15 minuti fra una lettura e l'altra.
Ha funzionato tutto per 3 o 4 giorni, poi la batteria si e' esaurita.
Francamente pensavo durasse di piu', avendo letto da qualche parte i valori di consumo in sleep mode.
So che Esp32 lolin lite, va in modem sleep di default, se non si usa il wifi, inoltre uso la seguente riga : esp_sleep_enable_timer_wakeup(TIME_TO_SLEEP * 1000 * 1000); per attivare il timer.
Ho comunque il dubbio di non aver 'spento' del tutto qualche servizio o addirittura l'alimentazione della sonda, ma le varie modalita' di 'sleep' dell'esp32 , francamente mi appaiono un po' nebulose, anche leggendo a destra e a manca.
Qualcuno ha qualche dritta per risparmiare un'altro po' di energia?
grazie
Non sono esperto, ho letto però in un altro thread una risposta ad una domanda simile.
L'admin Guglielmo dice che se usi il WiFi su Esp32 ciuccia molto e non riesci a risparmiare granchè
Ciao a tutti e grazie per le risposte.
Si avevo letto anch’io lo stesso thread credo, ma pensavo di poter risparmiare ancora di più visto che vado in modem sleep nativamente.
Non so quanto consumo effettivamente, non so come misurare in pratica con un multimetro , che possiedo ma col quale usualmente faccio altri tipi di misurazioni.
Dovrei mettere i puntali in parallelo alla sonda?
Riguardando lo sketch comunque, mi sto accorgendo che effettivamente, dopo la riga che ho riportato, non ho messo nessuna istruzione di deep sleep…
NO, devi metterlo in portata amperometrica (scegli una portata che ti permette di misurare le centiaia di mA) e poi lo metti IN SERIE a ciò di cui vuoi misurare l'assorbimento (es. in serie all'alimentazione per controllare l'assorbimento globale, in serie all'alimentazione della sonda per misurare solo quello della sonda, ecc.).
Ok, grazie Guglielmo, adesso sono fuori casa e non ho il tester con me. Tornerò la prox settimana e non vedo l’ora di appurare questi consumi.
Intanto sto tenendo l’aggeggio in funzione senza la sonda e controllo il codice perché mi sa che non ho messo correttamente le istruzioni per una forma di sleep qualsiasi…
So che va in modem sleep di default, ma evidentemente non basta a farlo durare almeno 3 o 4 settimane. Oltre a rivedere il codice e fare le opportune misurazioni come suggerito, dovrò ridurre il numero di misurazioni…
esatto. Non ha senso inviare ogni 15 minuti dei valori, se questi non sono variati.
io procederei cosi':
Leggo il valore
Lo confronto con quello precedentemente memorizzato
Se è diverso di un TOT attivo il WiFi , invio il dato e lo rimemorizzo
Altrimenti lo rimetto a riposo per un'altro ciclo
comunque , oggi ho ricontrollato il codice e mi sono accorto che avevo lasciato una scrittura ogni 30 secondi.
Mi ha fatto circa 400 scritture su database, quindi ho calcolato che con una scrittura ogni 2 ore dovrei arrivare con un buon margine al mese di autonomia.
Ovviamente con l'espediente che proponi, probabilmente si potrebbe anche raddoppiare il periodo.
Se scrive sulla ram, in teoria potrebbe fare infinite letture/scritture visto che non si tratta di flash che ha una vita di circa 10000 cicli giusto?
Procedo subito alla modifica del codice. Vi aggiorno, fra qualche giorno potro' misurare anche l'assorbimento del circuito.
Come ti avevo accennato anche nell'altro post, il mio NodeMCU-32s in deep sleep consuma circa 15mA perché rimane sempre attivo il LED di power on ed il convertitore USB/TTL...
Ipotizziamo che la tua scheda sia particolarmente efficiente e hai un consumo di 10mA: significherebbe che con 600mAh ci fai al massimo 60 ore teoriche di autonomia (e senza fare altro perché lo dovresti tenere sempre in deep sleep)
Se vuoi raggiungere quei tempi di autonomia devi moltiplicare almeno di un fattore 10 la capacità della tua batteria... un bel battery pack da 10.000mAh ad esempio, magari anche con il pannellino solare che gli da un filo di ricarica ogni tanto.
Si usa una bella schedina come QUESTA (al momento non disponibile, ma in arrivo), ci si collega un bel pannello solare, una batteria LiPo di giusta capacità e si ha l'alimentazione per ciò che si vuole con ricarica automatica della batteria da pannello, regolazione della corrente e ... uscita a 5V su USB
grazie a tutti per i consigli.
Ho gia' qualche vecchio pannellino solare che potrei utilizzare.
Immagino che vanno bene tutti, al massimo ci vorranno tempi molto lunghi per quelli con voltaggi minori in uscita credo.
Mi intendo di programmazione e reti, purtroppo di elettronica non sono mai riuscito ad avere delle competenze che mi permettessero una certa autonomia progettuale....
Ho ottimizzato il codice, mi sono assicurato dell'entrata in deep sleep.
Scrive sul db ogni ora, (ma solo alla terza lettura nel caso i valori siano uguali ai precedenti, giusto per capire se e' ancora 'vivo'), ma dopo circa 2-3 giorni, come mi avevate preannunciato, non c'e' niente da fare. si spegne.
Prima di passare alle altre soluzioni che mi avete indicato, pensavo di cambiare il mezzo trasmissivo e passare al BLE.
Per quanto ho letto, dovrei ottenere un gran bel risparmio di energia, e poi, comunque la cosa mi incuriosisce molto. Dovro' realizzare un 'bridge' con un altro Esp32 , che si occupera' di ricevere le misure dai 'satelliti' in BLE e trasmetterli a influxdb in wifi. Questo potro' alimentarlo da rete elettrica e magari potrei implementare un web server eliminando la necessita' di influxdb....
Che mi dite della cloud arduino? ho visto che e' anche in versione free
secondo te vale la pena a trasmettere solo in BT? dovrei programmare un altro esp32 sempre attivo che farebbe da ponte fra bt locale e wifi, questo potrebbe rimanere sempre alimentato.