NODEMCU ESP8266 - caduta della connessione WiFi

Ciao a tutti,
volevo segnalare un bug su questa piattaforma, che provoca la continua disconnessione della WiFi.
Come presunto da https://github.com/esp8266/Arduino/issues/5083#issuecomment-524587218, ho verificato che effettivamente eseguire con continuità una analogRead(A0) produce la disconnessione della WiFi.
Adesso provvedo a pubblicizzare questo bug sul forum del produttore, ho però ritenuto utile condividere anche quì questa notizia.

Carlo

carloroma63:
... ho verificato che effettivamente eseguire con continuità una analogRead(A0) produce la disconnessione della WiFi.

... specifica bene cosa intendi "con continuità" ... decimi di secondo, secondi, decine di secondi ?

Perché io ho decine di ESP8266 che acquisiscono da A0 ogni minuto (temperatura) e NON ho mai riscontrato il problema che segnali ... ::slight_smile:

Guglielmo

Continuamente significa che nel loop() non ho istruzioni delay(), quindi esegue circa ogni millisecondo. E' un errore mio di logica, me ne rendo conto, ma è un errore che ha portato a problemi assolutamente, almeno in apparenza, non collegati.
E' bastato mettere un delay(200) dopo la lettura per risolvere.
Il problema non riguarda A0 ma l'analogRead. Leggendo A0 in digitale non c'è alcun problema neanche leggendolo alla massima velocità possibile.

Carlo

Mah ... fare una analogRead() in un loop() chiuso senza alcun delay() è già cosa strana, farlo poi su ESP significa cercare rogna ... almeno una yield() tocca mettercela o ... il wdt reset è in agguato!

ESP ha una serie di processi suoi interni che DEVONO poter girare ... qualsiasi applicazione che entri in un ciclo stretto che non lascia sufficiente tempo al sistema, su ESP è destinata a creare problemi ...

Nel mio caso le analogRead() sono ogni 60 secondi e, con tali tempistiche, ovviamente, non ci sono problemi. :slight_smile:

Guglielmo

Il bello è che non è il wdt a scattare, quello lascia tracce inequivocabili sulla seriale già in condizioni normali, invece io non vedevo nulla se non i messaggi di log e debug che avevo messo in giro nel codice.
Abilitando il debug sulla seriale si vede invece un messaggio di disconnessione dall'AP, nulla che faccia pensare alla analogRead......

Bah, l'importante è aver capito l'origine del problema ed aver informato qualcuno che potrebbe cadere nel mio stesso errore.

Ciao.