Dieser Artikel gibt dir alle wichtigen Informationen zum Pinout und den Unterschieden zwischen NodeMCU ESP8266 und Arduino UNO Boards.
Ich habe ein detailliertes Pin-Diagramm der NodeMCU ESP8266 und des Arduino UNO beigefügt.
Nach diesem Artikel weißt du, wie du das Arduino UNO und das ESP8266 Board mit der Arduino IDE verwendest und kennst die technischen Unterschiede zwischen den beiden Boards.
Benötigte Materialien
Hardware-Komponenten
Software
| Arduino IDE | Arduino IDE |
Makerguides.com ist Teilnehmer des Amazon Services LLC Associates Program, einem Partnerprogramm, das dazu dient, durch Werbung und Verlinkung zu Amazon.com Werbekostenerstattungen zu verdienen.
Was ist der Unterschied zwischen NodeMCU und ESP8266?
Das NodeMCU ESP8266 ist ein stromsparender 32-Bit-Mikrocontroller mit integriertem Tensilica 32-Bit RISC-Prozessor, der mit 160 MHz getaktet ist und ein integriertes WiFi-Modul besitzt.
Das Arduino UNO ist das beliebteste Board für Einsteiger. Das Arduino UNO basiert auf dem ATmega328P 8-Bit-Mikrocontroller, der mit 16 MHz getaktet ist.
Der Mikrocontroller des Arduino UNO arbeitet mit 5V Logik, und alle Pins sind 5V-tolerant.
Es verfügt über 2 KB RAM, 32 KB Flash-Speicher für Programme und 1 KB EEPROM für Parameter.
Spezifikationen von NodeMCU ESP8266 und Arduino UNO
| Funktion | Beschreibung (NodeMCU ESP8266) | Beschreibung (Arduino UNO) |
| Mikrocontroller | Tensilica 32-bit Xtensa LX106 | ATmega328P |
| Flash-Speicher | 4 MB | 32 KB (0,5 KB werden für den Bootloader verwendet) |
| SRAM | 128 KB | 2 KB |
| EEPROM | Nicht verfügbar512 Bytes (Software) | 1 KB |
| Taktfrequenz | 80 MHz oder 160 MHz | 16 MHz |
| Betriebsspannung | 3,3V DC | 5V DC |
| Eingangsspannung | 7-12 DC | 6V-20V DC |
| Stromverbrauch | 15 µA – 400 mA | 45 mA – 80 mA |
| DC-Strom pro I/O-Pin | 12 mA | 40 mA |
| Digitale IO-Pins | 17 | 14 |
| Analoge Eingänge | 1 | 6 |
| UARTs | 2 | 1 |
| SPI | 2 | 1 |
| I2C | 1 | 1 |
| PWM | 4 | 6 |
| WiFi | Ja | Nein |
| Bluetooth | Nein | Nein |
Pin-Vergleich von NodeMCU ESP8266 und Arduino UNO
Du kannst das NodeMCU ESP8266 Schematic Diagramm für weitere Details zu den Komponenten auf dem ESP8266-Board ansehen.
Das Pin-Diagramm des ESP8266 ist unten dargestellt.

Du kannst auch das Arduino Uno Schematic Diagramm für Details zu den Komponenten auf dem Arduino UNO Board ansehen.
Das Pin-Diagramm des Arduino UNO ist unten dargestellt.

Stromversorgung
Du kannst eine geregelte 5V DC-Spannung verwenden, um den ESP8266 zu betreiben. Interne Spannungsregler wandeln diese 5V auf 3,3V DC um, da das NodeMCU ESP8266 mit 3,3V Logik arbeitet.
Der VIN Pin kann das NodeMCU ESP8266 und seine Peripherie direkt mit einer geregelten 5V-Spannungsquelle versorgen.
Die 3.3V Pins sind der Ausgang eines Onboard-Spannungsreglers.
Diese Pins können verwendet werden, um externe Komponenten mit Strom zu versorgen.

