ESP8266 Pin-Belegung

Die Tabelle unten zeigt, welche GPIO-Pins auf den ESP8266-Boards vorhanden sind und welche Funktionen sie wahrnehmen können. Das NodeMCU-Board ist optisch einem ESP32-DevKitC ähnlich (allerdings etwas schmaler). Es besitzt 30 Pins; alle 17 GPIOs sind nach außen geführt. Der D1 mini ist deutlich kleiner und hat nur 16 Pins – alle wesentlichen, für eigene Anwendungen nutzbaren sind aber vorhanden.

PDF-Download: Pinbelegung des ESP8266 (NodeMCU und D1 min)

Die entsprechenden Informationen zum ESP32 gibt es hier: ESP32 Pinbelegung.

Die Standardspannung des ESP8266 beträgt 3,3 Volt. Darauf sind auch die GPIOs ausgelegt – sie arbeiten mit Signalpegeln von 3,3V; höhere Spannungen als 3,6V – also auch die mglw. vom Arduino gewohnten 5V-Signale – können die Boards beschädigen bzw. zerstören. Ein Spannungsregler sorgt dafür, dass die 5V Versorgungsspannung – z.B. vom USB-Anschluss – auf 3,3V heruntergeregelt werden.

Pin-Name: entspricht der Beschriftung auf den Boards
<FLASH>: Damit sind in der Tabelle die GPIO-Pins 6-11 gekennzeichnet, die zur Ansteuerung des internen SPI-Flash-Speichers verwendet werden und nicht für eigene Projekte zur Verfügung stehen.
EN: ist intern auf HIGH-Pegel gesetzt, damit der Chip arbeitet (LOW schaltet den Chip ab; power down)
RST: Eine kurze Verbindung mit Masse, z.B. über einen Taster, löst einen Neustart (Reset) des ESP32 aus, hat also die gleiche Funktion wie der Reset-Taster auf dem Board.
VIN, 5V: Kann zur Spannungsversorgung des NodeMCU-Boards verwendet werden, wenn das Board nicht per USB-Anschluss versorgt wird. Lt. Forum auf mikrocontroller.net funktioniert das auch beim D1 mini. Wird das Board per USB versorgt, darf an diesem Pin keine Eingangsspannung anliegen – dann stehen hier die 5 Volt des USB-Anschlusses bereit, um angeschlossene Geräte, die das benötigen, zu versorgen. Sehr viele Sensoren arbeiten aber in einem Spannungsbereich von 3,3 bis 5 Volt und können dann mit der Standardspannung der ESPs von 3,3 Volt betrieben werden. Aufschluss gibt das jeweilige Datenblatt.

Je GPIO-Pin kann der ESP8266 max. 12 mA Strom liefern.

Die meisten GPIO-Pins wechseln beim Booten des Boards (vorübergehend) von LOW- auf HIGH-Pegel und sollten deshalb möglichst nicht zum Schalten von Relais verwendet werden. Stabil auf LOW-Pegel bleiben die Pins D1 (GPIO 5) und D2 (GPIO 4). Zu den Details siehe den Artikel »ESP8266 GPIO Behaviour at Boot«.

Pulsweitenmodulation (PWM): Alle GPIOs, die sich als Output-Pins eignen, können PWM-Signale mit 10 Bit Auflösung (0…1023) ausgeben.

Die wichtigsten Schnittstellen sind:

  • ADC0: Analog-Digital-Konverter; 1 Kanal mit 10 Bit Auflösung (Werte 0…1023); der einfache Chip kann nur Spannungen zwischen 0 und 1 V messen, die NodeMCUs (und der D1 mini) können wegen eines eingebauten Spannungsteilers bis 3,3 Volt messen.
  • I2C: Kommunikation per I2C-Bus über die Leitungen SCL (Takt; serial clock) und SDA (Daten; serial data); da sich die angeschlossenen Geräte (wie Sensoren) je nach Typ über eine eigene Adresse identifizieren, kann man über einen Bus mehrere Geräte ansprechen
  • HSPI: (Hardware-) SPI; zur Verbindung mit Modulen, die das SPI (engl.: Serial Peripheral Interface) zur Kommunikation nutzen, bspw. Displays oder SD-Kartenleser. (Da die GPIO-Pins 6-11 zur Anbindung des Flash-Speichers vom ESP8266 selbst verwendet werden, steht nur die Schnittstelle an den Pins 12-15 für Anwendungen zur Verfügung.)

Eine ausführlichere Erläuterung der Funktionen gibt der Artikel »ESP8266 Pinout Reference: Which GPIO pins should you use?« bei Random Nerd Tutorials.

NameGPIONodeMCU
(30 Pins)
D1 miniD1Funktion
A0(ADC0)xxxADC0
D30xxxFLASH
TX1xxxTXD0
D42xxxinterne LED, TXD1
RX3xxxRXD0
D24xx2 xI2C_SDA
D15xx2 xI2C_SCL
CLK6x<FLASH> SDCLK, SCLK
SD07x<FLASH> SDD0, MISO
SD18x<FLASH> SDD1, MOSI
SD29x<FLASH> SDD2
SD310x<FLASH> SDD3
CMD11x<FLASH> SDCMD, CS
D612xx2 x(HSPI_)MISO
D713xx2 x(HSPI_)MOSI, RXD2
D514xx2 x(HSPI_)SCLK
D815xxx(HSPI_)CS, TXD2
D016xxxWAKE
ENx
RST, RESETxxxwie RESET-Taster: Neustart des ESP8266
GND4 x1 x3 xMasse
3V33 x1 x1 x3,3 V zur Versorgung angeschlossener Komponenten
VIN1 x1 xals Eingang: 5 V Versorgung; 5V-Ausgang bei Versorgung per USB
5V1 x1 x5V-Ausgang (Spannung vom USB-Eingang)

Beim D1-Board (unteres Bild) orientiert sich die Pin- (bzw. Buchsen-)Belegung am Arduino Uno – soweit möglich sind die Boards pin-kompatibel. Abweichungen gibt es bei den Analog-Pins, von denen der Uno fünf besitzt (der ESP8266 einen), und beim AREF-Pin, der dem ESP8266 (und damit dem D1 Board) fehlt. Das D1-Board und der Arduino Uno sind zwar pin-Kompatibel, aber die Pins des D1-Boards arbeiten mit der Standardspannung des ESP8266 von 3,3 V – sie vertragen NICHT die bei den Arduinos üblichen 5 V.

Die Digitalpins (am oberen Bildrand) sind vlnr. von D15 bis D0 beschriftet und wie folgt belegt (einige GPIOs sind auf mehrere Pins geführt):

Bezeichnung GPIO Funktion
D0 3 RX
D1 1 TX
D2 16 WAKE
D3 5 I2C SCL
D4 4 I2C SDA
D5 14 SPI SCLK
D6 12 SPI MISO
D7 13 SPI MOSI
D8 0
D9 2 interne LED
D10 15 SPI CS
D11 13 SPI MOSI
D12 12 SPI MISO
D13 14 SPI SCLK
D14 4 I2C SDA
D15 5 I2C SCL

Letzte Änderung: 11.06.2021