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.