Modulo WiFi ESP8266: Guida alla configurazione e al progetto

Indice

Programming ESP8266 WiFi Module with Arduino IDE

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

ESP8266 Pinout
ESP8266 Pinout

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.

LabelGPIOInputOutputNotes
D0GPIO16No InterruptNo PWM or I2C supportHIGH at boot used to wake up from deep sleep
D1GPIO5OKOKCommonly used as SCL (I2C)
D2GPIO4OKOKCommonly used as SDA (I2C)
D3GPIO0Pull-upOKConnected to FLASH button, boot fails if pulled LOW
D4GPIO2Pull-upOKHIGH at boot connected to on-board LED, boot fails if pulled LOW
D5GPIO14OKOKSPI (SCLK)
D6GPIO12OKOKSPI (MISO)
D7GPIO13OKOKSPI (MOSI)
D8GPIO15Pull-downOKSPI (CS) Boot fails if pulled HIGH
RXGPIO3OKRXHIGH at boot
TXGPIO1TXOKHIGH at boot debug output at boot, boot fails if pulled LOW
A0ADC0AnalogXAnalog pin

Come programmare ESP8266 con Arduino IDE?

Ci sono molti modi per programmare ESP8266:

  1. Utilizzare Arduino IDE per lo sviluppo, seguire lo stile di sviluppo di Arduino, facile da usare;
  2. Utilizzare lo sviluppo ESP8266 SDK ufficiale;
  3. 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.)

Install Arduino IDE 1.8.3
Install Arduino IDE 1.8.3

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: 

Open Preferences in Arduino IDE
Open Preferences in Arduino IDE

E quindi, inserisci il link sottostante in “Additional Boards Manager URLs”:

http://arduino.esp8266.com/stable/package_esp8266com_index.json

Setting Additional boards manager URLs in Preferences
Setting Additional boards manager URLs in Preferences

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

Open Boards Manager in Arduino
Open Boards Manager in Arduino

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

Search and Install the ESP8266 Board
Search and Install the ESP8266 Board
Installing ESP8266 packages
Installing ESP8266 packages

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

ESP8266 Boards Resource (3.1.2 Version)
ESP8266 Boards Resource (3.1.2 Version)

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 <ESP8266WiFi.h>

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:

  1. Configura WIFI in modalità Station, ovvero la nostra ESP8266 viene utilizzata come dispositivo WIFI;
  2. Passa l’ssid e la password dell’hotspot WIFI, in modo che ESP8266 possa connettersi all’hotspot;
  3. 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:

Choose Board NodeMCU 1.0 (ESP-12E Module)
Choose Board NodeMCU 1.0 (ESP-12E Module)

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

Compile and Upload the code to ESP8266 WiFi Module
Compile and Upload the code to ESP8266 WiFi Module

Iscriviti

Unisciti alla nostra lista di iscritti per ricevere aggiornamenti mensili sul blog, notizie tecnologiche, casi di studio. Non invieremo mai spam e potrai annullare l’iscrizione in qualsiasi momento.

Informazioni sull'autore

Picture of Aidan Taylor
Aidan Taylor

I am Aidan Taylor and I have over 10 years of experience in the field of PCB Reverse Engineering, PCB design and IC Unlock.

Hai bisogno di aiuto?

Torna in alto

Instant Quote