zurück zur Übersicht...
10.01.2019

ESP32

In den folgenden Experimenten wurde ein ESP32 DEVKIT V1 mit 30 GPIO-Anschlüssen verwendet.

Pinout/Anschlüsse des DOIT ESP32 DEVKIT V1 mit 30 GPIO-Pins
Abb.: Pinout/Anschlüsse des DOIT ESP32 DEVKIT V1 mit 30 GPIO-Pins

Verwendete Bauteile

Programmierung mit der Arduino IDE

Boardverwalter hinzufügen

Um Sketches mit der Arduino-IDE für den ESP32 kompilieren und hochladen zu können müssen zunächst einige Vorbereitungen getroffen werden.
Man fügt zunächt unter "Voreinstellungen → Zusätzliche Boardverwalter-URLs" folgende URL hinzu: https://dl.espressif.com/dl/package_esp32_index.json.
Falls schon eine andere URL in diesem Feld steht, kann diese mit einem Komma separiert werden:

Hinzufügen der Boardverwalter-URL in der Arduino-IDE
Abb.: Hinzufügen der Boardverwalter-URL in der Arduino-IDE

ESP32-Board installieren

Als nächste muss das ESP32 Board hinzugefügt werden. Dazu geht man unter "Werkzeuge → Boards → Boardverwalter": Hier sucht man nach "esp" und installiert dann "ESP32 von Espressif".
Unter Linux muss noch "Python serial" installiert werden: apt-get install python-serial.

ESP32-Board in der Arduino-IDE installieren
Abb.: ESP32-Board in der Arduino-IDE installieren

ESP32-Board auswählen

Im Menu "Werkzeuge → Board:" sollte nun das Board "DOIT ESP32 DEVKIT V1" ausgewählt werden. (abhängig vom verwendeten Board)

Board-Menu in der Arduino-IDE öffnen
Abb.: Board-Menu in der Arduino-IDE öffnen
DOIT ESP32 DEVKIT V1 auswählen
Abb.: "DOIT ESP32 DEVKIT V1" auswählen

Port auswählen

Nun kann der ESP32 an den USB-Port des PC angesteckt werden und man wählt nun den Port aus im Menu "Werkzeuge → Port:".
Falls unter Windows der COM Port nicht wählbar ist, muss noch zusätzlich die USB to UART Bridge installiert werden.

Sketch kompilieren und hochladen

Nun kann ein Sketch in der Arduino-IDE geladen und kompiliert werden. Beim Hochladen auf den ESP32 ist zu beachten, dass der Mikrotaster "Boot" auf dem ESP32-Board gedrückt werden muss, sobald in der Arduino-Ausgabe-Konsole (nicht serielle Konsole!) so etwas wie "Connecting...." erscheint. Wenn der Vorgang dann weitergeht ("Writing at...."), kann der Mikrotaster wieder losgelassen werden. Der Ladevorgang wird dann weitergeführt und abgeschlossen.

Konsolenausgabe beim Hochladen des Sketches in der Arduino-IDE auf den ESP32
Abb.: Konsolenausgabe beim Hochladen des Sketches in der Arduino-IDE auf den ESP32

Experiment I.: Interner LED-Blinker

Dieser simple Versuch soll nur die prinzipielle Funktion und Programmierfähigkeit des ESP32-Boards ausprobieren. Es soll die eingebaute SMD-LED im Sekundentakt blinken.

Sketch-Code von Github laden

Experiment II.: Alternierender LED-Blinker

Aufbau für Experiment II.
Abb.: Aufbau für Experiment II.

In diesem Versuch sollen zwei LEDs abwechselnd blinken.

Sketch-Code von Github laden

Experiment III.: UDP-Anfrage

In diesem Versuch soll sich der ESP32 mit einem lokalen WLAN (WiFi) verbinden und über dieses Netzwerk eine UDP-Anfrage an einen Server im Internet absenden.
Im Sketch müssen die eigenen Zugangsdaten für das WLAN angepasst werden, sowie die IP und der Port des zu verbindenden Servers.

Sketch-Code von Github laden

Experiment IV.: HTTP-Anfrage

In diesem Versuch verbindet sich der ESP32 ebenfalls wieder mit einem lokalen WLAN und sendet dann eine HTTP-Anfrage an einen Webserver im Internet und gibt die als Reponse empfangenen Daten in der seriellen Konsole aus.

Sketch-Code von Github laden

Experiment V.: Zeit von NTP-Server anfragen

In diesem Versuch verbindet sich der ESP32 ebenfalls wieder mit einem lokalen WLAN und fragt dann einen NTP-Service im Internet an. Das Resultat (=aktuelle Zeit) wird in der seriellen Konsole ausgegeben.

Sketch-Code von Github laden

Experiment VI.: Webserver erstellen

Bei diesem Versuch verbindet sich der ESP32 auch wieder mit einem lokalen WLAN, aber dieses mal stellt er dann einen eigenen Webserver zur Verfügung, der innerhalb dieses Netzwerkes verfügbar ist.

Sketch-Code von Github laden

Experiment VII.: Access Point (AP) erstellen

Hier verbindet sich der ESP32 zu keinem bekannten Netzwerk, sondern erzeugt selbst eines, über welches man sich mit anderen verbinden kann.

Ausgabe in der seriellen Konsole
Abb.: Ausgabe in der seriellen Konsole
Sketch-Code von Github laden

Experiment VIII.: Sensordaten auslesen und nach ThingSpeak senden

In dieserm Versuch werden Sensordaten eines LDR (Helligkeit) und des DHT22-Fühlers (Temperatur und Luftfeuchte) gemessen und im 10-Sekunden-Takt nach ThingSpeak geschickt. Dort können die über Zeit gesammelten Daten ausgewertet oder weiterverarbeitet werden.

Weitere verwendete Bauteile

Aufbau für Experiment VIII.
Abb.: Aufbau für Experiment VIII.
Diagramme der gesammelten Daten auf ThingSpeak
Abb.: Diagramme der gesammelten Daten auf ThingSpeak
Sketch-Code von Github laden