Wie verbinde ich eine Kamera mit esp32?

ESP32-CAM: Eigene WLAN-Kamera für unter 15€

Rating: 4.46 (9758 votes)

Heimüberwachungssysteme können teuer sein, besonders wenn Sie mehrere Kameras benötigen. Glücklicherweise gibt es kostengünstige und flexible Alternativen für Maker und DIY-Enthusiasten. Eine der beliebtesten Lösungen ist die Verwendung des ESP32-CAM Moduls, einer winzigen und preiswerten Entwicklungsplatine mit integrierter Kamera und WLAN-Funktion. Für oft weniger als 15 Euro können Sie Ihre eigene WLAN-Überwachungskamera bauen, die einen Video-Stream bereitstellt, auf den Sie über Ihr Netzwerk zugreifen können. Dieses Modul ist ideal für eine Vielzahl von Projekten, von der einfachen Raumüberwachung bis zur Integration in komplexere Smart Home Systeme.

https://www.youtube.com/watch?v=43W_yVTZJfM

In diesem Artikel erfahren Sie Schritt für Schritt, wie Sie das ESP32-CAM Modul einrichten, programmieren und auf den Video-Stream zugreifen können. Wir werden die notwendigen Hardware-Komponenten besprechen, den Code für den Video-Streaming-Server erläutern und zeigen, wie Sie die entscheidende IP-Adresse Ihrer Kamera finden.

Was ist die ESP32-CAM?

Die ESP32-CAM ist ein kompaktes Kameramodul, das auf dem leistungsstarken ESP32-S Chip basiert. Sie ist mit einem OV2640-Kamerasensor ausgestattet, der Bilder mit einer Auflösung von bis zu 1600 x 1200 Pixeln aufnehmen kann. Für das Video-Streaming wird typischerweise eine niedrigere Auflösung von bis zu 640 x 480 Pixeln verwendet, um eine flüssige Übertragung über WLAN zu gewährleisten. Neben dem ESP32-Mikrocontroller und dem Kamerasensor verfügt das Modul oft über einen Steckplatz für eine MicroSD-Karte, die zur Speicherung von Bildern oder Videos genutzt werden kann, sowie eine integrierte Antenne für die WLAN-Kommunikation.

Die Hauptmerkmale der ESP32-CAM umfassen:

  • ESP32-S Chip mit WLAN und Bluetooth
  • OV2640 Kamerasensor
  • MicroSD-Kartensteckplatz (bis zu 4GB)
  • Integrierte Antenne und IPEX-Anschluss für externe Antenne
  • Kleine Formfaktor
  • Sehr geringe Kosten

Diese Kombination macht die ESP32-CAM zu einer attraktiven Wahl für IoT-Anwendungen, bei denen Bildaufnahme oder Video-Streaming erforderlich sind, wie z.B. Überwachungskameras, Türsprechanlagen, Objekterkennung oder Zeitrafferaufnahmen.

Benötigte Komponenten

Um dieses Projekt zu realisieren, benötigen Sie neben der ESP32-CAM Platine einige weitere Komponenten:

  • Ein ESP32-CAM AI-Thinker Modul (oder ähnliches)
  • Einen FTDI-Programmer (USB-zu-Seriell-Konverter). Stellen Sie sicher, dass dieser sowohl mit 3.3V als auch mit 5V betrieben werden kann und die 5V-Option unterstützt, da die ESP32-CAM oft 5V zum Programmieren benötigt.
  • Mehrere Jumper-Kabel
  • Ein Micro-USB-Kabel zur Verbindung des FTDI-Programmers mit Ihrem Computer.
  • Optional: Eine MicroSD-Karte (für erweiterte Funktionen wie Speicherung).
  • Ein Computer mit der Arduino IDE und dem ESP32 Board-Manager installiert.

Vorbereitung und Anschluss für das Hochladen des Codes

Bevor Sie den Code auf die ESP32-CAM hochladen können, müssen Sie sie korrekt mit dem FTDI-Programmer verbinden. Dies ist ein entscheidender Schritt, da das ESP32-CAM Modul keinen nativen USB-Anschluss zum Programmieren hat.

Die Verbindung zwischen dem ESP32-CAM und dem FTDI-Programmer erfolgt über die seriellen Pins (TX und RX) und die Stromversorgung (VCC und GND). Ein wichtiger Punkt für den Upload-Modus ist der GPIO 0 Pin.

FTDI-Programmer Jumper-Einstellung

Viele FTDI-Programmer haben einen Jumper, mit dem Sie zwischen 3.3V und 5V Stromversorgung wählen können. Stellen Sie sicher, dass dieser Jumper auf 5V eingestellt ist. Die ESP32-CAM benötigt 5V für eine stabile Stromversorgung während des Uploads.

Verbindungstabelle ESP32-CAM zu FTDI-Programmer

Verbinden Sie die Pins wie folgt:

ESP32-CAM PinFTDI Programmer PinZweck
GNDGNDMasseverbindung
5VVCC (5V)Stromversorgung
U0R (RX)TXDatenübertragung (Receive an ESP32, Transmit an FTDI)
U0T (TX)RXDatenübertragung (Transmit an ESP32, Receive an FTDI)
GPIO 0GNDAktiviert den Flash-Modus für den Upload

Die Verbindung von GPIO 0 mit GND ist zwingend erforderlich, um die ESP32-CAM in den Bootloader-Modus zu versetzen und das Hochladen eines Sketches zu ermöglichen. Vergessen Sie nicht, diese Verbindung nach dem erfolgreichen Upload wieder zu trennen!

Einrichtung der Arduino IDE und Code-Upload

Um die ESP32-CAM mit einem Video-Streaming-Sketch zu versehen, benötigen Sie die Arduino IDE und das installierte ESP32 Board-Paket. Falls Sie das ESP32 Board-Paket noch nicht installiert haben, finden Sie online zahlreiche Anleitungen dazu.

Der Video-Streaming Web Server Code

Der Kern des Projekts ist ein Sketch, der die ESP32-CAM als Webserver konfiguriert, der den Kamerastream über WLAN bereitstellt. Ein typischer Sketch für dieses Projekt enthält:

  • Die notwendigen Bibliotheken für WLAN, Kamera und HTTP-Server (WiFi.h, esp_camera.h, esp_http_server.h, etc.).
  • Definitionen für die GPIO-Pins, die je nach ESP32-CAM Modell variieren können (der AI-Thinker ist der gängigste).
  • Konfiguration der Kamera-Parameter (Pixelformat, Bildgröße, JPEG-Qualität).
  • Funktionen zur Initialisierung der Kamera und des WLANs.
  • Eine Funktion zum Starten des HTTP-Streaming-Servers.
  • Handler-Funktionen, die auf Anfragen an den Webserver reagieren und die Bilddaten senden.

Im bereitgestellten Code-Beispiel müssen Sie unbedingt Ihre eigenen WLAN-Zugangsdaten (Netzwerkname und Passwort) an den dafür vorgesehenen Stellen einfügen:

const char* ssid = "REPLACE_WITH_YOUR_SSID"; const char* password = "REPLACE_WITH_YOUR_PASSWORD";

Ersetzen Sie "REPLACE_WITH_YOUR_SSID" und "REPLACE_WITH_YOUR_PASSWORD" durch die tatsächlichen Zugangsdaten Ihres WLANs. Achten Sie darauf, dass die Anführungszeichen erhalten bleiben.

Stellen Sie außerdem sicher, dass das korrekte Kameramodell im Code ausgewählt ist. Für das gängige AI-Thinker Modell ist die entsprechende Zeile:

#define CAMERA_MODEL_AI_THINKER

