In diesem Tutorial möchte ich dir zeigen wie du die ESP32-CAM einrichtest und mit einem kleinen Beispiel betreibst.
Inhaltsverzeichnis
Bezug
Die ESP32-CAM für dieses Tutorial habe ich über ebay.de für knapp 8€ inkl. Versandkosten erstanden.
Diesen Microcontroller erhält man bei aliexpress.com oder auch banggood.com für einen deutlich günstigeren Preis, jedoch sind diese Portale nicht die zuverlässigsten und meine Erfahrung hat ergeben das es ein großes Glückspiel ist ob die Teile überhaupt oder heile ankommen.
Damit ein Sketch auf diesen Microcontroller geladen werden kann benötig man zusätzlich ein FTDI Modul, dieses Modul erhält man wiederum bei ebay.de für knapp 4€.
Technische Daten der ESP32-CAM
- 32Bit Dual Core CPU mit 240 MHz Taktgeschwindigkeit
- Rechenleistung bis zu 600 DMIPS
- Speicher
- SRAM – 520 KB
- PSRAM – 4MB
- Schnittstellen
- Bluetooth / Bluetooth Low Energy (BLE) ,
- WiFi (802.11 b/g/n/e/i),
- UART,
- SPI,
- PWM,
- ADC & DAC
- Kameramodul
- OV2640* oder OV7670
- SD Kartenslot für Micro SD Karten bis zu 4GB
- Abmaße (L x B x H) 40mm x 27mm x 18mm
* In meinem Fall ist das Modul OV2640 mit 2MP verbaut.
Pinout der ESP32-CAM
Der Microcontroller ESP32-CAM verfügt über 16 Pins einer Schnittstelle für das Kameramodul und ein SD Kartenslot für Micro SD Karten bis zu 4GB.

Anschluss und Schaltung
Wie bereits erwähnt wird ein FTDI Modul benötigt.

Da wir die ESP32-CAM über 5V betreiben wollen müssen wir zusätzlich auf dem FTDI Modul den Jumper auf 5V einstellen.

Wir benötigen also für den Aufbau neben dem FTDI Modul & dem ESP32-CAM Modul noch 4 Breadboardkabel (20cm, weiblich – männlich) und 1 Breadboardkabel (10cm, männlich – männlich), sowie ein Breadboard mit min. 400 Pins.
FTDI Modul | ESP32-CAM |
---|---|
RX | UOT |
TX | UOR |
GND | GND |
VCC | 5V |
Das 10cm Breaboardkabel wird von IOT auf GND des ESP32-CAM gesteckt.

Jedoch wird diese Brücke nur für den Upload des Sketches benötigt, für den betrieb muss diese wieder entfernt werden.

Programmieren des ESP32
Einrichten des Boardtreibers
Damit der ESP32 mit der Arduino IDE programmiert werden kann muss zusätzlich ein Treiber für das Board installiert werden. Dieser Treiber wird über den Boardverwalter hinzugefügt. Jedoch muss man zuvor die „Board Manager URLs“ unter den Voreinstellungen um die Adresse „https://dl.espressif.com/dl/package_esp32_index.json“ erweitern.

Wenn dieses geschehen ist so kann der Boardverwalter über „Werkzeuge“ > „Board: xyz“ > „Boardverwalter…“ geöffnet werden. In dem Fenster des Boardverwalters wird nun nach dem Begriff „esp32“ gesucht (1), es sollte genau einen Treffer geben welchen wir mit der Schaltfläche „Installieren“ (2) installieren. Nachdem der Treiber installiert wurde (dieses kann je nach Internet & Rechnegeschwindigkeit des Computers etwas dauern) können wir dieses Fenster mit der Schaltfläche „Schließen“ (3) schließen.

Obwohl ich eine 50Mbit Leitung habe dauerte der Download des ca. 32 MB großen Paketes ungewöhnlich lange, daher bitte etwas mehr Zeit für diesen Vorgang einplanen.
Einrichten des Boards in der Arduino IDE
Wenn du den Boardtreiber nun installiert hast dann musst du diesen auswählen und ein paar Standardwerte ändern.

