ESP32 Erste Schritte mit Arduino IDE

Installation des Arduino Core / Schritt 1

Ich möchte hier eine einfache Methode zeigen Arduino Core für ESP32 zu installieren. Das geht ohne GIT Installation.

Ich nehme an, das Arduino bei Ihnen bereits schon installiert ist.  Jetzt müssen wir das Arduino Core für ESP32 installieren.

Jezt lässt sich ESP32 über den Boardverwalter installieren. Wechseln Sie zum „Datei“/“Voreinstellungen“, Tragen Sie in Eingabefeld  „Zusätzliche Boardverwalter-URLs“. folgende URL:  https://dl.espressif.com/dl/package_esp32_index.json . jetzt können Sie über „Werkzeuge“ -> „Board“ -> „Boardverwalter“ esp32 suchen und installieren.

Und das ist die alte Methode

Installation Schritt 1. Aktuelle Arduino Core für ESP32  bei github von espressif  laden (Zip-Datei).
Installation Schritt 2. Verzeichnisse anlegen /„Arduino Projekt Ordner/hardware/espressif/esp32
Installation Schritt 3. Das Inhalt des Verzeichnisses „arduino-esp32-master“ aus dem ZIP-Datei in Verzeichnis /„Arduino Projekt Ordner“/hardware/espressif/esp32 kopieren.
Installation Schritt 4. Das Programm /„Arduino Projekt Ordner“/hardware/espressif/esp32 tools/get.exe ausführen. Abwarten bis das Download beendet ist.

Wenn Sie das gemacht haben sollte im Arduino Board Manager eine Reihe von esp32 Module erscheinen. Damit ist die Installation abgeschlossen.

Erstes Programm kompilieren / Schritt 2

Zuerst schlage ich vor, das kompilieren und Programmladen (flashen) auszuprobieren.

Als erstes Programm kann man Arduino Beispielprogramm „Blink“ ausprobieren. Das Beispielprogramm befindet sich im Menü „Datei / Beispiele / 01.Basics / Blink“.
Damit der Compiler weis an welchem GPIO das LED angeschlossen ist müssen Sie am Programmanfang diese Zeile hinzufügen:

#define LED_BUILTIN 22

Beim Lolin32 ist eingebaute (builtin) blaue LED an das GPIO 22 angeschlossen.

Jetzt muss nur noch das richtige Board ausgewählt werden „Lolin32“ und richtige Serielle Port. Den kann man im Gerätemanager herausfinden. Bei mir funktionieren nicht alle Baudraten, aber 115200 geht immer. Ich denke das liegt am CH340 USB seriell Treiber.

Jetzt das „Hochladen“ Button betätigen und etwas warten. Am Ende kommt so eine Meldung:

Writing at 0x00008000… (100 %)

Wrote 3072 bytes (122 compressed) at 0x00008000 in 0.0 seconds (effective 1024.0 kbit/s)…

Hash of data verified.

 

Leaving…

Hard resetting…

Und das Blau LED blinkt! Damit hat das ESP32 auch den ersten Test bestanden.

Access Point mit Webserver / Schritt 3

Hier möchte ich Ihnen ein Beispiel Sketch für ein Webserver zeigen. Der Arduino Sketch kann auch als Vorlage für andere ESP32 Projekte genutzt werden.

Bei Espressif fehlt leider WebServer.h Bibliothek, so dass wir es nicht wie bei ESP8266 gewöhnt die Serveranfragen bearbeiten können. Damit wir nicht mühsam (wie es in Espressif Beispielen gemacht wurde) die Header zusammenstellen müssen, schlage ich vor WebServer Bibliothek von „bbx10“ zu benutzen. Laden Sie das Bibliothek von https://github.com/bbx10/WebServer_tng und einpacken Sie ddas im „Arduino Projekt Ordner / libraries“  Jetzt wird sich mein Beispielprogramm kompilieren lassen.

 

Beim ausführen des Beispiel Sketches wird eigenes WiFi Zugangspinkt (Access Point) erzeugt.

Name: „astral“  Passwort: „tiramisu“

Wenn Sie das PC mit dem WiFi Netz  „astral“  verbunden haben, können Sie über IP des ESP32 Moduls 192.168.1.1 zu der Index Webseite gelangen.  Index Webseite beinhaltet nur eine Überschrift: Hallo ESP32