Ebenso wird beim Arduino UNO die Eingangsspannung (VIN) verwendet, um eine externe Stromversorgung von 5V bis 9V DC bereitzustellen.
3.3V und 5V Pins sind der Ausgang des Onboard-Spannungsreglers.
Der maximale Strom beträgt 50mA. GND steht für die Masseanschlüsse von NodeMCU ESP8266 und Arduino UNO.

General Purpose Input Output (GPIO) Pin
Das NodeMCU ESP8266 hat 17 GPIO-Pins, die als digitale Eingänge oder Ausgänge verwendet werden können. Sie können auch für verschiedene Funktionen wie I2C, SPI, UART, PWM programmatisch genutzt werden.
Jeder digitalfähige GPIO kann als interner Pull-up, Pull-down oder hochohmig konfiguriert werden.
Im Eingangsmodus kann er auch als Edge- oder Level-Trigger eingestellt werden, um CPU-Interrupts auszulösen.

Das Arduino Uno hat 14 digitale Ein-/Ausgangspins, von denen sechs als PWM-Ausgänge und sechs als analoge Eingänge genutzt werden können.
Im Arduino-Code kannst du die Funktion pinMode(pin, direction) verwenden, um die Richtung des Pins festzulegen, digitalRead(pin, value), um den Wert am digitalen Pin auszulesen, und digitalWrite(pin, value), um einen digitalen Wert auf den Pin zu schreiben.

Analoger Pin
Das NodeMCU ESP8266 hat einen analogen Pin (A0). Das Arduino UNO hat sechs analoge Pins (A0 – A5).
Sie werden verwendet, um analoge Eingänge im Bereich von 0-5V bereitzustellen.
Beide Boards haben einen ADC mit 10-Bit-Auflösung, das heißt, du erhältst Werte zwischen 0 und 1023.
Im Arduino-Code kannst du die Funktion analogRead() verwenden, um analoge Pin-Werte auszulesen, und analogWrite(), um analoge Werte auf die Pins zu schreiben.
Serial Peripheral Interface (SPI) Pin
Das NodeMCU ESP8266 hat zwei SPI-Interfaces (SPI und HSPI). Beide unterstützen Master- und Slave-Betrieb.
Im Master-Modus kann der Takt auf 80 MHz eingestellt werden, im Slave-Modus bis zu 20 MHz. Nur der Master kann einen Takt erzeugen.
HSPI_CLK – GPIO14, HSPI_MISO – GPIO12, HSPI_MOSI – GPIO13, HSPI_CS – GPIO15 GPIO-Pins werden für die SPI-Kommunikation verwendet.
SCLK–GPIO6, MISO–GPIO7, MOSI – GPIO8, CS – GPIO11 Pins sind nicht für den Nutzer auf dem Board verfügbar.

Das Arduino Uno hat ein SPI-Kommunikationsinterface. Pin 10 (SS), 11 (MOSI), 12 (MISO) und 13 (SCK).

