Arduino-IDE

ESP8266

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)

URL del file json con l'elenco dei moduli

Occorre quindi installare il software necessario: Strumenti → Scheda → Gestore Scheda e selezionare ESP8266:

Codice del compilatore e annessi&connessi

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:

Scelta della scheda

Possibili problemi

Cavo USB

Potrebbe non venir mostrata alcuna nuova interfaccia seriale collegando la scheda al PC: soluzione alla pagina USB per Arduino

Pyton

Potrebbe essere necessario effettuare alcune configurazioni manuali in merito alla libreria pyserial:

Preferences.txt

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:

Driver CH340

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

Proxy http

In Arduino 1 occorre impostarlo in FileImpostazioniRete.

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.

Test

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

PinOut

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:

D1 Mini AZDelivery pinout

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

Note

  1. Quando descritto è relativo alla versione 1.8.19 e 2.3.2 di Arduino IDE, correnti nel momento dell'ultima stesura di questa pagina. Alcune immagini sono relative a versioni precedenti.
  2. Se sono presenti altre URL occorre separarle con una virgola


Pagina creata nel novembre 2021
Ultima modifica: 8 marzo 2025


Pagina principaleAccessibilitàNote legaliPosta elettronicaXHTML 1.0 StrictCSS 3

Vai in cima