venerdì 22 settembre 2017
Home / Hardware / ESP8266 Guida Completa – Parte 3: Collegare ESP al PC

ESP8266 Guida Completa – Parte 3: Collegare ESP al PC

Terza puntata della nostra avventura nel mondo dell’ ESP8266: colleghiamo al PC il nostro microcontrollore.

Prima parte

Seconda parte

Collegare ESP8266

Abbiamo due strade per poter comunicare con il microcontrollore del nostro ESP8266: o via Wifi, o collegandoci via seriale da un computer. Questa seconda via serve anche per installare uno dei vari firmware alternativi che permettono di usare in maniera molto più amichevole questa piccola scheda.

Vediamo quindi di approfondire questa strada, ma… Andiamo con ordine:

Materiale necessario al collegamento

Nel caso in cui, come consigliato nelle precedenti puntate, vi siate procurati un modulo NodeMCU, saltate pure al capitolo Collegamento USB, in quanto possiede già, a bordo della scheda, tutto quel che serve al suo funzionamento e programmazione: un convertitore da 5V a 3,3V, per potere usare la tensione della USB e un adattatore USB / seriale, in modo da alimentare e comunicare con il modulo semplicemente collegando un comune cavetto USB – microUSB , tipo quello per cellulari, tra il pc e la Nodemcu..

Per gli altri modelli e versioni, o comunque per completezza, continuate invece a leggere:

Parlando in linea generale, per collegare via cavo un ESP8266 al computer, serve una porta seriale.
Quindi, o possedete un vecchio computer dotato di seriale (volendo Raspberry ha la seriale su GPIO) o sarà necessario un adattatore da USB a seriale TTL. Il modulo dovrà essere alimentato anche a 3,3V in corrente continua, dovrete quindi trovare il modo più pratico per farlo (anche qui Raspberry può essere utile, offrendo tale tensione sul suo GPIO, ma occhio agli assorbimenti in corrente).

Avete quindi necessità di risolvere questi due problemi (alimentazione e seriale). Si possono usare due piccoli circuiti: un convertitore DC/DC e un adattatore seriale/USB TTL.
Il primo serve a ottenere i 3,3V in corrente continua da tensioni continue più semplici da ottenere con batterie o alimentatori, come quelli USB da parete, diffusi e economici, per alimentare il nostro modulo nel suo funzionamento. Il secondo serve per poter programmare l’ESP dalla USB. Esistono convertitori che forniscono anche la tensione di 3,3V, per alimentare il modulo durante la programmazione dello stesso sempre tramite la USB. Esempi da Amazon:
convertitore dc-dc
adattatore USB seriale

schema collegamento

Fate particolare attenzione a non dare mai 5V (o comunque più di 3,3V) alla scheda, sia in alimentazione, sia con la connessione dati (alcuni adattatori, come quello linkato sopra, hanno un ponticello per selezionare la tensione). Altrimenti la danneggereste in modo irriparabile!

Modalità di boot

I moduli realizzati con ESP8266 possono essere avviati in 2 (anzi 3) modalità di funzionamento diverse, a seconda dei segnali forniti a specifici pin al boot:

  • Bootloading (o UART): è la modalità per caricare firmware e programmi dalla seriale
  • Usage (o FLASH): il chip esegue il programma caricato nella memoria

Esisterebbe una terza modalità: SDIO, in cui dovrebbe eseguire quanto caricato su una scheda SD, ma non ho trovato un modulo ESP dotato di slot SD e forse non è supportata nemmeno dai firmware.

Per selezionare la varie modalità, si deve fare in modo che alcuni pin siano a livello logico ALTO, BASSO o non collegati (NC). Occorre tenere conto di questo se si dispone di pochi pin e li si vuole utilizzare anche nella fase di funzionamento.

Modalità GPIO 0 GPIO 2 GPIO 15
Bootloading – UART BASSO NC o ALTO BASSO
Uso – FLASH ALTO NC o ALTO BASSO
SDIO NC NC ALTO

Ove non ci fosse il GPIO15 (MTDO). come su ESP-01 che ha solo 8 piedini, la tabella di rifetimento è questa:

Modalità GPIO 0  GPIO 2
Bootloading – UART BASSO ALTO
Uso – FLASH ALTO ALTO

La scheda tipo NodeMCU non necessita, invece, di collegamenti particolari ai pin: è dotata di due micro pulsanti: RST (per resettare la scheda) e FLASH (per impostarla in programmazione firmware. In realtà, questa modalità viene ora gestita automaticamente via software, non è quindi necessario, limitatamente a questa versione, fare collegamenti particolari o premerei il tasto, per flashare firmware e programmi).

Collegamento USB

Bene, ora, perchè il pc riconosca il dispositivo, occorre prima installare il driver dell’adattatore seriale / USB utilizzato. Nel caso del kit di sviluppo Nodemcu è già a bordo della scheda, e molto probabilmente sarà il CH341, scaricabile qui, altrimenti potreste avere altri tipi di adattatore, non è molto importante il tipo, basta che installiate il driver corretto per il chip contenuto nel vostro adattatore, dopodichè il computer lo riconoscerà come una porta seriale supplementare.

Verificate come viene nominata questa porta seriale su USB: vi servirà poi per impostare la connessione.

Software

Quindi, se avete collegato il vostro ESP8266 alla USB del pc, tramite cavi o adattatori vari, ci serve ora del software per comunicare con esso.

Terminale

O, per esteso, “programma di emulazione terminale su porta seriale”. Ve ne sono moltissimi, il funzionamento è praticamente lo stesso per tutti: va impostata la porta, la velocità e i parametri di connessione. Dopodichè si potrà “parlare” con il vostro modulo o scheda ESP8266. Scegliete quindi quello che più vi aggrada, alcuni sitemi operativi ne hanno uno di serie, io consiglio MobaXterm perchè, oltre a fare da terminale seriale, consente di connettersi anche in SSH/MOSH, ha SFTP, server grafico X11 e editor integrati.. Insomma è uttilissimo anche nell’uso con RaspberryPi.

Comunque, qualsiasi sia il vostro terminale, impostatelo per usare la porta seriale corretta (spesso presa in automatico), velocità 115200 baud (su alcuni modelli, come i miei, tale modalità non funziona, dipende dalla versione del firmware, nel caso, provate 9600 o 57600), 8 bit, bit di stop 1, nessuna parità e nessun controllo degli errori.

Con questi parametri, provate a connettervi. Se ottenete un errore di connessione, controllate i collegamenti al modulo e all’adattatore, se lo avete utilizzato.

Se invece vi connettete ma non ottenete nessuna scritta, probabilmente siete sulla buona strada.
Usate il reset per farla ripartire e leggere eventuali intestazioni.
Come interagire con l’ESP8266, dipende dal firmware che ha a bordo. Infatti, nel firmware c’è l’interprete dei comandi. Ne esistono diversi, tra cui comandi AT (default del produttore), Nodemcu (che usa il linguaggio lua, default delle schede Nodemcu), Micropython, Basic, Visualbasic, Arduino, ecc..
Voi scrivete un comando, date invio, e l’ESP scriverà la risposta, come se steste chattando con un amico (o forse un bot) lontano. Ad esempio, nel caso del firmware del produttore (AT) basterà digitare AT per ricevere “Ok”.

Oppure print “ciao” o print (“ciao”) ti faranno salutare dall’ ESP8266 rispettivamente in lua (firmware Nodemcu) o in MicroPyton.MobaXterm

I comandi AT del firmware di default non rendono molta giustizia a questo Hardware, relegandolo a un lontano parente di un modem.. Anche se permettono, volendo, di effettuare richieste HTTP GET, che sono sufficienti a usare un servizio cloud per l’IoT come ThingSpeak. Però, è grazie ai firmware alternativi che questo piccolo gioiellino esprime il suo meglio. Dobbiamo quindi imparare bene come caricare i vari firmware.

