Unter dem Oberbegriff ESP32 gibt es inzwischen eine Reihe kostengünstiger und
stromsparender System-on-a-Chip-Mikrocontroller Boards(SoC) von Espressif, die über WLAN- und
Bluetooth-Funktionen sowie einen Dual-Core-Prozessor verfügen.
- Verwirrung kann es geben, weil ESP32 sowohl für den nackten Prozessor als auch für die
zahlreichen Boards (SoC) am Markt verwendet wird.
Der ESP32 ist der Nachfolger des ESP8266. Für den
Unterricht oder das Selbststudium sind sie beide interessant, weil sie u.a. folgende Eigenschaften besitzen:
- Kabellose Konnektivität über WiFi: 150,0 Mbit/s Datenrate mit HT40
- Bluetooth: BLE (Bluetooth Low Energy) und Bluetooth Classic
Wer mehr über die Prozessoren und/oder SoCs wissen möchte, muss sich die entsprechenden Datenblätter im
Internet herunterladen.
Die in den Übungen benötigten Materialien lassen sich in zwei Gruppen aufteilen:
- Basispaket für alle Übungen gleich,
- Zusatzmaterial für jede einzelne Übung.
Das Basispaket besteht aus:
- 1x ESP32 DEVKIT Board (s. Abb. 1)
- 1x Steckbrett
- diverse Steckdrähte (MM, MF)
- Arduino IDE, Visuino vorinstalliert (mit jeweils aktuellem Update)
Abb. 1
ESP32 DEVKIT V1 Board
Programmiert wird ein ESP32 über die Arduino IDE. Dazu müssen einige Vorbereitungen getroffen werden:
- Aktuelle Arduino IDE Version: Die Arduino IDE muss in der neuesten Version auf dem Rechner installiert
sein.
- Über Datei - Einstellungen ... in der Arduino IDE wird in der Zeile Zusätzliche Bordverwaltungs
URLs die folgende Zeile eingegeben und mit OK abgeschlossen:
Abb. 2
ESP32 von Espressif Add-on in die Arduino IDE laden.
- Gehe im Hauptmenü der Arduino IDE über Werkzeuge - Board -> Board Verwaltung und gib im Suchfenster
ESP32 ein.
- Verbinde das ESP32 Board über USB mit einem Rechner und wähle im Hauptmenü der Arduino IDE über
Werkzeuge - Board: ... - ESP32 -> DOIT ESP32 DEVKIT V1
- Lege den Port für das Board fest über Werkzeuge - Port:
- Wenn alles geklappt hat, erscheint unten rechts in der Zeile der Arduino IDE der Hinweis, mit welchem COM-Port das
ESP32-Board verbunden ist (s. Abb. 3).
- Für die Arduino IDE ist das ESP32 Board ab jetzt "sichtbar". Wir können mit dem Programmieren
beginnen.
Abb. 3 - Zugewiesener COM-Port
In einer ersten Übung wird eine LED mit Vorwiderstand über einen Taster ein- und wieder ausgeschaltet.
Übung 1 - Taster schaltet eine LED ein- bzw. aus
Material
- 1x Basispaket
- 1x Taster
- 1x LED
- 1x Widerstand, 220 Ohm
- 1x Widerstand, 1 kOhm
Abb. 4
Schaltungsaufbau auf dem Steckbrett
Abb. 5 - Das Programm ist einfach; im Setup-Teil werden Ein- und Ausgangspins definiert, im Loop-Teil erfolgt die Abfrage des Eingangs (Taster). Als Folge wird der Ausgang auf HIGH oder LOW
gesetzt.
Übung 1V - Taster schaltet eine LED ein- bzw. aus (VISUINO)
1. Komponenten bestimmen
Es werden drei Komponenten benötigt:
- eine ESP32-Board-Komponente
- eine LED Komponente
- eine Taster oder Button-Komponente
Abb. 6
Wahl der Komponenten. Als ESP32 Board Komponente für das ESP32 DEVKIT Board wird TTGO-T18 ESP32
(V1.0) genommen.
2. Komponenten miteinander verbinden
Abb. 7 - Verbindung der einzelnen Komponenten (Prozesse).
Der Prozess GPIO[4] reicht die Information an seinem Eingang Digital GPIO[4](HIGH oder LOW von
Button1) über seinen Ausgang Out GPIO[4], der direkt mit dem Eingang Digital GPIO[5]
verbunden ist, durch an den Ausgang Out GPIO[5]. Die Komponente LED1 erhöht die Lesbarkeit der Anordnung.
Über das Arbeitsmenü in VISUINO wird das Programm erstellt und gestartet. Fertig!!!
Übung 2V - Spannungsmessung an einem Potenziometer (VISUINO)
Material
- 1x Basispaket
- 1x Potenziometer
Schaltungsaufbau
Abb. 8
Schaltungsaufbau mit Potenziometer am ESP32
1. Komponenten bestimmen und in VISUINO auswählen
Es werden zwei Komponenten benötigt:
- ESP32-Board-Komponente (s. Übung 1V)
- Komponente Potentiometer
2. Komponenten miteinander verbinden
Abb. 8a - Verbindung der einzelnen Komponenten (Prozesse); hier wird Out Potentiometer1 mit Analog(PWM)
GPIO[4].verbunden. Out GPIO[4] ist mit Serial[0] verbunden (s. Abb. 8b)
Abb. 8b - Out Potentiometer1 wird verbunden mit In Serial[0] (9600). Bei Verbindungen zu anderen seriellen
Prozessen (z.B. Serial[1]) erfolgt keine Ausgabe im Terminalfenster von VISUINO.
Ergebnis
Die Ausgabewerte im Terminalfenster schwanken je nach Stellung des Potentiometerabgriffs zwischen 0 und 1.Bei einer angelegten Spannung von 3,3 V entspricht der Wert
0 entsprechend 0V, 1 dem Wert 3,3 V.
Bei einer absolut linearen Kennlinie des benutzten Potenziometers (liegt i.d.R. leider nicht vor) ließen sich die angezeigten Zahlenwerte zwischen 0 und 1
entsprechend in Spannungswerte umrechnen:
- Spannungswert = Messwert * 3,3 V
Mit der Komponente MultiplyByValue lässt sich diese Umrechnung schnell umsetzen (s. Abb. 9). Damit das auch richtig funktioniert, muss im
Fenster Properties der Komponente der Multiplikationsfaktor (hier: 3,3) eingefügt werden (s. Abb. 10).
Abb. 9 - Die Komponente MultiplyByValue1 rechnet den analogen Ausgabewert des Prozesses GPIO[4] in einen Spannungswert
um.
Abb. 10
Der Multiplikationsfaktor 3.3 wird in das Feld Value eingetragen.
In der folgenden Übung 3V geht es um das Thema Pulsweitenmodulation. Weitere Vorab-Informationen dazu findest du unter:
Übung 3V - Eine LED dimmen (VISUINO)
Material
- 1x Basispaket
- 1x Potenziometer
- 1x Widerstand, 220 Ohm
- 1x LED
Schaltungsaufbau
Der Aufbau entspricht dem aus der Übung 2V ergänzt durch eine LED mit Vorwiderstand an D5.
1. Komponenten bestimmen und in VISUINO auswählen
Es werden drei Komponenten benötigt:
- ESP32-Board-Komponente (s. Übung 1V)
- Komponente Potentiometer
- Komponente LED
2. Komponenten miteinander verbinden
Abb. 11 - Out GPIO[4] ist sowohl mit Analog (PWM) GPIO[5] als auch mit In
Serial[0] (9600) verbunden.
Ergebnis
Je nach Stellung des Potenziometerabgriffs zwischen 0 und 1 leuchtet die LED an D5 zwischen "gar nicht" (Terminalausgabe: 0) oder "maximal" (Terminalausgabe:
1).
Die nachfolgenden Oszillogramme zeigen für unterschiedliche Tastverhältnisse die Impulsdiagramme.
Abb. 12 - Impuls-Oszillogramme für unterschiedliche Tastverhältnisse; die Helligkeit der angeschlossenen LED nimmt mit wachsendem Tastverhältnis zu..(Oszillogramme aufgenommen mit einem PicoScope 2000 Series Oszilloskop)