Wenn man einen ESP8266 programmiert, so wird man dessen GPIOs nutzen um externe Dinge wie Sensoren oder ähnliches anzusteuern bzw. auszulesen. Versucht man das gleiche mit einem NodeMCU-Board wird man feststellen das die Pinbelegung des Boards nicht mit der vom ESP8266 übereinstimmt.
Wenn man die Pinbelegung des NodeMCU-Boards mit der vom ESP8266 in Reinform vergleicht, ergibt sich folgendes Bild:
NodeMCU D0 zu ESP8266 16 NodeMCU D1 zu ESP8266 5 NodeMCU D2 zu ESP8266 4 NodeMCU D3 zu ESP8266 0 NodeMCU D4 zu ESP8266 2 NodeMCU D5 zu ESP8266 14 NodeMCU D6 zu ESP8266 12 NodeMCU D7 zu ESP8266 13 NodeMCU D8 zu ESP8266 15 NodeMCU D9 zu ESP8266 3 NodeMCU D10 zu ESP8266 1
Bei der Entwicklung über die Arduino IDE braucht man allerdings keine Sorgen machen. Wird hier das NodeMCU-Board genutzt, so findet man definierte Konstanten von D0 bis D10 um die NodeMCU-GPIOs direkt anzusprechen. Einige der Pins haben auf dem Board eine besondere Funktion:
D1 (I2C Bus / SCL (Clock-Signal)) D2 (I2C Bus / SDA (Datenleitung)) D4 (wie LED_BUILTIN, aber invertierte Logik) D5 (SPI Bus SCK (Clock-Signal)) D6 (PI Bus MISO) D7 (SPI Bus MOSI) D8 (SPI Bus SS (CS)) D9 (Serielle Konsole RX) D10 (Serielle Konsole TX)