Riferimento pinout ESP8266: Quali pin GPIO dovresti usare?

Questo articolo è una guida per i GPIO dell’ESP8266: schemi di piedinatura, le loro funzioni e come usarli.

Il chip ESP8266 12-E ha 17 pin GPIO. Non tutti i GPIO sono esposti in tutte le schede di sviluppo ESP8266, alcuni GPIO non sono raccomandati da usare, e altri hanno funzioni molto specifiche.

Con questa guida, imparerai come usare correttamente i GPIO ESP8266 ed evitare ore di frustrazione usando i pin più adatti ai tuoi progetti.

Abbiamo anche una guida per i GPIO ESP32: ESP32 Pinout Reference: Quali pin GPIO dovresti usare?

ESP8266 12-E Chip Pinout

La figura seguente illustra il pinout del chip ESP8266 12-E. Usa questo schema se stai usando un chip ESP8266 nudo nei tuoi progetti.

Nota: non tutti i GPIO sono accessibili in tutte le schede di sviluppo, ma ogni GPIO specifico funziona allo stesso modo indipendentemente dalla scheda di sviluppo che stai usando. Se hai appena iniziato con l’ESP8266, ti consigliamo di leggere la nostra guida: Getting Started with the ESP8266.

Al momento, ci sono una grande varietà di schede di sviluppo con il chip ESP8266 che differiscono nel numero di GPIO accessibili, dimensioni, fattore di forma, ecc…

Le schede ESP8266 più utilizzate sono la ESP-01, ESP8266-12E NodeMCU Kit, e la Wemos D1 Mini. Per un confronto di queste schede, puoi leggere questa guida: ESP8266 Wi-Fi Development Boards comparison.

ESP8266-01 Pinout

Se stai usando una scheda ESP8266-01, puoi usare il seguente diagramma GPIO come riferimento.

ESP8266 12-E NodeMCU Kit

Il pinout del kit ESP8266 12-E NodeMCU è mostrato qui sotto.

Wemos D1 Mini Pinout

La figura seguente mostra il pinout di WeMos D1 Mini.

Scarica il PDF con gli schemi di pinout di ESP8266

Abbiamo messo insieme un pratico PDF che puoi scaricare e stampare, così hai sempre gli schemi di ESP8266 vicino a te:

Scarica gli schemi di pinout PDF ”

Periferiche ESP8266

Le periferiche ESP8266 includono:

  • 17 GPIOs
  • SPI
  • I2C (implementato su software)
  • I2S interfacce con DMA
  • UART
  • 10-bit ADC

Pin migliori da usare – ESP8266

Una cosa importante da notare su ESP8266 è che il numero GPIO non corrisponde all’etichetta sulla serigrafia della scheda. Per esempio, D0 corrisponde a GPIO16 e D1 corrisponde a GPIO5.

La seguente tabella mostra la corrispondenza tra le etichette sulla serigrafia e il numero GPIO e quali pin sono i migliori da usare nei vostri progetti, e quali è necessario essere cauti.

I pin evidenziati in verde sono OK da usare. Quelli evidenziati in giallo sono OK da usare, ma è necessario prestare attenzione perché possono avere un comportamento inaspettato soprattutto all’avvio. I pin evidenziati in rosso non sono raccomandati da usare come ingressi o uscite.

Label GPIO Input Output Note
D0 GPIO16 no interrupt no PWM o supporto I2C ALTO al boot
usato per svegliarsi dal sonno profondo
D1 GPIO5 OK OK spesso usato come SCL (I2C)
D2 GPIO4 OK OK spesso usato come SDA (I2C)
D3 GPIO0 tirato su OK collegato al pulsante FLASH, l’avvio non riesce se tirato BASSO
D4 GPIO2 tirato su OK ALTO al boot
collegato al LED di bordo, l’avvio non riesce se tirato BASSO
D5 GPIO14 OK OK SPI (SCLK)
D6 GPIO12 OK OK SPI (MISO)
D7 GPIO13 OK OK SPI (MOSI)
D8 GPIO15 pulled to GND OK SPI (CS)
Boot fallisce se tirato HIGH
RX GPIO3 OK RX pin ALTO al boot
TX GPIO1 TX pin OK ALTO al boot
Uscita debug al boot, l’avvio fallisce se tirato BASSO
A0 ADC0 Ingresso analogico X

Continua a leggere per un’analisi più dettagliata e approfondita dei GPIO dell’ESP8266 e delle sue funzioni.

GPIOs collegati al chip flash

GPIO6 a GPIO11 sono solitamente collegati al chip flash nelle schede ESP8266. Quindi, questi pin non sono raccomandati per l’uso.

Pin utilizzati durante l’avvio

