Per utilizzare ESP8266 con Arduino-IDE è necessario installare, oltre all'ambiente di sviluppo standard, il compilare e le librerie specifiche (nota 1).
La procedura è stata testata solo su Debian Bullseye, Debian Bookworm, M$ Windows 10 e M$ Windows 11, ma dovrebbe funzionare anche con altri sistemi operativi.
Innanzitutto è necessario scaricare le informazioni corrette per il "Gestore schede": File → Impostazione → URL aggiuntive, specificando https://arduino.esp8266.com/stable/package_esp8266com_index.json (nota 2)
Occorre quindi installare il software necessario: Strumenti → Scheda → Gestore Scheda e selezionare ESP8266:
Infine selezionare la scheda. Quella indicata nell'immagine seguente è in genere adatta per tutte le schede simile a quella della fotografia di apertura, senza marca e/o non meglio definita tra le altre voci:
Potrebbe non venir mostrata alcuna nuova interfaccia seriale collegando la scheda al PC: soluzione alla pagina USB per Arduino
Potrebbe essere necessario effettuare alcune configurazioni manuali in merito alla libreria pyserial:
Sembra esserci una incompatibilità tra alcune versioni del gestore della scheda (perlomeno la versione 3.1.0) e Arduino-IDE: non viene trovato il file Preferences.txt. Soluzioni:
Potrebbero esserci problemi nei sistemi Windows con installati i driver forniti da M$ se la scheda Arduino usa chip CH340. L'errore mostrato è uno dei due seguenti:
A fatal esptool.py error occurred: Cannot configure port, something went wrong. Original message: PermissionError(13, 'Un dispositivo collegato al sistema non in funzione.', None, 31)esptool.py v3.0 Serial port COMx
A fatal esptool.py error occurred: Cannot configure port, something went wrong. Original message: PermissionError(13, 'Un dispositivo collegato al sistema non in funzione.', None, 31)Serial port COMx
Soluzione alla pagina USB per Arduino
In Arduino 1 occorre impostarlo in File → Impostazioni → Rete.
In Arduino 2 è più noioso in quanto l'interfaccia non si avvia se non è possibile il collegamento alla rete e quindi non è possibile impostare il proxy...
Questi passaggi non sono necessari se avete già avviato almeno una volta l'IDE; in questo caso basta configurare il proxy da interfaccia grafica.
Il codice seguente è assolutamente standard e comprensibile anche per il principiante assoluto di Arduino:
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
digitalWrite(LED_BUILTIN, HIGH);
delay(500);
digitalWrite(LED_BUILTIN, LOW);
delay(500);
}
Compilazione e programmazione si fanno con le medesime procedure di Arduino.
Due consigli:
Uno degli aspetti più interessanti di ESP8266 è la disponibilità di WiFi. Il seguente piccolo esempio mostra come connettersi ad una rete WiFi e stampare sul monitor seriale l'IP acquisito:
#include <ESP8266WiFi.h>
const char* ssid = "MY_SSID";
const char* password = "MY_PASSWORD";
void setup() {
Serial.begin(115200);
WiFi.begin(ssid, password);
int i = 0;
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.print(++i); Serial.print(' ');
}
Serial.println("Connection established!");
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
}
void loop() {
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
delay(1000);
}
Da PC:
vv@vv-i7:~$ ping 192.168.10.5
PING 192.168.10.5 (192.168.10.5) 56(84) bytes of data.
64 bytes from 192.168.10.5: icmp_seq=1 ttl=255 time=81.1 ms
64 bytes from 192.168.10.5: icmp_seq=2 ttl=255 time=4.15 ms
L'uso dei pin per il collegamento di dispositivi esterni è spesso complicata dal fatto che la serigrafia del circuito stampato è diversa dalla numerazione dei pin dell'ESP8266 e utilizzata all'interno delle librerie Arduino.
La tabella seguente è relativa alla scheda D1 Mini venduta da AZDelivery:
Il filo verde nella fotografia seguente (connesso fisicamente al pin D1) ha la funzione di clock del bus I2C; esso è visto dal software come GPIO5 ed il codice che lo utilizza è quindi, per esempio, digitalWrite(5, HIGH);
Della serie: vogliamoci del male...
Pagina creata nel novembre 2021
Ultima modifica: 8 marzo 2025