ESP32 S3 Kamera - Fotos auf der SD-Karte im Webbrowser ansehen
In den anderen SD-Karten-Tutorials müssen Sie das Board abstecken und die Karte zu Ihrem Computer bringen, um die Fotos zu sehen. Dieses Tutorial löst das Problem. Der ESP32 S3 speichert Fotos auf der microSD-Karte und betreibt eine kleine Fotogalerie. Öffnen Sie die Adresse in einem beliebigen Webbrowser, und alle Fotos sind da, auf Ihrem Handy oder auf Ihrem Computer.

Was Sie bauen werden:
- Eine ESP32 S3 Kamera, die alle 30 Sekunden ein Foto auf der microSD-Karte speichert
- Eine Fotogalerie-Webseite, die jedes Foto auf der Karte anzeigt
- Ein Klick auf ein Foto öffnet es in voller Größe, und Sie können es speichern
- Eine Kamera, die Sie nie wieder öffnen müssen, um die Bilder herauszuholen
Erforderliche Hardware
Oder Sie können die folgenden Kits kaufen:
| 1 | × | DIYables Sensor-Kit (18 Sensoren/Displays) |
※ Notiz:
Das ESP32 S3 Kamera-Board hat 40 Pins, aber der Schraubklemmenblock und das Breakout-Board haben 44 Pins. Sie funktionieren trotzdem zusammen. Setzen Sie das Kamera-Board in die Mitte des 44-Pin-Boards, sodass auf der linken Seite 2 Pins frei bleiben und auf der rechten Seite 2 Pins frei bleiben.
Mit dem Schraubklemmenblock können Sie Drähte mit einem Schraubendreher anschließen, ganz ohne Löten. Das Breakout-Board bietet Ihnen einfache Stiftleisten für ein Breadboard.
Wie es funktioniert
Der Webserver hat zwei Adressen, und sie arbeiten zusammen:
| Adresse | Was sie tut |
|---|---|
| http://<IP>/ | Liest die Karte und erstellt eine Seite mit einem kleinen Bild pro Foto |
| http://<IP>/photo?n=00001 | Sendet eine Fotodatei von der Karte |
Die Galerieseite enthält selbst kein Foto. Sie schreibt nur viele <img>-Zeilen, und jede davon fragt das Board nach einer anderen Datei:
Der Webbrowser fragt also die Fotos nacheinander ab, und der ESP32 S3 muss immer nur eine Datei gleichzeitig lesen. Deshalb kann ein Board mit kleinem Speicher eine Karte voller Bilder anzeigen.
※ Notiz:
Ein Foto mit 180 KB passt nicht am Stück in den Speicher des ESP32 S3. Der Code liest die Datei in Stücken von 1024 Bytes und sendet jedes Stück sofort:
Die Liste der Dateien lesen
SD_MMC.open("/") öffnet den obersten Ordner, und openNextFile() geht ihn durch:
※ Notiz:
Rufen Sie entry.close() immer innerhalb der Schleife auf. Der ESP32 S3 kann nur wenige Dateien gleichzeitig geöffnet halten, und die Liste bricht in der Mitte ab, wenn Sie es vergessen.
Verdrahtungsdiagramm
In diesem Projekt gibt es keine Verdrahtung. Sie stecken nur die microSD-Karte in den Steckplatz.

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
- Ziehen Sie das USB-Kabel ab.
- Stellen Sie sicher, dass das Kameramodul mit seinem Flachbandkabel verbunden ist.
- Schieben Sie die microSD-Karte in den Steckplatz, bis Sie ein leises Klicken hören.
- Stecken Sie das USB-Kabel ein.
Sicherheitshinweise
Nehmen Sie die Karte niemals heraus, während das Board ein Foto schreibt. Das Foto und manchmal die ganze Karte werden beschädigt. Ziehen Sie immer zuerst das USB-Kabel ab, warten Sie zwei Sekunden und nehmen Sie dann die Karte heraus.
Arduino IDE Einstellungen für die ESP32 S3 Kamera
Die Kamera funktioniert nicht mit den Standardeinstellungen der Arduino IDE. Sie müssen einige Punkte im Menü Tools ändern, bevor Sie den Code hochladen.
| Menüpunkt in Tools | Diese Auswahl treffen |
|---|---|
| Board | ESP32S3 Dev Module |
| Flash Size | 16MB (128Mb) |
| PSRAM | OPI PSRAM |
| Partition Scheme | Huge APP (3MB No OTA/1MB SPIFFS) |
| CPU Frequency | 240MHz (WiFi) |
| USB Mode | Hardware CDC and JTAG |
| Upload Mode | UART0 / Hardware CDC |
| Upload Speed | 921600 |
| USB CDC On Boot | Enabled |
※ Notiz:
PSRAM muss OPI PSRAM sein, und Partition Scheme muss Huge APP sein. Ändern Sie zuerst Flash Size, denn danach ändert sich die Liste der Optionen für Partition Scheme.
DIYables ESP32 WebServer Bibliothek installieren
- Öffnen Sie die Arduino IDE.
- Klicken Sie auf das Symbol Libraries in der linken Leiste.
- Geben Sie DIYables ESP32 WebServer in das Suchfeld ein.
- Suchen Sie die Bibliothek von DIYables.io und klicken Sie auf INSTALL.
- Search for DIYables ESP32 WebServer created by DIYables.io and click the Install button.
SD_MMC und esp_camera sind bereits im ESP32-Boardpaket enthalten.
So programmieren Sie die Fotogalerie
- Schreiben Sie für jede Adresse eine Funktion und fügen Sie sie in setup() hinzu.
- Lesen Sie die Nummer aus der Adresse \/photo?n=00001. Die Bibliothek hat die Adresse bereits für Sie in Schlüssel und Werte zerlegt.
※ Notiz:
Wir senden nur die fünf Ziffern, nicht den ganzen Dateinamen. Die Bibliothek speichert einen Wert mit weniger als 16 Zeichen, und 00001 ist kurz und sicher.
- Nehmen Sie die fünf Ziffern aus einem Dateinamen, um den Link auf der Galerieseite zu erstellen.
- Senden Sie die Datei mit der korrekten Länge an den Browser, danach die Bytes.
- Nehmen Sie in loop() weiterhin Fotos auf, neben dem Webserver.
※ Notiz:
Der Webserver antwortet jeweils nur einem Webbrowser. Während er ein großes Foto sendet, wartet das nächste Foto der Kamera einen Moment. Das ist bei einem kleinen Board normal.
ESP32 S3 Code
Der Code speichert alle 30 Sekunden ein Foto und zeigt alle Fotos in der Galerie an. Um die Zeit zu ändern, ändern Sie die Zeile #define PHOTO_INTERVAL 30000.
Schnelle Schritte
- Neu beim ESP32 S3? Arbeiten Sie zuerst unsere Anleitung Erste Schritte mit dem ESP32 S3 durch.
- Formatieren Sie Ihre microSD-Karte auf Ihrem Computer als FAT32.
- Ziehen Sie das USB-Kabel ab und stecken Sie dann die Karte in den Steckplatz.
- Installieren Sie die Bibliothek DIYables ESP32 WebServer.
- Kopieren Sie den obigen Code und fügen Sie ihn in die Arduino IDE ein.
- Ändern Sie WIFI_SSID und WIFI_PASSWORD auf Ihr eigenes WLAN.
- Ändern Sie die Einstellungen im Menü Tools. Siehe die Tabelle oben.
- Kompilieren Sie den Code und laden Sie ihn auf das ESP32 S3 Board hoch, indem Sie in der Arduino IDE auf die Schaltfläche Upload klicken.