Andere Modelle sind im Code oft auskommentiert (z.B. //#define CAMERA_MODEL_M5STACK_PSRAM). Stellen Sie sicher, dass nur die Zeile für Ihr spezifisches Modell aktiv ist (ohne die '//' am Anfang).

Schritte zum Hochladen des Sketches

  1. Verbinden Sie die ESP32-CAM über den FTDI-Programmer wie oben beschrieben mit Ihrem Computer. Stellen Sie sicher, dass GPIO 0 mit GND verbunden ist.
  2. Öffnen Sie den Sketch in der Arduino IDE.
  3. Fügen Sie Ihre WLAN-Zugangsdaten ein.
  4. Überprüfen Sie, ob das korrekte Kameramodell ausgewählt ist.
  5. Gehen Sie im Menü zu Werkzeuge > Board und wählen Sie AI-Thinker ESP32-CAM.
  6. Gehen Sie im Menü zu Werkzeuge > Port und wählen Sie den COM-Port aus, dem Ihr FTDI-Programmer zugewiesen wurde.
  7. Klicken Sie auf den Upload-Button (Pfeil nach rechts).
  8. Sobald im Ausgabefenster am unteren Rand der IDE eine Reihe von Punkten (...) erscheinen, drücken Sie kurz den RST-Button auf der ESP32-CAM Platine. Dies versetzt den ESP32 in den Upload-Modus.
  9. Der Code sollte nun hochgeladen werden. Nach Abschluss des Uploads wird eine Erfolgsmeldung angezeigt.

Trennen Sie nach dem erfolgreichen Upload unbedingt die Verbindung zwischen GPIO 0 und GND! Dies ist wichtig, damit der ESP32 beim nächsten Start den hochgeladenen Sketch ausführt und nicht wieder in den Bootloader-Modus wechselt.

Die IP-Adresse der ESP32-CAM finden

Nachdem der Sketch hochgeladen wurde und die GPIO 0-GND Verbindung getrennt ist, können Sie die ESP32-CAM neu starten, um ihre IP-Adresse im lokalen Netzwerk zu erhalten.

  1. Öffnen Sie den Seriellen Monitor in der Arduino IDE (Werkzeuge > Serieller Monitor).
  2. Stellen Sie die Baudrate im Seriellen Monitor auf 115200 Baud ein.
  3. Drücken Sie den RST-Button auf der ESP32-CAM Platine.
  4. Beobachten Sie die Ausgabe im Seriellen Monitor. Nach der Verbindung mit Ihrem WLAN-Netzwerk sollte die ESP32-CAM ihre zugewiesene lokale IP-Adresse ausgeben. Die Ausgabe sieht in etwa so aus:
WiFi connected Camera Stream Ready! Go to: http://192.168.1.xxx

Die angezeigte IP-Adresse (im Beispiel 192.168.1.xxx) ist die Adresse, unter der Sie den Video-Stream in Ihrem Netzwerk erreichen können.

Auf den Video-Stream zugreifen

Sobald Sie die IP-Adresse Ihrer ESP32-CAM haben, ist der Zugriff auf den Video-Stream denkbar einfach:

  1. Öffnen Sie einen Webbrowser (Chrome, Firefox, Edge, etc.) auf einem Computer oder Smartphone, der sich im selben lokalen Netzwerk wie die ESP32-CAM befindet.
  2. Geben Sie die im Seriellen Monitor ausgegebene IP-Adresse in die Adressleiste des Browsers ein und drücken Sie Enter. Stellen Sie sicher, dass Sie http:// vor der IP-Adresse eingeben.
  3. Es sollte sich eine Webseite öffnen, die den Live-Video-Stream der ESP32-CAM anzeigt. Je nach verwendetem Sketch kann diese Seite auch zusätzliche Bedienelemente zur Einstellung der Kamera-Parameter oder zum Starten/Stoppen des Streams enthalten.

Herzlichen Glückwunsch! Sie haben erfolgreich einen Video-Streaming-Server auf Ihrer ESP32-CAM eingerichtet und können nun über Ihren Browser auf das Kamerabild zugreifen.

Integration in Smart Home Systeme

Die Möglichkeit, über eine IP-Adresse auf den Video-Stream zuzugreifen, eröffnet viele Integrationsmöglichkeiten. Sie können den Stream in gängige Smart Home Plattformen wie Home Assistant oder Node-RED einbinden.

Integration in Home Assistant

In Home Assistant können Sie den ESP32-CAM Stream als Bildkarte (Picture Card) zu Ihrem Dashboard hinzufügen. Sie benötigen lediglich die IP-Adresse der Kamera. Fügen Sie eine neue Karte vom Typ 'Picture' hinzu und geben Sie im Feld 'Image URL' die IP-Adresse der ESP32-CAM ein (z.B. http://192.168.1.xxx). Home Assistant zeigt dann den Live-Stream in Ihrem Dashboard an.

Integration in Node-RED

In Node-RED können Sie den Stream ebenfalls einfach anzeigen, typischerweise in einem Node-RED Dashboard. Verwenden Sie einen 'Template' Node und fügen Sie HTML-Code ein, der ein <img> Tag verwendet, dessen src Attribut auf die IP-Adresse der ESP32-CAM verweist:

<div style="margin-bottom: 10px;"> <img src="http://IHRE-ESP32-CAM-IP-ADRESSE" width="650px"> </div>

Ersetzen Sie IHRE-ESP32-CAM-IP-ADRESSE durch die tatsächliche Adresse Ihrer Kamera (z.B. http://192.168.1.91). Dieser einfache Code bettet den Stream in Ihr Node-RED Dashboard ein.

Mögliche Auflösungen für das Video-Streaming

Die ESP32-CAM mit dem OV2640 Sensor unterstützt verschiedene Bildgrößen. Für das Video-Streaming werden aus Performance-Gründen oft niedrigere Auflösungen als die maximale Fotoauflösung (UXGA) verwendet. Hier sind einige typische Auflösungen, die Sie im Code konfigurieren können:

Konstante im CodeAuflösung (Pixel)VerhältnisAnmerkungen
FRAMESIZE_QQVGA160x1204:3Sehr klein, hohe Bildrate möglich
FRAMESIZE_QVGA320x2404:3Klein, gute Bildrate
FRAMESIZE_CIF352x28811:9Standard Interchange Format
FRAMESIZE_VGA640x4804:3Standard VGA, oft gute Balance zwischen Qualität und Bildrate
FRAMESIZE_SVGA800x6004:3Super VGA, benötigt mehr Speicher (PSRAM empfohlen)
FRAMESIZE_XGA1024x7684:3XGA, benötigt PSRAM
FRAMESIZE_SXGA1280x10245:4SXGA, benötigt PSRAM
FRAMESIZE_UXGA1600x12004:3Maximale Auflösung, hauptsächlich für Fotos, benötigt PSRAM, sehr niedrige Bildrate für Streaming

Die tatsächlich erreichbare Bildrate hängt stark von der gewählten Auflösung, der JPEG-Qualität und der Stärke Ihres WLAN-Signals ab. Für flüssiges Video-Streaming sind FRAMESIZE_VGA oder niedriger oft die beste Wahl, es sei denn, Ihre ESP32-CAM verfügt über PSRAM, was höhere Auflösungen ermöglicht.

Häufig gestellte Fragen (FAQ)

Was ist der Unterschied zwischen der ESP32-CAM und anderen ESP32 Boards?

Der Hauptunterschied ist die integrierte Kamera und die Optimierung der Platine für Kamera-Anwendungen. Während viele ESP32 Boards leistungsfähig sind und WLAN/Bluetooth bieten, ist die ESP32-CAM speziell für Projekte mit Bild- und Videoaufnahme konzipiert und enthält die notwendigen Kamera-Schnittstellen und oft auch PSRAM für größere Bildpuffer.

Kann die ESP32-CAM Videos auf eine SD-Karte aufnehmen?

Ja, viele ESP32-CAM Module verfügen über einen MicroSD-Kartensteckplatz. Mit dem passenden Sketch können Sie Videos (z.B. im MJPEG-Format) oder einzelne Bilder direkt auf die SD-Karte speichern. Dies ist eine separate Funktionalität neben dem Video-Streaming über WLAN.

Wie kann ich die IP-Adresse meiner ESP32-CAM finden, wenn sie neu startet?

Die IP-Adresse, die von Ihrem Router zugewiesen wird, kann sich ändern. Um die aktuelle Adresse zu finden, können Sie den Seriellen Monitor verwenden (wie oben beschrieben) oder Ihrem Router eine feste IP-Adresse für die MAC-Adresse der ESP32-CAM zuweisen. Einige fortgeschrittenere Sketches bieten auch eine mDNS-Funktion, die es ermöglicht, die Kamera unter einem Hostnamen (z.B. esp32-cam.local) statt einer IP-Adresse zu erreichen, was die Adressfindung vereinfacht.

Warum funktioniert der Upload nicht?

Die häufigsten Gründe für Upload-Probleme sind: 1) GPIO 0 ist nicht mit GND verbunden, 2) Der RST-Button wurde nicht zum richtigen Zeitpunkt gedrückt, 3) Falscher COM-Port ausgewählt, 4) Falsche Board-Einstellungen in der Arduino IDE, 5) Probleme mit dem FTDI-Programmer (z.B. falsche Spannungsinstellung oder Treiberprobleme).

