Einrichten der ESP32-CAM und erster betrieb

In diesem Tutorial möchte ich dir zeigen wie du die ESP32-CAM einrichtest und mit einem kleinen Beispiel betreibst.

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.

Pinout des Microcontrollers ESP32-CAM
Pinout des Microcontrollers ESP32-CAM

Anschluss und Schaltung

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

FTDI Modul
FTDI Modul

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

FTDI Modul - Jumper für die Spannungswahl
FTDI Modul – Jumper für die Spannungswahl

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.

Aufbau der Schaltung ESP32 - CAM mit FTDI Modul
Aufbau der Schaltung ESP32 – CAM mit FTDI Modul

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

Schematischer Aufbau der Schaltung "ESP32-CAM mit FTDI Modul"
Schematischer Aufbau der Schaltung „ESP32-CAM mit FTDI Modul“

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.

Arduino IDE - erweitern der "Board Manager URLs" in den Voreinstellungen
Arduino IDE – erweitern der „Board Manager URLs“ in den Voreinstellungen

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.

Arduino IDE - Boardverwalter, ESP32 installieren
Arduino IDE – Boardverwalter, ESP32 installieren

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.

Konfiguration des Microcontrollers ESP32-CAM in der Arduino IDE
Konfiguration des Microcontrollers ESP32-CAM in der Arduino IDE

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 espressif/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.

Ausgabe auf dem seriellen Monitor der Arduino IDE (nach dem Upload des Sketches))
Ausgabe auf dem seriellen Monitor der Arduino IDE (nach dem Upload des Sketches)

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. 

Aufbau einer WiFi Verbindung
Aufbau einer WiFi Verbindung

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.

Webpage im Browser der ESP32-CAM
Webpage im Browser der ESP32-CAM

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“.

starten des Netzwerkstreams im VLC-Player
starten des Netzwerkstreams im VLC-Player

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. 

VLC Player , ESP32-CAM capture Image
VLC Player , ESP32-CAM capture Image

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:

31 Kommentare

  1. 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

    1. 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

  2. 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

  3. 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

    1. 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

  4. 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

    1. 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

  5. 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

    1. 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

  6. 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

  7. 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. >))_!?

    1. 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

      1. Ja hatte im monitor die falsche Baudrate , hat alles funktioniert . jedoch ist das bild so unscharf das es nicht zu gebrauchen ist .

        1. 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

    1. 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

      1. 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?

        1. 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

          1. 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!

          2. 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.

  8. 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

  9. 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

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht.