MicroWakeUpper – Come gestire il DeepSleep su ESP8266

microwakeupper esp32

Microwakeupper è un hat per la scheda ESP8266 che consente di gestire e pilotare il sistema di risparmio energetico caratteristico della SBC.

Una delle funzioni fondamentali della scheda ESP8266 è il sistema di risparmio energetico denominato con poca fanntasia Deep Sleep.

ESP8266 è in grado di gestire modalità di risparmio energetico di “sonno leggero” e “sonno profondo”.

In modalità di sospensione leggera, le periferiche digitali, la maggior parte della RAM e le CPU sono sincronizzate e la tensione di alimentazione è ridotta. All’uscita dal sonno leggero, le periferiche e le CPU riprendono a funzionare. il loro stato interno viene preservato.

In modalità di sospensione profonda, le CPU, la maggior parte della RAM e tutte le periferiche digitali con clock dipendente daa APB_CLK sono spente. Le uniche parti del chip che possono ancora essere accese sono:

  • Controllore RTC
  • Periferiche RTC
  • Coprocessore ULP
  • Memoria veloce RTC
  • Memoria lenta RTC

Il risveglio dalle modalità di sonno profondo e leggero può essere effettuato utilizzando diverse fonti. Queste sorgenti possono essere combinate, e in questo caso il chip si riattiverà quando una qualsiasi delle sorgenti viene attivata. Le origini di riattivazione possono essere abilitate utilizzando le API esp_sleep_enable_X_wakeup e possono essere disabilitate utilizzando l’API esp_sleep_disable_wakeup_source(). Le sorgenti di risveglio possono essere configurate in qualsiasi momento prima di entrare in modalità di sospensione leggera o profonda.

Inoltre, l’applicazione può forzare modalità di spegnimento specifiche per le periferiche e le memorie RTC utilizzando l’API esp_sleep_pd_config().

Una volta configurate le origini di riattivazione, l’applicazione può entrare in modalità di sospensione utilizzando le API esp_light_sleep_start() o esp_deep_sleep_start(). A questo punto l’hardware sarà configurato in base alle sorgenti di riattivazione richieste e il controller RTC si spegnerà o spegnerà le CPU e le periferiche digitali.

Se è necessario mantenere la connessione WiFi, abilitare la sospensione del modem WiFi e abilitare la funzione di sospensione automatica della luce (API di gestione dell’alimentazione). Ciò consentirà al sistema di riattivarsi automaticamente dallo stato di sospensione quando richiesto dal driver WiFi, mantenendo così la connessione all’AP.

Il modulo RTC IO contiene la logica per scatenare la riattivazione quando uno dei GPIO RTC è impostato su un livello logico predefinito. RTC IO fa parte del dominio di alimentazione delle periferiche RTC, quindi le periferiche RTC verranno mantenute accese durante il sonno profondo se viene richiesta questa sorgente di riattivazione.

esp8266 block diagram

 

Che cos’è?

È necessario il MicroWakeupper Battery Shield se si desidera riattivare o accendere il proprio ESP/Wemos a causa di un evento esterno (ad esempio un interruttore, un pulsante o un sensore PIR). Non appena si verifica un evento esterno, MicroWakeupper riattiva la scheda ESP/Wemos dal sonno profondo, o semplicemente lo accende. Il pin A0 è collegato – può essere scollegato – a V-Batt per misurare la tensione attuale della batteria. Il MicroWakeupper e la scheda ESP/Wemos sono alimentati da una batteria LiPo standard (protetta) (XH-Header). L’LDO interno (AP2112K) si occuperà dell’alimentazione di tensione di 3,3 V.

A cosa serve?

Il MicroWakeupper alimenterà i progetti a batteria per anni. Il sistema ESP/Wemos si riattiverà o si accenderà (e consumerà corrente) solo se l’interruttore, il pulsante o il sensore PIR collegati sono stati attivati/disattivati. Durante il resto del tempo l’ESP è in modalità di sospensione profonda o (opzionalmente – J2 interrotto) completamente spento.

Consumo attuale

Predefinito – Jumper J1 non tagliato (Wemos in DeepSleep): ~254uA (0,254mA)

Jumper J1 tagliato (Wemos spento – no DeepSleep): ~55uA (0,055mA)

Se non si ha bisogno della misurazione VBatt (J2 tagliato) è possibile ridurre la corrente: ~7uA (0,007mA)

(Misura eseguita a VBatt 3,7V)

Per ridurre ulteriormente i consumi è possibile dissaldare il LED di bordo.

esp32 wemos

Cosa lo rende speciale?

Il MicroWakeupper è la soluzione plug and play per sistemi ESP8266 o Wemos qualora si desideri aggiungere un pulsante, un interruttore o un sensore PIR al proprio progetto. La scheda supporta due modalità di commutazione per comportamento normalmente aperto o normalmente chiuso. Si occupa anche del retriggering e dell’antirimbalzo dei pulsanti.

Per ulteriori informazioni e per la libreria MicroWakeupper ESP8266 per Arduino, procedere sul link https://github.com/tstoegi/MicroWakeupper (…e seguire l’autore Tobias Stöger su twitter @tstoegi)

Questo NON è un kit: la scheda MicroWakeupper viene fornita completamente assemblata (senza header e Wemos D1 mini). L’ultima revisione del progetto è disponibile su Tindie al prezzo di 8,15 dollari, e la documentazione è disponibile su Github.

Iscrivetevi ai nostri gruppi Telegram…

… e non dimenticate di farlo anche sui social!

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.