Warum ist der Video-Stream langsam oder stockt?

Dies kann mehrere Ursachen haben: 1) Schwaches WLAN-Signal zwischen der Kamera und Ihrem Router/Empfangsgerät, 2) Zu hohe Auflösung oder JPEG-Qualität für die Netzwerkbedingungen oder die Speicherressourcen des ESP32 (insbesondere ohne PSRAM), 3) Überlastung Ihres WLAN-Netzwerks durch andere Geräte, 4) Probleme mit der Stromversorgung der ESP32-CAM.

Fehlerbehebung bei häufigen Problemen

Bei der Arbeit mit der ESP32-CAM können einige Probleme auftreten. Hier sind Lösungsansätze für die im bereitgestellten Text erwähnten häufigen Fehler:

  • Failed to connect to ESP32: Timed out waiting for packet header: Dieses Problem tritt meist beim Hochladen auf. Stellen Sie sicher, dass GPIO 0 mit GND verbunden ist und dass Sie den RST-Button auf der ESP32-CAM drücken, wenn die Punkte im Seriellen Monitor erscheinen. Überprüfen Sie auch die Verbindung zum FTDI-Programmer und den ausgewählten COM-Port.
  • Camera init failed with error 0x20001 or similar: Dies deutet auf ein Problem bei der Initialisierung des Kamerasensors hin. Überprüfen Sie, ob das korrekte Kameramodell (AI-Thinker, M5STACK, etc.) im Code ausgewählt ist und die entsprechenden GPIO-Definitionen aktiv sind. Stellen Sie sicher, dass die Kamera richtig auf der Platine sitzt (falls abnehmbar) und dass die Stromversorgung stabil ist.
  • Brownout detector or Guru meditation error: Diese Fehler deuten oft auf Stromversorgungsprobleme hin. Die ESP32-CAM kann beim Start und bei hoher Last (wie Video-Streaming) viel Strom ziehen. Stellen Sie sicher, dass Ihre Stromversorgung (insbesondere der 5V-Pin am FTDI-Programmer oder einer separaten Stromquelle) ausreichend stabil ist und genügend Strom liefern kann. Im Code wird versucht, den Brownout-Detektor zu deaktivieren (WRITE_PERI_REG(RTC_CNTL_BROWN_OUT_REG, 0);), aber eine unzureichende Hardware-Stromversorgung kann dennoch Probleme verursachen.
  • Sketch too big error – Wrong partition scheme selected: Dieses Problem tritt auf, wenn der Sketch größer ist als der für den Programmcode vorgesehene Speicherbereich. Gehen Sie in der Arduino IDE zu Werkzeuge > Partition Scheme und wählen Sie ein Schema, das mehr Platz für den Sketch vorsieht, z.B. 'Huge App' oder 'Default' mit größerer App-Größe.
  • Board at COMX is not available – COM Port Not Selected: Dies bedeutet, dass die Arduino IDE den ausgewählten COM-Port nicht finden kann. Stellen Sie sicher, dass der FTDI-Programmer korrekt mit dem Computer verbunden ist und die benötigten Treiber installiert sind. Wählen Sie im Menü Werkzeuge > Port den korrekten COM-Port aus, der Ihrem FTDI-Programmer zugewiesen ist.
  • No IP Address in Arduino IDE Serial Monitor: Wenn keine IP-Adresse ausgegeben wird, konnte sich die ESP32-CAM nicht mit Ihrem WLAN-Netzwerk verbinden. Überprüfen Sie die im Code eingegebenen WLAN-Zugangsdaten (SSID und Passwort) auf Tippfehler. Stellen Sie sicher, dass die ESP32-CAM nah genug am Router ist und dass Ihr WLAN-Netzwerk im 2,4 GHz-Band arbeitet, da der ESP32 5 GHz-Netzwerke nicht unterstützt.
  • Can’t open web server: Wenn Sie die IP-Adresse im Browser eingeben, aber keine Verbindung hergestellt wird, kann dies daran liegen, dass der Webserver auf der ESP32-CAM nicht gestartet wurde oder dass eine Firewall auf Ihrem Computer oder Router die Verbindung blockiert. Überprüfen Sie die Ausgabe im Seriellen Monitor auf Fehlermeldungen nach der WLAN-Verbindung.
  • The image lags/shows lots of latency: Siehe die Punkte unter 'Warum ist der Video-Stream langsam oder stockt?' oben. Reduzieren Sie die Auflösung oder JPEG-Qualität im Code, verbessern Sie das WLAN-Signal oder erwägen Sie ein Modul mit PSRAM für höhere Auflösungen.

Die ESP32-CAM ist ein leistungsfähiges und sehr kostengünstiges Modul für Video-Streaming und Bildaufnahme in DIY-Projekten. Mit den richtigen Schritten zur Einrichtung und Programmierung können Sie schnell Ihre eigene WLAN-Kamera in Betrieb nehmen und in Ihre Smart Home Umgebung integrieren. Die Flexibilität des ESP32-Chips und die Unterstützung durch eine große Community machen weitere Entwicklungen und Anpassungen einfach. Viel Spaß beim Experimentieren!

Hat dich der Artikel ESP32-CAM: Eigene WLAN-Kamera für unter 15€ interessiert? Schau auch in die Kategorie Ogólny rein – dort findest du mehr ähnliche Inhalte!

Avatar photo

Andenmatten Soltermann

Hallo! Ich bin Andenmatten Soltermann, ein Schweizer Fotograf, der leidenschaftlich die Essenz der Welt durch seine Linse einfängt. Geboren und aufgewachsen in den majestätischen Schweizer Alpen, haben die deutsche Sprache und atemberaubende Landschaften meine kreative Vision geprägt. Meine Liebe zur Fotografie begann mit einer alten analogen Kamera, und seitdem widme ich mein Leben der Kunst, visuelle Geschichten zu erzählen, die berühren und verbinden.In meinem Blog teile ich praktische Tipps, Techniken und Erfahrungen, um dir zu helfen, deine fotografischen Fähigkeiten zu verbessern – egal, ob du ein neugieriger Anfänger oder ein erfahrener Profi bist. Von der Beherrschung des natürlichen Lichts bis hin zu Ratschlägen für wirkungsvolle Bildkompositionen ist es mein Ziel, dich zu inspirieren, die Welt mit neuen Augen zu sehen. Mein Ansatz verbindet Technik mit Leidenschaft, immer auf der Suche nach dem Funken, der ein Foto unvergesslich macht.Wenn ich nicht hinter der Kamera stehe, findest du mich auf Bergpfaden, auf Reisen nach neuen Perspektiven oder beim Genießen der Schweizer Traditionen, die mir so am Herzen liegen. Begleite mich auf dieser visuellen Reise und entdecke, wie Fotografie die Art und Weise, wie du die Welt siehst, verändern kann.

Go up