Hier habe ich für Sie bereits kompiliertes Programm bereitgestellt.
Download HelloServer_Firmware . Sie haben die Möglichkeit ohne Arduino und ohne jegliche Installation die Firmware (BIN-Datei) in das ESP32-Modul zu laden. Ein Tool und die BAT-Datei  mit Kommandozeilenbefehlen sind im Archiv enthalten. Sie müssen lediglich in der Bath-Datei   den richtigen COM-Port einstellen und dann diese Datei ausführen. Nach erfolgreichem flashen erscheint die Meldung:

Hash of data verified.

Leaving…

Hard resetting…

Webserver im eigenem Netzwerk / Schritt 4

Eigentlich das gleiche Programm und Funktionalität wie oben. Hier meldet sich ESP32 im Hausnetzwerk und ist von jedem Rechner im Netzwerk erreichbar über IP-Adresse die der Router dem ESP32 zuweist. Die IP-Adresse wird bei Anmeldung im WLAN im Terminal ausgegeben oder kann auf der Router Webseite angezeigt werden. Damit der Router immer die gleiche IP-Adresse dem ESP32-Modul zuweist, benutzen Sie die Funktion „DHCP Reservation“ Ihres Routers.

Natürlich muss dem Programm noch die WLAN Name und Zugangspasswort mitgeteilt werden. Das geschieht in den Zeilen 5 und 6 der Quellcode.

const char* ssid = „WLAN_Name“;
const char* password = „Passwort“;

Download Arduino Sketch HelloServerStation

