Der erste Sketch ESP32-Sketch-Heartbeat gehört zur Rubrik Schauen-wir-mal-ob-alles-funktioniert. Die Arduino-IDE <hier noch Link> ist auf einem Windows- oder Linux-Rechner installiert. Der Microcontroller ESP32 <hier noch Link> ist über ein USB-Kabel (USB Micro B am Controller) angeschlossen, der Rechner erkennt den Controller. Ein Sketch, so heißt ein Programm in der Arduino-IDE, ist mit der Dateiendung *.ino in einem gleichlautenden Verzeichnis auf dem Rechner abgespeichert. Nach dem Speichern kompiliert man den Sketch in maschinenlesbaren Code für den Controller und überträgt ihn auf den Controller. Abschließend rebootet der Controller. Die Ausführung des Programms kann auf dem seriellen Monitor der Arduino-IDE verfolgt werden, wenn entsprechende Ausgaben im Code vorgesehen sind. I.d.R. sind dies die Serial.println-Kommandos des Sketchs.
- Über den Port GPIO2 wird eine LED ein- und ausgeschaltet.
- Der Port hat beim High-Pegel eine Spannung von 3,3 Volt.
- Die LED ist über einen Widerstand von 100 Ω (für ca. 10 mA) oder 47 Ω (für ca. 20 mA) gegen Masse angeschlossen.
- Die LED soll 100 ms lang ein- und 900 ms lang ausgeschaltet sein.
Die Schaltung ist auf einem Breadboard aufgebaut. Der ESP32 selbst ist für das Breadboard relativ breit. Ich habe dieses in der Mitte getrennt, dadurch ist seitlich des Controllers auch für die nachfolgenden Projekte ausreichend Steckplatz für weitere Bauelemente vorhanden.

Schaltung für die Bauelemente des Heartbeat-Sketches:

Das Listing zeigt den Code für den Sketch esp32-basics-001-heartbeat.ino:
// esp32-basics-001-heartbeat.ino
// die led blinkt im sekundentakt (100 ms/900 ms)
void setup() {
Serial.begin (115200); // uebertragungsgeschwindigkeit zum esp32 in bit/s
pinMode(2, OUTPUT); // gpio2 wird als ausgang gesetzt
digitalWrite(2, LOW); // gpio2 wird auf null gesetzt, die led damit initial ausgeschaltet
Serial.println ("ESP32 konfiguriert"); // ausgabe auf dem seriellen monitor der arduino-ide
}
void loop() {
digitalWrite(2, HIGH); // gpio2 wird auf eins gesetzt, die led damit eingeschaltet
Serial.println ("LED an"); // ausgabe auf dem seriellen monitor der arduino-ide
delay(100); // warteschleife 100 ms, bevor der naechste befehl die led ausschalten wird
digitalWrite(2, LOW); // gpio2 wird auf null gesetzt, die led damit ausgeschaltet
Serial.println ("LED aus"); // ausgabe auf dem seriellen monitor der arduino-ide
delay(900); // warteschleife 900 ms, bevor der naechste befehl die led ausschalten wird
}
