Deep Sleep Mode per ESP8266

446 views
Skip to first unread message

Domenico Carvetta

unread,
Jul 17, 2016, 7:23:45 AM7/17/16
to souliss-it
Ciao Dario,
ho un quesito da porti.

Sto cercando di fare qualche esperimento sull'utilizzo della funzione in oggetto.
La prima cosa che ho compreso è la modifica hardware e cioè la connessione diretta tra il pin XPD(GPIO16) e il pin RESET dell'ESP8266.
La seconda cosa è relativa al codice da adoperare e cioè : 

// Time to sleep (in seconds):
const int sleepTimeS = 10;

void setup()
{

 
// Sleep
 
Serial.println("ESP8266 in sleep mode");
  ESP
.deepSleep(sleepTimeS * 1000000);

}

void loop()
{

}


La domanda è la seguente: in uno degli esempi Souliss, per es. lettura di temp&hum, dove è necessario inserire la suddetta "funzione" (nella void setup(), oppure nella void loop() )?
Questa cosa non mi è chiara per niente!!
Grazie 1000.


Dario Cdj

unread,
Jul 17, 2016, 8:35:45 AM7/17/16
to souli...@googlegroups.com

Domenico in teoria devi fare la lettura del dht e subito dopo mettere il nodo a nanna....un po come lo sleep del nrf... Ma non saprei altro....


--
Hai ricevuto questo messaggio perché sei iscritto al gruppo "souliss-it" di Google Gruppi.
Per annullare l'iscrizione a questo gruppo e non ricevere più le sue email, invia un'email a souliss-it+...@googlegroups.com.
Per postare in questo gruppo, invia un'email a souli...@googlegroups.com.
Per visualizzare questa discussione sul Web, visita https://groups.google.com/d/msgid/souliss-it/05652663-581b-4ad4-829d-598b715525bf%40googlegroups.com.
Per altre opzioni visita https://groups.google.com/d/optout.

Domenico Carvetta

unread,
Jul 17, 2016, 8:45:31 AM7/17/16
to souliss-it
ok grazie, aspettiamo anche quello che ci suggerisce Dario1 (grande capo).

Livio Merola

unread,
Jul 17, 2016, 4:48:41 PM7/17/16
to souliss-it
Domenico, nn so se sia di aiuto o meno ma leggendo nei forum dicono di mettere tutto il codice, che normalmente va nel loop, nel setup perché al risveglio l'esp parte dal setup

Dario Cdj

unread,
Jul 17, 2016, 6:08:29 PM7/17/16
to souli...@googlegroups.com

Interessante....


Il 17/Lug/2016 22:48, "Livio Merola" <livio....@gmail.com> ha scritto:
Domenico, nn so se sia di aiuto o meno ma leggendo nei forum dicono di mettere tutto il codice, che normalmente va nel loop, nel setup perché al risveglio l'esp parte dal setup

--
Hai ricevuto questo messaggio perché sei iscritto al gruppo "souliss-it" di Google Gruppi.
Per annullare l'iscrizione a questo gruppo e non ricevere più le sue email, invia un'email a souliss-it+...@googlegroups.com.
Per postare messaggi in questo gruppo, invia un'email a souli...@googlegroups.com.
Per visualizzare questa discussione sul Web, visita https://groups.google.com/d/msgid/souliss-it/3883c9da-6411-49c2-80a2-2665f80173da%40googlegroups.com.
Per ulteriori opzioni, visita https://groups.google.com/d/optout.

Domenico Carvetta

unread,
Jul 18, 2016, 6:50:21 AM7/18/16
to souliss-it

Dario Cdj

unread,
Jul 18, 2016, 7:04:52 AM7/18/16
to souli...@googlegroups.com

Domenico, ma perché non lo provi????


Il 18/Lug/2016 12:50, "Domenico Carvetta" <carvetta...@gmail.com> ha scritto:

--
Hai ricevuto questo messaggio perché sei iscritto al gruppo "souliss-it" di Google Gruppi.
Per annullare l'iscrizione a questo gruppo e non ricevere più le sue email, invia un'email a souliss-it+...@googlegroups.com.
Per postare in questo gruppo, invia un'email a souli...@googlegroups.com.
Per visualizzare questa discussione sul Web, visita https://groups.google.com/d/msgid/souliss-it/125d1c1a-f1d0-4661-bc17-7a6877bdf81d%40googlegroups.com.

domenico carvetta

