Skip to Content

Programmierung der ESP32-WROVER CAM

Programmierung der ESP32-WROVER CAM

In diesem Tutorial lernst du, wie du die Arduino IDE einrichtest, um das Freenove ESP32-WROVER CAM Board zu programmieren. Das Board ist vergleichbar mit dem ESP32-CAM mit einer OV2640 Kamera und einer SD-Karten-Schnittstelle, bietet aber mehr GPIO-Pins und ist einfacher zu programmieren als die älteren ESP32-CAM Boards.

Benötigte Teile

Für dieses Tutorial benötigst du ein Freenove ESP32-WROVER CAM Board. Üblicherweise wird das Board mit Extras wie einer SD-Karte, einem SD-Kartenleser und einem USB-C-Kabel geliefert. Falls diese fehlen, habe ich sie unten verlinkt.

ESP32-WROVER CAM

USB-C Kabel

SD-Kartenleser

MicroSD Karte 16GB

Makerguides is a participant in affiliate advertising programs designed to provide a means for sites to earn advertising fees by linking to Amazon, AliExpress, Elecrow, and other sites. As an Affiliate we may earn from qualifying purchases.

Eigenschaften des Freenove ESP32-WROVER CAM Boards

Das Freenove ESP32-WROVER CAM Board verfügt über einen Dual-Core 32-Bit Mikroprozessor (ESP32-Wrover-E chip) mit 80~240 MHz und 520KB SRAM, 4 MB Flash, 8 MB PSRAM, integrierte 2,4 GHz Wi-Fi und Bluetooth 4.2 (LE), einen microSD-Karten-Slot und eine OV2640 Kamera. Das Bild unten zeigt Vorder- und Rückseite des Boards:

Front and Back of the ESP32-WROVER CAM board
Vorder- und Rückseite des ESP32-WROVER CAM Boards

Beachte, dass die ältere 1.x Version des Boards keinen microSD-Karten-Slot hatte, die aktuelle 3.x Version jedoch einen besitzt.

Das Board verfügt über einen micro-USB-Anschluss und einen integrierten USB-zu-UART-Konverter (CH340), was das Hochladen von Code erleichtert. Verbinde das Board einfach per USB-Kabel mit deinem PC und nutze die Arduino IDE zum Schreiben und Hochladen des Codes.

Im Gegensatz zu einigen älteren ESP32-CAM Boards ist kein manuelles Zurücksetzen des Boards zum Download-Modus oder ein FTDI-Programmierer erforderlich. Ein weiterer Vorteil gegenüber dem ESP32-CAM ist, dass mehr freie GPIO-Pins verfügbar sind.

Das Board wird mit einem Github Repo geliefert, das Dokumentation und Programmierbeispiele in C und Python enthält. Du kannst auch das ZIP-file with the documentation and examples herunterladen. Hier ist außerdem ein Link zum Datasheet for the Wrover chip.

LEDs

Das ESP32-WROVER Board hat vier eingebaute LEDs. Die grüne ON-LED zeigt an, dass das Board mit Strom versorgt wird. Die blaue LED, beschriftet mit IO2, ist mit GPIO2 verbunden und kann vom Nutzer gesteuert werden. RX und TX (gelbe LEDs) zeigen die Übertragung serieller Daten an. Das Bild unten zeigt die vier LEDs auf dem Board:

LEDs on ESP32-WROVER board
LEDs auf dem ESP32-WROVER Board

Pinbelegung

Ein praktisches Feature des Boards ist, dass die Pins auf dem Silkscreen markiert sind, ob sie von der Kamera (-), der SD-Karte (~) oder dem PSRAM (*) verwendet werden. Eine Nahaufnahme einiger Pins mit ihren Markierungen zeigt das Bild unten:

Annotated Pins of the ESP32-WROVER CAM board
Markierte Pins des ESP32-WROVER CAM Boards

Das ist sehr hilfreich, wenn du nach frei verfügbaren GPIO-Pins suchst, da die markierten Pins nicht genutzt werden können, wenn Kamera oder SD-Karte aktiv sind. Das folgende Bild zeigt die vollständige Pinbelegung des Boards (für eine größere Ansicht anklicken):

Pinout of ESP32-WROVER CAM
Pinbelegung des ESP32-WROVER CAM (source)

Strapping Pins

Beachte, dass es neben den Pins, die von Kamera oder SD-Karte genutzt werden, auch fünf Strapping Pins gibt: MTDI, GPIO0, GPIO2, MTDO und GPIO5. Sei vorsichtig bei der Verwendung dieser Pins, da sie beim Reset des Boards in einem bestimmten Zustand sein müssen. Die folgende Tabelle zeigt die Strapping Pins und ihre Funktion:

Table of Strapping pins of ESP32-WROVER CAM
Tabelle der Strapping Pins des ESP32-WROVER CAM (source)

Nach dem Reset können die Strapping Pins als normale GPIO-Pins verwendet werden, aber während des Resets müssen sie an eine hochohmige externe Schaltung angeschlossen sein, sonst startet dein Board möglicherweise nicht richtig.

Arduino IDE für ESP32-WROVER CAM vorbereiten

Um das ESP32-WROVER CAM mit der Arduino IDE zu programmieren, musst du mit dem Board kommunizieren können und die passende Software (Core) installiert haben. In den nächsten zwei Abschnitten erklären wir, was du tun musst.

CH340 Treiber installieren

Das ESP32-WROVER CAM Board kommuniziert über einen CH340-Chip, der das Programmieren über USB ermöglicht. Falls du noch nie andere Nicht-Arduino-Boards programmiert hast, musst du eventuell den CH340-Treiber installieren. Hier ist ein Link zum driver software for the CH340 für dein Betriebssystem (Windows, Mac, Linux).

Unter Windows kannst du prüfen, ob der CH340 installiert ist, indem du den Geräte-Manager öffnest und unter Anschlüsse nach dem USB-SERIAL CH340 Port suchst, wie unten gezeigt. Das funktioniert nur, wenn dein Board per USB-Kabel mit dem PC verbunden ist.

CH340 Driver in Windows Device Manager
CH340 Treiber im Windows Geräte-Manager

Falls nicht, lade den Treiber vom Repo herunter, z.B. CH341SER.EXE für Windows, führe ihn aus und klicke auf INSTALL:

Installing the CH340 Driver under Windows
Installation des CH340 Treibers unter Windows

Prüfe danach erneut im Geräte-Manager, ob der Treiber installiert ist und das Board einem COM-Port zugeordnet wurde.

ESP32 Core installieren

Als nächstes müssen wir den ESP32 Core installieren, um ESP32 Boards in der Arduino IDE zu unterstützen. Die Installation ist einfach. Starte deine Arduino IDE und folge den unten beschriebenen Schritten. Bei Problemen findest du detailliertere Anleitungen in unserem Tutorial How to Program ESP32 with Arduino IDE.

Zusätzliche URLs für den Boards Manager

Öffne zuerst den Einstellungen-Dialog über „Preferences…“ im „File“-Menü:

Open Preferences Dialog
Einstellungen-Dialog öffnen

Es öffnet sich der unten gezeigte Einstellungen-Dialog. Unter dem Reiter „Settings“ findest du unten ein Eingabefeld mit der Bezeichnung „Zusätzliche URLs für den Boards Manager„:

In dieses Feld kopiere die folgende URL: „https://espressif.github.io/arduino-esp32/package_esp32_dev_index.json

Damit weiß die Arduino IDE, wo sie die ESP32 Core Bibliotheken findet. Im nächsten Schritt installieren wir die ESP32 Core Bibliotheken über den Boards Manager.

Boards Manager

Öffne den BOARDS MANAGER, indem du auf das Board-Symbol in der Seitenleiste der Arduino IDE klickst:

Board icon in Sidebar
Board-Symbol in der Seitenleiste

Der BOARDS MANAGER erscheint rechts neben der Seitenleiste. Gib oben im Suchfeld „ESP32“ ein und du solltest zwei Arten von ESP32 Boards sehen: die „Arduino ESP32 Boards“ und die „esp32 von Espressif“ Boards. Wir wollen die esp32 Bibliotheken von Espressif. Klicke auf den INSTALL Button und warte, bis der Download und die Installation abgeschlossen sind.

Install ESP32 Core libraries
ESP32 Core Bibliotheken installieren

Nach der Installation sollte dein Boards Manager so aussehen, wobei die tatsächliche Version (hier 3.0.0-a) abweichen kann.

ESP32 core installed
ESP32 Core installiert

Im nächsten Schritt zeige ich dir, wie du das ESP32 Board für das ESP32-WROVER CAM auswählst.

ESP32 Wrover Module auswählen

Klicke auf den Board-Auswahl-Button. Im Beispiel unten ist ein Arduino Uno als Board ausgewählt (das ändern wir):

Bord selector
Board-Auswahl

Wenn du auf den Namen des aktuell ausgewählten Boards (Arduino Uno) klickst, öffnet sich der Board-Auswahl-Dialog. Tippe im Suchfeld „wrover“ ein und wähle das „ESP32 Wrover Module“ wie unten gezeigt aus:

Select ESP32 Wrover Module
ESP32 Wrover Module auswählen

Wenn das Board per USB mit deinem PC verbunden ist, solltest du auch den COM-Port auswählen können. Im Screenshot oben ist es COM5, bei dir kann es ein anderer COM-Port sein.

ESP32-WROVER CAM programmieren

Wenn du das ESP32 Wrover Module als Board auswählen konntest und die Verbindung zu einem COM-Port funktioniert, kannst du nun dein ESP32-WROVER CAM Board programmieren.

Blink

Als einfachen Test laden wir das übliche Blink program herunter. Die nutzersteuerbare Onboard-LED des ESP32-WROVER CAM Boards ist mit GPIO 2 verbunden. Wir setzen daher die Konstante ledPin auf 2 und schalten die LED eine Sekunde lang an und eine Sekunde lang aus:

const byte ledPin = 2;

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

void loop() {
  digitalWrite(ledPin, HIGH);
  delay(1000);   
  digitalWrite(ledPin, LOW); 
  delay(1000);  
}

Wenn das funktioniert, herzlichen Glückwunsch! Du hast dein ESP32-WROVER CAM erfolgreich programmiert. Im nächsten Abschnitt zeige ich dir, wie du das WebServer-Beispiel ausführst, mit dem du Video auf deinen Computer streamen kannst.

Video Streaming WebServer

In der Arduino IDE gehe zu File -> Examples -> ESP32 -> Camera und öffne das CameraWebServer Beispiel:

CameraWebServer Example
CameraWebServer Beispiel

Als nächstes musst du den Code in CameraWebServer.ino leicht anpassen. Entferne die Kommentarzeichen // für die Definition von CAMERA_MODEL_WROVER_KIT und stelle sicher, dass alle anderen Kameradefinitionen auskommentiert sind, wie unten gezeigt:

Definition von CAMERA_MODEL_WROVER_KIT

Im selben File, etwas weiter unten, musst du auch die WLAN-Zugangsdaten deines Heimnetzwerks eingeben. Ersetze SSID und PASSWORD durch deine Netzwerkdaten für die folgenden Konstanten:

Wi-Fi network credentials
WLAN-Zugangsdaten

Nach dem Hochladen des Codes auf dein ESP32-WROVER CAM solltest du folgenden Text im Serial Monitor sehen:

IP address of CameraWebServer
IP-Adresse von CameraWebServer

Beachte die letzte Zeile, die dir die URL (IP-Adresse) angibt, unter der der WebServer läuft. Kopiere diese URL in die Adresszeile deines Browsers (sie wird bei deinem Board anders sein).

Du solltest dann die folgende Webseite sehen, die Kamerabilder von deiner ESP32-WROVER Kamera an deinen Webbrowser streamt:

CameraWebServer in Web browser
CameraWebServer im Webbrowser

Denke daran, unten auf der Seite „Start Stream“ zu drücken, um den Videostream zu starten. Im Bild oben ist der Stream bereits gestartet und der Button zeigt „Stop Stream“.

Start Stream Button
Start Stream Button

Spiele gerne mit den verschiedenen Kameraeinstellungen. Du wirst feststellen, dass die Bildrate bei höherer Auflösung deutlich sinkt.

Fazit

In diesem Tutorial hast du gelernt, wie man das ESP32-WROVER CAM Board programmiert. Ich habe dir nur das Blink-Programm und den WebServer als Beispiele gezeigt, aber das Github-Repo enthält mehr Beispiel Programme für die ESP32-WROVER CAM, besonders rund um Wi-Fi und Bluetooth.

Im Vergleich zu ESP32-CAM hat die ESP32-WROVER CAM den Vorteil, dass mehr GPIO-Pins frei verfügbar sind und die Programmierung des Boards keine zusätzliche Hardware wie ein Programmier-Shield oder einen FTDI-Programmierer erfordert.

Andererseits ist die ESP32-CAM kleiner, günstiger und hat eine flash LED, was für manche Projekte ein klarer Vorteil ist. Wenn du ein noch kleineres Board brauchst, schau dir das XIAO-ESP32-S3-Sense board an. Es hat keine Blitz-LED, aber mehr freie GPIOs, was das Hinzufügen einer Blitz-LED ermöglichen würde.

Wenn du Fragen hast, hinterlasse sie gerne im Kommentarbereich.

Viel Spaß beim Tüfteln 😉