Du kannst das SPI library für SPI-Kommunikationsbeispiele ansehen.
I2C-Pin
Beim NodeMCU ESP8266 können GPIO4 und GPIO5 als SDA und SCL für das I2C-Interface verwendet werden.
Die Taktfrequenz beträgt maximal 100 kHz. Es gibt keine alternativen Funktionen.
Das Arduino UNO hat ein I2C-Kommunikationsinterface. Pin A4 (SDA) und A5 (SCL) werden für das I2C-Interface verwendet.
Du kannst das wire library für I2C-Kommunikationsbeispiele ansehen.
Universal Asynchronous Receiver Transmitter (UART) Pin
Das NodeMCU ESP8266 hat zwei Hardware-UARTs (UART0 und UART1) mit Baudraten bis zu 115200 und kann mit bis zu 4,5 Mbps kommunizieren.
- UART0 TX – GPIO1, UART0 RX – GPIO3
- UART1 TX – GPIO15, UART1 RX – GPIO13
- UART2 TX – GPIO2, UART2 RX – GPIO8 (Nicht verfügbar).
Das Arduino Uno hat einen UART für serielle Kommunikation. Du kannst Pin 0 (RX) und 1 (TX) mit einer festgelegten Baudrate verwenden.
Du kannst die serial library für UART verwenden. Du kannst auch die Software Serial Bibliothek nutzen, um beliebige GPIO-Pins als Tx und Rx für UART-Kommunikation zu verwenden.
Interrupt-Pins
Alle GPIO-Pins außer GPIO16 unterstützen Interrupts auf dem NodeMCU ESP8266.
Beim Arduino Uno können Pin 2 und 3 so konfiguriert werden, dass sie einen Interrupt bei einem niedrigen Wert, einer steigenden oder fallenden Flanke oder einer Wertänderung auslösen.
Verwende attach interrupt um einen Interrupt an den genannten Pins zuzuweisen.
Pulse Width Modulation (PWM) Pins
Das NodeMCU ESP8266 Board hat vier PWM-Kanäle.
Die PWM-Ausgabe kann programmatisch implementiert und zum Ansteuern von Motoren und LEDs verwendet werden. Der PWM-Frequenzbereich ist von 1000 μs bis 10000 μs einstellbar.
Arduino UNO Pin 3, 5, 6, 9, 10 und 11 bieten PWM-Ausgänge über die analogen Eingänge, jeder mit 10 Bit Auflösung, also 0 bis 1023 verschiedene Werte.
SDIO-Pins
Das NodeMCU ESP8266 verfügt über eine Secure Digital Input/Output Schnittstelle (SDIO), mit der SD-Karten direkt angeschlossen werden können.
4-Bit 25 MHz SDIO v1.1 und 4-Bit 50 MHz SDIO v2.0 werden ebenfalls unterstützt.
SDIO-Pin ist beim Arduino UNO nicht verfügbar.
Steuerungs-Pins
EN-Pin – Der NodeMCU ESP8266 Chip ist aktiviert, wenn der EN-Pin auf HIGH gezogen wird. Bei LOW arbeitet der Chip im Minimalbetrieb.
WAKE-Pin – Ein Wake-Pin wird verwendet, um den Chip aus dem Deep-Sleep zu wecken. EN- und WAKE-Pin sind beim Arduino UNO nicht verfügbar.
RST-Pin – Der RST-Pin wird verwendet, um den ESP8266-Chip und den Arduino UNO MCU zurückzusetzen.
ICSP-Header
Das Arduino Uno hat einen ICSP-Buchsen-Header. In-circuit serial programming (ICSP) ermöglicht es, das Arduino UNO zu programmieren, ohne es aus der Schaltung zu entfernen.
Das Arduino UNO hat eigene In-Circuit-Serial-Programming-Header entwickelt.
Es gibt sechs ICSP-Pins (MISO, MOSI, SCK, VCC, Ground, Reset) auf dem Arduino Uno Board, die über ein Programmierkabel mit einem Programmer verbunden werden können.

Wie schreibt man Code für NodeMCU ESP8266?
Es gibt verschiedene Entwicklungsplattformen, mit denen du das NodeMCU ESP8266 programmieren kannst.
Du kannst Firmware für das NodeMCU ESP8266 mit der Arduino IDE entwickeln.
Folge den Schritten unten, um die Arduino IDE für das NodeMCU ESP8266 einzurichten.
Schritt 1: Lade zuerst Arduino IDE Software
Schritt 2: Öffne die Arduino IDE und gehe zu Datei > Voreinstellungen.

Schritt 3: Im Voreinstellungen-Fenster kopiere den untenstehenden Link in das Feld „Zusätzliche Boardverwalter-URLs“.
Wenn du einen weiteren Link hinzufügen möchtest, kannst du ein Komma setzen und dann den nächsten Link einfügen. http://arduino.esp8266.com/stable/package_esp8266com_index.json

Schritt 4: Schließe das Voreinstellungen-Fenster und gehe zu Tools > Board > Boardverwalter