unread,
Jul 18, 2016, 7:09:19 AM7/18/16
to souliss-it
SI si inizio questo pomeriggio.
Mi sono liberato da alcuni impegni e oggi proverò con i primi test.
Vi terrò aggiornati!

livio....@gmail.com

unread,
Jul 18, 2016, 7:35:09 AM7/18/16
to souli...@googlegroups.com
Domenico

Aggiorniamoci su sketch, collegamenti ...se mi passi le informazioni facciamo dei test incrociati....proviamo a vedere anche con batteria diversa quanto dura

--
Hai ricevuto questo messaggio perché sei iscritto al gruppo "souliss-it" di Google Gruppi.
Per annullare l'iscrizione a questo argomento, visita https://groups.google.com/d/topic/souliss-it/DmCpEAnXnjw/unsubscribe.
Per annullare l'iscrizione a questo gruppo e a tutti i suoi argomenti, invia un'email a souliss-it+...@googlegroups.com.

Per postare in questo gruppo, invia un'email a souli...@googlegroups.com.

Per altre opzioni visita https://groups.google.com/d/optout.

-- Inviato dal mio cellulare Android con K-@ Mail.

Domenico Carvetta

unread,
Jul 18, 2016, 11:19:52 AM7/18/16
to souliss-it
Allora ho completato il primo test.

La funzione "ESP.deepSleep(sleep, RF_DEFAULT)" funziona perfettamente.
Il codice l'ho messo dentro una FAST nel loop() appena dopo la lettura del dht sensor.

I consumi sono ancora, a mio modesto avviso, troppo elevati.

1- fase setup() consuma mediamente 70-80mA
2- fase loop() e prima della DeepSleep arriva fino a 90mA
3- fase DeepSleep() consuma mediamente 10-12mA.
ps. oltre l'ESP201 con annesso il led di communication, vi è solo il dht11.
A voi i commenti!!

Dario Cdj

unread,
Jul 18, 2016, 11:26:21 AM7/18/16
to souli...@googlegroups.com

Scippa il led e vedi quanto consuma.... Ma poi si sveglia?
Dario2


--
Hai ricevuto questo messaggio perché sei iscritto al gruppo "souliss-it" di Google Gruppi.
Per annullare l'iscrizione a questo gruppo e non ricevere più le sue email, invia un'email a souliss-it+...@googlegroups.com.

Per postare in questo gruppo, invia un'email a souli...@googlegroups.com.

domenico carvetta

unread,
Jul 18, 2016, 11:28:32 AM7/18/16
to souliss-it
Si certo si sveglia.
Sto pensando che invece di "scippare" il led, lo metto in una SLOW e lo faccio blinkare ogni 1h.
Il led di communication fa capo a GPIO1.


Dario Cdj

unread,
Jul 18, 2016, 11:30:41 AM7/18/16
to souli...@googlegroups.com

:-) ah be se si può spegnere ok....


--
Hai ricevuto questo messaggio perché sei iscritto al gruppo "souliss-it" di Google Gruppi.
Per annullare l'iscrizione a questo gruppo e non ricevere più le sue email, invia un'email a souliss-it+...@googlegroups.com.
Per postare in questo gruppo, invia un'email a souli...@googlegroups.com.

Dario Cdj

unread,
Jul 18, 2016, 11:35:05 AM7/18/16
to souli...@googlegroups.com

Se i numeri sono questi non abbiamo dove andare....
Arduino in low power consuma 0.731mA è in sleep 6μA (μA not mA).


--
Hai ricevuto questo messaggio perché sei iscritto al gruppo "souliss-it" di Google Gruppi.
Per annullare l'iscrizione a questo gruppo e non ricevere più le sue email, invia un'email a souliss-it+...@googlegroups.com.

Per postare in questo gruppo, invia un'email a souli...@googlegroups.com.

domenico carvetta

unread,
Jul 18, 2016, 11:36:37 AM7/18/16
to souliss-it
Infatti non mi sembra un successo, anzi.
Provo a spegnere il led e poi vi dico.

Domenico Carvetta

