PROGETTO #84 • ARDUINO + ESP8266 + WIFI

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.

Difficoltà Intermedia
Tempo 40–60 minuti
Concetti WiFi • ESP8266 • Comandi AT

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.
🎯 Cosa imparerai
  • 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.
💡 Concetto chiave

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

Arduino UNO
Modulo ESP8266 ESP-01 o NodeMCU
LED
Resistenza 220Ω
Breadboard
Cavi jumper
🧰 Kit Arduino consigliato

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.
📚 I miei libri su Arduino

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

LED
  • 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.

Schema Arduino UNO ESP8266 ESP-01 WiFi
⚠️ Attenzione all’alimentazione dell’ESP8266

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.

📡 Che cosa sono i comandi AT?

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

  1. Inserisci SSID e password nel codice.
  2. Collega Arduino al computer.
  3. Carica lo sketch.
  4. Apri il Monitor Seriale.
  5. Imposta la velocità indicata dalla comunicazione seriale di Arduino.
  6. Controlla le risposte inviate dal modulo ESP8266.
✅ Cosa dovresti osservare

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 → comandi seriali → ESP8266 → router WiFi

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

🌐 Web server Creare una pagina web ospitata dal sistema e accessibile dalla rete locale.
💡 LED via browser Accendere e spegnere un LED direttamente da una pagina web.
📊 Dashboard web Visualizzare valori provenienti dai sensori direttamente nel browser.
📱 Controllo da smartphone Utilizzare il telefono per inviare comandi tramite WiFi.
🚀 Passaggio successivo

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.