Acest articol este un ghid pentru GPIO-urile ESP8266: diagrame de pinout, funcțiile lor și cum să le folosiți.
Cipul ESP8266 12-E vine cu 17 pini GPIO. Nu toate GPIO-urile sunt expuse în toate plăcile de dezvoltare ESP8266, unele GPIO-uri nu sunt recomandate a fi utilizate, iar altele au funcții foarte specifice.
Cu ajutorul acestui ghid, veți învăța cum să utilizați corect GPIO-urile ESP8266 și veți evita ore întregi de frustrare prin utilizarea celor mai potriviți pini pentru proiectele dumneavoastră.
Avem și un ghid pentru GPIO-urile ESP32: ESP32 Pinout Reference: Which GPIO pins should you should use?
ESP8266 12-E Chip Pinout
Următoarea figură ilustrează pinout-ul cipului ESP8266 12-E. Folosiți această diagramă dacă utilizați un cip ESP8266 bare în proiectele dumneavoastră.
Rețineți: nu toate GPIO-urile sunt accesibile în toate plăcile de dezvoltare, dar fiecare GPIO specific funcționează în același mod, indiferent de placa de dezvoltare pe care o utilizați. Dacă sunteți la început cu ESP8266, vă recomandăm să citiți ghidul nostru: Getting Started with the ESP8266.
În momentul de față, există o mare varietate de plăci de dezvoltare cu cipul ESP8266 care diferă în ceea ce privește numărul de GPIO-uri accesibile, dimensiunea, factorul de formă, etc…
Cele mai utilizate plăci ESP8266 sunt ESP-01, ESP8266-12E NodeMCU Kit și Wemos D1 Mini. Pentru o comparație a acestor plăci, puteți citi acest ghid: ESP8266 Wi-Fi Development Boards comparison.
ESP8266-01 Pinout
Dacă folosiți o placă ESP8266-01, puteți folosi următoarea diagramă GPIO ca referință.
ESP8266 12-E NodeMCU Kit
Diagrama pinout a kitului ESP8266 12-E NodeMCU este prezentată mai jos.
Wemos D1 Mini Pinout
Următoarea figură prezintă pinout-ul WeMos D1 Mini.
Descărcați PDF cu diagramele de pinificare ale ESP8266
Am pregătit un PDF util pe care îl puteți descărca și imprima, astfel încât să aveți întotdeauna diagramele ESP8266 lângă dumneavoastră:
Descărcați PDF cu diagramele de pinificare ”
Periferice ESP8266
Perifericele ESP8266 includ:
- 17 GPIOs
- SPI
- I2C (implementat pe software)
- I2S interfețe cu DMA
- UART
- 10-.bit ADC
Cele mai bune pini de utilizat – ESP8266
Un lucru important de observat la ESP8266 este că numărul GPIO nu se potrivește cu eticheta de pe serigrafia plăcii. De exemplu, D0 corespunde la GPIO16 și D1 corespunde la GPIO5.
Tabelul de mai jos arată corespondența dintre etichetele de pe silkscreen și numărul GPIO, precum și ce pini sunt cei mai buni de utilizat în proiectele dvs. și care trebuie să fiți precauți.
Pinii evidențiați cu verde sunt OK de utilizat. Cei evidențiați în galben sunt OK de utilizat, dar trebuie să fiți atenți deoarece pot avea un comportament neașteptat în principal la pornire. Pinii evidențiați în roșu nu sunt recomandați pentru a fi utilizați ca intrări sau ieșiri.
Label | GPIO | Input | Output | Notes | ||
D0 | GPIO16 | fără întrerupere | fără suport PWM sau I2C | HIGH la pornire utilizat pentru trezirea din somn profund |
||
D1 | GPIO5 | OK | OK | de multe ori folosit ca SCL (I2C) | ||
D2 | GPIO4 | OK | OK | OK | OK | folosit adesea ca SDA (I2C) |
D3 | GPIO0 | tractat în sus | OK | conectat la butonul FLASH, pornirea eșuează dacă este trasă LOW | ||
D4 | GPIO2 | trasă în sus | OK | HIGH la pornire conectată la LED-ul de la bord, boot-ul eșuează dacă este tras la LOW |
||
D5 | GPIO14 | OK | OK | SPI (SCLK) | ||
D6 | GPIO12 | OK | OK | SPI (MISO) | ||
D7 | GPIO13 | OK | OK | OK | SPI (MOSI) | |
D8 | GPIO15 | tractată la GND | OK | SPI (CS) Boot eșuează dacă este trasă HIGH |
||
RX | GPIO3 | OK | RX pin | HIGH la pornire | ||
TX | GPIO1 | TX pin | OK | HIGH la pornire Scoaterea de depanare la pornire, boot-ul eșuează dacă este tras la LOW |
||
A0 | ADC0 | Intrare analogică | X |
Continuați să citiți pentru o analiză mai detaliată și aprofundată a GPIO-urilor ESP8266 și a funcțiilor sale.
GPIOs conectate la cipul flash
GPIO6 până la GPIO11 sunt de obicei conectate la cipul flash în plăcile ESP8266. Așadar, nu se recomandă utilizarea acestor pini.
Pini utilizați în timpul pornirii
Se poate împiedica pornirea ESP8266 dacă unii pini sunt trași la nivel LOW sau HIGH. Următoarea listă arată starea următorilor pini la BOOT:
- GPIO16: pinul este ridicat la BOOT
- GPIO0: eșec la boot dacă este tras la LOW
- GPIO2: pinul este ridicat la BOOT, eșec la boot dacă este tras la LOW
- GPIO15: eșec la boot dacă este tras la HIGH
- GPIO3: pinul este ridicat la BOOT
- GPIO1: pinul este ridicat la BOOT, eșecul de boot dacă este tras la LOW
- GPIO10: pinul este ridicat la BOOT
- GPIO9: pinul este ridicat la BOOT
Pini HIGH la Boot
Există anumiți pini care emit un 3.3V atunci când ESP8266 pornește. Acest lucru poate fi problematic dacă aveți relee sau alte periferice conectate la acele GPIO-uri. Următoarele GPIO-uri emit un semnal HIGH la pornire:
- GPIO16
- GPIO3
- GPIO1
- GPIO10
- GPIO9
În plus, celelalte GPIO-uri, cu excepția GPIO5 și GPIO4, pot emite un semnal de joasă tensiune la pornire, ceea ce poate fi problematic dacă acestea sunt conectate la tranzistoare sau relee. Puteți citi acest articol care investighează starea și comportamentul fiecărui GPIO la pornire.
GPIO4 și GPIO5 sunt GPIO-urile cele mai sigure de utilizat dacă doriți să operați relee.
Intrare analogică
Esp8266 suportă doar citirea analogică într-un singur GPIO. Acel GPIO se numește ADC0 și este de obicei marcat pe serigrafie ca A0.
Tensiunea maximă de intrare a pinului ADC0 este de 0 până la 1V dacă folosiți cipul gol ESP8266. Dacă folosiți o placă de dezvoltare precum kitul ESP8266 12-E NodeMCU, intervalul de tensiune de intrare este de la 0 la 3,3V deoarece aceste plăci conțin un divizor de tensiune intern.
Puteți învăța cum să folosiți citirea analogică cu ESP8266 cu ajutorul următorului ghid:
- ESP8266 ADC – Citirea valorilor analogice cu Arduino IDE, MicroPython și Lua
Ledul de bord
Majoritatea plăcilor de dezvoltare ESP8266 au un LED încorporat. Acest LED este de obicei conectat la GPIO2.
LED-ul funcționează cu logică inversată. Trimiteți un semnal HIGH pentru a-l opri și un semnal LOW pentru a-l aprinde.
Pini RST
Când pinul RST este tras la LOW, ESP8266 se resetează. Acest lucru este același lucru cu apăsarea butonului RESET de la bord.
GPIO0
Când GPIO0 este tras la nivel LOW, setează ESP8266 în modul bootloader. Acest lucru este identic cu apăsarea butonului FLASH/BOOT de la bord.
GPIO16
GPIO16 poate fi folosit pentru a trezi ESP8266 din somnul profund. Pentru a trezi ESP8266 din somn profund, GPIO16 trebuie să fie conectat la pinul RST. Aflați cum să puneți ESP8266 în modul de veghe profundă:
- ESP8266 Deep Sleep with Arduino IDE
- ESP8266 Deep Sleep with MicroPython
I2C
Esp8266 nu are pini I2C hardware, dar poate fi implementat în software. Așadar, puteți folosi orice GPIO ca I2C. De obicei, următoarele GPIO-uri sunt utilizate ca pini I2C:
- GPIO5: SCL
- GPIO4: SDA
SPI
Pinii utilizați ca SPI în ESP8266 sunt:
- GPIO12: MISO
- GPIO13: MOSI
- GPIO14: SCLK
- GPIO15: CS
Pinii PWM
ESP8266 permite PWM software în toți pinii I/O: GPIO0 până la GPIO16. Semnalele PWM de pe ESP8266 au o rezoluție de 10 biți. Aflați cum să utilizați pinii PWM ai ESP8266:
- ESP8266 PWM cu Arduino IDE
- ESP8266 PWM cu MicroPython
Pini de întrerupere
Esp8266 suportă întreruperi în orice GPIO, cu excepția GPIO16.
- Intreruperi și temporizatoare ESP8266 cu Arduino IDE
Încheiere
Sperăm că ați găsit util acest ghid pentru GPIO-urile ESP8266. Dacă aveți câteva sfaturi despre cum să folosiți corect GPIO-urile ESP8266, puteți scrie un comentariu mai jos.
De asemenea, avem un ghid similar pentru GPIO-urile ESP32 pe care îl puteți citi.
Dacă sunteți la început cu ESP8266, avem un conținut excelent care s-ar putea să vă intereseze:
- Home Automation using ESP8266 (curs)
- Getting Started with the ESP8266
- 30+ ESP8266 Projects and Tutorials
- ESP8266 Web Server Tutorial
- ESP32 vs ESP8266 – Pro și contra
Mulțumim pentru lectură.