unread,
Jul 18, 2016, 11:54:33 AM7/18/16
to souliss-it
:-(
Non riesco a spegnere il power Led; quello connesso a GPIO1 è quello di "communication" cioè quello di colore blue.
Senza "scipparlo" quanto, secondo voi, potrà consumare ?

Dario Cdj

unread,
Jul 18, 2016, 11:57:24 AM7/18/16
to souli...@googlegroups.com

Assai, scippaloooo


--
Hai ricevuto questo messaggio perché sei iscritto al gruppo "souliss-it" di Google Gruppi.
Per annullare l'iscrizione a questo gruppo e non ricevere più le sue email, invia un'email a souliss-it+...@googlegroups.com.
Per postare in questo gruppo, invia un'email a souli...@googlegroups.com.

domenico carvetta

unread,
Jul 18, 2016, 12:04:28 PM7/18/16
to souliss-it
Prima di scipparlo, quanto consuma un Led package 0402 smd?
Non riesco a trovarlo ....

domenico carvetta

unread,
Jul 18, 2016, 12:05:34 PM7/18/16
to souliss-it
trovato, grazie.

Domenico Carvetta

unread,
Jul 19, 2016, 7:22:04 AM7/19/16
to souliss-it
Update:
ho "scippato" il Power Led; da solo il led consuma circa 4-5mA.
Dunque, così come ho realizzato la funzione ESP.DeepSleep() non riesco a scendere sotto gli 8mA.
Che sono, esattamente, quanti ne ha misurati Marco Schwartz in : https://www.openhomeautomation.net/esp8266-battery/
Che faccio continuo??
Nel blog è riportata una misura di addirittura 77 uA, ma, guarda caso, non è riportata la foto del multimetro che attesti detta misura !
Provare per credere....

Domenico Carvetta

unread,
Jul 20, 2016, 1:43:28 PM7/20/16
to souliss-it
Alla fine ce l'ho fatta; non è come speravo, con riferimento ai consumi, ma è sicuramente un primo passo.
La funzione ESP.DeepSleep() è stata settata in modo tale da svegliare il nodo ogni 1800sec (half hour) ed inviare i dati di temp&hum su ThingSpeak.com.
L'alimentazione è costituita da 3 xAA da 2000mA; il consumo nella fase di DeepSleep è di circa 8mA.
Vediamo quanto dura!.
ps. se volete potete seguire su:





Dario Cdj

unread,
Jul 20, 2016, 1:46:38 PM7/20/16
to souli...@googlegroups.com

Perché 3AA ?? Metti la lettura della batteria su thingspeak così vediamo come si comporta?


--
Hai ricevuto questo messaggio perché sei iscritto al gruppo "souliss-it" di Google Gruppi.
Per annullare l'iscrizione a questo gruppo e non ricevere più le sue email, invia un'email a souliss-it+...@googlegroups.com.
Per postare in questo gruppo, invia un'email a souli...@googlegroups.com.

Domenico Carvetta

unread,
Jul 20, 2016, 1:49:46 PM7/20/16
to souliss-it
Ok, devo rimettere le mani sul codice.
3xAA, perchè, due del tipo AA (ricaricabili) non erano sufficienti per arrivare ai 3.3V.



livio....@gmail.com

unread,
Jul 20, 2016, 1:54:33 PM7/20/16
to souli...@googlegroups.com
Domenico

Hai un negozio che ripara pc vicino casa?
Se si vai da loro e chiedi se hanno batterie al litio di vecchi pc che devono smaltire...

Tiri fuori almeno 6 batterie del tipo 18650 da 3,7 volt e dai 1800 ai 2600 mAh

A me ne hanno regalate due e ho 12 batterie ...appena arrivati anche i circuiti basati su chip TP4056

http://www.dx.com/it/p/tp4056-1a-li-ion-battery-charging-module-blue-4v-8v-215797#.V4-6hXRyxnE

Adesso aspetto pannello solare e circuito step-up



20 Lug 2016 ha scritto:
Ok, devo rimettere le mani sul codice.
3xAA, perchè, due del tipo AA (ricaricabili) non erano sufficienti per arrivare ai 3.3V.



--
Hai ricevuto questo messaggio perché sei iscritto al gruppo "souliss-it" di Google Gruppi.
Per annullare l'iscrizione a questo argomento, visita https://groups.google.com/d/topic/souliss-it/DmCpEAnXnjw/unsubscribe.
Per annullare l'iscrizione a questo gruppo e a tutti i suoi argomenti, invia un'email a souliss-it+...@googlegroups.com.

Per postare in questo gruppo, invia un'email a souli...@googlegroups.com.

Per altre opzioni visita https://groups.google.com/d/optout.

Dario Cdj

unread,
Jul 20, 2016, 3:47:00 PM7/20/16
to souli...@googlegroups.com

Ci avevo già pensato, addirittura alla 18350 che è più corta, ma è comunque ingombrante ed essendo ricaricabile non penso che duri quanto un alkalina..
Fino ad ora vince 2AAA + chip atmel + nrf purtroppo....


Per annullare l'iscrizione a questo gruppo e non ricevere più le sue email, invia un'email a souliss-it+...@googlegroups.com.

Per postare in questo gruppo, invia un'email a souli...@googlegroups.com.

domenico carvetta

unread,
Jul 20, 2016, 6:14:00 PM7/20/16
to souliss-it

☺☺☺☺☺

Domenico Carvetta

unread,
Jul 23, 2016, 9:08:32 AM7/23/16
to souliss-it

Domenico Carvetta

unread,
Jul 23, 2016, 10:32:08 AM7/23/16
to souliss-it
Ciao Dario1 (grande capo),
per poter leggere la tensione ai capi della batteria che alimenta un ESP8266, posso e in che modo modificare il codice usato per gli AVR?

long readVcc() {

 
// Read 1.1V reference against AVcc
 
// set the reference to Vcc and the measurement to the internal 1.1V reference
#if defined(__AVR_ATmega32U4__) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
 ADMUX
= _BV(REFS0) | _BV(MUX4) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1);
#elif defined (__AVR_ATtiny24__) || defined(__AVR_ATtiny44__) || defined(__AVR_ATtiny84__)
 ADMUX
= _BV(MUX5) | _BV(MUX0);
#elif defined (__AVR_ATtiny25__) || defined(__AVR_ATtiny45__) || defined(__AVR_ATtiny85__)
 ADMUX
= _BV(MUX3) | _BV(MUX2);
#else
 ADMUX
= _BV(REFS0) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1);
#endif  


 delay