Addirittura può capitare che il vostro modulo non abbia alcun firmware a bordo.
Vediamo allora che si va a scrivere un firmware (e i programmi) nella memoria dell’ESP8266.

Firmware

Possiamo usare questo comodo programma per PC: Nodemcu Flasher.nodemcuflasher1

Una volta aperto, possiamo visualizzare 5 diversi pannelli: Operation, Config, Advanced, About, Log.
Non temete, per cominciare, vanno benissimo le impostazioni che prende in automatico, per ora vi basti sapere che in Advanced potete impostare le caratteristiche del vostro modulo ESP8266
1

Nel pannello Config potrete impostare il firmware da caricare, mettendo o togliendo le relative spunte (NodeMCU è integrato nel programma, altri li potrete scaricare e inserire come file).
2

scegliete quindi il vostro firmware e premete Flash(F). Compariranno gli indirizzi MAC e il QRCode, e la barra di progresso mi mostrerà l’andamento dell’ operazione.

Ricordatevi però di collegare i pin in modalità aggiornamento firmware prima di alimentare l’ESP8266. Se avete la Nodemcu, anche questa operazione non è necessaria, in quanto è impostata automaticamente via software, non dovrete fare nulla.
3

Un altro programma che potreste trovare utile è ESPlorer, un IDE per lua, MicroPython e comandi AT, che integra un terminale seriale, molto comodo in abbinata con ESP8266.

Ho parlato di PC, ma nulla vi vieta di utilizzare un MAC o un Raspberry o un altro sistema linux per gestire il vostro ESP8266.
In questo caso, ricorreremo al terminale e a Python, con esptool.
Ecco di seguito la procedura su Raspberry Pi, per pc Linux e Mac, si procederà in modo analogo, adattando i parametri quali, ad esempio, il nome della porta. Naturalmente, il metodo funziona, volendo, anche con i pc Windows.
Apriamo quindi un terminale sul Raspberry e digitiamo:
pip install esptool
per installare esptool.
Se non avete pip già installato sul vostro sistema, prima mettetelo, con:
apt-get install python3-pip

Bene! ora con esptool.py abbiamo il programma che comunica con l’ESP8266.
Ad esempio potete cancellare il firmware contenuto con:
python esptool.py --port /dev/ttyUSB0 erase_flash
Mentre per caricare un firmware:
python esptool.py --port /dev/ttyUSB0 --baud 460800 write_flash --flash_size=detect 0 nomedelfirmware.bin

Potete approfondire tutte le potenzialità di questo strumento consultando l’help, digitando:
python esptool.py -h

Ottimo! Ora potete cominciare a sperimentare con l’ESP8266.
Dalla prossima puntata, analizzeremo i vari firmware più diffusi, utilizzati e utili.
Molte guide riportano l’uso di ESP8266 con il firmware Arduino, come se fosse la migliore alternativa. Niente paura: non dovrete per forza imparare il linguaggio di Arduino per usare proficuamente ESP8266: è solo un “retaggio culturale”: gli utilizzatori di ESP8266 provengono dal mondo dei PIC e spessissimo conoscono già Arduino. ESP gli permette di avere un Arduino più piccolo, più economico, con WiFi integrato. Ma altri linguaggi offrono almeno le stesse opportunità (se non maggiori). Ne faremo una veloce panoramica.

Continuate a seguirci, anche sui nostri social: Facebook , TwitterYouTubeGoogle+Telegram

A proposito di Zzed

Zzed
Appassionato di informatica alternativa, ma perenne novellino di Linux..

Vedi Anche

ESP8266 Guida Completa – Parte 4: Comandi AT

Eccoci, dopo la pausa estiva, a tornare a parlare di ESP8266 e dei suoi comandi …

Powered by themekiller.com