Si può impedire l’avvio di ESP8266 se alcuni pin sono tirati BASSO o ALTO. La seguente lista mostra lo stato dei seguenti pin al BOOT:

  • GPIO16: pin è alto al BOOT
  • GPIO0: errore di boot se tirato BASSO
  • GPIO2: pin è alto al BOOT, errore di boot se tirato BASSO
  • GPIO15: errore di boot se tirato ALTO
  • GPIO3: GPIO1: pin è alto al BOOT
  • GPIO1: pin è alto al BOOT, errore di boot se tirato BASSO
  • GPIO10: pin è alto al BOOT
  • GPIO9: pin è alto al BOOT

Pin ALTO al Boot

Ci sono alcuni pin che emettono un segnale di 3.3V quando ESP8266 si avvia. Questo può essere problematico se avete relè o altre periferiche collegate a questi GPIO. I seguenti GPIO emettono un segnale HIGH all’avvio:

  • GPIO16
  • GPIO3
  • GPIO1
  • GPIO10
  • GPIO9

Inoltre, gli altri GPIO, tranne GPIO5 e GPIO4, possono emettere un segnale a bassa tensione al boot, che può essere problematico se questi sono collegati a transistor o relè. Potete leggere questo articolo che indaga lo stato e il comportamento di ogni GPIO all’avvio.

GPIO4 e GPIO5 sono i GPIO più sicuri da usare se volete far funzionare i relè.

Ingresso analogico

L’ESP8266 supporta solo la lettura analogica in un GPIO. Questo GPIO è chiamato ADC0 e di solito è segnato sulla serigrafia come A0.

La massima tensione di ingresso del pin ADC0 è da 0 a 1V se stai usando il chip nudo ESP8266. Se stai usando una scheda di sviluppo come il kit ESP8266 12-E NodeMCU, il range di tensione in ingresso è da 0 a 3.3V perché queste schede contengono un divisore di tensione interno.

Puoi imparare come usare la lettura analogica con l’ESP8266 con la seguente guida:

  • ESP8266 ADC – Leggere i valori analogici con Arduino IDE, MicroPython e Lua

LED a bordo

La maggior parte delle schede di sviluppo ESP8266 hanno un LED integrato. Questo LED è solitamente collegato al GPIO2.

Il LED funziona con logica invertita. Invia un segnale HIGH per spegnerlo, e un segnale LOW per accenderlo.

Pinotto RST

Quando il pin RST è tirato LOW, ESP8266 si resetta. Questo è lo stesso che premere il pulsante RESET a bordo.

GPIO0

Quando GPIO0 è tirato BASSO, imposta ESP8266 in modalità bootloader. Questo è lo stesso che premere il pulsante FLASH/BOOT a bordo.

GPIO16

GPIO16 può essere usato per svegliare l’ESP8266 dal sonno profondo. Per svegliare ESP8266 dal sonno profondo, GPIO16 dovrebbe essere collegato al pin RST. Impara come mettere ESP8266 in modalità deep sleep:

  • ESP8266 Deep Sleep with Arduino IDE
  • ESP8266 Deep Sleep with MicroPython

I2C

L’ESP8266 non ha pin I2C hardware, ma può essere implementato nel software. Quindi è possibile utilizzare qualsiasi GPIO come I2C. Di solito, i seguenti GPIO sono usati come pin I2C:

  • GPIO5: SCL
  • GPIO4: SDA

SPI

I pin usati come SPI nel ESP8266 sono:

  • GPIO12: MISO
  • GPIO13: MOSI
  • GPIO14: SCLK
  • GPIO15: CS

Pins PWM

ESP8266 permette PWM software in tutti i pin I/O: GPIO0 a GPIO16. I segnali PWM su ESP8266 hanno una risoluzione di 10 bit. Impara come usare i pin PWM di ESP8266:

  • ESP8266 PWM con Arduino IDE
  • ESP8266 PWM con MicroPython

Pin di Interrupt

L’ESP8266 supporta interrupt in qualsiasi GPIO, eccetto GPIO16.

  • ESP8266 Interrupts and Timers with Arduino IDE

Wrapping Up

Speriamo che abbiate trovato utile questa guida per i GPIO dell’ESP8266. Se hai qualche consiglio su come usare correttamente i GPIO ESP8266, puoi scrivere un commento qui sotto.

Abbiamo anche una guida simile per i GPIO ESP32 che puoi leggere.

Se stai iniziando con l’ESP8266, abbiamo alcuni grandi contenuti che potrebbero interessarti:

  • Automazione domestica usando ESP8266 (corso)
  • Iniziare con ESP8266
  • 30+ ESP8266 Progetti e Tutorial
  • ESP8266 Web Server Tutorial
  • ESP32 vs ESP8266 – Pro e Contro

Grazie per aver letto.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.