Table of Contents
Ten tutorial jest o pinout reference of ESP8266 and different types of ESP8266 boards like Nodemcu, ESP01 , ESP12. Po pierwsze, przedstawię ogólny zarys układu ESP8266 i jego rozmieszczenie pinów, a następnie podam rozmieszczenie pinów najpopularniejszych płyt ESP8266.
Esp8266 jest mikroprocesorem w obudowie QFN posiadającym możliwości zarówno pakietu TCP/IP jak i mikrokontrolera. Esp8266 dostarcza wysoce zintegrowane rozwiązanie WiFi, które spełnia potrzeby branży Internet of Things, takie jak niski koszt, efektywne wykorzystanie energii, godna zaufania wydajność i kompaktowa konstrukcja. Jest on produkowany przez Espressif Systems w Szanghaju, Chiny.
Posiadając pełne możliwości sieciowe WiFi może działać jako slave do mikrokontrolera hosta lub jako samodzielna aplikacja. Kiedy mówimy o slave do mikrokontrolera hosta, oznacza to, że może być używany jako adapter WiFi do dowolnego mikrokontrolera używającego interfejsów SPI lub UART. Podczas korzystania jako samodzielny może wykonywać możliwości mikrokontrolera i sieci WiFi.
Esp8266 jest oparty wokół serii L106 Diamond firmy Tensilica, która jest 32-bitowym procesorem i posiada wbudowaną pamięć SRAM. Integruje również moduły zasilania, balun RF, odbiornik i nadajnik RF, analogowy odbiornik i nadajnik, cyfrowy baseband, wzmacniacz, filtry i kilka innych minimalnych komponentów.
- Specyfikacja ESP8266
- ESP8266 Chip Pinout and Descriptions
- Schematy
- Pinout różnych typów modułów ESP8266
- Rozkład pinów modułu ESP8266 12E
- ESP8266 12E Wemos D1 Mini pinout
- ESP8266 01 Module pinout
- ESP8266 12E NodeMCU Development Board pinout
- Peryferia ESP8266
- Wejście analogowe
- Piny PWM
- Piny SPI
- Piny I2C
- Piny przerwań
- Wake Up
- On board LED
- Przycisk Reset i Flash
- Który pin układu ESP8266 użyć
- ESP8266 pin High and Low-Podczas uruchamiania ESP8266 następujące piny dostarczają sygnał 3.3.3v na określonych pinach, dzięki czemu podłączenie przekaźników, tranzystorów lub innych urządzeń peryferyjnych może się źle zachowywać. Następujące piny dostarczają sygnał 3.3v na Boot: GPIO16 GPIO3 GPIO1 GPIO10 GPIO9
- Konfiguracja pinów podczas uruchamiania
- Applications of ESP8266
Specyfikacja ESP8266
Specyfikacja ESP8266 dzieli się na trzy części: Hardware, Software i Wi-Fi. W specyfikacji sprzętowej, jego rozmiar opakowania to QFN 32pins o wymiarach 5mm x 5mm. Napięcia pracy mieszczą się w zakresie od 2.5V do 3.6V. Układ pobiera średnio 80mA prądu. Jego procesorem jest Tensilica L106, który jest procesorem 32-bitowym z wbudowaną pamięcią SRAM. Interfejs peryferyjny zawiera UART, SDIO, SPI, I2C, I2S, IR remote control, GIPO’s, ADC, PWM, LED Light i przycisk.
Jego firmware może być aktualizowany za pomocą OTA i UART. Używa IPv4, TCP, UDP, i HTTP jako protokołów sieciowych. Użytkownik może konfigurować za pomocą zestawu poleceń AT, serwera w chmurze oraz aplikacji mobilnej.
ESP8266 Chip Pinout and Descriptions
Rozkład pinów w 32-pinowym pakiecie QFN.
- Pin1: VDDA to pin zasilania dla analogowych zakresów napięcia od 2,5V do 3,6V.
- Pin2: LNA jest pin wejściowy / wyjściowy specjalnie używany do interfejsu anteny RF. Chip wytwarza impedancję 39+j6 Ω.
- Pin3: VDD3P3 jest pinem zasilania, aby zapewnić wzmacniaczowi zakres mocy od 2,5V do 3,6V.
- Pin4: VDD3P3 jest pin zasilania dostarczyć wzmacniacz zakresy mocy od 2,5V do 3,6V podobne do pin3.
- Pin5: VDD_RTC jest skategoryzowany jako pin zasilania i dostarcza 1.1V ale ten pin nie jest podłączony.
- Pin6: TOUT jest pinem wejściowym pełni funkcje ADC do testowania napięć zasilania Pin3 i Pin4 oraz napięć wejściowych TOUT pin6. Te dwie funkcje nie mogą być wykonywane jednocześnie.
- Pin7: CHIP_EN I jest stykiem wejściowym. Gdy CHIP_EN jest w stanie HIGH układ pracuje prawidłowo, gdy w stanie LOW układ pobiera niewielką ilość prądu.
- Pin8: XPD_DCDC jest to pin wejściowy/wyjściowy, który służy do wybudzania układu z głębokiego uśpienia. Często jest on połączony z GPIO16.
- Pin9: MTMS to pin wejściowy/wyjściowy oznaczony jako GPIO14 i jest on używany w SPI jako pin zegarowy (SPI_CLK).
- Pin10: MTDI to pin wejściowy/wyjściowy oznaczony jako GPIO12 i jest on używany w SPI jako pin Master-In-Slave-Out (SPI_MISO).
- Pin11: VDDPST to pin zasilania. Jest to zasilacz cyfrowego wejścia/wyjścia, którego napięcia wahają się od 1.8V do 3.6V. Podobnie jak pin17.
- Pin12: MTCK jest pin wejściowy/wyjściowy oznaczony jako GPIO13 i jest używany w SPI jako pin Master-Out Slave-In (SPI_MOSI) jak również używany w UART jako pin Clear To Send (UART_CTS).
- Pin13: MTDO jest pin wejściowy/wyjściowy oznaczony jako GPIO15 i jest używany w SPI jako pin Chip Select (SPI_CS) jak również używany w UART jako pin Request To Send (UART_RTS).
- Pin14: GPIO2 jest wejściem/wyjściem używanym jako UART TX podczas programowania flash.
- Pin15: GPIO0 jest wejściem/wyjściem używanym jako Chip Select pin2 w SPI (SPI_CS2).
- Pin16: GPIO4 jest wejściem/wyjściem używanym wyłącznie do celów wejściowych i wyjściowych.
- Pin17: VDDPST jest pinem zasilania. Jest to zasilacz cyfrowego wejścia/wyjścia, którego napięcia wahają się od 1,8V do 3,6V. Podobnie jak pin11.
- Pin18: SDIO_DATA_2 jest pinem wejściowym/wyjściowym oznaczonym jako GPIO9 i służy do połączenia z pinem danych 2 karty SD.
- Pin19: SDIO_DATA_3 jest pinem wejściowym/wyjściowym oznaczonym jako GPIO10 i służy do połączenia z pinem danych 3 karty SD.
- Pin20: SDIO_CMD to pin wejścia/wyjścia oznaczony jako GPIO11 i służący do połączenia z pinem komendy karty SD
- Pin21: SDIO_CLK to pin wejścia/wyjścia oznaczony jako GPIO6 i służący do połączenia z pinem zegara karty SD.
- Pin22: SDIO_DATA_0 jest pinem wejścia/wyjścia oznaczonym jako GPIO7 i służy do połączenia z pinem danych 0 karty SD.
- Pin23: SDIO_DATA_1 jest pinem wejścia/wyjścia oznaczonym jako GPIO8 i służy do połączenia z pinem danych 1 karty SD.
- Pin24: GPIO5 jest pinem wejściowym/wyjściowym używanym wyłącznie do celów wejściowych i wyjściowych.
- Pin25: U0RXD jest pinem wejściowym/wyjściowym oznaczonym jako GPIO3 i używanym jako UART RX podczas programowania flash.
- Pin26: U0TXD jest pinem wejściowym/wyjściowym oznaczonym jako GPIO1 i używanym jako UART TX podczas programowania flash. Używany również jako SPI Chip Select pin 1 (SPI_CS1).
- Pin27: XTAL_OUT jest klasyfikowany jako pin wejściowy/wyjściowy i podłączony do wyjścia oscylatora kryształu.
- Pin28: XTAL_IN jest klasyfikowany jako pin wejściowy/wyjściowy i podłączony do wejścia oscylatora kryształu.
- Pin29: VDD jest pinem zasilania zapewniającym analogowe zasilanie w zakresie od 2,5V do 3,6V.
- Pin30: VDDA jest pinem zasilania zapewniającym analogowe zasilanie w zakresie od 2,5V do 3,6V. Podobnie jak pin29.
- Pin31: RES12K jest pinem wejściowym, który jest połączony szeregowo z rezystorami 12 kΩ i połączony z masą.
- Pin32: EXT_RSBT jest pinem wejściowym służącym do restartu układu poprzez dostarczenie zewnętrznego sygnału reset, który jest aktywny przy niskim poziomie napięcia.
- Pin33: GND jest pinem zasilania działającym jako masa dla układu.
Wszystkie GPIO mogą być używane jako piny wejściowe i wyjściowe, ale mają też swoje specyficzne funkcje.
Schematy
Schematy układów ESP8266 zawierają następujące elementy:
- Zasilanie
- Sekwencja włączania zasilania i reset
- Flash
- Oscylator krystaliczny
- RF
- Opornik zewnętrzny
- UART
Do tej pory omówiliśmy preambułę Esp8266, schemat bloku funkcjonalnego, rozmieszczenie pinów, opis i schematy.
W sierpniu 2014 Espressif Systems uruchomił swój pierwszy surowy moduł, który jest produkowany przez trzecią część AI-Thinker i moduł określany jako moduł ESP-01. Od tego czasu Ai-Thinker opracował serię modułów opartych na ESP8266, seria ta określana jako moduły ESP-xx obejmuje zakres od 01 do 14.
Pinout różnych typów modułów ESP8266
W tej części artykułu omówimy pinout różnych wersji modułu ESP8266 począwszy od ESP-01 do ESP-12.
Espressif Systems wydało swój pierwszy oficjalny zestaw programistyczny do programowania układu bezpośrednio bez konieczności interakcji z zewnętrznym mikrokontrolerem. Od tego czasu istnieje wiele oficjalnych SDK, ale Espressif utrzymuje tylko dwa SDK stabilne jeden oparty jest na FreeRTOS, a drugi na callbacks. Istnieje również wiele otwartych SDK dla ESP8266.
Arduino: jest najczęściej używanym SDK ze względu na swoją popularność. Jest to SDK oparte na C++. ESP6266 jest łatwe do zaprogramowania jak płytki Arduino. Pliki rdzeniowe są dostępne na GitHub.
NodeMCU: jest zestawem do tworzenia oprogramowania opartym na Lua.
MicroPython: jest wykorzystaniem języka Python dla urządzeń wbudowanych.
Espruino, Mongoose OS, uLisp, Sming, Platform IO, ESP Easy, Smick, ESP Open RTOS są niektórymi innymi zestawami SDK typu open source.Potrzeba tych płytek rozwojowych jest wymagana ze względu na to, że seria modułów ESP-xx nie posiada na pokładzie regulatora napięcia, mostka USB do UART jak CH340G i Silicon Lab’s CP2102 oraz złącza micro USB. Wcześniej musieliśmy kupować osobno regulator napięcia i mostek USB do UART, a następnie podłączać je do modułów ESP-xx, aby je flashować.
Tutaj omówimy głównie płytki rozwojowe oparte na module ESP-12E.
Rozkład pinów modułu ESP8266 12E
Moduł ESP8266 12E posiada łącznie 22 piny, które zawierają
No. of Pins | Pin Label | Description |
---|---|---|
17 | GPIO | Piny GPIO z zakresu od GPIO0 do GPIO16 obejmują piny interfejsu SPI, I2C, SDIO, UART. |
1 | ADC | 10 bitowy przetwornik analogowo-cyfrowy. |
1 | VCC | Napięcie zasilania 3.3V |
1 | GND | Pin uziemiający |
1 | RST | Pin rest |
1 | Enable | Chip Enable Pin |
ESP8266 12E Wemos D1 Mini pinout
Płytka rozwojowa Wemos D1 Mini posiada łącznie 16 pinów, z czego 12 pinów jest aktywnych, wykorzystuje moduł ESP-12, wbudowany przycisk reset, 3.3 regulator napięcia, Micro USB, mostek USB do UART i kilka innych komponentów.
Nr. of
Pin |
Label | Opis |
---|---|---|
1 | 3,3V | 3,3 V pin |
1 | 5.0 | Wejście 5V napięcia pin |
1 | GND | Uziemienie pin |
1 | ADC | 10-bitowy przetwornik analogowo-cyfrowy |
1 | RST | Pin Reset |
9 | D0 do D8, | Piny wejścia/wyjścia używane również dla SPI i I2C, Flash. |
2 | RX,TX | Interfejs UART. |
ESP8266 01 Module pinout
ESP8266 01 Module jest inny, ale powszechnie używany jak powyższe płytki rozwojowe. Ta płytka nie jest breadboard friendly często oddzielny moduł programujący jest używany do programowania. Posiada łącznie 8 pinów, z których 6 jest aktywnych.
Nr. of
Pin |
Label | Opis |
---|---|---|
1 | 3.3V | Zasilanie 3.3 V pin |
1 | GND | Uziemienie pin |
1 | RST | Pin Reset |
1 | CH_PD/EN | Pin zasilania i włączenia układu |
4 | GPIO 0 do 3 | Interfejs UART oraz piny wejścia/wyjścia |
ESP8266 12E NodeMCU Development Board pinout
Płytka rozwojowa NodeMCU posiada łącznie 30 pinów, z czego 14 pinów jest aktywnych, wykorzystuje moduł ESP-12, wbudowany przycisk reset i flash, 3.3 regulator napięcia, Micro USB, USB to UART Bridge i kilka innych komponentów.
Nr. of
Pin |
Label | Opis |
---|---|---|
3 | 3.3V | 3.3 V piny |
1 | Vin | Napięcie wejściowe 5V piny |
4 | GND | Uziemienie piny |
1 | ADC | 10-bitowy przetwornik analogowo-cyfrowy |
1 | RST | Pin Reset |
1 | EN | Pin Chip Enable |
1 | CLK | CLK pin dla interfejsu SPI i SDIO |
1 | SD0 | Pin danych 0 dla interfejsu SDIO i pin MISO dla interfejsu SPI. |
1 | CMD | Pin komend dla interfejsu SDIO i pin Chip select dla interfejsu SPI. |
1 | SD1 | Pin danych 1 dla interfejsu SDIO i pin MOSI dla interfejsu SPI. |
1 | SD2 | Pin danych 0 dla interfejsu SDIO i używany również jako GPIO9. |
1 | SD3 | Pin danych 3 dla interfejsu SDIO i używany również jako GPIO10. |
2 | RV | Piny zarezerwowane. |
11 | D0 do D8, RX, TX | Piny wejścia/wyjścia używane również dla UART, SPI, I2C, Flash i wake pin. |
Peryferia ESP8266
Układy ESP8266 posiadają następujące peryferia:
- 17 pinów wejściowych i wyjściowych ogólnego przeznaczenia
- Seryjny interfejs peryferyjny (SPI)
- Inter-Integrated Circuit (12C)
- Inter-IC Interfejsy dźwiękowe (12S) z bezpośrednim dostępem do pamięci
- Uniwersalny asynchroniczny interfejs odbiornika nadajnika.
- 10-bitowy przetwornik analogowo-cyfrowy
Wejście analogowe
ESP8266 posiada tylko jeden 10-bitowy przetwornik analogowo-cyfrowy, określany jako ADC0 i oznaczany jako A0. Ale jest to również jego jedna z największych wad, ponieważ najczęściej użytkownik musi podłączyć dwa czujniki, więc musimy kupić oddzielne moduły ADC, układy scalone i układy multipleksujące do interfejsu dwóch lub więcej czujników, ale jest to temat na inny artykuł.
Wejście analogowe modułu ESP-01 mieści się w zakresie od 0 do 1V. Płytki rozwojowe oparte na module ESP-12E mają wejściowe napięcie analogowe w zakresie od 0 do 3.3V. Tak więc musimy pamiętać podczas pisania szkicu o wykorzystaniu pinu A0.
Piny PWM
ESP8266 umożliwia PWM na wszystkich pinach wejściowych/wyjściowych od GPIO0 do GPIO16. Sygnały PWM mają 10-bitową rozdzielczość.
Piny SPI
Seryjny interfejs programowania (SPI) ma następujące piny w ESP8266
Piny I2C
ESP8266 udostępnia tylko programowy interfejs I2C, co oznacza, że możemy użyć dowolnych dwóch pinów dla I2C, ale następujące piny są najczęściej używane.
GPIO5 dla Serial Clock Line (SCL)
GPIO4 dla Serial Data Line (SDA)
Piny przerwań
Możemy użyć dowolnego pinu GPIO dla przerwań oprócz GPIO16.
Wake Up
Aby wybudzić ESP8266 z głębokiego snu użyj GPIO16 podłączając go do pinu RST. Jest to temat na inny artykuł.
On board LED
Większość płytek rozwojowych posiada jedną lub więcej wbudowanych diod LED. Dioda wbudowana w moduł ESP8266 jest podłączona do GPIO2, a dioda wbudowana w płytkę rozwojową do GPIO16.
Przycisk Reset i Flash
Wciśnięcie przycisku Reset lub ściągnięcie pinu RST do niskiego poziomu resetuje układ ESP8266. Naciśnięcie przycisku Flash lub przeciągnięcie pinu GPIO0 w dół ustawia układ ESP8266 w tryb bootloadera.
Który pin układu ESP8266 użyć
Zawsze należy pamiętać, że etykieta GPIO nie odpowiada etykiecie na silkscreen. Na przykład GPIO0 odpowiada D3, a D0 odpowiada GPIO16. Najlepiej używać GPIO z zielonym haczykiem.
Label | GPIO | Wejście | Wyjście | Opis |
---|---|---|---|---|
A0 | ADC0 | Wejście analogowe | Nie | Dla wejścia analogowego od 0 do 3.3v i brak wyjścia. |
RX | GPIO3 | Tak | Tylko pin RX | Wysoki przy rozruchu. |
TX | GPIO1 | Tx pin only | Yes | Wysoki na Boot. |
D0 | GPIO16 | Bez przerwania | Bez I2C, PWM | Używane do wybudzania układu z głębokiego snu, High at Boot. |
D1 | GPIO5 | Tak | Tak | Często używane jako SCL |
D2 | GPIO4 | Tak | Tak | Często używane jako SDA |
D3 | GPIO0 | Podniesione do góry | Tak | Połączone z przyciskiem Flash |
D4 | GPIO2 | Przyciągnięty do góry | Tak | Podłączony do wbudowanejw LED, High at Boot. |
D5 | GPIO14 | Tak | Tak | Pin SCLK dla interfejsu SPI |
D6 | GPIO12 | Tak | Tak | Pin MISO dla interfejsu SPI |
D7 | GPIO13 | Tak | Tak | Pin MOSI dla interfejsu SPI |
D8 | GPIO15 | Pulled to ground | Yes | CS pin for SPI interface |
ESP8266 pin High and Low-Podczas uruchamiania ESP8266 następujące piny dostarczają sygnał 3.3.3v na określonych pinach, dzięki czemu podłączenie przekaźników, tranzystorów lub innych urządzeń peryferyjnych może się źle zachowywać. Następujące piny dostarczają sygnał 3.3v na Boot:
- GPIO16
- GPIO3
- GPIO1
- GPIO10
- GPIO9
Wszystkie pozostałe piny GPIO dostarczają niskiego napięcia na Boot z wyjątkiem GPIO4 i GPIO5. Tak więc GPIO4 i GPIO5 są najlepszymi pinami do podłączenia przekaźników, tranzystorów i innych urządzeń peryferyjnych w celu uzyskania stabilnych wyników.
Konfiguracja pinów podczas uruchamiania
Aby pomyślnie uruchomić ESP8266 musimy uniemożliwić określonym pinom uzyskanie stanu HIGH lub LOW.
- GPIO16: pin jest wysoki przy BOOT
- GPIO3: pin jest wysoki przy BOOT
- GPIO10: pin jest wysoki przy BOOT
- GPIO9: pin jest wysoki przy BOOT
- GPIO2: pin jest wysoki przy BOOT, boot failure if pulled LOW
- GPIO1: pin jest wysoki przy BOOT, boot failure if pulled LOW
- GPIO0: boot failure if pulled LOW
- GPIO15: boot failure if pulled HIGH
Applications of ESP8266
- Home automation
- Smart plugs and switches
- Home appliances (like AC, Drukarka)
- Bezprzewodowa kontrola przemysłowa
- Urządzenia czujnikowe
- Gadżety do noszenia
- Kamery IP
- Znaki identyfikacyjne bezpieczeństwa
- Urządzenia świadome lokalizacji Wi-Fi
- System pozycjonowania Wi-Fi
Możesz również zajrzeć do innych tutoriali dotyczących ESP8266: