ESP32 Grundlagen (Basiswissen)

Der ESP32 ist neben dem Raspberry Pi einer der bekanntesten und beliebtesten Mikrocontroller auf dem Markt. Er ist bei vielen IoT-Projekten bereits ein fester Bestandteil geworden.

Sehen wir uns daher in diesem Beitrag einmal an, was ein ESP32 Mirokontroller ist, und was dieser alles kann bzw. welche Projekte man damit umsetzen kann.

Die in diesem Artikel beschriebenen ESP32 Grundlagen wurden sorgfältig recherchiert. Solltet ihr trotzdem Fehler entdecken, schreibt mehr gerne ein Email.

ESP32 Mikrocontroller

Was ist eigentlich ein ESP32? Der ESP32 ist der Nachfolger des Chip-Mikrocontrollers ESP8266 der Firma Espressif, und bringt folgende Funktionen mit sich.

Dual-Core Prozessor:

Die meisten ESP32 haben einen Dual-Core 32-bit Prozessor. (2x Tensilica-LX6-Kernen)

WLAN:

Der ESP32 kann sich nicht nur per WLAN (802.11b/g/n) mit einem Netzwerk verbinden, sondern auch ein eigenes WLAN Netzwerk (Access Point) erstellen. (kleiner WebServer)

Bluetooth:

Der Mikrocontroller unterstützt Bluetooth 4.0 (BLE/Bluetooth Smart) und auch Bluetooth Classic. Damit ist der ESP32 für viele SmartHome und IoT-Anwendungen perfekt geeignet.

Geringer Stromverbrauch:

Der ESP32 überzeugt mit seinem geringem Stromverbrauch von 50-70 mA (kleine Programme ohne WiFi) Im deep sleep Modus geht der Stromverbrauch sogar (je nach Board) unter 0,1 mA. Das macht ihn besonders beliebt bei IoT-Anwendungen.

Günstig:

Die Anschaffungskosten von ca. 7 Euro sind bei der Leistung des Mikrocontrollers ein unschlagbares Preis/Leistungsverhältnis.

Über Arduino IDE programmierbar:

Der ESP32 kann über die Arduino IDE programmiert werden.

Eingabe-/Ausgabeschnittstelle für Peripheriegeräte:

Für das Einlesen von Daten und Ausgeben von Signalen bringt der ESP32 eine vielzahl an integrierter Peripheriegeräte mit sich. Kapazitiver Berührung , ADCs , DACs, UART, SPI , I2C , PWM und vieles mehr.

Robust:

Der ESP32 hält auch einiges aus. Das Modul kann zuverlässig in industriellen Umgebungen mit Betriebstemperaturen von -40 °C bis +125 °C betrieben werden.

ESP32 IC

Wenn man von einem ESP32 spricht, meint man in den meisten Fällen eigentlich garnicht den reinen ESP32 IC Chip sondern ein ESP32 Entwicklungsboard auf dem ein ESP32 WROOM-32 Modul platziert ist.

Für den reinen ESP32-Mikrocontroller-IC muss man nach einem QFN-Gehäuse (QFN = Quad Flat No Leads) suchen.

Bereits bei diesen SoCs Chip gibt es mehrere Varianten mit unterschiedlicher Anzahl an Pins, RAM etc.

ESP32 Grundlagen - ESP32 ICPin
ESP32 Grundlagen – ESP32 IC

ESP32 WROOM-32

Da ein QFN-Gehäuse nur sehr schwer auf eine Leiterplatte aufzulöten ist, hat ESPressif System (Entwickler von ESP32) eine Modulplatine mit Castellated Holes bzw. Castellations hergestellt. (Castellated Holes = Halbloch-Kantenkontakte)

Die beliebteste Version dieses Moduls heißt ESP32 WROOM-32. (Auch hier gibt es mittlerweile viele verschiedene Modelvarianten.)

Zusätzlich ist bei diesem Modul auch noch eine 4 MB SPI Flash IC, einen 40-MHz-Quarzoszillator, eine PCB-Antenne und ein paar weitere Kleinigkeiten für ein funktionsfähiges Gesamtsystem ergänzt worden.

ESP32 Grundlagen - ESP32 WROOM-32Pin
ESP32 Grundlagen – ESP32 WROOM-32

Da jedoch nur fortgeschrittene Bastler, Hardware-Entwickler bzw. Platinen-Hersteller mit einem solchen Modul etwas anfangen würden, gibt es sogenannte Entwicklungsboards auf dem ein ESP32 WROOM Modul verbaut ist.

ESP32 Grundlagen - IC Modul DevKitPin

ESP32-Entwicklungsboards

Um alle Funktionen des ESP32 Moduls einfach nutzen zu können, gibt es sogenannte Entwicklungsboards. Diese sind nicht nur mit zusätzlichen Schaltungen für die Spannungsversorgung ausgestattet, sondern bieten uns auch die gängigen Anschlussmöglichkeiten für unsere externen Komponenten.

Je nach Entwicklungsboard werden noch weitere Funktionen ergänzt bzw. je nach Anwendungsfall optimiert aufgebaut.

