Laboratorio microcontrollori

Tabella dei contenuti

Questo tutorial riguarda il riferimento pinout di ESP8266 e diversi tipi di schede ESP8266 come Nodemcu, ESP01, ESP12. Per prima cosa, darò una panoramica di ESP8266 IC e la sua piedinatura e dopo di che fornirò la piedinatura di riferimento delle schede ESP8266 più popolari.

Esp8266 è un microchip in pacchetto QFN con capacità sia di suite TCP/IP che di microcontrollore. Esp8266 offre una soluzione WiFi altamente integrata che soddisfa le esigenze delle industrie dell’Internet of Things come il basso costo, l’uso efficiente della potenza, le prestazioni affidabili e il design compatto. È prodotto da Espressif Systems a Shanghai, Cina.

Avere capacità di rete WiFi complete può funzionare come uno slave di un microcontrollore host o come un’applicazione autonoma. Quando diciamo lo schiavo di un microcontrollore host significa che può essere utilizzato come adattatore WiFi a qualsiasi microcontrollore utilizzando interfacce SPI o UART. Mentre usando come standalone può eseguire le capacità del microcontrollore e la rete WiFi.

Esp8266 è basato sulla serie L106 Diamond di Tensilica che è un processore a 32 bit e ha SRAM on-chip. Integra anche moduli di alimentazione, balun RF, ricevitore e trasmettitore RF, ricevitore e trasmettitore analogico, banda base digitale, amplificatore, filtri e alcuni altri componenti minimi.

Specifiche di ESP8266

La specifica di ESP8266 si divide in tre parti: Hardware, Software e Wi-Fi. Nelle specifiche hardware, la sua dimensione del pacchetto è QFN 32pins con una dimensione di 5mm x 5mm. Le tensioni operative vanno da 2.5V a 3.6V. Il chip consuma 80mA di corrente in media. La sua CPU è Tensilica L106 che è un processore a 32bit con SRAM on-chip. L’interfaccia periferica contiene UART, SDIO, SPI, I2C, I2S, telecomando IR, GIPO’s, ADC, PWM, LED Light e pulsante.

Il suo firmware può essere aggiornato usando OTA e UART. Utilizza IPv4, TCP, UDP e HTTP come protocolli di rete. L’utente può configurare usando il set di comandi AT, Cloud Server e usando un’applicazione mobile.

ESP8266 Chip Pinout and Descriptions

Pin layout di 32-pin QFN Package.

  • Pin1: VDDA è un pin di alimentazione per gamme di potenza analogica da 2.5V a 3.6V.
  • Pin2: LNA è un pin di ingresso/uscita usato specificamente per l’interfaccia dell’antenna RF. Il chip produce un’impedenza di 39+j6 Ω.
  • Pin3: VDD3P3 è un pin di alimentazione per fornire gamme di potenza dell’amplificatore da 2.5V a 3.6V.
  • Pin4: VDD3P3 è un pin di potenza per fornire gamme di potenza dell’amplificatore da 2,5V a 3,6V simile a pin3.
  • Pin5: VDD_RTC è classificato come un pin di alimentazione e fornire 1.1V ma questo pin non è collegato.
  • Pin6: TOUT è un pin di ingresso funziona come pin ADC per testare le tensioni di alimentazione di Pin3 e Pin4 e le tensioni di ingresso di TOUT pin6. Queste due funzioni non possono essere eseguite simultaneamente.
  • Pin7: CHIP_EN I un pin di ingresso. Quando il pin CHIP_EN è ALTO il chip funziona correttamente quando il chip BASSO consuma solo una piccola quantità di corrente.
  • Pin8: XPD_DCDC è un pin di ingresso/uscita che è usato per svegliare il chip dalla modalità deep sleep. Comunemente è collegato con GPIO16.
  • Pin9: MTMS è un pin di ingresso/uscita etichettato come GPIO14 ed è usato in SPI come pin di clock (SPI_CLK).
  • Pin10: MTDI è un pin di ingresso/uscita etichettato come GPIO12 ed è usato in SPI come pin Master-In-Slave-Out (SPI_MISO).
  • Pin11: VDDPST è un pin di alimentazione. È un’alimentazione digitale di ingresso/uscita le cui tensioni vanno da 1.8V a 3.6V. Simile al pin17.
  • Pin12: MTCK è un pin di ingresso/uscita etichettato come GPIO13 ed è usato in SPI come pin Master-Out Slave-In (SPI_MOSI) così come usato in UART come pin Clear To Send (UART_CTS).
  • Pin13: MTDO è un pin di ingresso/uscita etichettato come GPIO15 ed è usato in SPI come pin Chip Select (SPI_CS) così come usato in UART come pin Request To Send (UART_RTS).
  • Pin14: GPIO2 è un input/output pin usato come UART TX durante la programmazione flash.
  • Pin15: GPIO0 è un input/output usato come Chip Select pin2 in SPI (SPI_CS2).
  • Pin16: GPIO4 è un input/output pin puramente usato per scopi di input e output.
  • Pin17: VDDPST è un pin di alimentazione. È un’alimentazione digitale di ingresso/uscita le cui tensioni vanno da 1,8V a 3,6V. Simile al pin11.
  • Pin18: SDIO_DATA_2 è un pin di ingresso/uscita etichettato come GPIO9 e usato per connettersi con il pin dati 2 della scheda SD.
  • Pin19: SDIO_DATA_3 è un pin di ingresso/uscita etichettato come GPIO10 e usato per connettersi con il pin dati 3 della scheda SD.
  • Pin20: SDIO_CMD è un pin di ingresso/uscita etichettato come GPIO11 e usato per connettersi con il pin di comando della scheda SD
  • Pin21: SDIO_CLK è un pin di ingresso/uscita etichettato come GPIO6 e usato per connettersi con il pin di clock della scheda SD.
  • Pin22: SDIO_DATA_0 è un pin di ingresso/uscita etichettato come GPIO7 e usato per connettersi con il pin dati 0 della scheda SD.
  • Pin23: SDIO_DATA_1 è un pin di ingresso/uscita etichettato come GPIO8 e usato per connettersi con il pin dati 1 della scheda SD.
  • Pin24: GPIO5 è un pin di ingresso/uscita puramente usato per scopi di ingresso e uscita.
  • Pin25: U0RXD è un pin di ingresso/uscita etichettato come GPIO3 e usato come UART RX durante la programmazione flash.
  • Pin26: U0TXD è un pin di ingresso/uscita etichettato come GPIO1 e usato come UART TX durante la programmazione flash. Usato anche come SPI Chip Select pin 1 (SPI_CS1).
  • Pin27: XTAL_OUT è classificato come un pin di ingresso/uscita e collegato all’uscita dell’oscillatore di cristallo.
  • Pin28: XTAL_IN è classificato come un pin di ingresso/uscita e collegato all’ingresso dell’oscillatore di cristallo.
  • Pin29: VDDD è un pin di potenza fornire gamme di potenza analogica da 2.5V a 3.6V.
  • Pin30: VDDA è un pin di potenza fornire gamme di potenza analogica da 2.5V a 3.6V. Simile al pin29.
  • Pin31: RES12K è un pin di ingresso che è collegato in serie con resistenze da 12 kΩ e collegato a terra.
  • Pin32: EXT_RSBT è un pin di ingresso utilizzato per riposare il chip fornendo un segnale di reset esterno che è attivo a un livello di bassa tensione.
  • Pin33: GND è un pin di alimentazione che funge da terra per il chip.

Tutti i GPIO possono essere usati come pin di ingresso e uscita ma hanno anche la loro funzione specifica.

Schema

Lo schema di ESP8266 include i seguenti componenti:

  • Alimentazione
  • Sequenza di accensione e reset
  • Flash
  • Oscillatore a cristallo
  • RF
  • Resistenza esterna
  • UART

Finora abbiamo coperto il preambolo di Esp8266, lo schema funzionale a blocchi, la disposizione dei pin, la descrizione e lo schema.

Nell’agosto 2014 Espressif Systems ha lanciato il suo primo modulo grezzo che è prodotto dalla terza parte AI-Thinker e il modulo indicato come ESP-01. Da allora Ai-Thinker ha sviluppato una serie di moduli basati su ESP8266, questa serie denominata ESP-xx varia da 01 a 14.

Pinout di diversi tipi di moduli ESP8266

In questa sezione dell’articolo, parleremo del pinout di diverse versioni del modulo ESP8266 a partire da ESP-01 a ESP-12.

Espressif Systems ha rilasciato il suo primo kit di sviluppo software ufficiale per programmare il chip direttamente senza interfacciarsi con un microcontroller esterno. Da allora ci sono molti SDK ufficiali ma Espressif mantiene solo due SDK stabili uno basato su FreeRTOS e l’altro basato su callback. C’è anche una varietà di SDK open source per ESP8266.

Arduino: è l’SDK più comunemente usato a causa della sua popolarità. È un SDK basato su C++. ESP6266 è facilmente programmabile come le schede Arduino. I file del nucleo sono disponibili su GitHub.

NodeMCU: è un kit di sviluppo software basato su Lua.

MicroPython: è l’uso del linguaggio python per dispositivi embedded.

Espruino, Mongoose OS, uLisp, Sming, Platform IO, ESP Easy, Smick, ESP Open RTOS sono alcuni altri SDK open source.La necessità di queste schede di sviluppo è dovuta al fatto che la serie di moduli ESP-xx non ha a bordo un regolatore di tensione, un ponte da USB a UART come CH340G e CP2102 di Silicon Lab e un connettore micro USB. Prima dovevamo comprare separatamente il regolatore di tensione e il ponte da USB a UART e poi cablarli con i moduli ESP-xx per flasharli.

Qui parleremo soprattutto della scheda di sviluppo basata sul modulo ESP-12E.

Pinout del modulo ESP8266 12E

Il modulo ESP8266 12E ha un totale di 22 pin che includono

No. of Pins Pin Label Description
17 GPIO I pinGPIO vanno da GPIO0 a GPIO16 includono SPI, I2C, SDIO, UART interface pins.
1 ADC Convertitore analogico-digitale a 10 bit.
1 VCC Tensione di alimentazione 3.3V
1 GND Pin di massa
1 RST Pin di riposo
1 Enable Pinocchio di abilitazione

ESP8266 12E Wemos D1 Mini pinout

La scheda di sviluppo Wemos D1 Mini ha un totale di 16 pin in cui 12 pin sono attivi, utilizza il modulo ESP-12, pulsante di reset a bordo, 3.3 regolatore di tensione, Micro USB, ponte USB a UART e alcuni altri componenti.

No. di

Pin

Etichetta Descrizione
1 3.3V 3.3 volt pin
1 5.0 Pinotto di tensione 5V
1 GND Pinotto di massa
1 ADC Convertitore analogico-digitale a 10 bit
1 RST Pin di reset
9 D0 a D8, Pin di ingresso/uscita utilizzati anche per SPI e I2C, Flash.
2 RX,TX Interfaccia UART.

ESP8266 01 Module pinout

ESP8266 01 Module è diverso ma comunemente usato come le schede di sviluppo sopra. Questa scheda non è breadboard friendly, spesso viene usato un modulo di programmazione separato per la programmazione. Ha un totale di 8 pin in cui 6 pin sono attivi.

No. di

Pin

Label Descrizione
1 3.3V Supporto 3.3 volt pin
1 GND Pinino di massa
1 RST Pinino di reset
1 CH_PD/EN Pinino di alimentazione e abilitazione del chip
4 GPIO da 0 a 3 Interfaccia UART e pin di ingresso/uscita

ESP8266 12E NodeMCU Development Board pinout

La scheda di sviluppo NodeMCU ha un totale di 30 pin di cui 14 sono attivi, utilizza il modulo ESP-12, pulsante di reset e flash a bordo, 3.3 regolatore di tensione, Micro USB, USB a UART Bridge e alcuni altri componenti.

No. di

Pin

Label Descrizione
3 3.3V 3.3 volt pins
1 Vin Tensione di ingresso 5V pin
4 GND Ground pin
1 ADC convertitore analogico-digitale a 10 bit
1 RST Pin di reset
1 EN Pin di abilitazione del chip
1 CLK CLK pin per interfaccia SPI e SDIO
1 SD0 Pinotto dati 0 per SDIO e MISO per interfaccia SPI.
1 CMD Pin di comando per interfaccia SDIO e pin Chip select per interfaccia SPI.
1 SD1 Pin di dati 1 per interfaccia SDIO e pin MOSI per interfaccia SPI.
1 SD2 Pin di dati 0 per interfaccia SDIO e usato anche come GPIO9.
1 SD3 Pin di dati 3 per interfaccia SDIO e usato anche come GPIO10.
2 RSV Pin riservati.
11 D0 a D8, RX, TX Pin di ingresso/uscita usati anche per UART, SPI, I2C, Flash e pin di scia.

Periferiche ESP8266

L’ESP8266 ha le seguenti periferiche:

  • 17 perni d’ingresso e d’uscita General Purpose
  • Interfaccia seriale periferica (SPI)
  • Circuito integrato (12C)
  • Interfacce sonore (12S) con accesso diretto alla memoria
  • Interfaccia trasmettitore ricevitore asincrono universale.
  • Convertitore analogico-digitale a 10 bit

Ingresso analogico

