Der ESP8266 / NodeMCU ist ein kleiner und günstiger Mikrocontroller mit integriertem Wireless-Lan Modul, der sich vor allem im Bereich der Hausautomatisierung großer Beliebtheit erfreut. Neben der Programmierung mittels der Sprache „Lua„, ist der ESP8266 auch mit der klassischen Arduino IDE programmierbar (mit C++ und weiteren Bausteinen).
Da viele veröffentlichte Bibliotheken für den NodeMCU in C++ geschrieben wurden, brauchen wir die IDE, welche ursprünglich für den Arduino bereitgestellt wurde. Diese IDE unterstützt dank einer Erweiterung auch den ESP8266. Um die genaue Installation und einen ersten Test, geht es in diesem Tutorial. Zusätzlich testen wir den ESP, indem wir ein kleines Programm schreiben, das eine LED zum Leuchten bringt und sich mit einem Wireless-Lan Netzwerk verbindet.
Einer der Vorteile des ESP32 im Vergleich zu einem (Mini) Arduino ist der integrierte Wifi Chip. Während der Arduino vieles erst per Shield hinzugefügt bekommen kann, bietet der ESP8266 dies von Haus aus und hat dazu noch einen geringeren Preis. Insgesamt gibt es also einige gute Gründe für einen ESP8266.
Zubehör
Den ESP8266 gibt es in verschiedenen Versionen. Alle Modelle haben einen W-LAN Adapter eingebaut und Je günstiger das Modell, desto weniger programmierbare GPIO Pins bringt der Mikrocontroller mit. Eine Übersicht findest du in diesem Artikel.
Damit wir den NodeMCU einfach per USB programmieren können, greifen wir auf einen ESP32 zurück. Die zusätzlichen LEDs sind nur dazu da, falls du den IO-Pin Test am Ende des Tutorials auch ausführen möchtest.
- ESP8266: Modell ESP32
- Micro USB Kabel
- Breadboard
- optional: LED Kit
- optional: Jumper Kabel
Vorbereitung der ESP8266 Arduino IDE
Die Grundlage ist die offizielle Arduino IDE, die es hier zum Download gibt. Es gibt Versionen für Windows (ab XP), sowie für Mac OS und verschiedene Linux Distributionen (auch für ARM Architektur).
Lade die IDE also herunter und installiere sie. Danach startet sie ggf. automatisch – falls nicht starten wir sie manuell. Dadurch werden initiale Konfigurationen und Ordner angelegt. Unter Windows 10 ist dies u.a. „C:\Users\[username]\Documents\Arduino“. Dieses Verzeichnis findest du, indem du die Arduino IDE öffnest und „Datei“ -> „Voreinstellungen“ auswählst (Sketchbook Speicherort).
Anschließend benötigen wir noch einen Git-Client. Auf den meisten Linux Systemen ist dieser bereits vorinstalliert. Für Windows (aber auch für Mac und Linux) kann Git-SCM verwendet werden. Lade auch dieses Tool herunter und installiere es. Danach siehst du folgendes UI:
Wähle „Clone Existing Repository“ aus. Im folgenden Dialog muss folgendes eingegeben werden:
Hier noch einmal zum Kopieren (ersetze [username] durch deinen Windows-Benutzernamen. Auf anderen Systemen musst du den Pfad dementsprechend anpassen. Drücke anschließend auf „Clone“.
https://github.com/espressif/arduino-esp32.git
C:/Users/[username]/Documents/Arduino/hardware/espressif/esp32
In letzterem Verzeichnis gibt es einen Unterordner „tools“. Darin befindet sich eine Datei namens „get.exe“. Diese führen wir mit Doppelklick aus:
Das Fenster schließt sich automatisch, nachdem der Download abgeschlossen ist.
Jetzt ist es an der Zeit den ESP32 per USB an den PC anzuschließen. Warte einen Moment, bis alle nötigen Treiber installiert wurden und starte dann die Arduino IDE.
Weitere Installationsschritte
Öffne die IDE und gehe unter „Datei“ -> „Voreinstellungen“. Dort fügst du folgende URL ein (Zusätzliche Boardverwalter-URLs):
http://arduino.esp8266.com/stable/package_esp8266com_index.json
Anschließend kannst du unter „Werkzeuge“ -> „Boards“ -> „Boardverwalter“ (ganz oben) nach „ESP8266“ suchen und das Paket installieren.
Wähle unter „Tools“ -> „Board“ das „Generic ESP8266 Module“ aus. Sofern du keine weiteren Geräte angeschlossen hast, sollte der COM Port automatisch korrekt erkannt worden sein.
Nun kannst du bereits einen einfachen (leeren) Sketch hochladen.
Anschluss und erster Test des NodeMCU mittels Arduino IDE
Nachdem wir die ESP8266 Arduino IDE nun eingerichtet haben, schreiben wir den ersten kleinen C++ Code, mit dem wir eine LED zum Leuchten bringen. Verbinde den ESP Mikrocontroller nun mit dem Breadboard und nimm eine kleine LED mit der Farbe deiner Wahl. Diese hat zwei Enden: An das längere Ende kommt die positive Spannung (+) und das kürzere Ende wird an Ground (GND) angeschlossen.
Für größere Schaltungen nimmt man in der Regel Transistoren oder Relais, aber in diesem Fall reicht der Strom eines IO-Pins aus, um die LED zum leuchten zu bringen. Falls du möchtest, kannst du noch zusätzlich einen Button einbauen, sodass die LED nur leuchtet, wenn der Button auch gedrückt wird. Hierauf gehen wir aber erst einmal nicht näher ein (das könnte eine kleine Zusatzaufgabe sein 😉 )
Wichtig ist zu beachten, dass der D3 Pin, nicht der Pin ist, den wir angeben, sondern dieser GPIO-0 entspricht. Hier findest du daher zusätzlich alle GPIO Pins eines ESP32 Dev Moduls:
Füge folgenden Code in die Arduino IDE ein und drücke den „Hochladen“ Button.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
#include <ESP8266WiFi.h> #define LED_BUILTIN 0 void setup() { pinMode(LED_BUILTIN, OUTPUT); // Initialize the LED_BUILTIN pin as an output Serial.begin(115200); Serial.println(); WiFi.begin("NETWORK_SSID", "WIFI_PASSWORD"); // replace Serial.print("Connecting"); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(); Serial.print("Connected, IP address: "); Serial.println(WiFi.localIP()); } // the loop function runs over and over again forever void loop() { digitalWrite(LED_BUILTIN, LOW); // Turn the LED on (Note that LOW is the voltage level // but actually the LED is on; this is because // it is active low on the ESP-01) delay(1000); // Wait for a second digitalWrite(LED_BUILTIN, HIGH); // Turn the LED off by making the voltage HIGH delay(2000); // Wait for two seconds (to demonstrate the active low LED) } |
Der ESP8266 startet automatisch neu und die LED wird anfangen zu blinken.
Den kompletten Log (seriellen Output) findest du „Werkzeuge“ -> „Serieller Monitor“ oder indem du STRG + Umschalt + M drückst.
Übrigens: Viele weitere kleinere ESP8266 Beispiele für die Arduino IDE findest du in diesem Github Repository.
Ein Kommentar
Leider vermisse ich hier die Anleitung, wie die Arduino IDE auf dem Raspberry Pi mit Unterstützung für die ESP-Familie installiert werden kann. Wäre nett, wenn dies hier beschrieben würde, da es sich ja um Tutorials for Raspberry Pi handelt.