ESP8266 e risparmio energetico – Consigli e howto

ESP8266 e risparmio energetico

Torniamo a parlare di schede e tecnica di programmazione, affrontando il tema del risparmio energetico sulla board ESP8266.

Il modo più semplice per risparmiare energia su un ESP8266 consiste ovviamente nello spegnere la board quando non viene utilizzata, ed accenderla quando necessario. Un esempio classico per un comportamento del genere consiste nel progettare un notificatore per la consegna della posta, una sensore perl l’apertura delle porte e così via. L’apertura di una cassetta postale o l’apertura / chiusura di una porta attiva un interruttore che collega la tensione Vcc a 3V3, conentendo al nostro ESP8266 di avviarsi per eseguire i compiti ad esso assegnati.  Questo sembra il comportamento ideale per la board ESP8266-01, dal momento che non monta a bordo un gpio16 esplicito, e risulta pertanto difficile da usare in modo consueto quando si trovi in stato di deep-sleep.

ESP8266 e risparmio energetico
Tuttavia, questo escamotage non funzionerà se l’interruttore viene disattivato prematuramente, prima che ESP8266 abbiacorrettamente terminato le proprie attività. IN altri termini, occorre trovare un sistema per mantenere l’ESP in funzione fino al termine del lavoro. Ma questo significa anche mantenerlo sotto tensione, quindi il l’utilizzo della funzione “sonno profondo” appare in questo caso l’unica opzione.

In fase di deep-sleep, il consumo di corrente è di circa 20uA. Non è molto, ma può essere ulteriormente ridotto a 3uA. Per tale ragione non useremo il normale deep sleep, ma spegneremo l’ESP8266 dichiarando LOW il pin CH_PD (= chip power down), per spegnerlo, mentre un interruttore (o un’uscita HIGH da un sensore) si occuperà di alimentare l’ESP8266 e un pin gpio verrà utilizzato per mantenerlo acceso per tutto il tempo necessario. Si tratta di un concetto espresso e mutuato dall’utente  “barnabybear“.

L’hardware necessario è il seguente:

ESP8266 e risparmio energeticoIl circuito finziona nel modo seguente.
Quando l’interruttore si chiude, il pin CH_PD, così come GPIO0 e GPIO2, vengono portati a livello HIGH, e l’ESP8266 si accende. Una volta avviato, GPIO0 dovrebbe essere impostato su  HIGH via software, in modo che anche il pin CH_PD rimanga HIGH, anche quando l’interruttore si apre di nuovo. L’ESP8266 esegue il lavoro preposto, e al termine il programma imposta GPIO0 a LOW, e il chip si spegne. GPIO2 è collegato direttamente all’interruttore attraverso un sensore, in modo che possa sempre leggere lo stato dello switch o del sensore.

Il programma si presenta in questo modo:

A rigor di termini, l’ultima riga di programma ESP.deepsleep (0); non è strettamente necessaria. Serve solo per mettere l’ESP in stato di deep sleep nel caso in cui l’interruttore rimanga attivato.

Occorre infine ricordare che questa tecnica richiede che il modulo ESP8266 NON abbia già un resistore di pull up integrato per CH_PD.
L’ESP8266-01 originale è OK, tuttavia, ESP8266-01S ha resistenze integrate.
I moduli privi di pullup interni sono i seguenti: ESP-01, ESP-07, ESP-12E, ESP-12F, ESP-12N.

I moduli con pullup interni sono invece i seguenti: ESP-01S, ESP-07S, ESP-12S.

Link utili:

(l’articolo è stato tradoto e rielaborato dal seguente link)

 

 

 

 

Definire ciò che si è non risulta mai semplice o intuitivo, in specie quando nella vita si cerca costantemente di migliorarsi, di crescere tanto professionalmente quanto emotivamente. Lavoro per contribuire al mutamento dei settori cardine della computer science e per offrire sintesi ragionate e consulenza ad aziende e pubblicazioni ICT, ma anche perche’ ciò che riesco a portare a termine mi dà soddisfazione, piacere. Così come mi piace suonare (sax, tastiere, chitarra), cantare, scrivere (ho pubblicato 350 articoli scientfici e 3 libri sinora, ma non ho concluso ciò che ho da dire), leggere, Adoro la matematica, la logica, la filosofia, la scienza e la tecnologia, ed inseguo quel concetto di homo novus rinascimentale, cercando di completare quelle sezioni della mia vita che ancora appaiono poco ricche.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.