Top 5 ESP32 Entwicklungsboards

Mit diesen Boards könnte ihr die meisten ESP32 Projekte umsetzten.

ESP32 Entwicklungsboards - ESP32 DevKitC V4Pin

ESP32 DevKitC V4

Der Klassiker unter den ESP32 Boards. Es hat alle wichtigen Anschlüsse für das Arbeiten mit den GPIO Pins, und ist somit für die meisten Projekte geeignet. Durch die zahlreichen Anleitung im Internet ist dieses Baord auch perfekt für Anfänger geeignet.

Shop Link*

ESP32 Entwicklungsboards - ESP32 D1 MiniPin

ESP32 D1 Mini

Das D1 Baord ist für alle, die einen ESP32 mit einer kompakten Bauweise suchen. Damit man aber auf keine GPIO Pins verzichten muss, sind diese in zwei Reihen nebeneinander angeordnet.

Shop Link*

ESP32 Entwicklungsboards - ESP32 SIM800L T-CallPin

ESP32 SIM800L T-Call

Gerade bei Projekten im Freien hat man nicht immer ein WLAN Netzwerk in Reichweite. Für solche Probleme wurde das SIM800L T-Call entwickelt. Mit diesem Entwicklungsboard könnt ihr Daten über GSM senden und empfangen (z.B. SMS versenden, Messdaten an den Webserver schicken).

Shop Link*

ESP32 Entwicklungsboards - ESP32 T-DisplayPin

ESP32 T-Display

Für alle geeignet die kein zusätzliches externes Display-Modul für ihre Schaltung verwenden möchten.

Shop Link*

ESP32 Entwicklungsboards - ESP32 CAMPin

ESP32 CAM

Dieses Board hat deutlich weniger GPIO Pins herausgeführt, dafür könnt ihr bei diesem Board gleich direkt eine Kameralinse anschließen. Besonders geeignet für IoT-Projekte im Bereich Überwachungskameras (z.B. 3D-Drucker), Wildkameras, AI (z.B. Wasseruhr ablesen) und Mini-Roboter.

Shop Link*

Tipp: Smart Mirror mit dem Raspberry Pi erstellen.

ESP32 DevKitC V4

Eines der beliebtesten ESP32-Entwicklungsboards ist das ESP32 DevKit. Aktuelle in der Varainte DevKitC V4.

Solltet ihr ein anderes Board in Betracht ziehen oder bereits ein anderes Board gekauft haben, wird der Großteil der Informationen trotzdem auf euer ESP32-Entwicklungsboard zutreffen.

ESP32 DevKitC V4 Pinbelegung

Wie bei den meisten Mikrocontrollern müsst ihr auch beim ESP32 auf die Pinbelegung achten. Nicht jeder GPIO-Pin kann als Ausgang oder Eingang verwendet werden. Bestimmte Pins haben je nach Anwendung bestimmte Vorteile oder Nachteile.

Bei diesem Entwicklungsboard sind 38 der 48 Pin herausgeführt. Wie bei den meisten Boards sind auch hier die Pins bereits direkt auf der Platine nummeriert.

ESP32 Grundlagen - ESP32 DevKitc V4Pin
ESP32 Grundlagen – ESP32 DevKitc V4

ESP32 Entwicklungsumgebung

Der ESP32 kann in mehreren Entwicklungsumgebungen und auch in mehreren Programmiersprachen programmiert werden.

Entwicklungsumgebungen

Meine ganz klare Empfehlung ist gerade für Anfänger und auch Fortgeschrittene die Arduino IDE zu verwenden. Diese IDE wird ständig weiterentwickelt, ist übersichtlich aufgebaut und ihr könnnt 95% eurer Projekte damit umsetzen.

Arduino IDE

Als IDE empfiehlt es sich die neueste Version der Arduino IDE zu verwenden.

Arduino IDE herunterladen

Die neueste Version der Arduino IDE könnt ihr auf folgender Seite herunterladen.

Arduino IDE 2 herunterladen

Anschließend könnt ihr das Programm wie jedes andere, auf euren Windows, Linux oder MacOS Computer installieren und öffen.

ESP32 Grundlagen - Arduino IDE 2.0Pin
ESP32 Grundlagen – Arduino IDE 2.0

ESP32-Boards hinzufügen

Von Haus aus werden ESP32 Boards in der Arduino IDE nicht unterstützt. Daher müssen wir noch entsprechende Einstellungen in der Arduino IDE vornehmen.

Dazu öffen wir jetzt die IDE und gehen auf Datei > Einstellungen.

ESP32 Grundlagen - Zusätzliche Boardverwalter-URLsPin
ESP32 Grundlagen – Zusätzliche Boardverwalter-URLs

Als nächstes fügen wir folgende URL unter dem Punkt Zusätzliche Boards-Manager-URLs ein, und bestätigen die Eingabe.

https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
ESP32 Grundlagen - Board URL einfügenPin
ESP32 Grundlagen – Board URL einfügen

