Deep sleep su ESP8266

Buongiorno, ho un problema con il modulo Huzzah ESP8266 di Adafruit.
Ho bisogno di grande precisione per un datalogger e, nel precedente set-up, utilizzando un timer TPL5110 ero arrivato a precisioni abbastanza ripetibili (su un'ora prendeva e dava circa 3 secondi in maniera casuale), ma comunque non ottimali. Ho quindi optato per l'uso di un DS3231. Mandando in deep sleep il modulo non riesco poi a farlo tornare attivo; non basta che il pin RST senta il calo di tensione proveniente dal RTC per riavviare il tutto? Alla fine verificando l'ESP ho visto che in deep sleep dal pin 16 al RST c'è passaggio di corrente, che viene interrotta al momento del reset del modulo e pensavo bastasse avere quel calo di tensione per resettare il tutto.

Vi allego foto dell'attuale set-up non funzionante

PS: la resistenza è da 1k

PPS: scusate se ho chiesto una cosa banale e stupida, ma tutto serve per imparare

L'ESP8266 non ha un vero deep sleep, semplicemente il chip si ferma e poi RIPARTE da zero, credo che non ricordi neanche le variabili in RAM. Per cui tutto il codice sta di solito nel setup().

PEr risvegliarlo RST deve essere collegato al GPIO16.

Ora tu chiedi il risveglio via interrupt su piedino e pare che non si possa fare ma sembra che ci siano altre soluzioni

In fondo sembra esserci una soluzione.

zoomx:
L'ESP8266 non ha un vero deep sleep, semplicemente il chip si ferma e poi RIPARTE da zero, credo che non ricordi neanche le variabili in RAM. Per cui tutto il codice sta di solito nel setup().

PEr risvegliarlo RST deve essere collegato al GPIO16.

Ora tu chiedi il risveglio via interrupt su piedino e pare che non si possa fare ma sembra che ci siano altre soluzioni
Deep sleep and wake up using interrupt · Issue #1488 · esp8266/Arduino · GitHub
In fondo sembra esserci una soluzione.

Con il deep sleep in genere non ho grossi problemi, infatti lasciando collegato il GPIO16 al RST tutto funziona a dovere (va in deepSleep per il tempo che imposto - riparte - torna a dormire) se però imposto deepSleep(0) per tenerlo sempre in sonno tranne al momento dell'allarme (impostato per le prove ogni minuto) non torna affatto. Con il modulo in deep sleep l'unico pin che reagisce è quello di reset... l'orologio quando raggiunge l'allarme abbassa la tensione e credevo questo bastasse a riavviare il modulo, ma ne con una resistenza di pull up ne senza resistenze ottengo ciò che voglio. Ho provato pure a portare il segnale dall'orologio al RST tenendo collegati GPIO16 e RST tra di loro ma a quel punto il modulo si resetta ininterrottamente.

Cioè non capisco proprio perché il segnale LOW che arriva dall'orologio non riesce a riavviare il modulo

Intanto grazie per il remind alla discussione

La issue su Github parla proprio di come realizzare quello che vuoi fare tu. Ci sono delle proposte ma non mi è sembrato che qualcuno le abbia provate, quando le hanno provate sembra non abbiano funzionato. L'ultimo post usa direttamente l'accensione (il pin power mi sembra), il che è praticamente lo stesso.

Se puoi permetterti un aumento dei consumi potresti svegliare un po' prima l'ESP, sincronizzare l'ora con NTP e quindi aspettare al secondo il momento che ti serve.

Collegalo così

Anzi no, perchè il SQW rimane basso fino a che non lo disabiliti.

Quindi il collegamento corretto è il seguente

Grazie Brunello. Mi procuro il necessario (non ho ne il transistor ne il condensatore al momento) e implemento.

Riprendo il discorso perché sono arrivati finalmente i pezzi (ho avuto problemi infiniti con amazon) e ho provato a montare il tutto, ma non va. Al secondo 5 di ogni minuto non succede nulla, mentre mi aspetterei un bel reset del sistema. Allego foto e spero sia "semplicemente" un mio errore...

Grazie per l'eventuale risposta