15 Gedanken zu „ESP32 Erste Schritte mit Arduino IDE“

  1. Gibt’s auch ein Beispiel mit zwei ESP32 welche übers Bluetooth verbinden(Kommunizieren) wegen dem Stromverbrauch müssen wir über Bluetooth gehen. Senderbeispiele aufs Mobile gibt es ja viele aber wie zwei ESP32 via Bluetooth mit einander kommunizieren habe ich noch nicht gefunden.

  2. Hallo,
    leider war die Installation, Schritt 1 … 4 nicht erfolgreich.
    In der Arduino -Datei mit Pfade /hardware/espressif/esp32/ angelegt.
    ZIP-Datei in esp32 kopiert.
    In tools das Progr. get.exe gestartet.
    Downloaded und Extraeting der ZIP-Dateien xtensa-esptool.

    Würde mich auf eine Antwort von Ihnen freuen.
    Vielen Dank
    E. Müller

  3. You should mention to run „get.exe“ as an administrator.

    An easier way to is to add the URL „https://dl.espressif.com/dl/package_esp32_index.json“ to the „additional Board manager urls“ field in the settings and download the files via „Tools > Boards > Board manager“.

  4. Der AP-Sketch lief prima. Danach habe ich das Batch-File darunter ausprobiert. Es wurde alles ohne flasht. Seitdem kann ich mich nicht mehr mit dem eingestellten Password authentifizieren. Auch ein erneuter Versuch mit dem vorherigen Sketch klappt nicht mehr. Wie kann ich das Problem lösen?

  5. Ich kann mit z.B. Hyperterminal mit dem ESP-WROOM-32 kommunizieren. Taste EN drücken und es kommen ein Haufen Infos vom ESP.
    Mit dem Arduino bekomme ich keine Verbindung (der Port ist frei) zum ESP
    Nach dem Versuch Hochladen kommt immer die folgende Meldung:
    „A fatal error occurred: Failed to connect to ESP32: Timed out waiting for packet header“

    Was mache ich da falsch?

  6. Hi,
    vielleicht kann mir Jemand helfen:
    ich habe diverse ESP8266, ESP-12 sowie ESP32, teilweise als Develomentboard, teilweise als einzelner Chip.
    Mit meinen beiden kürzlich auf ein Breakoutboard mit zwei Tastern (RESET und IOO) gelöteten ESP32 habe ich nun das Problem, daß ich diese nicht flashen kann.
    Ich nutze den Flasher für den ESP8266, der sowohl mit den ESP8266 als auch mit meinen ESP-12 alsauch mit dem WROOM32 Developmentboard tut (einfach das schöne USB Kabel weggelassen und ein paar PINs verkabelt). Der Flasher sollte also tun.
    Ich habe alle nebeneinander liegenden Pins geprüft, kein Kurzschluß. Ich verbinde TX vom Flasher mit RX am ESP32, ebenso RX an TX. GND vom Flasher geht an den LiFePo4 und den ESP32, Plus vom LiFePO4 (gute Spannungslage) an 3V3 vom ESP32.
    Ich starte den uploadvorgang in der Arduino IDE, drücke beide Taster RESET und IO0 gleichzeitig und lassen RESET los (also quasi wie beim ESP-12). Null nada nix. Immer dieselbe Meldung, die auch dann kommt, wenn ich nix angeschlossen habe:
    „A fatal error occurred: Failed to connect to ESP32: Timed out waiting for packet header“.
    Der RESET Taster legt EN auf GND, der IO0 Taster legt IO0 auf GND.
    Alle anderen Pins sind unbeschaltet.
    Wäre toll, wenn Jemand eine Idee hätte, was falsch sein könnte.
    Es handelt sich um den ESP32 Chip mit integriertem U.FL Konnecktor für eine externe WLAN-Antenne – ansonsten hätte ich mir die Löterei sicher erspart.
    Danke sehr
    Olaf

  7. Hallo! Ich bin nach der Suche für eine Anwesendheitserkennung auf diese Webseite gestoßen und bin begeistert das man mit wenig Geld so etwas realisieren kann. Ich habe allerdings mit dem Modell Arduino noch so gar keine Erfahrungen und habe deswegen ein paar Fragen. Ich hoffe das man sie mir hier beantworten kann.
    1. Frage: In meinem Iphone ist Bluetooth ständig eingeschaltet. Ist eine Anwesendheitserkennung/Überwachung des Iphones mit der Schaltung iBeacon/iTag Präsenzschalter möglich?
    2.Frage: Ich habe allein bei Amazon gefühlte 50 Ausführungen von ESP32 Modulen gesehen. Welches Modul benötige ich für mein Projekt? Die gleiche Frage stellt sich auch für das Relaismodul. Ich benötige nur einen potentialfreien Kontakt zur Steuerung in mein SmartHome.
    3.Frage: Habe ich das richtig verstanden – wenn ein Bluetoothmodul in die Reichweite des ESP 32 Modules kommt das Relais einschaltet und wenn das Bluetoothmodul den Bereich verlässt sich das Relais wieder ausschaltet wobei aber eine Impulsschaltung auch möglich wäre?
    4. Frage: Wie groß ist so die durchschnittliche Reichweite des Erkennens? Also eine Angabe in mm, cm ist mir dabei nicht so wichtig. :-))
    Ich habe langjährige komplexe Löt- und Bastelerfahrungen, aber so gar keine was die Programmierung von Minicomputern betrifft. Kann ich mich dennoch an das Projekt wagen?

    Gruß Uwe

    1. Hallo Uwe,
      1. Ich besitze kein Iphone. Wenn der von anderen Geräten/Smartphones/Tabletts erkannt wird dann ja. Eventuell muss etwas in Einstellungen des Telefons angepasst werden.
      2. Nimm das günstigste, die können alle Bluetooth.
      Relaismodul zum Beispiel dieses https://amzn.to/2v64Hy8
      3. Ja, für Impulsschaltung muss Programm minimal angepasst werden.
      4. maximal 8m minimal 1m im Zimmer. 15 m im freien.

      Ich denke du kannst dich an das Projekt wagen.

    1. Hallo!
      Ich halte nun einen ESP32 NodeMCU mit Relaismodul in der Hand und habe auch schon so manches Beispielprogramm aus der ArduinoIDE ausprobiert. (z.B. Blink, WiFI Client))
      Nun habe ich auf den ESP32 die BLE Anwesendheitserkennung Firmware ESP aufgespielt und auch den WiFi INI Manager mit den entsprechenden Brücken beim Start starten können. Ich habe das WIFI Netzwerk gefunden und auch per Browser (192.168.4.1) darauf zugreifen können. Mein Problem ist nun, das das Relais sofort nach Programmstart immer angezogen bleibt, selbst wenn ich den Pin von 22 nach 23 ändere (Softwaremäßig). Ich habe mit dem Blinkprogramm, aber überprüfen können, das PIN 22 auch PIN 22 ist. Das Relais hat im Takt EIN und AUS geschaltet. Also dahin gehend ist alles in Ordnung. Ich habe leider im Moment nur ein IPhone mit Bluetooth zur Hand zum Testen. Egal welche MAC-Adresse ich auch einstelle, das Relais bleibt nach Start immer EIN. Änderungen über den WIFI INI Manager werden vermutlich auch übertragen, da die ON Board LED blinkt wenn ich die Speicherbutton und Neustartbutton betätige. Was kann noch der Fehler sein , denn das Relais dürfte doch gar nicht anziehen, wenn die MAC Adresse nicht stimmt?

Schreibe einen Kommentar