Comunicazione seriale tra Arduino e ESP8266 – Seconda parte

Comunicazione seriale tra Arduino e ESP8266 – Seconda parte

Colleghiamo esp a Arduino secondo lo schema illustrato nel precedente articolo e avviamo il serial monitor.
Adesso siamo pronti ad inviare il primo comando. I diversamente giovani riconosceranno i comandi che veniva usati per configurare i primi modem.
La lista completa dei comandi può essere raggiunta qui.

I più usati sono i seguenti:

COMANDIAT

Il primo comando è AT. Se tutto va bene dovremmo leggere la risposta del nostro ESP “OK”.

Proseguiamo facendoci dire la versione con il comando AT+GMR. Questo comando è importante per conoscere la versione dell’SDK installata. In ogni caso i comandi principali sono gli stessi per ogni versione. La risposta sarà del tipo:

<AT version info>
<SDK version info>
<compile time>
OK

Il comando AT+UART serve a cambiare baud rate e cioè la velocità di trasmissione sul canale seriale.
Ad esempio il comando AT+UART=9600,8,1,0,0 porta a 9600 tale velocità che di solito nelle ultime versioni è 115200.
Per le comunicazioni tra un modulo ESP e un Web Server (il che accade, ad esempio, se il modulo serve a collegare un sensore a domoticz) è meglio che la velocità sia abbassata e settata a 9600.
La risposta per ogni comando andato a buon fine è sempre “OK”. Questo comando è stato reso deprecato e sostituito nelle ultime versioni da AT+UART_CUR  (setta il baud rate attuale ma non lo salva sulla flash memory) e AT+UART_DEF (setta il baud rate attuale e lo salva sulla flash memory).

Il comando AT+GSLP=

Proseguiamo con i comandi che hanno a che fare con il WIFi.
Il comando AT+CWMODE? ci dice in che modalità è impostata l’antenna e restituisce tre possibili valori:
1 : station mode 2: softAP mode 3 : softAP + station mode
Il mode può essere impostato utilizzando il comando AT+CWMODE=
Per i progetti di sensori e datalogger in generale occorre scegliere la modalità 1.

Il comando AT+CWLAP fa un elenco delle reti wifi disponibili a cui il modulo può collegarsi.

Il comando AT+CWJAP permette al modem di connettersi al Wifi.
Il comando completo è: AT+CWJAP =”abc”,”0123456789″ dove “abc” è la SSID e 0123456789 la password.
Il comando per disconnettersi dalla rete è AT+CWQAP

Passiamo a comandi per la gestione della connessione TCP.
Il comando AT+CIPMUX=
abilita il tipo di connessione
dove i modi sono i seguenti:
0 single connection
1 multiple connection

Il comando AT+CIPSTART=,,[,,][,] avvia la connessione TCP/UDP su un determinato socket.
Esempio:
AT+CIPSTART=”TCP”,”192.168.101.110″,1000

Una volta aperta la connessione si può cominciare ad inviare i dati con il comando:
AT+CIPSEND
Questo comando ha una duplice sintassi a seconda che la connessione sia multipla AT+CIPSEND=, o no AT+CIPSEND=
è la lunghezza dei dati in byte (il massimo è 2048)
Vediamo un esempio.
Il seguente comando invia una richiesta http ad un Web Server (che nella fattispecie ospita domoticz) sul canale 1.
La lunghezza complessiva dei dati è 94.

AT+CIPSEND=1,94
GET /test/json.php?marca=fiat HTTP/1.1 //38 byte
Host: 192.168.1.10 //18 byte
Connection: keep-alive //22 byte
Connection: close //17 byte
User-Agent: Arduino-nano //24 byte

Passiamo al comando per chiudere la connessione:
AT+CIPCLOSE= nel caso di connessioni multiple
e AT+CIPCLOSE nel caso di connessione singola.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.