(75); // Wait for Vref to settle
 ADCSRA
|= _BV(ADSC); // Start conversion
 
while (bit_is_set(ADCSRA, ADSC)); // measuring


 uint8_t low
= ADCL; // must read ADCL first - it then locks ADCH  
 uint8_t high
= ADCH; // unlocks both


 
long result = (high << 8) | low;


 result
= 1125300L / result; // Calculate Vcc (in mV); 1125300 = 1.1*1023*1000
 
return result; // Vcc in millivolts
}

Domenico Carvetta

unread,
Jul 24, 2016, 4:59:22 AM7/24/16
to souliss-it
Ciao Dario,
hai (se) qualche raccomandazione in merito quanto richiesto? Ti ringrazio.

Di Maio, Dario

unread,
Jul 24, 2016, 4:42:46 PM7/24/16
to souliss-it

Ni, devi passare la lettura analogica alla curva che converte in percentuale.

Dario.

From Mobile.

On 24 Jul 2016 10:59, "Domenico Carvetta" <carvetta...@gmail.com> wrote:
Ciao Dario,
hai (se) qualche raccomandazione in merito quanto richiesto? Ti ringrazio.

--
Hai ricevuto questo messaggio perché sei iscritto al gruppo "souliss-it" di Google Gruppi.
Per annullare l'iscrizione a questo gruppo e non ricevere più le sue email, invia un'email a souliss-it+...@googlegroups.com.
Per postare in questo gruppo, invia un'email a souli...@googlegroups.com.

Domenico Carvetta

unread,
Jul 25, 2016, 5:53:40 AM7/25/16
to souliss-it
Grazie Dario, ma non so come fare questo passaggio.

L'unica cosa che conosco è il codice utilizzato per gli AVR e che riporto sotto.
Domanda: è possibile utilizzare detto codice, con le opportune modifiche, per l'utilizzo delle ESP8266?
Senza alcuna modifica ho, come era da attendere, tanti errori di compilazione.

Domenico Carvetta