Upload des Beispielsketches aus dem ESP32 Paket
Dem ESP32 Paket liegt ein Beispiel für die ESP32 – CAM bei, solltest du dieses nicht haben so kannst du dir das kostenfrei vom GitHub Repositor /arduino-esp32 herunterladen. Alternativ biete ich dir ein fertig konfiguriertes Sketch am ende dieses Beitrages an.
Wenn du dieses Beispiel hochgeladen hast dann musst du diesen einmal neustarten. Diesen neustart kannst du entweder über den Verbauden Resetknopf machen oder aber du entfernst einmal die Stromversorgung und steckst diese erneut ein.
In dem seriellen Monitor der Arduino IDE kannst du folgende Ausgabe sehen.

Diese Ausgabe bleibt etwas länger stehen d.h. man muss etwas warten bis es weitergeht.
Wenn der Vorgang abgeschlossen ist, dann wird die Verbindung zum WiFi Netzwerk aufgebaut. und die IP-Adresse des ESP32-CAM Moduls wird angezeigt.

Webseite im Browser
Wenn die WiFi Verbindung aufgebaut wurde dann kannst du über die angezeigte IP-Adresse im Browser eine Seite anzeigen lassen auf welcher man zbsp. einen Stream starten kann.

Streamen mit dem VLC-Player
Der kostenfreie VLC-Player ist ein wahrer Alleskönner wenn es um das Abspielen von Multimediadateien geht. Dieser kann auch Netzwerkstreams öffnen und wiedergeben. Dieses habe ich bereits bei der Raspberry PI Camera B01 vorgestellt und möchte ich nun auch für diese ESP32-CAM zeigen.
Die Adresse für den Stream lautet http://<IP-ADRESSE>:81/stream, die IP-Adresse kannst du entweder aus deinem Router auslesen oder aber auf dem seriellen Monitor der Arduino IDE ablesen.
Im VLC Player navigierst du über das Hauptmenü „Medien“ > „Netzwerkstream öffnen…“ um den Dialog „Medien öffnen“ zu starten. In diesem Dialog musst du nun die oben gezeigte Adresse eingeben (natürlich mit deiner IP-Adresse), in meinem Fall lautet diese „http://192.168.178.51:81/stream“.

Der Netzwerkstream im VLC Player kann aber nur gestartet werden wenn kein weiterer gestartet ist (zbsp. über die Webseite im Browser).
Aufnahme eines Bildes
Man kann sich auch ein einzelnen Bild von der aktiven ESP32-CAM holen, dazu muss man nur die Adresse statt mit „/stream“ , mit „/capture“ beenden. Es wird nun ein Foto aufgenommen und für 10 Sekunden angezeigt.

Downloads
Weitere Beiträge mit der ESP32-CAM
Zu dieser nützlichen CAM habe ich bereits einige weitere Beiträge erstellt, welche du unter folgenden Links findest:
Hi
Besteht auch die Möglichkeit das Videosignal via Bluetooth z.B. an ein Handy zu senden?
Ich denke auf ein Projekt herrum bei dem ich ein Bildsignal übermitteln möchte, dieses aber ohne WiFi.
mfg
Lars
Hi,
das ist eine gute Frage.
Da muss ich mal die Suchmaschine Google bemühen, an diesen Anwendungsfall habe ich noch nicht gedacht.
Gruß,
Stefan
Hallo Stefan,
ich hab mir die ESP32-CAM mit dem CH340G Anhängsel geleistet. Über USB an den PC angeschlossen, in deinem Code in der Arduino-IDE SSID und Passwort eingestellt, den Code geladen, Browser geöffnet und… alles läuft perfekt. VLC Player tut natürlich auch. Dank deiner Anleitung war das in einer Viertelstunde ohne Schweißperlen auf der Stirn erledigt. Ich hab erst tagelang einer OV7670 rumgedocktert. Das machte nicht wirklich Spaß. Also vielen Dank für die perfekte Anleitung!
Gruß Gerd
PS: Ich hab noch keine schlechte Erfahrung mit China-Import gemacht
Hallo Gerd,
vielen Dank für deinen positiven Kommentar.
Gruß,
Stefan Draeger
Hi Stefan,
super Anleitung. Hat mir sehr geholfen.
Gruß Uwe
Hallo Stefan,
ich denke ich habe Deine Anleitung soweit nachgestellt. Nach dem Upload des Sketches und einem Reset erscheint auch im seriellen Monitor „… waiting for download“.
Doch dann passiert nichts weiter. Was kann ich gegebenen Falles noch tun?
Danke im Voraus und Grüße
Hi,
das habe ich bei einem meiner ESP32 CAM Module auch da musste ich die Verbindung von IO0 und GND (in der Grafik die graue Brücke) trennen.
Diese dient dazu den Mikrocontroller in den Flash zustand zu versetzen.
Gruß,
Stefan
Hallo Stefan,
vielen Dank für deine gute Anleitung: ich habe einige ausprobiert, dies ist die erste, die funktioniert 🙂 Vielleicht lag es am geänderten Partition Scheme. Und es dauerte wirklich lange, bis das Teil sich mit dem Router (Fritzbox) verbunden hatte, ich wollte eigentlich schon aufgeben…
Viele Grüße
Holger
Danke Dir.
Jetzt brauche ich nur noch ein Gehäuse, sonst werden die Hühner mir die Cam kaputt machen 🙂
Mit freundlichen Grüßen
Hallo
Kann ich den ESP32 Cam auch mit einen Wemos D1 mini pro betreiben?
Hi,
bei der von mir vorgestellten ESP32-CAM brauchst du keinen zusätzlichen Mikrocontroller. Es ist bereits ein ESP32 verbaut.
Einzig benötigt man noch ein FTDI Modul zum programmieren.
Gruß Stefan
Hallo, ein frohes,neues Jahr. Ich bin auf diese interesannte Seite gestoßen.Ich habe einen ESP32-cam erworben und möchte ihn mit meinen Wlan verbinden. Ich bin mir aber noch nicht sicher, welche Sachen ich in dem Sketch ändern bzw einstellen soll. Ich habe alles nach der Vorgabe auf der Seite ausgeführt und der Sketch ist in der IDE geladen und steht zur Verfügung zum hochladen. Ich hoffe auf Tipps, LG Mike
Zur Routerverbindung müssen die folgenden beiden Konstanten im Quellcode angepasst werden. Danach verbindet sich das Board mit dem WLAN. Die IP Adresse kann z.B. im Router dann überprüft werden. Der Zugriff auf den ESP erfolgt dann über den Webbrowser.
const char *ssid_Router
const char *password_Router
Moin Stefan,
danke erst einmal für den Beitrag. Ich habe eine ESP32-WROVER-DEV mit OV2460 im Test, aber die Bilder sind total unscharf, die Qualität ist unterster Bereich. Wie waren deine Erfahrungen? Auch ist die Geschwindigkeit bei einer höheren Auflösung im Streaming Modus schlecht. Ich habe das Gefühl da fehlen ein paar PS unter der Haube.
Danke
Christoph
Hi,
ja das stimmt die Qualität ist nicht wirklich überragend, es gibt zwar zusätzliche Linsen
https://draeger-it.blog/esp32-cam-vergleich-der-verfuegbaren-kameralinsen/
jedoch lösen diese nicht das Problem im Stream.
Ich habe jedoch mit der VGA Auflösung (640×480) ein recht brauchbares Ergebnis hinbekommen.
Gruß,
Stefan
Hallo , habe den Sketch geflasht . Dann kommt die meldung Hard reset via Rts Pin . Habe aber das Entwickler Board . Auf diesem und auf dem Camera Board habe ich schon die reset Knöpfe gedrückt, es passier leider nichts . Auf dem seriellen Monitor kommen nur komische Zeichen wie zb. >))_!?
Hi,
hast du im seriellen Monitor die korrekte Baudrate eingestellt?
Ggf. auch einmal auf 57200 stellen und prüfen ob hier debug Ausgaben angezeigt werden.
Gruß
Stefan Draeger
Ja hatte im monitor die falsche Baudrate , hat alles funktioniert . jedoch ist das bild so unscharf das es nicht zu gebrauchen ist .
Hi,
welche Einstellungen hast du denn im Browser für die Kamera getroffen?
Schicke mir doch mal ein Screenshot. (ggf. auch einmal mit einem Wattestäbchen und etwas Alkohol die Linse reinigen).
Gruß
Stefan Draeger
Weiß jemand, wie man das Bild der ESP32 cam um 90 Grad drehen kann?
Hi,
wenn du das default Sketch für die ESP32-CAM verwendest, dann kannst du das Bild über die Weboberfläche einstellen.
Gruß
Stefan Draeger
Hallo und danke für die Antwort. Nützt nur nichts, solange du nicht verrätst WIE. Ich kann unter …/control nur 180 Grad einstellen, sowohl horizontal, als auch vertikal. Aber wie 90 Grad??? Oder geht es über ein Anhängsel an die URL? Wie lautet das?
Hi,
sorry ich hätte gedacht das geht über die Weboberfläche. Leider ist dieses nicht so, es gibt laut der Dokumentation im GitHub Repository keine Möglichkeit das Bild zu drehen.
Du müsstest also die Kamera physisch um 90° drehen.
Gruß
Stefan Draeger
Ok, danke. Das war bisher auch meine Information. Eigentlich schade, dass es so ist. Bei der Raspikamera kann man aufs Grad genau drehen. Kann eigentlich nur ein Softwareproblem sein bei der ESP32 Cam. Vielleicht kommt da mal was. Nochmals danke!
Man kann jedoch zu dem dem jpg Bild einen EXIF Header generieren und den vor das Bild hängen. Damit hat man dann auch die Möglichkeit weitere Metadaten wie CreationDate, Bildnummer und vor allem „orientation“ hinzuzufügen. Die Exif Definition von orientation kennt nämlich nicht nur ‚vflip‘ und ‚hmirror‘ sondern auch ‚rotate 90‘ (CW und CCW).
Das Problem ist dass dieser exif header nicht konstant ist, sondern dynamisch an das Bild angepasst werden muss. Ich kann nur warnen: es ist ein ziemliches Gefrickel – aber es funktioniert.
Moin
Zur Info:
Ich habe eine 64 GB SD-Karte eingesetzt. Diese wurde ohne Probleme akzeptiert.
Natürlich habe ich sie als FAT32 formatiert (Partition gelöscht und neu erstellt als FAT32).
LG
Heinz-Peter
Hallo,
funktioniert einwandfrei und vielen Dank für die Anleitung!
Grüße
Herbert Gramsch
Hi,
das kleine Dreckding für Paareurofuffzich macht tatsächlich ein für den Preis mehr als angemessenes Bild. Nächste Frage wäre jetzt: Kann man das auch so konfigurieren, dass der ESP32 ein eigenes WLAN aufbaut, in das man sich einloggen kann und dann auf den Stream zugreifen? Ich weiß, dass man einen „normalen“ ESP32 so konfigurieren kann – Hintergrund ist eine Anwendung im Fernsteuerbereich, da habe ich schon den ESP32 als Lösung für das Schalten zusätzlicher Funktionen bei Schiffsmodellen per Standalone-Wifi und Smartphone angetroffen. Das Teil mit Kamera könnte man ja dann als Onboard-Cam benutzen…
LG
Harald
Hi,
Danke für deinen Kommentar, schau doch mal in den Beitrag
https://draeger-it.blog/esp32-cam-als-accesspoint-einrichten/
Da zeige ich dir wie man die ESP32-CAM als Access point einrichtet und mit dem Handy verbindet.
Gruß,
Stefan Draeger