Schritt 5: Gib im Boardverwalter-Fenster ESP8266 in das Suchfeld ein. ESP8266 wird in den Suchergebnissen angezeigt. Wähle die neueste Version des Boards aus und klicke auf Installieren.

Schritt 6: Nach Abschluss der Installation öffne Tools > Board > und wähle NodeMCU ESP8266 1.0 (ESP-12E Module) aus.
Um den Port auszuwählen, gehe erneut zu Tools > Port und wähle den ESP8266 COM-Port aus.

Schritt 7: Im Datei-Menü gehe zu Beispiele und öffne das Blink-Beispiel.

Schritt 8: Klicke auf „Code überprüfen“ und lade ihn dann auf dein Board hoch.

Wie schreibt man Code für Arduino Uno?
Du kannst Firmware-Code für das Arduino Uno mit der bekannten Arduino IDE schreiben.
Mit der Arduino IDE in C++ kannst du auf dem Arduino Uno unzählige Anwendungen entwickeln.
Schritt 1: Lade zuerst Arduino IDE
Wenn du die Anleitung nicht verstehst, sieh dir auch das Bild an und folge den Schritten.
Schritt 2: Öffne die Arduino IDE und gehe zu Tools > Board > Arduino AVR Boards > Wähle Arduino Uno.
Um den Port auszuwählen, gehe erneut zu Tools > Port und wähle den Arduino UNO COM-Port aus.

Schritt 3: Im Datei-Menü gehe zu Beispiele und öffne das Blink-Beispiel.

Schritt 4: Klicke auf „Code überprüfen“ und lade ihn dann auf dein Board hoch.

Was sind die Vorteile von NodeMCU?
- Das NodeMCU ESP8266 ist ein stromsparendes und kostengünstiges Gerät, ideal für Embedded-Anwendungen.
- Es hat ein integriertes WiFi-Modul, was es perfekt für Internet of Things (IoT) Anwendungen macht.
- Das NodeMCU ESP8266 unterstützt auch FreeRTOS, wodurch parallele Aufgaben auf dem Board möglich sind.
- Bessere Speicher- und Rechenleistung als das Arduino UNO.
- Das ESP8266 Board ist kompatibel mit Breadboards und eignet sich auch für die Montage auf Leiterplatten (PCB).
- Einfach zu programmieren mit der Arduino IDE und Open-Source-Software.
Was sind die Vorteile des Arduino Uno?
- Das Arduino UNO ist ein günstiges und sehr beliebtes Board für Einsteiger.
- Open-Source-Hardware und -Software bieten zudem großartige Community-Unterstützung.
- Das Arduino UNO hat mehr analoge Pins als das ESP8266.
Ist das ESP8266 besser als das Arduino UNO?
Vergleicht man Leistung, Kosten, Stromverbrauch und Funktionalität, ist das ESP8266 dem Arduino UNO deutlich überlegen.
Das NodeMCU ESP8266 unterstützt WiFi für Webserver und kann im STA- oder AP-Modus betrieben werden.
Du kannst die Firmware des ESP8266 auch Over-the-Air (OTA) aktualisieren.
Dank FreeRTOS sind parallele Aufgaben auf dem ESP8266 möglich.
Der einzige Nachteil des ESP8266 ist, dass es nur einen eingebauten analogen Pin hat. Du kannst also nicht mehr als ein analoges Signal direkt anschließen.
Fazit
Meiner Meinung nach gibt es nur wenige Anwendungsfälle, in denen du nicht auf ein NodeMCU ESP8266 Board setzen solltest.
Die NodeMCU ESP8266 Boards haben einen niedrigen Stromverbrauch, viel Speicher und integriertes Wi-Fi.
Wenn du jedoch Einsteiger bist und für alles ein fertiges Beispiel suchst, solltest du zum Arduino UNO greifen. Die Community-Unterstützung ist hervorragend.
Wenn du Fragen oder Anregungen hast oder findest, dass in diesem Tutorial etwas fehlt, hinterlasse bitte unten einen Kommentar.


