Einrichten der Arduino IDE und Einbindung der ESPs sowie die Einrichtung von Thonny unter macOS
An Apple a day keeps Windows away :-)
Teil 2 – ESPs einrichten
1. Eine kurze Vorbemerkung
Die Mikrocontroller von Espressif, ESP8266 und ESP32, erfreuen sich unter den Bastlern großer Beliebtheit, sind sie doch schnell, haben viel Speicherplatz, WLAN und sogar, je nach Variante, Bluetooth mit an Bord. Außerdem gibt es zahlreiche günstige Boards von verschiedensten Herstellern. Zudem sind sie auch mit der Arduino IDE programmierbar. Allerdings sind einige Schritte zusätzlich nötig, damit die IDE mit den ESPs spricht.
Dazu kommt noch, dass die Version 1.8.13 der Arduino IDE für macOS noch nicht ganz »Big Sur« fest ist, was ein paar zusätzliche Schritte erfordert. Packen wir es an!
2. Bereitstellen der Boards für ESP8266 und ESP32
Als Erstes muss der Arduino IDE mitgeteilt werden, von wo die Files zum Umgang für die ESPs geholt werden können. Dazu rufen wir unter /Datei die Voreinstellungen (engl. »Preferences«) auf und tragen die »Bordverwalter URLs« ein:
Für den ESP8266 ist dies:
https://arduino.esp8266.com/stable/package_esp8266com_index.json
und für den ESP32:
https://dl.espressif.com/dl/package_esp32_index.json
a) Eintragen der URLs:
b) Herunterladen der Files im »Boardverwalter/Boardmanager«
c) Laden der Files für den ESP8266: In das Suchfeld esp82 eintragen und »Installieren« klicken (es dauert ein paar Sekunden, bis das gewünschte Paket gefunden wird)
d) Laden der Files für den ESP32: In das Suchfeld esp32 eintragen und »Installieren« klicken,
dann das Fenster schließen.
3. Das erste Programm mit einem ESP6266
Wieder verwende ich das Beispielprogramm »Blink« aus der Beispielsammlung.
Als Testobjekte standen mir zur Verfügung:
- D1 Mini NodeMCU mit ESP8266-12F WLAN Modul für Arduino
- NodeMCU Lua Lolin V3 Module ESP8266 ESP-12F WIFI Wifi Development Board mit CH340
- D1 Board NodeMCU ESP8266MOD-12F WiFi Wlan Modul
Alle drei Boards von AZ-Delivery.
Das Programm »Blink« (alle Kommentare entfernt):
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
}void loop() {
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on
delay(200); // wait for a second
digitalWrite(LED_BUILTIN, LOW); // turn the LED off
delay(200); // wait for a second
}
Damit das Programm ESP-kompatibel wird, müssen wir das passende Board sowie den richtigen Port auswählen. Das passende Board zu wählen kann ein wenig ein Ratespiel sein, manchmal weiß man nicht, welches bei einem vorliegt. Ich habe Board »WeMos D1 R1« gewählt, was mit allen drei meiner ESP8266-iger funktioniert hat.
Werkzeuge -> Board: -> ESP8266 Boards (2.7.4) -> WeMos D1 R1
Und der Port: Werkzeuge -> Port -> /dev/cu.usbserial-1420
Die genaue Bezeichnung des Ports hängt natürlich von der Hardware ab.
Nun frohgemut das Programm übersetzten und auf das Board laden.
Hier gab es nun ein ernsthaftes Problem, das wohl darauf zurückzuführen ist, dass die ESP8266 Umgebung noch nicht völlig »Big Sur« kompatibel ist.
Es kam stets eine Fehlermeldung »pyserial or esptool directories...«:
Nach einiger Suche im Netz wurde ich fündig und konnte das Problem lösen:
a) Herunterladen der Datei: https://github.com/espressif/esptool/archive/v3.0.zip
b) Herunterladen der Datei: https://github.com/pyserial/pyserial/archive/v3.4.zip
c) Entpacken der im Download-Ordner liegenden Dateien »esptool-3.0.zip« und »pyserial-3.4.zip«
d) Umbenennen der Ordner »esptool-3.0« in »esptool« und von »pyserial-3.4« in »pyserial«
e) Diese beiden Ordner werden nun in das Verzeichnis
~/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/tools/
kopiert und ersetzen die dort befindlichen, gleichnamigen Ordner.
Wie um aller Welt kommt man nun in diesen Ordner? Der Ordner ~/Library ist gewöhnlich im Finder versteckt. Was also tun?
Ganz einfach: die Zeile
~/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/tools/
in die Zwischenablage kopieren und dann im Finder den Menüpunkt aufrufen: »Gehe zu -> Gehe zum Ordner ...« und dann in das kleine Fenster die Zwischenablage einfügen und »Öffnen« klicken.
Nach dieser Prozedur klappte bei allen drei Boards die Kompilierung und der Übertragun und es setzte ein heftiges Blinken der eingebauten LED ein.
Geschafft!
4. Das erste Programm mit einem ESP32
Hier gab es nun doch ein Problem. Alle drei Boards der Reihe »ESP32 D1 R32 Entwicklungsboard mit CH340G und WiFi + Bluetooth (Arduino kompatibles Internet Development Board)« von AZ-Delivery weigerten sich zunächst, ein Programm aufzunehmen. Bei zweien konnte keine Verbindung aufgebaut werden und das andere Board meldete: »A fatal error occurred: Timed out waiting for packet content«. Dieses Board konnte durch eine Reduktion der »Upload Speed« auf 115200 Baud zum Leben erweckt werden.
Die beiden Anderen waren auch bei der geringsten »Upload Speed« von 460800 Baud nicht dazu zu bewegen, einen Kontakt zur Arduino IDE herzustellen.
Das lag definitiv nicht am macOS, denn ich hatte das gleiche Ergebnis mit der Arduino IDE sowohl unter WIN 7 als auch unter LINUX Mint.
Nach Rücksprache mit Gerald Lechner konnte wenigstens eines der Board zu Leben erweckt werden.
Die Meldung: »Connecting........_____....._____....._____....._____....._____.....« bedeutet, dass das Board nicht in den Flash-Modus versetzt werden kann.
Verbindet man den Pin OO mit GND und betätigt dann der Rest-Knopf, so wird das Board manuell in den Flash-Modus versetzt. Bei einem der beiden Verweigerer hat das zum Erfolg geführt, beim Zweiten war es vergebliches Bemühen.
Funktioniert haben also drei Boards:
- ESP32 NodeMCU Module WLAN WiFi Development Board mit CP2102 von AZ-Delivery
- ESP32 D1 R32 Entwicklungsboard mit CH340G und WiFi + Bluetooth (Arduino kompatibles Internet Development Board) von AZ-Delivery
- Heltec HTIT-WB32 von HELTEC
Als Board wählte ich zunächst das »ESP32 Dev Modul« aus der Rubrik »ESP32 Arduino«, der Port hieß /dev/cu.usbserial-0001. (Alle benötigten Treiber waren vorinstalliert!)
5. Das Programm
Auch hier wieder das bewährte Programm »Blink«, das aber ein wenig abgewandelt werden musste. Denn es ist der Pin 1 oder Pin 2, der mit der internen LED verbunden ist und die vordefinierte Konstante LED_BUILTIN ist diesem Modul unbekannt.
int LED = 1;
// 1 für ESP32 NodeMCU; 2 für für ESP32 D1 R32void setup() {
pinMode(LED, OUTPUT);
}void loop() {
digitalWrite(LED, HIGH);
delay(200);
digitalWrite(LED, LOW);
delay(200);
}
Für das Heltec-Board musste ich einstellen:
Board: Heltec WiFi Kit 32
Port: /dev/cu.usbserial-0001
Das Programm musste geändert werden:
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
}void loop() {
digitalWrite(LED_BUILTIN, HIGH);
delay(200);
digitalWrite(LED_BUILTIN, LOW);
delay(200);
}
Geschafft! Beim nächsten Mal installieren wir Thonny als Entwicklungsumgebung für Micro Python.
6 comments
Marco
Hallo,
ich nochmal hab den Fehler gefunden.
Anscheinend gibt es Unterschiede bei den Kabels.
Habe drei Stück ausprobiert und erst beim dritten wurde der ESP8266 vom Mac erkannt.
Bei den anderen beiden war nur die Stromversorgung von ESP gegeben.
Gruß Marco
Marco
Hallo zusammen,
der Beitrag ist echt spitze.
Leider wird bei mir der serielle USB-Port nicht angezeigt sondern nur kabellose Verbindungen.
Weiß jemand woran das liegt?
Beste Grüße
Marco
Rudolf Reiber
Das Problem von Julia konnte gelöst werden. Es fehlte das neueste esptool an der entsprechenden Stelle. Ob das nun an Big Sur lag oder daran, dass die Arduino IDE nicht korrekt upgedatet wird? Ich weiß es nicht. Auf jeden Fall tut bei Julia nun alles.
Rudolf Reiber
Hallo Julia,
kannst Du die Probleme bitte genauer schildern.
Bei mir ist die ESP32 Umgebung völlig „Big Sur“ kompatibel.
Viele Grüße
R. Reiber
Julia
vielen Dank für diesen Artikel, die Problembehandlung für den ESP 8266 hat gut geklappt,
aber was ist mit der ESP32 Umgebung, auch sie ist noch nicht völlig »Big Sur« kompatibel,
beste Grüße von Julia
Rudolf Reiber
Hinweis: bei dem dritten ESP32 Board, das nicht tat, befand sich ein Lötbatzen zwischen zwei Pins, dem TXT- und RXT-Pin. Das ist bei der Endkontrolle des Boards offensichtlich nicht aufgefallen. Mithin konnte das Board nicht mit der tion mit der ARDUINO-IDE erfolgen. Nach dem Entfernen der Lötbrücke funktionierte auch das dritte Board einwandfrei.