ESP8266 ha un solo convertitore analogico-digitale a 10 bit che si riferisce come ADC0 ed etichetta come A0. Ma questo è anche il suo uno dei più grandi svantaggi perché per lo più l’utente deve collegare due sensori così dobbiamo comprare moduli ADC separati, IC e circuito di multiplexing per interfacciare due o più sensori, ma questo è un argomento di un altro articolo.

Tensione analogica in ingresso del modulo ESP-01 varia da 0 a 1V. La scheda di sviluppo basata sul modulo ESP-12E ha gamme di tensione analogica in ingresso da 0 a 3.3V. Quindi dobbiamo tenere a mente mentre scriviamo uno sketch di usare il pin A0.

Pin PWM

L’ESP8266 permette PWM in tutti i pin di ingresso/uscita da GPIO0 a GPIO16. I segnali PWM hanno risoluzioni di 10-bit.

Pin SPI

Un’interfaccia di programmazione seriale (SPI) ha i seguenti pin in ESP8266

Pin I2C

ESP8266 fornisce solo l’interfaccia software I2C significa che possiamo usare qualsiasi due pin per I2C ma i seguenti pin sono usati principalmente.

GPIO5 per la linea di clock seriale (SCL)

GPIO4 per la linea dati seriale (SDA)

Pin di interrupt

Possiamo usare qualsiasi pin GPIO per gli interrupt tranne GPIO16.

Wake Up

Per svegliare ESP8266 dal sonno profondo usare GPIO16 collegandolo al pin RST. Questo è un argomento per un altro articolo.

LED di bordo

La maggior parte delle schede di sviluppo hanno uno o più LED integrati. Il LED costruito sul modulo ESP8266 è collegato al GPIO2 e il LED costruito sulla scheda di sviluppo è collegato al GPIO16.

Pulsante Reset e Flash

Premendo il pulsante di reset o tirando il pin RST basso si resetta il chip ESP8266. Premendo il pulsante Flash o tirando il GPIO0 basso si imposta il chip ESP8266 in modalità bootloader.

Quale pin di ESP8266 usare

Tenete sempre presente che l’etichetta GPIO non corrisponde all’etichetta sulla serigrafia. Per esempio GPIO0 corrisponde a D3 e D0 corrisponde a GPIO16. È meglio usare i GPIO con un segno di spunta verde.

Label GPIO Input Output Descrizione
A0 ADC0 Ingresso analogico No Per ingresso analogico da 0 a 3.3v e nessuna uscita.
RX GPIO3 Solo pin RX Alto al boot.
TX GPIO1 Solo pin Tx Alto al boot.
D0 GPIO16 No interrupt No I2C, PWM Utilizzato per svegliare il chip dal sonno profondo, Alto al Boot.
D1 GPIO5 Spesso usato come SCL
D2 GPIO4 Spesso usato come SDA
D3 GPIO0 Connesso al pulsante Flash
D4 GPIO2 Pulled up Yes Collegato al LED integratoin LED, Alto all’avvio.
D5 GPIO14 Polo SCLK per interfaccia SPI
D6 GPIO12 Pinino MISO per interfaccia SPI
D7 GPIO13 Pinotto MOSI per interfaccia SPI
D8 GPIO15 Pulled to ground Pin per interfaccia SPI

ESP8266 pin High e Low-segnale di tensione al boot

Mentre si avvia ESP8266 i seguenti pin forniscono un segnale a 3.3v segnale sui pin specificati in modo da collegare relè, transistor o qualsiasi altro dispositivo periferico può comportarsi male. I seguenti pin emettono un segnale di 3.3v su Boot:

  • GPIO16
  • GPIO3
  • GPIO1
  • GPIO10
  • GPIO9

Tutti gli altri pin GPIOs forniscono una bassa tensione su Boot tranne GPIO4 e GPIO5. Quindi il GPIO4 e GPIO5 sono i migliori pin per collegare relè, transistor e altre periferiche a risultati stabili.

Configurazione dei pin durante l’avvio

Per avviare ESP8266 con successo dobbiamo disabilitare i pin specificati per ottenere HIGH o LOW.

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

Applicazioni di ESP8266

  • Domotica
  • Smart plugs e interruttori
  • Elettrodomestici (come AC, Stampante)
  • Controllo industriale senza fili
  • Dispositivi sensori
  • Gadget indossabili
  • Camere IP
  • Tag di sicurezza
  • Dispositivi di localizzazione Wi-Fi
  • Sistema di posizione Wi-Fi

Ti potrebbe anche piacere dare un’occhiata ad altri tutorial di ESP8266: