Collegare Arduino al WiFi con ESP8266
Impariamo a collegare Arduino UNO a una rete wireless utilizzando il modulo ESP8266 ESP-01 e i comandi AT: il primo passo verso web server, dashboard e progetti IoT.
Introduzione
Dopo aver imparato a controllare Arduino tramite Bluetooth, iniziamo adesso a utilizzare una connessione WiFi.
Per farlo utilizzeremo il modulo ESP8266, uno dei componenti più conosciuti nel mondo dei progetti Arduino e IoT.
In questo primo esempio non realizzeremo ancora un vero web server: l’obiettivo è collegare correttamente il modulo alla rete wireless e verificare la comunicazione.
Questo rappresenta la base per progetti come:
- controllo di Arduino tramite browser;
- dashboard web;
- domotica;
- monitoraggio remoto;
- Internet of Things.
- come collegare ESP8266 ad Arduino UNO;
- come comunicare tramite SoftwareSerial;
- che cosa sono i comandi AT;
- come impostare ESP8266 in modalità client WiFi;
- come collegarsi a una rete wireless;
- come leggere le risposte del modulo dal Monitor Seriale.
Obiettivo del progetto
Il nostro sistema dovrà:
- avviare la comunicazione con ESP8266;
- impostare il modulo in modalità WiFi Station;
- inviare SSID e password della rete;
- tentare la connessione al router;
- mostrare le risposte dell’ESP8266 nel Monitor Seriale.
In questo progetto Arduino non gestisce direttamente il WiFi. È il modulo ESP8266 a collegarsi alla rete, mentre Arduino gli invia istruzioni attraverso una comunicazione seriale.
Materiale necessario
Un kit completo permette di avere subito a disposizione molti dei componenti utilizzati nei progetti del sito.
Vedi il kit Arduino ℹ️ Link di affiliazione Amazon: in qualità di Affiliato Amazon ricevo un guadagno dagli acquisti idonei, senza alcun costo aggiuntivo per te.Se vuoi imparare Arduino attraverso un percorso completo e progressivo puoi approfondire con i tre volumi della serie.
Volume 1 Volume 2 Volume 3 ℹ️ Link di affiliazione Amazon: in qualità di Affiliato Amazon ricevo un guadagno dagli acquisti idonei, senza alcun costo aggiuntivo per te.Schema di collegamento
- Anodo LED → Pin 13 Arduino
- Catodo LED → Resistenza → GND
Modulo ESP8266 (ESP-01)
- VCC → 3.3V Arduino ⚠️
- GND → GND Arduino
- TX → Pin 10 Arduino
- RX → Pin 11 Arduino (con partitore di tensione)
- CH_PD → 3.3V
🔧 Schema semplice partitore di tensione
- Arduino TX → Resistenza 1kΩ → nodo
- nodo → Resistenza 2kΩ → GND
- nodo → RX ESP8266
👉 così scendi da 5V a circa 3.3V
⚠️ Importante:
Il modulo ESP8266 funziona a 3.3V, non collegarlo direttamente a 5V.
L’ESP8266 può richiedere picchi di corrente relativamente elevati durante la trasmissione WiFi. Se il modulo si riavvia, perde la connessione o risponde in modo instabile, il problema potrebbe essere legato all’alimentazione.
Questa nota non modifica lo schema del progetto: serve semplicemente come indicazione diagnostica nel caso il modulo ESP-01 risulti instabile.
Librerie necessarie
Per questo progetto utilizziamo:
- SoftwareSerial → comunicazione seriale tra Arduino ed ESP8266.
La libreria è già inclusa normalmente nell’IDE Arduino, quindi non è necessario installarla dal Library Manager.
I comandi AT sono istruzioni testuali inviate al firmware dell’ESP8266. Attraverso questi comandi possiamo configurare il WiFi, collegarci a una rete, verificare lo stato del modulo e creare successivamente connessioni TCP o server web.
Codice Arduino
Prima di caricare il programma modifica queste due righe:
String ssid = "NOME_WIFI";
String password = "PASSWORD_WIFI";
Inserisci il nome della tua rete WiFi e la relativa password.
// ============================================
// Progetto 84 - Arduino + WiFi ESP8266
// Connessione WiFi base e test comunicazione
// ============================================
#include <SoftwareSerial.h>
SoftwareSerial esp(10, 11);
String ssid = "NOME_WIFI";
String password = "PASSWORD_WIFI";
void setup() {
Serial.begin(9600);
esp.begin(115200);
Serial.println("Connessione al WiFi...");
sendCommand("AT", 2000);
sendCommand("AT+CWMODE=1", 2000);
String cmd = "AT+CWJAP=\"" + ssid + "\",\"" + password + "\"";
sendCommand(cmd, 5000);
Serial.println("Connesso al WiFi");
}
void loop() {
// Nessuna azione continua
}
void sendCommand(String cmd, int timeout) {
esp.println(cmd);
long int time = millis();
while ((time + timeout) > millis()) {
while (esp.available()) {
Serial.write(esp.read());
}
}
}
Come funziona il programma
1 Comunicazione con ESP8266
Arduino crea una comunicazione seriale software:
SoftwareSerial esp(10, 11);
2 Test del modulo
Il primo comando inviato è:
AT
Serve per verificare che Arduino ed ESP8266 riescano a comunicare correttamente.
3 Modalità Station
Il comando:
AT+CWMODE=1
configura ESP8266 come dispositivo client, cioè pronto a collegarsi a un router WiFi.
4 Connessione alla rete WiFi
Arduino costruisce il comando:
AT+CWJAP
specificando SSID e password della rete wireless.
5 Lettura delle risposte
La funzione sendCommand() invia il comando all’ESP8266 e attende una risposta.
I caratteri ricevuti vengono trasferiti al Monitor Seriale tramite Serial.write().
Come provare il progetto
- Inserisci SSID e password nel codice.
- Collega Arduino al computer.
- Carica lo sketch.
- Apri il Monitor Seriale.
- Imposta la velocità indicata dalla comunicazione seriale di Arduino.
- Controlla le risposte inviate dal modulo ESP8266.
Se la comunicazione e la connessione funzionano correttamente, nel Monitor Seriale compariranno le risposte dell’ESP8266 ai comandi AT e al tentativo di connessione alla rete.
Che cosa succede realmente
Il flusso del progetto è:
Arduino invia le istruzioni, mentre ESP8266 gestisce effettivamente la comunicazione wireless.
Una volta collegato alla rete possiamo utilizzare le funzionalità dell’ESP8266 per creare sistemi molto più evoluti.
Cosa hai imparato
- come collegare Arduino al modulo ESP8266;
- come utilizzare una seconda porta seriale;
- come funzionano i comandi AT;
- come impostare ESP8266 in modalità Station;
- come inviare SSID e password;
- come leggere la risposta del modulo;
- come preparare Arduino ai primi progetti WiFi.
Varianti possibili
Ora che ESP8266 riesce a collegarsi alla rete WiFi, il passo naturale successivo è utilizzare questa connessione per creare un vero web server Arduino e controllare un LED direttamente dal browser.

