Der Mikrocontroller NodeMCU kommt mit allem daher was man für ein ersten Start benötigt.
Er ist mit einem WIFI Chip ausgestattet (ESP8266) und besitzt für einen Arduino typisch die Analogen und Digitalen Aus-/ Eingänge (siehe technische Daten).

Inhaltsverzeichnis
Technische Daten
- Architektur: 32Bit
- Spannungseingang: 5V bis max. 10V
- Abmaße: 49 mm x 24.5 mm x 13 mm (LxBxH)
Benötigter Treiber
Es wird der Treiber CP2102 benötigt. Dieser Treiber kann von der Seite https://www.silabs.com für die Betriebssysteme Microsoft Windows & Linux geladen werden.
Aufbau

Vorwort
Die folgenden Beispiele sollen aufzeigen, was alles mit dem NodeMCU möglich ist, ich werde die einfachen Beispiele wie
- blinken einer LED,
- Soundausgabe auf einem Buzzer, oder
- darstellen von Texten auf einer LCD Anzeige
überspringen, denn dieses ist ja auch mit jedem „normalen“ Arduino möglich.
Ich werde stattdessen zeigen wie der NodeMCU als Webserver im Heimnetzwerk betrieben werden kann und was alles so möglich ist.
Was ist ein Webserver?
Ein Webserver oder meist kurz als Server benannt ist gemäß der Übersetzung ein Diener und mehr als das tut er auch nicht. Der Webserver dient zum Bereitstellen von Informationen und Aktionen d.h. wir können Werte ablesen (z.bsp. auf einer HTML Seite) oder aber auch Aktionen ausführen.
Einrichten der Arduino IDE
Meine erste Wahl zum Entwickeln von Sketchen für den Arduino ist die Arduino IDE welche unter http://arduino.cc/software bezogen werden kann. Für den NodeMCU muss noch die passende Bibliothek geladen werden.
Schritt 1 – Einrichten einer zusätzlichen Adresse zum herunterladen von Bibliotheken
Als Erstes muss eine zusätzliche Adresse eingerichtet werden, dazu wird über das Menü zu den „Voreinstellungen“ navigiert („Datei“ -> „Voreinstellungen“ oder die Tastenkombination Strg + Komma).

Im neu geöffneten Fenster „Voreinstellungen“ wird nun die Adresse http://arduino.esp8266.com/stable/package_esp8266com_index.json in das Feld „zusätzliche Boardverwalter-URLs“ (in der Grafik rot markiert) eingeben.

Nun kann die Bibliothek für die NodeMCU hinzugefügt werden.
Schritt 2 – Bibliothek für den NodeMCU installieren
Im ersten Schritt haben wir die Vorarbeit geleistet um nun die Bibliothek über das Menü „Werkzeuge“ -> „Board: „xyz“ “ -> „Boardverwalter…“ hinzuzufügen.

Im nun geöffneten Fenster können Sie über das Eingabefeld „1“ die Liste mit der Eingabe „esp“ einschränken.

Es wird nun der Eintrag „esp8266 by ESP8266 Community“ gewählt „2“. Nun noch die Schaltfläche „installieren“ betätigen „3“ und nach dem der Installationsvorgang beendet wurde. Kann das Fenster über die Schaltfläche „Schließen“ „4“ geschlossen werden.
Evtl. muss eine bestimmte Version gewählt werden. Ich hatte zuert mit der Version 2.3.0 probiert und keinen Erfolgt gehabt. Nach einem wechsel auf 2.2.0 funktionierte das Gerät zuverlässig.
Nun ist die Bibliothek eingebunden, es kann fast losgehen. Als Erstes muss man das korrekte Board auswählen.
Für das mir vorliegende Modell wähle ich

Nun kann auch das erste Beispiel hochgeladen werden.
Mit dem Treiber für das Board werden auch diverse Beispiele mitgeliefert.
Eines davon wollen wir als Erstes konfigurieren und hochladen.
Ein einfacher HTTP Webserver
Unter dem Menüpunkt „Datei“ -> „Beispiele“ -> „ESP8266WebServer“ findet man das Beispiel „HelloServer“ welches wir nun laden und für das Netzwerk konfigurieren möchten.

In dem nun geöffneten Beispiel setzen wir die Werte für die SSID und den WLAN-Netzwerkschlüssel
const char* ssid = "xxxx"; const char* password = "xxxx";
Die Daten für SSID & WPA2 Schlüssel findet Ihr in eurem Router.
In der Fritzbox findet Ihr die SSID unter dem Menüpunkt „WLAN“ -> „Funktnetz“ , den WLAN Netzwerkschlüssel wiederum findet Ihr unter „WLAN“ -> „Sicherheit“.
Nachdem nun die beiden Werte gesetzt sind, kann der Sketch hochgeladen werden.

In der Grafik erkennt man die Konfiguration (grüner Kasten), wieviel Speicher der Sketch belegt (pinker Kasten) und den Fortschritt des Uploads (blauer Kasten).
Nachdem der Upload beendet wurde, kann man im seriellen Monitor folgende Ausgabe sehen:

Die Sonderzeichen in der ersten Zeile sollen eigentlich die Informationen aus dem Bootloader des NodeMCU anzeigen. Jedoch sendet dieser mit 9600 Baud und wechselt im Sketch auf 11500 Baud somit funktioniert das wegen der Übertragungsgeschwindigkeit nicht korrekt.
Es wird die IP-Adresse des NodeMCU sowie der Status ausgegeben. Wenn wir nun die IP-Adresse „192.168.178.50“ im Browser eingeben. Erhalten wir folgende Ausgabe:

Damit haben wir einen kleinen Server welchen wir im Heimnetzwerk betreiben können.
Anmelden des NodeMCU am Netzwerk
Da die Anmeldung am Netzwerk relativ lange dauert und das Gerät später zuverlässig über eine bestimmte IP-Adresse angesprochen werden soll, habe ich dem NodeMCU in der Fritz!Box eine feste IP-Adresse vergeben.
Jetzt geht’s los
Als Nächstes wollen wir dieses Beispiel modifizieren und eine kleine HTML Seite mit Informationen bereitstellen.
HTML Seite darstellen
Um eine HTML Seite darzustellen, gibt es mehrere Möglichkeiten.
Die wohl einfachste Möglichkeit ist es, den gesamten HTML Code in eine Variable zu schreiben:
String htmlCode = "<html><body><h1>Hello World!</h1></body></html>";
Zusätzlich muss noch der HTML Content Type angepasst werden, denn sonst wird der HTML Text mit den Tags ausgegeben.

Nachdem nun auch der Contenttype angepasst wurde, wird die Seite korrekt dargestellt.

Dieses ist für diesen Einzeiler wohl geeignet, wenn jedoch die Seite komplexer wird, stößt man dann schon an die Grenze des Lesbaren (Obwohl der NodeMCU genug speicher hat.).
Mit einem Data logging Shield kann man bequem auf eine Datei auf der SD-Karte zugreifen und diese auch auslesen. Zum Data logging Shield habe ich bereits ein Tutorial für den Arduino UNO geschrieben, für den NodeMCU ändert sich hier einiges welches in einem separaten Tutorial erläutert wird.
ESPlorer
Das Programm „ESPLorer“ dient wie auch die Arduino IDE zum Entwicklen des Mikrocontrollers NodeMCU. Jedoch wird hier in der Sprache LUA entwickelt. Das Programm selbst ist ein Oracle Java FatClient und benötigt die Version 7 oder höher. Ein Blick auf das Programm lohnt sich und kann kostenfrei auf der Seite https://esp8266.ru/esplorer/ heruntergeladen werden.

Trouleshooting
Neue Firmware aufspielen
Wenn man eine neue Firmware auf den NodeMCU aufspielen möchte, so wird dieses mit dem
Tool „NodeMCU FIRMWARE PROGRAMMER“ zuverlässig und schnell erledigt. Dieses Tool kann vom GitHub Repository https://github.com/nodemcu/nodemcu-flasher in den Versionen 32Bit sowie 64Bit heruntergeladen werden.

Was nun noch fehlt ist ein Binary welches die Firmware mit den gewünschten Einstellungen enthält.
Das Binary kann man sich je nach Projekt & Gerät selber zusammenstellen, dazu wird auf der Seite https://nodemcu-build.com/ die E-Mail-Adresse eingegeben und die Pakete angeklickt, per default sind schon einige wichtige / sinnvolle gesetzt.
Nun noch die Schaltfläche „Start your build“ betätigen und der Buildvorgang mit den gewünschten Einstellungen wird gestartet. Wenn der Buildvorgang beendet ist, wird man per E-Mail benachrichtigt und kann das Binary herunterladen.

Langsame Compilierung & Upload
Wenn die Compilierung des Sketches ungewöhnlich lange dauert, so kann dieses am aktiven Virenscanner liegen. Eine Lösung wäre dieses auszuschalten („garnicht gut!“) eine deutlich bessere Lösung ist den Pfad zur Arduino IDE als Ausnahme im Virenscanner hinzuzufügen.
Hallo Herr Draeger.
Danke für Ihre Hilfe / für den letzten Hinweis!!!
Ich bin ein Newbie, was Arduino IDE und auch NodeMCU angeht.
Wenn ich mein Sketch aud das NodeMCU lade (was Fehler loss von statten geht,
meldet sich das NodeMCU immer mit der der selben Bezeichnung (z.B. ESP_0516DF ). Wie ändere ich diese Bezeichnung, so das sie meinen Gegebenheiten entspricht??? Können Sie mir damit weiterhelfen???
Freundlichst
Paul Preuß
Hi,
wenn du den Hostname des NodeMCU meinst diesen kannst du mit der Funktion Wifi.hostname(„HierStehtDerNeueName“); ändern.
Ein Beispielsketch habe ich unter https://pastebin.com/ybrxhNpm abgelegt.
Gruß,
Stefan Draeger
Hallo Herr Dräger,
Ich vesuche das D1 WiFi Board zum Laufen zu bringen. Der Sketch lief auf dem Arduino Uno fehlerfrei. Nun habe ich versucht alles so zu installieren, wie Sie es beschrieben haben, aber scheitere an dieser Anweisung:
Es wird nun der Eintrag „esp8266 by ESP8266 Community“ gewählt „2“. Nun noch die Schaltfläche „installieren“ betätigen „3“ und nach dem der installationsvorgang beendet wurde. Kann das Fenster über die Schaltfläche „Schließen“ „4“ geschlossen werden.
Eine solche Bibliothek wird mir nicht angezeigt. Deshalb komme ich nicht weiter. Habe schon versucht, die Platine und Wemos D1 R1 anzumelden. Es gab keine Fehlermeldung, aber der Sketch lief nicht.
Gruß, M. Stellpflug (Physiklehrer)