ESP32 und Arduino IDE

von Thomas Baum
Meine ersten Projekte für den ESP32 hatte ich mit Eclipse entwickelt. Die meisten Anwendungen laufen im eigenen Haus. Heise hat dazu einen guten Artikel zum Einstieg veröffentlicht. Mittlerweile ist die Unterstützung für den ESP32 unter der Arduino IDE so gut, dass die Entwicklung der eines Arduino in nichts nachsteht.
Somit ist dieses System, dass auch im professionellen Bereich eingesetzt wird, fest in der Makerszene angekommen. Beim ESP8266 war ich mehr als skeptisch. Klar für den niedrigen Preis eröffnete dieses Stück Hardware ganz neue Möglichkeiten. Eine schöne Spielerei. Aber der viel zu hohe Stromverbrauch macht den Controller meiner Meinung nach für die meisten IoT- und Smarthome-Anwendungen uninteressant.
ESP32 Entwicklungsboard mit WiFi und Bluetooth
Von seinem Nachfolger bin ich nun mehr als überzeugt und auch begeistert. Das was man da für sein Geld bekommt ist fast schon als Universalhardware im Iot-Bereich zu bezeichnen. Dieser Artikel dient als Vorbereitung für eine neue Serie an Beiträgen aus den Bereichen IIot, IoT und Smarthome. Neben einer Sammlung von Techniken und Inspirationen soll hier auch eine Dokumentation meiner eingesetzten Smarthome-Anwendungen entstehen.
Arbeitsumgebung einrichten
Arduino muss zuerst um den ESP32 Support erweitert werden bevor der Controller erkannt wird. Dazu solltet ihr zunächst eure Arduino IDE auf eine neue Version updaten. Danach installiert ihr den ESP32 Support. Neben den Dateien existiert bei Github eine ausführliche Installationsanleitung. Die Anleitung bezieht sich auf Windows 10 Systeme. Läuft aber auch unter Windows 7. Mit der Installation werden auch die Treiber für die USB-Verbindung aktualisiert.
Erste Anwendung
Für einen ersten einfachen Test bietet sich die LED auf dem Experimentierboard an. Hierzu werden keine zusätzlichen Bibliotheken benötigt. Das Beispiel lässt die LED im Sekundentakt blinken.
//ESP32 LED Toggle

const int led1 =  2;                        //red LED on Pin 2

void setup() {
  pinMode(led1, OUTPUT);
}

void loop() {
  digitalWrite(led1, !digitalRead(led1));   //toggle LED1
  delay(500);
}
Die LED hängt an Pin 2 und wird mit einem Toggle alle 500ms umgeschaltet. Dadurch entsteht ein Blinker im Sekundentakt. Läuft! Dann kann es jetzt ja richtig losgehen.
Links und Referenzen: