ESP8266: come funziona?
ESP8266 Modalità di funzionamento
ESP8266 può essere utilizzato come modulo wifi esterno. Infatti, utilizzando il firmware del set di comandi AT, e collegandolo come microcontrollore, o tramite UART ad Arduino, si può instaurare una connessione wifi. ESP8266 può avere tre diverse modalità: STA, AP o entrambe.
Modalità STA (station mode)
L’ESP8266 si collega a una rete WiFi esistente. In questa modalità ESP8266 ottiene l’IP dal router a cui è collegato. Con questo indirizzo IP, e possibile configurare un Web server e permettere, a tutti i dispositivi collegati alla stessa rete wifi, di accedervi.
Modalità AC (access point)
L’Access Point è un dispositivo al quale è possibile collegarsi tramite Wi-Fi con un cellulare o un computer. L’ESP8266 crea, infatti, la propria rete WiFi e funge da hub per una o più stazioni (fino ad un massimo di 5). In questa modalità ESP8266 crea una nuova rete WiFi locale e imposta SSID e l’indirizzo IP su di essa. È così in grado di inviare pagine Web a tutti i dispositivi collegati sulla propria rete.
Varianti
I moduli ESP8266 sono disponibili in diversi formati i cui nomi vanno da ESP-01 a ESP-12. La principale differenza tra questi moduli è la forma e la distribuzione dei pin GPIO (General Purpose Input/Output). La maggior parte delle schede differisce, inoltre, per la quantità di memoria Flash per la memorizzazione di programmi e dati, e la schermatura sul SOC per schede certificate. Nella maggior parte delle versioni, l’antenna è inclusa nel circuito stampato. Tuttavia in alcuni, come ad esempio per la versione ESP-05, è necessario collegare un’antenna esterna.
Utilizzo di ESP8266 con Arduino
Sono disponibili diverse librerie per la programmazione di ESP8266 tramite Arduino. Questo è possibile anche tramite l’IDE Arduino. Per fare ciò sarà però necessaria una versione dell’IDE 1.6.4 o successiva (download). Una volta dentro l’IDE sarà necessario andare su “File”, “Impostazioni” ed in “URL di Board Manager aggiuntivi”, aggiungere l’url:
http://arduino.esp8266.com/stable/package_esp8266com_index.json
Fatto ciò nella sezione “Strumenti” e poi “Schede” e “Gestore schede” bisogna cercare e installare il pacchetto “ESP8266 by ESP8266 Community”. Fatto ciò e riavviato l’IDE, nell’elenco schede appariranno anche le ESP8266. Per caricare il codice su un ESP8266, adesso sarà sufficiente aprire l’IDE di Arduino, scrivere il programma, selezionare la scheda giusta da “Strumenti” e “Scheda” ed infine cliccare sulla freccia in alto a sinistra.
Primo codice
Come primo codice, bisogna iniziare dai collegamenti con Arduino secondo lo schema riportato nella foto sopra. È importante ricordare che ESP8266 funziona solo con logica a 3.3v, quindi i suoi pin non tollerano i 5v normalmente emessi da Arduino. È per questo necessario l’utilizzo di un convertitore logico come questo. Dopo aver collegato la nostra scheda, sarà necessario controllare, nel monitor seriale, che il baud sia su 115200, di default è 9600.
Installazione della libreria
Per scaricare la libreria basterà cliccare qui e poi, una volta dentro l’IDE, su “Sketch” e poi “#include libreria” e poi “Aggiungi libreria da file .ZIP” e selezionare il file zip appena scaricato. Al termine dell’installazione dalla sezione “File” e poi “Esempi” dopo aver trovato e selezionato “ESP8266WiFi” basterà cliccare su “WiFiClient” e si aprirà una nuova scheda con del codice. Non sarà necessario modificare nulla fatta eccezione di STASSID e STAPSK, tra virgolette sarà necessario infatti scrivere rispettivamente il nome della propria rete wifi e la password. Per le reti aperte sarà necessario lasciare le virgolette senza nulla scritto all’interno. Selezionata la giusta scheda e la giusta porta, basterà caricare il codice sulla ESP8266, attenderne il completamento, e aprire il monitor seriale.
Il monitor seriale dovrebbe mostrare qualcosa di simile. In caso contrario, sarà necessario rifare i passaggi precedenti per assicurarsi di non aver sbagliato nulla.
Letture consigliate:
- Cosa sapere per iniziare con arduino
- Arduino: ciò che era impossibile ora è alla portata di tutti
- Il Software IDE di Arduino
- Fondamenti di programmazione per Arduino
- Cos’è ESP8266?