Als letzten Punkt müssen wir noch das Paket installieren. Dazu gehen wir im Menü auf Werkzeuge > Board > Board Verwaltung. Um das Paket zu installieren, suchen wir nach ESP32 und installieren das Paket ESP32 von Espressif System.

ESP32 Grundlagen - Arduino IDE ESP32 installierenPin
ESP32 Grundlagen – Arduino IDE ESP32 installieren

Zur Sicherheit empfehle ich euch jetzt die Arduino IDE einmal neu zu starten.

Anschließend gehen wir im Menü auf Werkzeug > Board, und sollten hier den neuen Eintrag esp32 finden. In diesem neuen Menüpunkt können wir unser Entwicklungsboard auswählen. (ESP32 DevKitC V4 = ESP32 Dev Modul)

ESP32 Grundlagen - Arduino IIDE ESP32 Dev ModulPin
ESP32 Grundlagen – Arduino IIDE ESP32 Dev Modul

Jetzt können wir unser Board am Computer per USB anschließen, und den Port unter Werkzeuge > Port auswählen.

ESP32 Grundlagen - Arduino IIDE COM Port auswählenPin
ESP32 Grundlagen – Arduino IIDE COM Port auswählen

Um den COM-Port auswählen zu könne, muss euer ESP bereits mit dem PC per USB-Kabel verbunden sein.

Erste Beispiel mit dem ESP32 programmieren

Als erstes kleines Beispiel werden wir mit dem ESP32 eine LED blinken lassen.

Aufbau

Für dieses Beispiel benötigen wir eine LED, einen 220 Ohm Vorwiderstand, ein Breadboard und ein paar Kabel. Eine zusätzliche Stromversorgung wird nicht benötigt.

Beim Aufbau einer Schaltung sollte euer ESP32 immer vom PC oder der Stromquelle getrennt sein.

ESP32 Grundlagen - LED-Schaltung AufbauPin
ESP32 Grundlagen – LED-Schaltung Aufbau

Code

Folgenden Code fügen wir in die Arduino IDE ein.

int ledPin = 5;
void setup() {
	pinMode(ledPin, OUTPUT);
}
void loop() {
	digitalWrite(ledPin, HIGH);
	delay(500);
	digitalWrite(ledPin, LOW);
	delay(500);
}

Den Code müssen wir anschließend nur noch auf unseren Mikrocontroller übertragen.

ESP32 Grundlagen - Arduino IIDE Code übertragenPin
ESP32 Grundlagen – Arduino IIDE Code übertragen

Blinkt die LED trotz erfolgreicher Übertragung des Codes nicht, müsst ihr den ESP32 gegebenenfalls mit der Taste EN nochmal neu starten.

Fehlermeldung

Viele der ESP32-Boards wechseln automatisch in den Boot-Modus in dem der Code auf den ESP übertragen werden kann.

Sollte euer Board das nicht machen, müsst ihr folgende Schirtte befolgen:

  • BOOT-Taste auf dem ESP32-Board gedrückt halten.
  • Upload-Button in der Arduino IDE klicken, um den Code hochzuladen.
  • Wenn die Meldung Writing… (100%) … Connecting… in der Arduino IDE erscheint, könnt ihr die BOOT-Taste wieder los lassen.

Gegebenenfalls nach erfolgreicher Übertragung die EN-Taste für einen Neustart drücken.

Unterschied zwischen ESP8266 und ESP32 Boards

Ein weiterer sehr bekannter ESP ist der ESP8266. Doch was sind eigentlich die Unterschiede der zwei Mikrocontroller?

Der ESP32 ist in vielen Punkten dem ESP8266 überlegen bzw. leistungsstärker. Jedoch ist der ESP8266 etwas günstiger als der ESP32.

Welcher ESP für euch der Richtige ist, entscheidet in den meisten Fällen der Einsatzzweck.

ESP32 Grundlagen

Mit diesem ESP32 Grundlagen Artikel habe ich euch versucht den ESP32-Mikrocontroller etwas näher zu bringen. In den nächsten Artikeln werden wir verschiedene Schaltungen etc. mit dem ESP aufbauen.

Welche Projekte möchtet ihr mit dem ESP32 umsetzen? Schreibt es unten gerne in die Kommentare!

Unterstütze diesen Blog, damit er nicht endet wie eine schlechte Netflix-Serie – unvollständig und enttäuschend!

1 Gedanke zu „ESP32 Grundlagen (Basiswissen)“

  1. Ich suche nach einer Lösung, um bspw. mein Handy für eine bestimmte Zeit in eine Box einzuschließen, die sich dann nur nach Ablauf der eingestellten Zeit wieder öffnen lässt.
    Die Hardware dafür würde ich mit dem 3D Drucker erstellen, aber was mir fehlt ist ein Microcontroller, Display, Eingabemöglichkeit (am liebsten als Touchwheel) und ein kleiner Motor, welches dann angesteuert wird.
    Ich hatte gehofft sowas im Netz zu finden, aber suche vergebens!

    Antworten

Schreibe einen Kommentar