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.