unread,
Jul 25, 2016, 1:18:28 PM7/25/16
to souliss-it
Update:
dopo circa 110h il nodo Souliss si è spento.
:-(


Dario Cdj

unread,
Jul 25, 2016, 1:20:01 PM7/25/16
to souli...@googlegroups.com

E mandava update ogni 2 ore???


--
Hai ricevuto questo messaggio perché sei iscritto al gruppo "souliss-it" di Google Gruppi.
Per annullare l'iscrizione a questo gruppo e non ricevere più le sue email, invia un'email a souliss-it+...@googlegroups.com.
Per postare in questo gruppo, invia un'email a souli...@googlegroups.com.

Domenico Carvetta

unread,
Jul 25, 2016, 1:21:37 PM7/25/16
to souliss-it
No, ogni 30 minuti!!

Di Maio, Dario

unread,
Jul 26, 2016, 1:10:07 PM7/26/16
to souliss-it

Questo codice é un analogRead() ma con riferimento abbassato, non so se si possa fare con ESP.

Dario.

From Mobile.

--
Hai ricevuto questo messaggio perché sei iscritto al gruppo "souliss-it" di Google Gruppi.
Per annullare l'iscrizione a questo gruppo e non ricevere più le sue email, invia un'email a souliss-it+...@googlegroups.com.
Per postare in questo gruppo, invia un'email a souli...@googlegroups.com.

Domenico Carvetta

unread,
Jul 28, 2016, 10:34:29 AM7/28/16
to souliss-it
Alla fine ho optato per una alimentazione con batteria al litio da 3.7V, almentata da pannello fv.

20160728_162402.jpg
20160728_162351.jpg

Dario Cdj

unread,
Sep 22, 2016, 10:25:26 AM9/22/16
to souliss-it
Riapro il post per un problemino..... abbiamo visto come fare svegliare la nostra esp su timer... ad es. per mandare la temperatura rilevata da un sensore a souliss.

Adesso vorrei riuscire a fare svegliare la nostra esp sia all'apertura che alla chiusura di un reed. E qui nascono i problemi in quanto la esp a quanto pare non si sveglia su interrupt ma solo su reset.

Ho trovato due soluzioni:
la prima dovrebbe essere un circuito "monostable flip flop" e la seconda un attiny85.
Vi posto il link da dove ho preso queste informazioni, e vorrei capire quale implementare tra il monostable flipflop che usa anche il modo "modem sleep" e "light sleep" della esp, oppure l'attiny85 che forse la manda sempre in deepsleep, ma non ho capito bene.
Il circuito di cui sopra si trova su : https://github.com/chaeplin/esp8266_and_arduino/tree/master/_48-door-alarm-deepsleep
Mentre tutta la discussione, compreso il mio post dove chiedo chiarimenti (forse voi ci capite più di me che NON sono un elettronico)è qui : https://github.com/esp8266/Arduino/issues/1488

Mi pare di capire che la soluzione con l'attiny potrebbe essere più conveniente, ma il codice da programmare per l'attiny forse va rivisitato da quello per nrf che c'è sul post? non capisco...

Al limite anche flipflop va bene, ma quale? ci sono 2 schemi sulla discussione ed un terzo schema su 48-door-alarm-deepsleep...

Vi ringrazio anticipatamente per l'aiuto, sono sicuro che qualcuno che macina elettronica più di me lo capirà al volo...

P.S. non mi rispondete "resettala quando si chiude o si apre il reed" ovviamente perchè ci sono diversi problemi. Ovvero che la porta può stare anche sempre aperta, o sempre chiusa, se la chiudo dopo 1 ora (e la esp dorme) deve svegliarla e mandare il feedback di "porta chiusa"... ma stessa cosa con lo stato invertito... se apro una finestra e la lascio aperta mi deve dire che l'ho aperta, ma si deve accorgere di quando è chiusa, quindi non basta resettare la esp quando si apre il reed....ne viceversa, deve farlo in entrambi i casi ... !
Message has been deleted
Message has been deleted

Dario Cdj

unread,
Sep 28, 2016, 12:58:19 PM9/28/16
to souliss-it
guardando questo circuito : 


Non c'è nessuno di Voi esperti di elettronica che capisce la polarità dei condensatori ? o se il tipo che ha disegnato il circuito (che non risponde) voleva scrivere nanofarad e quindi non c'è polarità ?


Per gli altri problemi posso quantomeno provare... ma mi seccherebbe sbagliare i condensatori e magari fare qualche casino...
tnx

Dario

domenico carvetta

unread,
Sep 28, 2016, 1:08:59 PM9/28/16
to souliss-it

Ci guardo ma penso che non debbano avere polarità. 100 nF è ok.


--
Hai ricevuto questo messaggio perché sei iscritto al gruppo "souliss-it" di Google Gruppi.
Per annullare l'iscrizione a questo argomento, visita https://groups.google.com/d/topic/souliss-it/DmCpEAnXnjw/unsubscribe.
Per annullare l'iscrizione a questo gruppo e a tutti i suoi argomenti, invia un'email a souliss-it+unsubscribe@googlegroups.com.

Per postare in questo gruppo, invia un'email a souli...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages