ESP8266 è un modulo Wi-Fi adatto a progetti IoT e domotica. Ti permette di controllare ingressi e uscite come faresti con una scheda della serie Arduino, ma con Wi-Fi. Pertanto, è ben adatto per applicazioni di domotica/IoT.
Confrontando l’ESP8266 con altre soluzioni Wi-Fi sul mercato, è un’ottima scelta per la maggior parte dei progetti “Internet of Things”. In questo articolo, introdurremo i concetti di base della scheda ESP8266, il suo schema dei pin e esempi di programmazione.
Introduzione a ESP8266
ESP8266 è un potente e versatile microcontrollore abilitato al Wi-Fi che ha guadagnato popolarità nel mondo dell’elettronica e dell’IoT (Internet of Things). Sviluppato da Espressif Systems, l’ESP8266 offre una soluzione economica per connettere i dispositivi a Internet e consentire loro di comunicare tra loro. Dispone di un modulo Wi-Fi integrato, un potente processore e pin GPIO per collegare componenti esterni. L’ESP8266 può essere programmato utilizzando vari linguaggi di programmazione, rendendolo accessibile sia ai principianti che agli sviluppatori esperti. Il suo basso consumo energetico e le dimensioni compatte lo rendono ideale per un’ampia gamma di applicazioni, tra cui la domotica, le reti di sensori wireless e i dispositivi intelligenti. Ad esempio, l’ESP8266 può essere utilizzato per creare un termostato intelligente che consenta agli utenti di controllare la temperatura delle proprie case da remoto.
Schema dei pin ESP8266

Nel diagramma dei pin, alcuni pin hanno altri usi oltre a GPIO. Ad esempio, il pin D1 non è solo GPIO5, ma anche un’interfaccia SCL, che può essere collegata al pin SCL corrispondente dello schermo LCD.
La seguente tabella mostra la corrispondenza tra le etichette sull’identificazione a bordo e i numeri GPIO, e quali pin sono meglio utilizzati nei progetti e quali pin richiedono cautela. I pin evidenziati in verde sono pronti all’uso. Quelli evidenziati in giallo possono essere utilizzati, ma richiedono attenzione in quanto potrebbero avere un comportamento imprevisto, principalmente all’avvio. I pin evidenziati in rosso non sono raccomandati per l’uso come ingressi o uscite.
| Label | GPIO | Input | Output | Notes |
|---|---|---|---|---|
| D0 | GPIO16 | No Interrupt | No PWM or I2C support | HIGH at boot used to wake up from deep sleep |
| D1 | GPIO5 | OK | OK | Commonly used as SCL (I2C) |
| D2 | GPIO4 | OK | OK | Commonly used as SDA (I2C) |
| D3 | GPIO0 | Pull-up | OK | Connected to FLASH button, boot fails if pulled LOW |
| D4 | GPIO2 | Pull-up | OK | HIGH at boot connected to on-board LED, boot fails if pulled LOW |
| D5 | GPIO14 | OK | OK | SPI (SCLK) |
| D6 | GPIO12 | OK | OK | SPI (MISO) |
| D7 | GPIO13 | OK | OK | SPI (MOSI) |
| D8 | GPIO15 | Pull-down | OK | SPI (CS) Boot fails if pulled HIGH |
| RX | GPIO3 | OK | RX | HIGH at boot |
| TX | GPIO1 | TX | OK | HIGH at boot debug output at boot, boot fails if pulled LOW |
| A0 | ADC0 | Analog | X | Analog pin |
Come programmare ESP8266 con Arduino IDE?
Ci sono molti modi per programmare ESP8266:
- Utilizzare Arduino IDE per lo sviluppo, seguire lo stile di sviluppo di Arduino, facile da usare;
- Utilizzare lo sviluppo ESP8266 SDK ufficiale;
- Utilizzare MicroPython per lo sviluppo, seguire lo stile di programmazione di Python (questo metodo deve prima bruciare un firmware speciale per la scheda);
Qui scegliamo il primo, perché la programmazione Arduino è semplice e facile da usare.
Passaggio 1: installare Arduino IDE
Scarica l’IDE dal sito Web ufficiale di Arduino: https://www.arduino.cc/en/software. La versione che sto utilizzando ora è Arduino IDE 1.8.3. (Notare che l’ultima versione di Arduino IDE 2.1.1 non può installare il pacchetto di risorse ESP8266 online.)

Passaggio 2: installare il pacchetto ESP8266
Poiché l’Arduino IDE viene utilizzato per impostazione predefinita per la scheda di sviluppo Arduino, ci sono solo risorse di sviluppo pertinenti per la scheda di sviluppo Arduino per impostazione predefinita. Per utilizzare ESP8266 in Arduino IDE, dobbiamo installare manualmente il pacchetto di sviluppo ESP8266. Ci sono due metodi di installazione: installazione online e installazione di pacchetti offline, qui scegliamo il primo.
Innanzitutto, trova la “File -> Preferences” nel menu Arduino IDE:

E quindi, inserisci il link sottostante in “Additional Boards Manager URLs”:
http://arduino.esp8266.com/stable/package_esp8266com_index.json

Successivamente, fai clic per aprire: Tools -> Board -> Board Manager.

Nel campo, inserisci e cerca “esp8266”, vedrai un pacchetto esp8266, fai clic su “Installa” per avviare l’installazione online.


Dopo che l’installazione è completa, puoi trovare tutte le risorse sulla scheda esp8266 nel menu “Tools->Board”.

Passaggio 3: Programmazione ESP8266
Qui scriviamo un semplice programma di test della connessione di rete per la scheda ESP8266, il codice del programma è il seguente:
void setup() {
Serial.begin(9600);
Serial.println("esp8266 test");
initWiFi();
}
void loop() {
Serial.println("hello esp8266");
delay(1000);
}
#include
constchar ssid[] = "xxxxx"; //WiFi Name
constchar pass[] = "xxxxx"; //WiFi Password
WiFiClient client;
//Initialize WIFI
void initWiFi()
{
Serial.print("Connecting WiFi...");
WiFi.mode(WIFI_STA); //Configure WIFI as Station mode
WiFi.begin(ssid, pass); //Incoming ssid and password of WIFI hotspot
while (WiFi.status() != WL_CONNECTED) //Waiting for successful connection
{
delay(500);
Serial. print(".");
}
Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP()); //print your own IP address
}
Note:
La funzione setup viene utilizzata per l’inizializzazione della porta seriale. Ad esempio, “Serial.begin(9600);” significa che la velocità di trasmissione iniziale della porta seriale è 9600.
La funzione loop è simile a while(1){} nella funzione main nello sviluppo di un microcontrollore, dove possiamo scrivere i codici logici del programma.
Per utilizzare la funzione WIFI, è necessario includere il file di intestazione “ESP8266WiFi.h”.
Il processo di inizializzazione WIFI include 3 passaggi:
- Configura WIFI in modalità Station, ovvero la nostra ESP8266 viene utilizzata come dispositivo WIFI;
- Passa l’ssid e la password dell’hotspot WIFI, in modo che ESP8266 possa connettersi all’hotspot;
- Leggi lo stato della connessione WIFI e attendi che la connessione abbia esito positivo.
Seleziona il modello e il numero di porta seriale della tua scheda di sviluppo ESP8266:

Ora, possiamo compilare e caricare il codice nella scheda ESP8266WiFi.





