Visual Studio Code und der ESP8266

Teil 1: Visual Studio Code und das Arduino Plugin für den ESP8266 einrichten

Ein Arduino bietet viele Möglichkeiten mit ihm zu kommunizieren. Jedoch ist es oft nicht so einfach, die passenden Sensoren zu finden, diese richtig anzusteuern und zu verkabeln. In den meisten Fällen will man einfach nur einen Webrequest absetzen, um eine Statusänderung zu senden oder abzufragen. Für solche Fälle bietet sich der ESP8266 an!

 

Was ist ein ESP8266?

Ein ESP8266 ist, wie ein Arduino, ein Mikroprozessor. Der Vorteil gegenüber einem Arduino ist jedoch, dass der ESP8266 eine Wlan Schnittstelle, mehr Prozessorleistung und Speicher mitbringt.

Ich kann an dieser Stelle auch empfehlen, das Entwicklungsboard NodeMcu des Chips zu kaufen. Dieses gibt es zum Beispiel bei Ebay, Aliexpress, Banggood oder Seed Studio. Diese Version hat die Stromversorgung schon geregelt, ein Chip für die serielle Kommunikation ist vorhanden und die Pins können direkt auf ein Breadboard gesteckt werden.

Entwicklungsboard NodeMcu 

 

Vorbereitungen

Hardware

  • NodeMcu oder ähnliches ESP8266 Entwicklungsboard

  • 1x LED

  • 1x Widerstand mit mind. 275 Ω

  • 2x Jumperkabel

  • 1x Breadboard

 

Visual Studio Code

Visual Studio Code kann für Mac, Windows und Linux hier heruntergeladen werden, falls es noch nicht vorhanden ist.

 

Arduino IDE

Die Arduino IDE wird nicht komplett abgelöst, sie wird weiterhin benötigt! Also nicht deinstallieren oder von hier downloaden und installieren, falls die installierte Version vor 1.6 ist. Bei mir gab es jedoch Probleme mit der Version 1.6.12, daher lohnt sich ein Update, falls eine zu alte Version installiert ist.

Wichtig: Für Windows nicht die App über den Store installieren, sondern den Installer oder Zip herunterladen. Die App wird aufgrund der Ausführung in einer Sandbox nicht unterstützt.

 

Visual Studio Code Plugin

 

Visual Code Plugin Arduino

 

Plugins werden für Visual Studio Code über den Extension Marketplace heruntergeladen. Entweder öffnet ihr die Command Palette mit ⇧⌘P (Ctrl+Shift+P) und gebt ext install vscode-arduino ein. Oder ihr öffnet den Marketplace aus der Seitenleite oder mit ⇧⌘X (Crt+Shift+X). Dort sucht ihr dann nach Arduino und installiert die Version von Microsoft. Mehr Informationen zu dem Plugin gibt es hier.

 

VS Code + Arduino Plugin + ESP8266

Nachdem Visual Studio Code nun für die Programmierung eines Arduino eingerichtet ist, müssen noch ein paar Konfigurationen für den ESP8266 vorgenommen werden.

 

Serielle Kommunikation: CH340G Treiber

Für die serielle Kommunikation hat das NodeMcu Board bereits einen Chip verbaut, den CH340G. Für diesen werden Treiber benötigt: Mac, Windows und Linux.

 

ESP8266 in VS Code konfigurieren

Wenn man die Command Palette mit ⇧⌘P (Ctrl+Shift+P) öffnet und Arduino: Board Config aufruft, sieht man keinen ESP8266 in der Boards-Liste.

Falls der ESP8266 doch erscheint und beim Upload folgender Fehler kommt, kann der Fehler auch mit dieser Anleitung behoben werden:

 

[Starting] Upload sketch — hello_world.ino
Loading configuration…
Initializing packages…
Preparing boards…
Error: esp8266: Unknown package
[Error] Exit with code=3

    Arduino Board Manager    

Damit er dort auftaucht, muss man eine   neue Paketquelle hinzufügen. Dies geht,   indem man im Arduino: Board   Manager auf Additional URLs klickt. Nun öffnen sich die User Settings.

Dort kann nun “arduino.additionalUrls”:   

“http://arduino.esp8266.com/stable/packa.  ge_esp8266com_index.json”   

hinzugefügt werden.

Nun kann in dem Suchfeld nach dem ESP8266 Board gesucht und installiert werden.

 

Arduino IDE Additional Boards Manager URLs

 

Alternativ kann die Paktetquelle auch über die Arduino IDE hinzugefügt werden. Dazu muss die Arduino IDE gestartet werden und die Einstellungen geöffnet werden. Dort gibt es den Menüpunkt Additional Boards Manager URLs, in dem die Url 

http://arduino.esp8266.com/stable/package_esp8266com_index.json 

eingetragen wird. Nun kann in der Arduino IDE unter Tools > Board: “XYZ” > Boards Manager nach dem ESP8266 gesucht und das Board installiert werden.

 

Arduino Board Manager in Tools-Menu

 

Jetzt kann in VS Code im Arduino: Board Config-Menü der ESP8266 ausgewählt und konfiguriert werden. In meinem Fall ist es NodeMCU 1.0 (ESP-12E Module).

Je nach Modul müssen die Parameter angepasst werden. Der Punkt Upload Speed ist die Baudrate. Hier meine Konfiguration:

 

Arduino Board Configuration

 

Um schnell zwischen verschiedenen Boards zu wechseln, die man konfiguriert hat, kann man in der Command Palette Arduino: Change Board Type aufrufen und dort das passende Board auswählen.

 

LED verkabeln

Verkabelung der LED

 

Da das NodeMcu Board, im Gegensatz zum Arduino, keine eingebaute LED hat, müssen wir selbst eine konfigurieren. Dazu verbinden wir eine LED mit zwei Kabeln und einem Widerstand mit dem Board für das Beispiel wie folgt:

Pin D7 wird mit der Anode (dem langen Beinchen) der LED verbunden. Dazwischen kommt ein Widerstand mit mindestens 275 Ω (Wir wollen nicht mehr als 12mA von einem Pin ziehen und der ESP8266 liefert 3,3V (Ohmsches Gesetz). Ein höherer Widerstand geht natürlich immer - schaut einfach, was ihr da habt. Die Kathode (das kurze Beinchen) der LED wird mit Ground verbunden.

 

Hello World

Nun möchte ich ein Programm auf den Arduino bringen. Dafür bietet sich am besten das Hello World in der Elektronik-Welt an: Eine blinkende LED!

 

Projekt erstellen

In Visual Studio Code wird nun ein leerer Ordner geöffnet und die Datei app.ino erstellt. Nun wird über die Command Palette ⇧⌘P (Ctrl+Shift+P) Arduino: Initialize aufgerufen. Als Board wird der NodeMCU 1.0 (ESP-12E Module) ausgewählt.

 

Code

Nun die app.ino öffnen und folgenden Inhalt hinzufügen:

 

void setup() {
pinMode(D7, OUTPUT);
}
void loop() {
digitalWrite(D7, HIGH);
delay(1000);
digitalWrite(D7, LOW);
delay(1000);
}

 

Die setup()-Methode wird einmalig zum Start ausgeführt. Nachdem die setup()-Methode durchgelaufen ist, wird die loop()-Methode immer wieder durchlaufen.

Im setup wird der GPIO Pin D7 als Ausgang geschaltet.

In der loop wird der Pin D7 “an” geschaltet, es fließen nun 3,3 Volt durch. Nun wird 1000 Millisekunden, also eine Sekunde, gewartet. Nach dieser Pause wird der Pin D7 auf “aus” geschaltet, es fließt also kein Strom mehr durch. Jetzt wird wieder eine Sekunde gewartet. Danach wird die loop()-Methode wieder vom Anfang durchlaufen.

 

Upload

Um nun das Programm auf den ESP8266 zu bringen, muss der NodeMcu mit einem USB Kabel verbunden werden.

 

Seriellen Port auswählen

 

Dazu kann in der rechten unteren Ecke der Port ausgewählt werden. Auf MacOs ist es der Port /dev/cu.usbmodem1411 und unter Windows COM4 bei mir.

Über die Command Palette ⇧⌘P (Ctrl+Shift+P) kann nun mit Arduino: Upload das Programm kompiliert und auf den ESP8266 geladen werden.

Im Terminal ist der Fortschritt zu sehen. Nachdem das Programm übertragen wurde, startet es und die LED fängt an, im Sekundentakt zu blinken.

 

Das fertig angebundene Ergebnis!

 

Mehr Infos

Thanks to Jannik Weyrich and Jonas Österle.

 

 

Ähnliche Artikel

IoT
15. November 2021 3 Min. Lesezeit
Iot – Was ist das eigentlich?
Weiterlesen
IoT, Developer Content
20. Mai 2019 4 Min. Lesezeit
Learning “Machine Learning” — Teil 2
Weiterlesen
IoT, Developer Content
18. Dezember 2018 3 Min. Lesezeit
Learning “Machine Learning” Teil 1
Weiterlesen
IoT, Developer Content
10. April 2018 5 Min. Lesezeit
IoT: Speichern & Anzeigen von Temperatursensordaten mit Azure Diensten
Weiterlesen
IoT, DIY
12. März 2018 3 Min. Lesezeit
Deckenlampen per Sprachbefehl oder Wandschalter bedienen
Weiterlesen
Developer Content
12. Oktober 2023 4 Min. Lesezeit
Das Rad nicht neu erfinden - IT Frameworks einsetzen lohnt sich
Weiterlesen
Developer Content
26. Januar 2022 4 Min. Lesezeit
Was Kuchenbacken und Softwareentwicklung gemeinsam haben
Weiterlesen
Developer Content
14. August 2020 6 Min. Lesezeit
Einstieg in die testgetriebene Entwicklung
Weiterlesen
Developer Content
1. April 2020 7 Min. Lesezeit
Code Review bei BRICKMAKERS
Weiterlesen
Developer Content
6. März 2020 2 Min. Lesezeit
Kovarianz und Kontravarianz von Unit-Tests
Weiterlesen
Developer Content
11. Dezember 2019 3 Min. Lesezeit
Cloud Architekturen im Überblick
Weiterlesen
Pfeil nach links
Pfeil nach rechts