ESP8266 Pinout Reference: Których pinów GPIO powinieneś użyć?

Ten artykuł jest przewodnikiem po GPIO ESP8266: schematy pinów, ich funkcje i jak ich używać.

Układ ESP8266 12-E jest wyposażony w 17 pinów GPIO. Nie wszystkie GPIO są dostępne we wszystkich płytkach rozwojowych ESP8266, niektórych GPIO nie zaleca się używać, a inne mają bardzo specyficzne funkcje.

Dzięki temu przewodnikowi dowiesz się, jak prawidłowo używać GPIO ESP8266 i unikniesz wielu godzin frustracji, używając najbardziej odpowiednich pinów do swoich projektów.

Posiadamy również przewodnik po GPIO ESP32: ESP32 Pinout Reference: Which GPIO pins should you use?

ESP8266 12-E Chip Pinout

Następujący rysunek ilustruje układ scalony ESP8266 12-E. Użyj tego schematu, jeśli używasz gołego układu ESP8266 w swoich projektach.

Uwaga: nie wszystkie GPIO są dostępne we wszystkich płytkach rozwojowych, ale każde konkretne GPIO działa w ten sam sposób niezależnie od używanej płytki rozwojowej. Jeśli dopiero zaczynasz przygodę z ESP8266, zalecamy przeczytanie naszego przewodnika: Getting Started with the ESP8266.

W chwili obecnej istnieje szeroka gama płytek rozwojowych z układem ESP8266, które różnią się liczbą dostępnych GPIO, rozmiarem, obudową, itd…

Najczęściej używane płytki ESP8266 to ESP-01, ESP8266-12E NodeMCU Kit, oraz Wemos D1 Mini. Aby porównać te płytki, możesz przeczytać ten przewodnik: ESP8266 Wi-Fi Development Boards comparison.

ESP8266-01 Pinout

Jeśli używasz płytki ESP8266-01, możesz użyć poniższego diagramu GPIO jako odniesienia.

ESP8266 12-E NodeMCU Kit

Schemat pinout zestawu ESP8266 12-E NodeMCU jest pokazany poniżej.

Wemos D1 Mini Pinout

Następny rysunek przedstawia pinout WeMos D1 Mini.

Download PDF with ESP8266 Pinout Diagrams

Złożyliśmy poręczny plik PDF, który możesz pobrać i wydrukować, aby zawsze mieć schematy ESP8266 obok siebie:

Download PDF Pinout Diagrams ”

ESP8266 Peripherals

Peripherals ESP8266 include:

  • 17 GPIO
  • SPI
  • I2C (implementowane programowo)
  • I2S interfejsy z DMA
  • UART
  • 10-.bit ADC

Best Pins to Use – ESP8266

Jedną z ważnych rzeczy, które należy zauważyć w ESP8266 jest to, że numer GPIO nie zgadza się z etykietą na silkscreen’ie płytki. Na przykład, D0 odpowiada GPIO16, a D1 odpowiada GPIO5.

Poniższa tabela pokazuje zgodność pomiędzy etykietami na silkscreen i numerami GPIO, jak również, które piny są najlepsze do użycia w twoich projektach, a z którymi musisz być ostrożny.

Piny zaznaczone na zielono są OK do użycia. Te zaznaczone na żółto są OK do użycia, ale musisz uważać, ponieważ mogą mieć nieoczekiwane zachowanie głównie przy starcie systemu. Piny zaznaczone na czerwono nie są zalecane do użycia jako wejścia lub wyjścia.

.

.

.

.

Label GPIO Wejście Wyjście Notes
D0 GPIO16 brak przerwania brak obsługi PWM lub I2C wysoka przy rozruchu
używane do wybudzania z głębokiego snu
D1 GPIO5 OK OK często używane jako SCL (I2C)
D2 GPIO4 OK OK OK często używany jako SDA (I2C)
D3 GPIO0 podciągnięty do góry OK podłączony do przycisku FLASH, boot fails if pulled LOW
D4 GPIO2 pulled up OK HIGH at boot
connected to on-board LED, boot fails if pulled LOW
D5 GPIO14 OK OK SPI (SCLK)
D6 GPIO12 OK OK SPI (MISO)
D7 GPIO13 OK OK SPI (MOSI)
D8 GPIO15 przeciągnięte do GND OK SPI (CS)
Boot fails if pulled HIGH
RX GPIO3 OK RX pin HIGH at boot
TX GPIO1 TX pin OK HIGH at boot
debug output at boot, boot fails if pulled LOW
A0 ADC0 Wejście analogowe X

Kontynuuj czytanie, aby uzyskać bardziej szczegółową i dogłębną analizę GPIO ESP8266 i ich funkcji.

GPIO podłączone do układu Flash

GPIO6 do GPIO11 są zwykle podłączone do układu Flash w płytkach ESP8266. Tak więc, nie zaleca się używania tych pinów.

Piny używane podczas uruchamiania