- Öffnen Sie den Seriellen Monitor in der Arduino IDE.

- Drücken Sie einmal die Taste RESET und lesen Sie die IP-Adresse ab.
- Warten Sie zwei Minuten, damit das Board einige Fotos speichert.
- Geben Sie die Adresse in Ihren Webbrowser ein. Die Galerie erscheint.

Serieller Monitor
Die folgenden Messwerte wurden im Jahr 2026 aufgezeichnet:
Fehlerbehebung
Die Galerieseite öffnet sich, zeigt aber "No photo on the card yet" an.
Warten Sie 30 Sekunden und laden Sie die Seite neu. Die Galerie zeigt nur Dateien an, deren Name mit photo_ beginnt und mit .jpg endet. Fotos aus den anderen Tutorials, wie motion_00001.jpg, werden nicht angezeigt. Ändern Sie die Zeile name.startsWith("photo_"), wenn Sie diese sehen möchten.
Die kleinen Bilder bleiben grau und erscheinen nie.
Das Board zeigt Fotos in voller Größe als kleine Bilder an, daher ist eine Seite mit 50 Fotos sehr langsam. Warten Sie, oder setzen Sie config.frame_size auf FRAMESIZE_VGA herab, damit die Dateien kleiner werden.
Die Seite lädt, aber einige Fotos fehlen.
Der ESP32 S3 kann nur wenige Dateien gleichzeitig geöffnet halten. Stellen Sie sicher, dass entry.close() innerhalb der Schleife steht.
Die Seite ist bei vielen Fotos sehr langsam.
Das ist normal. Das Board sendet ein Foto nach dem anderen. Bei einer Karte mit Hunderten von Fotos ist es schneller, die Karte herauszunehmen und am Computer zu lesen.
Der Serielle Monitor zeigt SD card not found.
Formatieren Sie die Karte als FAT32, verwenden Sie eine Karte mit 32 GB oder weniger und stecken Sie die Karte erneut ein.
Die Seite öffnet sich überhaupt nicht.
Ihr Computer und Ihr ESP32 S3 müssen im selben WLAN-Netzwerk sein. Geben Sie http:// ein, nicht https://.
Der Serielle Monitor zeigt nach den Startmeldungen nichts an.
Wenn Ihr USB-Kabel im Anschluss mit dem Namen UART steckt, stellen Sie USB CDC On Boot auf Disabled. Wenn es im Anschluss mit dem Namen USB steckt, stellen Sie es auf Enabled.
Anwendungen
Eine Kamera, die ihre eigenen Fotos über WLAN anzeigt, erspart Ihnen jedes Mal den Weg zum Board. Hier sind praktische Projekte, die Sie mit diesem Code bauen können:
- Zeitraffer-Kamera, die Sie vom Schreibtisch aus prüfen können: Sehen Sie, wie die Bilder aussehen, bevor Sie sie eine Woche lang laufen lassen.
- Baustellenkamera: Zeigen Sie einem Kunden die heutigen Fotos auf einem Handy, direkt auf der Baustelle.
- Pflanzen- und Gewächshausbeobachter: Beobachten Sie das Wachstum Ihrer Pflanzen, ohne das Gewächshaus zu öffnen.
- Aufzeichnung für Laden und Büro: Ein Manager kann sich die Fotos aus einem anderen Raum ansehen.
- Klassenzimmerkamera: Jeder Schüler kann die Galerie auf seinem eigenen Handy öffnen.
- Protokoll für Maschinen und 3D-Drucker: Prüfen Sie die letzten Fotos, wenn ein Druck fehlgeschlagen ist, ganz ohne Kabel.
- Aquariumbeobachter: Beobachten Sie Ihre Fische vom Sofa aus.
- Wetter- und Himmelskamera: Zeigen Sie den Himmel des ganzen Tages als Seite mit kleinen Bildern.
- Türkamera mit Aufzeichnung: Sehen Sie nach, wer gekommen ist, und speichern Sie nur die Fotos, die Sie behalten möchten.
- Ferienhauskamera: Prüfen Sie die Bilder über das lokale WLAN, wenn Sie ankommen.
Video Tutorial
Wir erwägen die Erstellung von Video-Tutorials. Wenn Sie Video-Tutorials für wichtig halten, abonnieren Sie bitte unseren YouTube-Kanal , um uns zu motivieren, die Videos zu erstellen.
Sehen Sie sich unten die Schritt-für-Schritt-Videoanleitung für dieses ESP32 S3 Projekt an.
Herausforderungen
- Einsteiger: Ändern Sie die Galerie so, dass das neueste Foto zuerst angezeigt wird.
- Fortgeschrittene: Fügen Sie eine Adresse /delete?n=00001 hinzu, die mit SD_MMC.remove() ein Foto von der Karte löscht.
- Profis: Zeigen Sie nur 20 Fotos auf einer Seite an und fügen Sie die Links Weiter und Zurück hinzu, damit sich auch eine Karte mit tausend Fotos schnell öffnet.