Workaround: il modulo ESP8266 non si collega piu´ alla rete Wi-Fi

Giovanni Bernardo | 6 marzo 2017
Categorie: ESP8266

Sono quelle cose per cui si impazzisce dando la colpa a questa o quell’altra cosa perdendo giorni di tempo, quando invece il problema è più banale di quanto si possa pensare! Io ci ho sbattuto su per un bel po’: il modulo NodeMCU si rifiutava di collegarsi alla rete Wi-Fi , al che, non avendo cambiato codice nè configurazione della rete di casa… ho pensato subito che potesse essere accaduto qualcosa alla scheda dal momento che ci stavo smanettando parecchio… Ho quindi acquistato dei moduli nuovi pensando di aver guastato quello in mio possesso.

Solo quando anche i moduli nuovi rifiutavano di collegarsi ho pensato bene di cercare in altre direzioni e ho scoperto che il problema non era stato causato da me (almeno in maniera diretta!).

Dopo l’ultimo aggiornamento per l’ESP8266 (versione 2.3.0) su Arduino IDE, capita che il modulo non si riesca più a collegare alla rete Wi-Fi, questo problema è documentato su Github (issue 2186).

Ci sono 2 workaround forniti dall’autore delle librerie, io ne ho utilizzato uno che ha funzionato subito: basta inserire 3 righe nel codice prima del WiFi.Begin per accendere e spegnere il modulo WiFi e far tornare tutto alla normalità. Includo qui il workaround con un po’ di configurazione minima che uso normalmente sui miei programmi: 

WiFiServer server(80); // html server su porta 80 (standard)
const char* ssid = "[IL SSID DELLA TUA RETE WIFI]";
const char* password = "[PASSWORD DELLA TUA RETE WIFI]";
 
// le seguenti 3 righe costituiscono il workwaround per l'issue 2186
WiFi.persistent(false);
WiFi.mode(WIFI_OFF);
WiFi.mode(WIFI_STA);
 
// le seguenti righe commentate sono da usare solo se si vuole assegnare alla scheda un indirizzo IP statico
//IPAddress ip(192,168,0,105); // indirizzo ip da assegnare al modulo
//IPAddress gateway(192,168,0,1); // indirizzo ip del router
//IPAddress subnet(255,255,255,0); // subnet mask
//WiFi.config(ip,gateway,subnet); // configura il modulo wi-fi per utilizzare l'IP statico
 
WiFi.begin(ssid, password); // si collega alla rete specificata 
 
while (WiFi.status() != WL_CONNECTED) 
    {
    // qui vanno i task da eseguire fino a che il modulo NON è connesso
    }
 
// a questo punto siamo connessi alla rete wi-fi, avviamo il server:
server.begin();

 

Puoi lasciare un commento, o un trackback dal tuo sito.


  1. Ancora nessun commento.

Devi essere collegato per lasciare un commento.

  1. Ancora nessun trackback
Settorezero.com e il logo Zroid™ ©2007÷2017 Giovanni Bernardo - E' vietata la copia e la distribuzione anche parziale dei contenuti di questo sito web senza l'esplicito consenso dell'autore. I contenuti di settorezero.com sono distribuiti sotto una licenza Creative Commons Attribuzione-Non Commerciale-Non Opere derivate 2.5 Italia e sono soggetti alle condizioni definite nel disclaimer. Settorezero.com e tutti i suoi contenuti sono tutelati dalla legge sul diritto d'autore per cui i trasgressori sono perseguibili a norma di legge. Settorezero fa uso dei cookie leggi l'informativa estesa. Il tema di questo sito è basato sul tema Fusion per wordpress, realizzato originariamente da digitalnature e fa uso del plugin Wassup per il computo delle statistiche. Per contattare l'autore siete pregati di utilizzare la sezione contatti. Siamo presenti anche su Facebook e, meno assiduamente, anche su Twitter - Tumblr - Google+ - Blogspot - Youtube.
Creative Commons BY-NC-ND 2.5