Uruchomienie ESP8266 może być uniemożliwione, jeśli niektóre piny są podciągnięte do stanu LOW lub HIGH. Poniższa lista pokazuje stan następujących pinów podczas BOOT:

  • GPIO16: pin jest wysoki podczas BOOT
  • GPIO0: boot failure if pulled LOW
  • GPIO2: pin jest wysoki podczas BOOT, boot failure if pulled LOW
  • GPIO15: boot failure if pulled HIGH
  • GPIO3: pin is high at BOOT
  • GPIO1: pin is high at BOOT, boot failure if pulled LOW
  • GPIO10: pin is high at BOOT
  • GPIO9: pin is high at BOOT

Pins HIGH at Boot

Istnieją pewne piny, które wyprowadzają sygnał 3.3V podczas uruchamiania ESP8266. Może to być problematyczne, jeśli do tych GPIO są podłączone przekaźniki lub inne urządzenia peryferyjne. Następujące GPIO wysyłają sygnał HIGH podczas uruchamiania systemu:

  • GPIO16
  • GPIO3
  • GPIO1
  • GPIO10
  • GPIO9

Dodatkowo pozostałe GPIO, z wyjątkiem GPIO5 i GPIO4, mogą wysyłać sygnał niskiego napięcia przy starcie, co może być problematyczne, jeśli są one podłączone do tranzystorów lub przekaźników. Możesz przeczytać ten artykuł, który bada stan i zachowanie każdego GPIO przy rozruchu.

GPIO4 i GPIO5 są najbezpieczniejszymi do użycia GPIO, jeśli chcesz obsługiwać przekaźniki.

Wejście analogowe

W ESP8266 tylko jedno GPIO obsługuje odczyt analogowy. To GPIO nazywa się ADC0 i jest zwykle oznaczone na silkscreenie jako A0.

Maksymalne napięcie wejściowe pinu ADC0 wynosi 0 do 1V, jeśli używasz gołego układu ESP8266. Jeśli używasz płytki rozwojowej, takiej jak ESP8266 12-E NodeMCU kit, zakres napięcia wejściowego wynosi od 0 do 3,3 V, ponieważ płytki te zawierają wewnętrzny dzielnik napięcia.

Jak korzystać z odczytu analogowego za pomocą układu ESP8266, dowiesz się z poniższego przewodnika:

  • ESP8266 ADC – Read Analog Values with Arduino IDE, MicroPython and Lua

On-board LED

Większość płytek deweloperskich ESP8266 posiada wbudowaną diodę LED. Ta dioda LED jest zwykle podłączona do GPIO2.

Dioda LED pracuje z logiką odwróconą. Wyślij sygnał HIGH, aby ją wyłączyć, i sygnał LOW, aby ją włączyć.

Pin RST

Gdy pin RST jest przeciągnięty na LOW, ESP8266 resetuje się. Jest to tożsame z naciśnięciem wbudowanego przycisku RESET.

GPIO0

Kiedy pin GPIO0 jest przeciągnięty na LOW, przełącza ESP8266 w tryb bootloadera. Jest to to samo, co naciśnięcie pokładowego przycisku FLASH/BOOT.

GPIO16

GPIO16 może być użyte do wybudzenia ESP8266 z głębokiego uśpienia. Aby wybudzić ESP8266 z głębokiego uśpienia, GPIO16 powinno być podłączone do pinu RST. Dowiedz się, jak wprowadzić układ ESP8266 w tryb głębokiego uśpienia:

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

I2C

Układ ESP8266 nie ma sprzętowych pinów I2C, ale można je zaimplementować programowo. Możesz więc użyć dowolnych GPIO jako I2C. Zazwyczaj następujące GPIO są używane jako piny I2C:

  • GPIO5: SCL
  • GPIO4: SDA

SPI

Pinami używanymi jako SPI w ESP8266 są:

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

PWM Piny

ESP8266 umożliwia programowy PWM we wszystkich pinach I/O: GPIO0 do GPIO16. Sygnały PWM na ESP8266 mają rozdzielczość 10-bitową. Dowiedz się, jak korzystać z pinów PWM ESP8266:

  • ESP8266 PWM z Arduino IDE
  • ESP8266 PWM z MicroPython

Piny przerwań

ESP8266 obsługuje przerwania w każdym GPIO, z wyjątkiem GPIO16.

  • ESP8266 Interrupts and Timers with Arduino IDE

Wrapping Up

Mamy nadzieję, że ten przewodnik po GPIO układu ESP8266 okazał się przydatny. Jeśli masz jakieś wskazówki, jak prawidłowo używać ESP8266 GPIO, możesz napisać komentarz poniżej.

Posiadamy również podobny przewodnik dla ESP32 GPIO, z którym możesz się zapoznać.

Jeśli zaczynasz przygodę z ESP8266, mamy kilka świetnych materiałów, które mogą Cię zainteresować:

  • Home Automation using ESP8266 (course)
  • Getting Started with the ESP8266
  • 30+ ESP8266 Projects and Tutorials
  • ESP8266 Web Server Tutorial
  • ESP32 vs ESP8266 – Pros and Cons

Dzięki za przeczytanie.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.