In questo articolo si caricherà il firmware NodeMCU sul nostro ESP8266 per renderlo facilmente utilizzabile dall’Arduino IDE.
Come illustrato nei precedenti articoli, il nostro caro e fedele ESP8266, nella versione cheap ESP01 ha bisogno di alcuni accorgimenti per essere direttamente utilizzato. In particolare, l’ostacolo elettricamente maggiore consiste nel differente livello logico di funzionamento rispetto alle board Arduino-like: 3,3 V dell’ESP01 non sono infatti compatibili con i 5 V con cui Arduino lavora. Abbiamo visto alcuni accorgimenti per garantire un corretto funzionamento, ed ora non ci resta altro da fare se non utilizzare il nostro modulo wifi!
Per rendere piacevole l’esperienza di utilizzo, soprattutto per chi non ha molta esperienza in questi ambiti, ecco qui una piccola spiegazione per caricare un firmware capace di semplificare molto l’utilizzo, il firmware NodeMCU.
L’ESP01 ha due modalità di funzionamento, attivabili in funzione della configurazione dei pin utilizzata. In particolare:
Modalità | GPIO-0 | EN | RST |
Bootloading | LOW | HIGH | FLOAT o HIGH |
Usage | FLOAT | HIGH | FLOAT o HIGH |
In modalità Bootloading si permette all’ESP01 di essere flashato, caricando firmware o sketch di Arduino. Per fare ciò si portano al livello logico basso il pin GPIO-0, al livello logico alto il pin EN, e mantenendo al livello logico alto o comunque non connesso a nulla il pin di RST. In questa modalità l’ESP01 non esegue nessun comando, rimanendo in attesa di un caricamento da parte di un host esterno come il pc.
In modalità Usage non è possibile caricare alcun nuovo firmware o codice, permettendo così all’ESP01 di eseguire i comandi/programmi precedentemente flashati. In questa modalità si può usare il pin GPIO-0 e si mantiene al livello logico alto il pin EN e al livello logico alto o comunque non connesso a nulla il pin di RST.
Il pin EN serve nel caso in cui ci siano più ESP01 collegati sulla stessa linea di trasmissione dati: in questo caso, si abilità singolarmente un modulo wifi alla volta, proprio come si farebbe in un sistema MISO-MOSI.
Il pin RST serve per riavviare l’esecuzione dello sketch caricato sull’ESP01, utile in molte circostanze: ad esempio, implementando nel circuito un semplice pulsante, è possibile riavviare l’esecuzione del programma in maniera facile e veloce.
Utilizzeremo il convertitore USB-TTL discusso nel precedente articolo per interfacciarci con il computer, utilizzando il seguente schema:
Effettuati i collegamenti, è possibile connettere il convertitore USB-TTL al pc. Nel farlo utilizziamo inizialmente la modalità Usage dell’ESP01 per condurre alcuni semplici test.
Se infatti si è svolto tutto regolarmente, una volta alimentato il nostro dispositivo è possibile andare a controllare tra le connessioni wifi dal pc per constatare una new entry nell’elenco: avrà un nome strano e forse difficile da associare all’ESP01, ma ce lo ritroveremo proprio li, tra le connessioni disponibili!
Nello stato attuale il modulo si presenta come un access point, gestibile attraverso i comandi AT. Proviamo ad aprire il monitor seriale dell’IDE di Arduino, senza caricare alcun codice. Impostiamo, nella finestra del monitor seriale, l’aggiunga dei caratteri di fine riga e di ritorno a capo (NL & CR) con una velocità di comunicazione uguale a quella del modulo wifi di default, ovvero di 115200 baud. In questo modo la comunicazione sarà perfettamente interpretabile sia dal monitor seriale che dal modulo.
Se si visualizzano caratteri strani, controllare ed eventualmente modificare le impostazioni sopra descritte dovrebbe risolvere il problema.
Come primo test, è possibile inviare il comando “AT” nella riga di comando che si trova nella parte superiore del monitor seriale. Nel caso in cui non ci fossero problemi di connessione e/o comunicazione, il modulo ci risponderà con un secco ma piacevole “OK” confermandoci di essere perfettamente attivo e funzionante.
Con i comandi AT è possibile effettuare diverse operazioni, come la verifica della versione del firmware con il comando “AT+GMR” o la verifica di quale sia l’indirizzo IP assegnato al modulo con il comando “AT+CIFSR”. Un elenco dettagliato ed esaustivo dei comandi AT utilizzabili è fornito qui.
È evidente che lavorare con questi comandi a stringa non sia molto pratico, bisogna conoscere o ricercare il comando speicifico per le singole esigenze. Ecco che entra in gioco il firmware NodeMCU! Grazie ad esso possiamo utilizzare l’ESP-01 comandandolo con la stessa sintassi di Arduino, risultando più semplice da comandare e gestire.
Per ottenere un ESP-01 con firmware NodeMCU, è necessario avere il firmware (preferibilmente all’ultima versione stabile) che potete trovare qui e un programma per eseguire il flash, scaricabile qui. Dai siti riportati è possibile seguire i pochi passi che permettono il caricamento del firmware, ricordando di mantenere il modulo nello stato di bootloading durante il processo.
Una volta caricato il firmware, bisogna adattare queste modifiche anche sul lato dell’IDE di Arduino, in modo tale da rendere riconoscibile il modulo. Per fare ciò, nella schermata dell’IDE di Arduino, aprire “File” -> “Impostazioni” ed inserire
http://arduino.esp8266.com/stable/package_esp8266com_index.json
in “Additional Boards Manager URLs”. In questo modo è possibile accedere direttamente alle repository online delle librerie (utile anche per altri dispositivi).
Successivamente, aprire “Strumenti” -> “Scheda” -> “Boards Manager” ed installare “esp8266 by ESP8266 Community”, ora possibile in quanto abbiamo aggiunto all’IDE le nuove repository.
Riavviamo l’IDE per permettere l’aggiornamento delle schede e avremo completato la sua configurazione per il nostro modulo ESP-01! Sarà infatti possibile notare che in “Strumenti” -> “Scheda” sono comparse nuove schede, tra cui “Generic ESP8266 Module” che andremo a selezionare.
Da questo momento in poi potremo utilizzare il modulo ESP8266, caricando ed eseguendo programmi esattamente come con l’Arduino.
A titolo d’esempio, proviamo a caricare il semplice codice di Blink. Andiamo in “File” > “Esempi” > “01.Basics” > “Blink”.
In modalità Bootloader, possiamo infine caricare il codice appena modificato. Fatto ciò, non resta che portare il modulo ESP-01 in modalità Usage e constatare l’effettiva esecuzione del codice di Blink, con l’accensione e spegnimento ad intervalli regolari di 1 secondo del led blu.
Se non si nota alcuna accensione del led. provare a modificare all’interno dello sketch la riga
pinMode(LED_BUILTIN, OUTPUT);
con
pinMode(1, OUTPUT);
Con ciò si conclude questo articolo dedicato all’installazione del firmware NodeMCU.
Se ci sono dubbi, errori o semplicemente ringraziamenti, puoi contattarci attraverso i nostri contatti social.
Puoi seguirci sul sito: www.antima.it
su Instagram: https://www.instagram.com/antima.it/
su Facebook: https://www.facebook.com/Antima.it/
su Youtube: https://www.youtube.com/channel/UC-D8OGdMdveQILJeQvh8atQ