ESP32 Cam Modul

Last Updated on 20. April 2023 by sfambach

Beim schnellen Ali habe ich ein ESP 32 Modul mit Kamera für unter 10€ Gefunden. Dieses stelle ich hier kurz vor und zeige die ersten Schritte.

Fakten

Neben allem was der ESP32 sowieso bietet hier noch ein paar zusätliche Eigenschaften.

  • Platz für eine SD Karte
  • 520 KB SRAM + externe 4MB PSRAM
  • Support OV2640 and OV7670 Kameras
  • OV7670 Kamera Modul
  • Blitzlicht

Vorsicht: Das Pinout kann abweichen, besser nochmal auf der CAM nachsehen.

Funktionen der ESP32 Cam Quelle: Seed Studio
Pinout für ESP32 Cam Quelle: Seed Studio

Kamera Anschlüsse

OV2640 CAMERAESP32Variable name in code
D0GPIO 5Y2_GPIO_NUM
D1GPIO 18Y3_GPIO_NUM
D2GPIO 19Y4_GPIO_NUM
D3GPIO 21Y5_GPIO_NUM
D4GPIO 36Y6_GPIO_NUM
D5GPIO 39Y7_GPIO_NUM
D6GPIO 34Y8_GPIO_NUM
D7GPIO 35Y9_GPIO_NUM
XCLKGPIO 0XCLK_GPIO_NUM
PCLKGPIO 22PCLK_GPIO_NUM
VSYNCGPIO 25VSYNC_GPIO_NUM
HREFGPIO 23HREF_GPIO_NUM
SDAGPIO 26SIOD_GPIO_NUM
SCLGPIO 27SIOC_GPIO_NUM
POWER PINGPIO 32PWDN_GPIO_NUM
Quelle: https://randomnerdtutorials.com/esp32-cam-ai-thinker-pinout/

SD Karten-Anschlüsse

MicroSD KarteESP32
CLKGPIO 14
CMDGPIO 15
DATA0GPIO 2
DATA1 / flashlightGPIO 4
DATA2GPIO 12
DATA3GPIO 13
Quelle: https://randomnerdtutorials.com/esp32-cam-ai-thinker-pinout/

Zusätzliche Pins

BeschreibungPin
Blitzlicht (Doppelbelgung mit SD – DATA1) 4
evtl. Freie Pins1, 3, 16
Rote LED auf der Rückseite (LOW aktiv)33
Quelle: https://loboris.eu/ESP32/ESP32-CAM%20Product%20Specification.pdf

Anwendungsbereiche

  • Webcam
  • Beobachtungs Kamera
  • Visuelle Navigation
  • Gesichtserkennung

Ansichten

Analyse

Das Board kommt leider ohne ISP Programmierer und somit ohne USB Anschluss. Somit ist einwenig Vorarbeit nötig um den ESP zu Programmieren.

Zuerst wird ein ISP oder ein simpler USB to Serial Konverter Benötigt. Ich verwende einen FTDI vom schnellen Ali (LINK).

ACHTUNG! vor dem ersten Betrieb sicherstellen, dass der FTDI 3.3V eingestellt ist.

Die Verkabelung ist schlicht, für den Aufbau verwende ich ein Steckbrett, und ein paar Pinheader Kabel. Zuerst stelle ich die Strom Verbindung her, hierfür müssen jeweils die 3,3V und die Masse (GND) des FTDI mit denen des ESP verbunden werden. Danach müssen noch die beiden Datenleitungen (RX/TX) angeschlossen werden. Die Verbindung zwischen Masse und IO0 muss zum Programmieren gesteckt und danach wieder entfernt werden. Vor dem Programmieren empfiehlt sich ein Reset. Siehe hierzu auch das folgende Bild.

ESP32 Cam – Verbindungen zu USB Brücke

Programmierung

Bibliotheken

Die Arduino IDE muss für den ESP32 vorbereitet sein. Mehr hierzu über den folgenden Link:

Der Kamera Webserver und die Kameratreiber sind zwar in der ESP Installation enthalten, wer jedoch die aktuelle Version sucht, findet sie unter den folgenden Links:

Kameratreiber

Kamerawebserver

Testprogramm

Es gibt ein Beispielprogramm für die Kamera. Erst den richtigen ESP auswählen

ESP32 Cam – Einstellungen des Boards

TIP: Sollte es Probleme beim compilieren oder danach mit Exceptions geben, schaut mal im Kapitel Probleme nach.

Dann erscheinen die passenden Beispielprogramme im Menüpunkt „Examples“. Für den ersten Test habe ich den CameraWebServer ausgewählt:

ESP32 Cam – Pfad zum Beispielprogramm

Im Programm die SSID und das Passwort für das lokale WLan eingeben und #define CAMERA_MODEL_WROVER_KIT ausdokumentieren sowie #define CAMERA_MODEL_AI_THINKER rein nehmen.

Das Programm kompilieren und auf den ESP spielen. Nach einem Reset sieht es wie folgt auf der Konsole aus:

ESP32 Cam – Konsolenausgabe, unten IP des ESP

Ganz unten ist die IP Adresse zu sehen, über welche der ESP im Neztwerk verfügbar ist. Diese in einen Browser eingeben und nach kurzer Wartezeit erscheint die Steuerzentrale:

ESP32 – Cam Web Interface

Noch den Stream starten und siehe da es kommt ein Bild:

ESP32 Cam – Web Interface mit eingeschaltetem Stream

Wer eine alternative Firmware sucht kann es mal mit der folgenen probieren: RTSP Source für die ESP32Cam.

Probleme

Das Schreiben auf den ESP klappt nicht

Wenn beim upload auf den ESP die GUI mit Timeout Fehler aussteigt, mal den Reset-Taster betätigen:

  • Upload Starten
  • Wenn „Connecting“ in der Augabe steht den Reset Taster kurz drücken.

Zusätzlich checken ob der GPIO mit Masse verbunden ist und der RX und der TX Eingang richtig verbunden sind, eventuell mal tauschen.

Kamera nicht erkannt Fehler 0x20004

Flasche Kamera Pinning ausgewählt, für mein Modell benötigte ich:

#define CAMERA_MODEL_AI_THINKER

Zusätzlich musste ich das Modul mit 5V (am 5V Anschluss) betreiben da 3V zu wenig waren.

Streifen im Kamera Bild

Lars (Siehe Kommentare unten) hat ein paar Versuche gemacht. Es hat sich als vorteilhaft herausgestellt das Modul am 5V Anschluss zu betreiben.

Speicher auf Board zu klein

Checkt die Board-Einstellungen, hier muss Partition Scheme = „Huge App … No OTA“ eingestellt sein (Zweiter roter Kasten).

Brownout detector was triggered

„Brownout detector was triggered“ hatte ich bis jetzt nur wenn ich keine externe Spannugnsquelle am Gerät hatte. evtl. reicht auch ein besseres USB Kabel zu verwenden. Der VIN ist mit 5V angegeben, ich habe hier schon 6V und mehr angeschlossen, der Spannungswandler konnte damit umgehen ist aber sehr heiß geworden. Tip natürlich ohne Gewähr ;). Der folgende Link könnte auch noch weiter helfen:

Exceptions nach Upload des Programms

Peter berichtet (siehe Kommentar unten), dass er nach dem Programmieren Nur Exceptions mit der oben angegebenen Konfiguration bekommt.

Bei ihm hats mit dem Board TTGO T1 geklappt.

ESP Cam- Board Config TTGO T1
ESP Cam- Board Config TTGO T1

Ohne mein geschriebenes von oben zu beachten, habe ich meine letzte Kamera mit der folgender Konfiguration erfolgreich compiliert und getestet.

ESP Cam- Board Config Dev Board
ESP Cam- Board Config Dev Board

Die PSRam Nutzung habe ich extra eingeschaltet, evtl. führt das aber auf anderen Boards zu Problemen.

[E][camera.c:1344] esp_camera_fb_get()

Alias „Horst“ (Siehe Beitrag unten) berichtet eine Framebuffer Exception mit der folgenden Kamera ESP Kombi und der ESP32-Cam. Der Unterschied zu meiner ist der Aufdruck auf dem dem Flachbandkabel ( TY-OV2640 V2.0). Es wäre möglich, dass es an der Version 2 liegt.

Alternative Kamera/ESP32 Version
Alternative Kamera/ESP32 Version

Die Kamera Funktioniert wohl mit dem mitgelieferten esp-cam demo und compiliert unter der ESP-IDF v3.3-beta1-506-gebdcbe8c6 vom 5. März 2019. Ich vermute, dass es sich hierbei um Igors demo handelt (ist ne älter Version der ESP32Cam):
https://github.com/igrr/esp32-cam-demo

Das FB Problem scheint noch weitere Auslöser zu haben. So gibt es einige Bug Reports hierzug (siehe unten). Manche melden Erfolge bei Verigerung der Frequenz von 20MHz auf 10Mhz:

 //XCLK 20MHz or 10MHz for OV2640 double FPS (Experimental)
    .xclk_freq_hz = 20000000,

Bug Reports:
https://github.com/espressif/esp32-camera/issues/155
https://github.com/espressif/esp32-camera/issues/93

Aussetzer beim Ping

Es wurde von Patrick berichtet (Siehe Kommentare unten), dass es zu Ping Aussetzern kommt.

Ich habe ein paar Pingtests mit unterschiedlichen Modulen, Auflösungen, mit und ohne Stream getestet. Ich konnte das Problem leider nicht nachstellen. Bitte schreibt einen Kommentar wenn ihr ähnliche Probleme habt oder sogar ne Lösung.

QM DIY More:

ESP32-CAM HW818 (Mit USB on board)

ESP32-CAM + ESP32-CAM-MB

Die Pings sind hier wesentlich schlechter:

Sonstiges

Streamen

Der Esp-Stream ist auf dem port 81 verfügbar. Hier können Streaming-Clients das Signal abgreifen. Das Format ist MJPEG und die URL ist wie folgt aufgebaut:

http://<deine-ip>:81/stream

Da der aktuelle Beitrag immer länger wird, habe ich die einzelen TOOLCHECKS in eigene Beiträge umgewandelt. Der Test mit dem VLC war bei mir leider nicht erfolgreich. Für alle, die unter Linux arbeiten hat Josef (Siehe Kommentare unten) den MPV Player empfohlen, für diesen gibts nun auch noch einen eigenen Beitrag.

Es gibt noch weitere Streaming Clients mit denen ist sicherlich analog zu verfahren.

Kamera Fernsteuern

Der Webserver erlaubt es die Kamera mittels HTTP Anfragen zu steuern. Der generelle Aufruf lautet wie folgt:

http://<ip>/control?var=<Variablenname>&val=<Wert>

Mögliche Kombinationen

Einige Variblen/Wertkombinationen habe ich in der folgenen Tabelle Aufgeführt. Die Funktionen deren Arbeitsweise ich nicht verstanden habe, sind mit einem „?“ markiert:

BeschreibungVariblennameWerte
Auflösungframesize 10 UXGA(1600×1200)
9 SXGA(1280×1024)
8 XGA(1024×768)
7 SVGA(800×600)
6 VGA(640×480)
5 CIF(400×296)
4 QVGA(320×240)
3 HQVGA(240×176)
0 QQVGA(160×120)
4 Voreingestellt
Bildqualität quality 10 gut bis
63 schlecht
10 Voreingestellt
Helligkeit brightness -2 bis 2
0 Voreingestellt
Kontrast contrast -2 bis 2
0 Voreinstellung
Sättigung saturation -2 bis 2
0 Voreingestellt
Spezialeffekte special_effect 0 Kein Effekt
1 Negtivbild
2 Swartz/Weiss
3 Roter Teint
4 Grüner Teint
5 Blauer Teint
6 Sepia
0 Voreingestellt
Weissabgleich ein/aus schalten awb0 Aus
1 Ein
1 Voreingestellt
Spezielle Funktionen für den
Weissabgleich nutzen.
An/Aus
awb_gain 0 Aus
1 Ein
1 Voreingestellt
Weissabgleich
Funktionen
wb_mode 0 Auto
1 Sonnig
2 Bewölkt
3 Büro
4 Zuhause
0 Voreingestellt
AEC SENSOR aec0 Aus
1 Ein
1 Voreingestellt
AEC DSPaec20 Aus
1 Ein
1 Voreingestellt
AE Level? ae_level -2 bis 2 0
Exposure?
(bei mir nicht sichtbar)
aec_value 0 – 1200 204
Wechselt zwischen den
folgenden Funktionen
agc_gain und gainceilling
agc0 Gain
1 Gain-Ceilling
1 Voreingestellt
agc_gain-group? agc_gain 0 Ein-fach
30 31 fach
5
gainceiling-group? gainceiling 0 zwei fach Bis
6 128 fach
0
BPC? bpc 0 Aus
1 An
0 Voreingestellt
WPC ? wpc 0 Aus
1 An
1 Voreingestellt
Raw GMA? raw_gma 0 Aus
1 An
1 Voreingestellt
Linsen Korretur? lenc 0 Aus
1 An
1 Voreingestellt
Horizonale Spiegelung
(Wenn die Cam auf der Seite
liegt = Vertikale)
hmirror 0 Aus
1 An
1 Voreingestellt
Vertikale Spiegelung
(Wenn die Cam auf der Seite
liegt = Horizontal)
vflip 0 Aus
1 An
1 Voreingestellt
DCW (Downsize EN) ?
Verkleinert das Bild
dcw 0 Aus
1 An
1 Voreingestellt
Zeigt Farbbalken auf
dem Bildschirm
colorbar 0 Aus
1 An
0 Voreingestellt
Geischtssuche aktivieren face_detect0 Aus
1 An
0 Voreingestellt
Gesichtserkennung aktivieren face_recognize 0 Aus
1 An
0 Voreingestellt
Befehls Tabelle für HTTP Requests zur ESP Kamera

Beispiele:

Die Beispiele könnt ihr einfach in die Adressleiste eures Browser kopieren. Vom Webserver kommt keine Antwort zurück, ob es geklappt hat oder nicht. Bitte die IP durch die euere Kamera tauschen.

Auflösung auf VGA Stellen:
http://192.168.1.66/control?var=framesize&val=6

Bildqualität verschlechtern:
http:// 192.168.1.66/control?var=quality&val=20

Helligkeit einstellen:
http:// 192.168.1.66/control?var=brightness&val=2

3D Druck Gehäuse / Pan Tilt

Hier ein paar Links zu Gehäusen:

https://www.yeggi.com/q/esp32+cam/

https://www.thingiverse.com/search?q=esp+cam&type=things&sort=relevant

Den folgende Pan/Tilt habe ich mal ausgedruckt.

https://www.thingiverse.com/thing:3579507

3D Druck PanTilt für ESP Cam Quelle: https://www.thingiverse.com/thing:3579507
3D Druck PanTilt für ESP Cam
Quelle: https://www.thingiverse.com/thing:3579507

Wer es braucht, hier der Deckel aus dem Verbund gelöst.

Dafür dass ich dünne Aussenwände und schnelles drucken verwendet habe, passen die Teile ganz gut zusammen. Bei mir hängt der Deckel zum drehen des Kopfes etwas in der Luft, hier wäre eine schönere befestigung des Servo Kopfes denkbar. Auch hatte ich keinen Draht oder Büroklammer die ich opfern konnte, zur Hand, deshalb ist die Kosntruktion zum Neigen des Kopfesnicht optimal. Wie man dem kleinen Video entnehmen kann, funktioniert der Pan/Tilt dennoch so wie es soll. Auch die ESP Cam passt exakt in die Ausparung.

ESP32 Cam Pan Tilt/Test

ESP als Viewer für die Kamera

Sigi (Siehe Kommentare) hat die Frage aufgebracht, ob ein ESP auch als Viewer für die Kamera dienen könnte. Nach voheriger Abwägung und ein paar Tips von Lars. Habe ich meine eigene Version des M5 Stack Viewers erstellt:

Freie Pins

Die Cam bietet kaum nach aussen durchgeschleifte Pins. Nach Abzug des Programmers müsten GPIO1, GPIO3 und evtl. GPIO16 frei sein. GPIO1/3 werden alledering auch für die Serielle Schnittstelle benötigt. GPIO16 habe ich noch nicht getestet.

Der ESP32 hat schon eine Menge Pins, evtl. könnte man hier auch direkt auf den ESP gehen. Die folgende Seite, hat mir sehr geholfen deshalb möchte ich sie euch nicht vorenthalten:

ESP32-CAM AI-Thinker Pinout Guide: GPIOs Usage Explained

Es ist wohl möglich die SD Karte mittels der Fuses auf einen Ein-Leitungs-Betrieb umzustellen. Dies befreit den Port 12 und 13.

Der Befehl für die Konsole lautet wie folgt:

 espefuse.py –baud 115200 –port **your_USB_port_name** set_flash_voltage 3.3V

https://randomnerdtutorials.com/esp32-cam-ai-thinker-pinout/

Hier noch mehr zum 1 Wire mode der SD Karte.

Der LINK könnte auch noch helfen.

Sonst vielleicht mal diese Kamera-Modelle ansehen:

https://github.com/lewisxhe/esp32-camera-series

Https://github.com/Xinyuan-LilyGo/esp32-camera-screen

Im Folgenden Link hat jemand einen PIR an die Kamera angeschlossen. Ports mit Hilfe des 1-wire Betriebs der SD Karte frei geschaltet.

https://github.com/jameszah/ESP32-CAM-Video-Recorder/blob/master/demo_fritz2.jpg

Kamera Kabel verlängern

Soweit ich das der Spezifikation entnehmen konnte, ist die Kamera eine OV2640 mit 24 Pins mit FFC Kabel 0,5 mm Raster. Für verschiedenen Projekte wird die Kamera an anderer Stelle als die Platine benötigt. Es gibt hierfür verlängerungen oder Kameras mit längerem Kabel. Wobei die Kameras mit längerem Kabel fast günstiger erscheinen.

Kamera vom schnellen Ali, mit längerem Kabel.

Noch ein Fischauge vom schnellen Ali

FFC Kabel Suche in der eletronischen Bucht

Ob die Verlängerung funktioniert habe ich noch nicht ausprobiert, ist also eher ein Versuch, sollte aber klappen solange das Kabel nicht zu lange wird.

Projekte

Wasseruhr ablesen

Lars schreibt (Siehe Kommentare) von einem netten Projekt, welches Werte von einer Wasseruhr mittels ESP32 Bilderkennung abliest.

PanTilt

Fazit

Es funktioniert, man kann eine Kamera am ESP32 betreiben. Die Inbetriebnahme gestaltet sich für den geübten Bastler einfach.
Es gibt ein paar Fallstricke siehe hierzu auch das Kapitel „Probleme“. Die Bildqualität überzeugt nicht wirklich evtl. ist hier noch die ein oder andere Optimierung möglich oder meine Hardware ist nicht ganz OK.
Das Testprogramm, ist für einen ersten Test überragend, es bietet viele Einstellmöglichkeiten bis hin zu einer Gesichtserkennung. Da hat sich jemand richtig mühe gegeben.

Verwandte Beiträge

Quellen

RTSP Source für die ESP32Cam

https://www.diymore.cc

Quelle: https://randomnerdtutorials.com/esp32-cam-ai-thinker-pinout/

Link ins FHEM Forum zum gleichen Thema, gepostet von Papa_Romeo (Siehe Kommentar), da wurde sich schon ausfühlich mit der Materie befasst. Schaut doch einfach auch mal dort rein. https://forum.fhem.de/index.php/topic,95604.msg884592.html#msg884592
Weiterführende Links aus dem Forum selbst:
https://robotzero.one/
https://randomnerdtutorials.com/
https://robotzero.one/esp32-face-door-entry/
https://robotzero.one/esp-who-recognition-with-names/

https://www.instructables.com/id/Video-Capture-Using-the-ESP32-CAM-Board/

https://www.thingiverse.com/thing:3579507

https://www.thingiverse.com/search?q=esp+cam&type=things&sort=relevant

https://www.yeggi.com/q/esp32+cam/

https://www.videolan.org/vlc/index.de.html

https://github.com/geeksville/TenDollarWebcam

https://github.com/espressif/esp32-camera

https://circuitdigest.com/microcontroller-projects/how-to-use-esp32-camera-module-for-video-streaming-and-face-recognition

https://github.com/espressif/esp32-camera

https://github.com/easytarget/esp32-cam-webserver

https://randomnerdtutorials.com/esp32-troubleshooting-guide/

https://github.com/jameszah/ESP32-CAM-Video-Recorder

https://github.com/moononournation/M5Stack-Cam-Viewer

https://github.com/raphaelbs/esp32-cam-ai-thinker

https://github.com/xenpac/ESP32-CAM-Linux-Motion

148 Gedanken zu „ESP32 Cam Modul

    1. Hallo Uwe,

      bin mir nicht sicher ob ich deine Frage richtig verstehe. Im Telegram Beispiel wird bei Bewegung ein Bild an Telegram gepostet. Die Kommunikation geht hier nur in eine Richtung Kamera -> Telegram. Bei ner Pan/Tilt Steuerung bräuchtst du eine Kommunikation in die entgegengesetzte Richtung. Kann man sicherlich irgendwie bewerkstelligen indem man auf dem Telegram kanal pollt und eingabe Texte erkennt, ist aber sicherlich nicht die bester Lösung. Wenn du genauer beschreibst was du vor hast, habe ich vielleicht ne bessere Antwort.

      Gruß Stefan

  1. Hallo zusammen,
    es soll nicht despektierlich wirken, dass ich mir jetzt nicht alle Kommentare durchgelesen habe…
    Es gibt ZWEI verschiedene ESP32s-Modelle !
    Schaut mal die Beschreibung des GND-Pins nahe des Blitzlichtes an.
    Es gibt Modelle, die mit GND gekennzeichnet sind, und Modelle, welche mit GND/R gekennzeichnet sind.
    Auf einem Bild oben (links Combi mit MB) ist das gut zu erkennen.
    Vorab:
    Borads mit GND/R-Kennzeichnung sind mit dem Motherboard (ESP32-CAM-MB) KOMPATIBEL, alle anderen nicht, Punkt !
    Boards mit GND/R-Kennzeichnung haben die Brücke intern FEST integriert, eingebrannt sozusagen.
    Wer sich also wundert, dass eine Flash-Methode bei einem Board funktioniert, beim anderen aber nicht, sollte sich diese Kennzeichnung anschauen.
    DEFINITIV:
    Boards mit GND-Kennzeichnung sind problemlos mittels obiger Verkabelung flashable – auch unter Windows ! – Boards mit GND/R-Kennzeichnung NICHT !
    MB + Boards mit GND/R-Kennung habe ich unter Linux (HomeAssistant auf RPI, Modul also am RPI angeschlossen) flashen können, unter Windows (Modul an PC) bisher noch nicht.
    Vielleicht hat jemand einen Tipp für mich ?

    Besten Dank vorab !
    Gesund bleiben !
    So long

  2. Um nach 3 Jahren die Kommentare Mal fortzusetzen …
    Danke für den informativen Artikel!

    Der Ali hat ein CAM32 Module geschickt, welches leider bei jedem Versuch in einer Reset-Schleife festhängt:

    rst:0x3 (SW_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
    configsip: 0, SPIWP:0xee
    clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
    mode:DIO, clock div:1
    load:0x3fff0030,len:1344
    load:0x40078000,len:13964
    load:0x40080400,len:3600
    entry 0x400805f0
    ets Jul 29 2019 12:21:46

    Alle oben angegebenen Kombinationen für ein Board und die eine oder andere Kamera-Pin Konfiguration erfolglos ausprobiert.
    Die ESP-Cam an sich scheint in Ordnung zu sein, da sich die Software für die Zählerauslesung https://github.com/jomjol/AI-on-the-edge-device/ flashen läßt und auch startet (leider hat diese CAM nur 2MB PSRAM und das ist zu wenig für das Projekt).
    Was kann man noch versuchen, um diese CAM unter der Arduino-Umgebung lauffähig zu bekommen?

    1. Hallo Karsten,

      Ich nehme an andere Sketsche angefangen mit dem Blink/Hello World Beispiel hast du schon ausporobiert. Würde erstmal klein starten und dann mehr dazu nehmen. Also ohne Kamerabezug mit Blink oder Ausgabe auf der Console starten. Dann weiter versuchen die Kamera mittels Treiber einzubinden. Wenn der Fehler wieder auftritt würde ich schauen was ich zuletzt eingebaut habe und den Fehler versuchen zu finden. Ich hatte neulich bei ein paar esp01s das Problem dass in Kombination mit dem Programm, diese zwar gesflashed wurden aber wenn der falsche mode DIO … verwendet wurde, hat er den Speicher nicht richtig adressiert und das Programm hielt einfach an (ganz ohne Dump). Ansonsten würde ich den code Schritt für Schritt mit Testausgaben versehen (wenn du debuggen kannst um so besser und schneller) und schauen wo er hängen bleibt.

      Gruß Stefan

      1. Moin,

        um Stefans Frage zu konkretisieren: Laufen andere Sketche? Oder wann tritt der Fehler auf?
        Hast Du die verlinkte Software kompiliert und hochgeladen oder ein fertiges Binary genommen?

        Wenn der Fehler bei allen von Dir uebersetzten Sketchen auftreten sollte, dann hilft vielleicht
        https://github.com/espressif/arduino-esp32/issues/3461
        oder
        https://www.esp32.com/viewtopic.php?t=11439
        dort sind laengere (englische) Diskussionen zu diesem Fehler und es werden ein paar Loesungsmoeglichkeiten, die bei Einigen geholfen haben, bei Anderen aber nicht, aufgelistet.

        Recht interessant finde ich die Loesungsansaetze mit der Partitionstabelle und der Flashzugriff (DIO/40MHz)

        Aber z

    2. Schade, irgendwas ist schief gelaufen und meine laengere Antwort ist weg. Daher in Kurzform:

      Wenn man nach
      rst:0x3 (SW_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)

      googelt, stellt man fest, dass das haeufiger vorkommt. Es ist aber nicht ein Fehler, sondern eine Fehlerklasse mit diversen Ursachen. Daher findet man auch Loesungen, die fuer Einige funktionieren, fuer Andere aber nicht. Hier hilft es zu probieren.
      Was mich interessieren wuerde – und was Stefan auch schon gefragt hat -:
      Wann tritt das Problem genau auf? Bei jedem in der Arduino IDE selbst uebersetzten Sketch?
      Die Software, die funktioniert, wie kam die auf das Geraet? Wurde sie uebersetzt oder die hex-Datei direkt in den Flash geschrieben?

      Gehen andere fertige hex-Dateien? Wenn ja, wuerde ich davon ausgehen, dass in der IDE etwas verstellt ist, bzw. nicht fuer das Modul passt.
      .Mein Ansatz waere es nun den Flashspeicher komplett zu loeschen und in der IDE ein paar Dinge auszuprobieren: Anderes Modul, Partitionstabelle (verschiedene Schemata, aber ggf. auch darin aendern, s.
      https://espressif-docs.readthedocs-hosted.com/projects/arduino-esp32/en/latest/tutorials/partition_table.html
      )
      Flashfrequenz, Flashgroesse, Flashmode

      Viel Erfolg und sage gerne Bescheid, ob und was die Versuche bewirkt haben.

    3. Kommen meine Nachrichten nicht durch? Oder haengen die in der Moderation? WordPress meldet einen Fehler, aber bei mir konnte ich sie gestern trotzdem lesen?

  3. Hallo,
    prima Beitrag.
    Nun meine Frage: gibt es eine Möglichkeit die Funktionen „Start Stream“ und „Stop Stream“ über einen Befehl oder durch Belegung eins externen Pins und entsprechender Befehlszeile(n) zu steuern?
    Viele Grüße Peter

    1. Hallo Peter,

      grundsätzlich ginge das. All zu viele Pins sind zwar nicht mehr frei aber einen gibts.
      In der loop funktion wenn pin auf high/low ist den Stream starten.
      Ich würde glaube ich auch noch einen Nachlauf programmieren, das hilft gegen das Schwingen beim Einschalten und garantiert eine Mindestlaufzeit. (Nich blockierend warten, Delay sollte hierbei nicht verwendet werden).

      Gruß
      Stefan

  4. Guten Abend. Habe 2 solcher Kameras und möchte meinen Modellbahn-Abstellbahnhof optisch überwachen. Wie schaff ich es, dass ich beide Kameras gleichzeitig sehen kann … es funktioniert immer nur eine, also entweder oder …
    Wenn’s eine Lösung gibt, dann bitte laienhafte Antwort, die auch ein Nicht-Elektroniker verstehen kann.

    1. Hallo Reiner,

      die Webseite der Kamera gibt das aktuell nicht her, das einfachste wäre zwei Browser Fenster oder du kannst ein externes tool wie ISpy, Shinobi, motionEye, ZoneMinder, oä verwenden.
      Dort beide Kameras als MJPeg/Mpeg stream eingerichtet kannst du sie parallel betrachten.

      Gruß
      Stefan

  5. Hallo,
    kann ich das bild der cam via Bluetooth direkt aufs Smartphone streamen? Bin im Aussendienst tätig und habe selten freies wlan zur verfügung.

    1. Hallo Thomas,

      ich könnte mir vorstellen das einzelne Bilder über Blutooth streambar sind, habe hierzu aber auf die schnelle nichts gefunden.
      Aber wenn du in blutooth Reichweite bist dann bist du auch in W-Lan Rechweite zur Kamera. Der ESP hat die Möglichkeit als Wlan-Accesspoint konfiguriert zu werden. Hierzu gibt es viele Beispiele im Netz. Dann brauchst du dich per Handy nur noch in das WLan-Netz der Kamera einzuloggen und die Webseite des Cam servers aufzurufen.

      Gruß
      Stefan

  6. Hallo,
    erst mal Danke für all die Info und die Anleitung. Nach einigen Versuchen habe ich es geschafft, das Beispiel-Programm aus der Arduino-IDE hochzuladen (CameraWebServer).
    Grundsätzlich funktioniert das auch ganz gut. Nur macht die Kamera, sobald ich den Stream starte, deutlich hörbare Zisch- oder Knattergeräusche. Schalte ich den Stream ab, sind die Geräusche weg. Was kann da die Ursache sein und vor allem, wie kann ich das beheben?
    Danke und Grüße
    Tristan

    1. Hallo Tristan,
      über Geäusche bei solchen Cams ist mir nichts bekannt, da muss ich passen. Hast du die „originale“ cam oder ein Derivat. Wenn du einen Buzzer auf dem der Kamera hast würd ich versuchen den mal abzuklemmen entweder per Software oder auslöten. Ansonsten kannst du lokalisieren woher die Geräuche kommen von der Kamera normal hat die keine beweglichen teile auch ist sonst nichts beweglich.

      Gruß
      Stefan

      1. Hallo,
        erst mal ganz vielen Dank, dass Sie sich Zeit für eine Antwort genommen haben!
        Inzwischen habe ich die Lösung gefunden. Ich hatte eine Kamera mit einem Programmieradapter gekauf. Der macht die Verbindung zu USB und arbeitet mit 3,3V. Dazu hat er einen kleinen Regler, keine nennenswerten Pufferkondensatoren. Im Betrieb mit diesem Adapter macht die Kamera die beschriebenen Geräusche. Wenn ich sie aber direkt an 5V betreibe, ist nichts zu hören. Es liegt also am Adapter. Warum der aber Geräusche macht ist unklar, es sind keine Induktivitäten oder bewegliche Teile drauf.
        Jetzt nehme ich den Adapter nur noch zum Programmieren, für den Betrieb verwende ich ein 5V-Netzteil.
        Grüße Tristan

  7. Hallo zusammen

    Was mache ich falsch, wenn ich weder das Board, noch die passende Bibliothek „esp_camera.h“, weder auswählen noch irgendwo finden kann?

    Besten Dank für Ratschläge

    LG Tom

  8. Hallo, ich habe eine Frage und zwar:

    Ist es denn möglich jedes Gesicht oder gar gleich die Augen zu erkennen und die Koordinaten dieser Augen aus zu geben?

    Und noch etwas, kann man eigentlich ein Licht oder eine helle Stelle erkennen lassen mit einer Kamera, geht das allgemein?

    Vielen Dank für die Zeit dies zu lesen und zu antworten.

    Viele Grüße
    Julian

    1. Hallo Julian,

      Der verwendete Algorithmus basiet so weit ich weiss auf maschinen lernen.
      Mir ist nicht bekannt das hier eine tiefere Analsyse es Gesichts gemacht aber es sollte Möglich sein die Koordinaten des Gesichts zu bekommen.
      Es gibt natürlich noch andere Algorithmen. Gesichtsumrisse erkennen machen ja schon die biligen kameras. Hierfür gibts unterschiedliche Algortihmen.
      Einige von ihnen zielen direkt auf Mund/Nase/Augen ab. Hier dürfte es nicht schwierig sein die Koordinaten der Augen auf dem Bild zu ermitteln.

      Zur zweiten Frage, um helles Licht zu erkennen muss der Hintergrund dunkler sein. Wenn du ein helles Pixel bzw. eine Pixelwolke hast kannst du diese auf dem bild durch algorithmen eingrenzen erkenne.
      Das einfachste aber auch Zeitaufwändigste wäre das Bild Pixel für Pixel durch zu gehen zu schauen wo helle Pixel (Schwellwert) sind und sich die maximalen/minimalen Koordinaten zu merken mit deren Hilfe könntest du wieder einen sog. Boundingbox um das Objekt zeichnen.
      Ich denke ein Schwarzweisbild und ein ggf ein Filter vereinfachen die Sache. Was auch oft verwendet wird sind spezielle Farbtöne wie beim Green Screen oder auch bei den Ballspielenden Robotern.

      Also zwei eindeutige ja’s aber man muss dafür was tun. Wie genau deine Algorithmen sind hängt davon ab wie du sie aufbaust aber auch von der Fähigkeit deiner Hardware ab. Bilder zu analysieren braucht etwas Rechenleistung.
      Ein gängiger Trick ist es von der Kamera nur das Bild zu holen und dieses auf einem Leistungstarken Rechner zu analysieren.

      Gruß
      Stefan

      1. Das klingt schon mal gut.

        Würdest du mir dabei ein wenig unter die Arme greifen und mir tipps geben oder mehr, falls du willst auch gegen bezahlung, da mir dieses Projekt sehr wichtig ist. Ich danke dir für deine Zeit

        1. Hallo Julian,
          wenn du konkrete fragen hast kannst du sie gerne stellen.
          Es sind auch ab und an andere hier die Antworten.

          Bei deinen Projekt aktiv unterstützen kann ich leider nicht, ich habe meine eigenen Projekte darunter fallen auch meine zwei Kinder und meine Arbeit.
          Da ist leider kaum freie Zeit übrig. Aber mit den Begriffen die du hast kommst du auf google schon recht weit. Es geht bei Projekte ja auch immer einwenig ums Tüfteln.

          Gruß
          Stefan

          1. „….ich habe meine eigenen Projekte darunter fallen auch meine zwei Kinder….“

            Endlich mal Projekte, die Hand und Fuß haben! Spaß beiseite, danke für deine Webseite, die mir heute viel weiter geholfen hat.

            Gutes neues Jahr und die besten Wünsche 🙂

            Matthias

  9. Hallo.
    Also ich habe das Problem mit dem WLAN und zwar setze ich einen Ping auf die CAM ab erhalte ich immer wieder Unterbrüche. Der RSSI-Wert lese ich alle paar Sekunden aus dme Sketch aus und liegt immer zwischen 50-60db. Also der Empfangspegel ist Perfekt.
    Die Unterbrüche können durch leichten Druck auf die Platine behoben werden….
    Kennt jemand ein solches Verhalten?

    1. Hallo Patrick, kann natürlich vieles sein. Wenns per Druck auf die Platine wieder gut ist, kann es ein Haarriss oder ein nicht richtig verlötetes Bauteil sein. Was aber so einwenig gegen die RSSI spricht. Verwendest du die Onboard Antenne oder haste die Brücke umgelötet und verwendest eine externe Antenne?
      Gruß
      Stefan

      1. Hallo Stefan
        OnBoard und der Jumper sitzt am richtigen Ort 🙂
        Eben wegen dem RSSI stutze ich auch…
        Bestelle mir mal eine neue CAM…

      2. Moin,
        ich stimme Dir mir der Haariss oder kalte-Loetstelle-Theorie zu, aber warum soll der RSSI Wert dem widersprechen?
        Die Uebertragung eines Ping Pakets ist ja eine Kette und besteht nicht nur aus der Funkstrecke. Es kann z. B. sein, dass das Problem im Uebergang zwischen dem Empfangsmodul und dem Prozessor liegt. Dann werden die Daten zwar richtig „gefunkt“, erreichen aber den Prozessor nicht, so dass er kein Ping erhaelt und daher nicht antwortet. Analog kann natuerlich auch der Rueckweg kaputt sein.

        Ich habe mal eine ganze Weile gebraucht, bis ich gemerkt habe, dass ich so ein Problem bei einem Router hatte. Ein VPN Tunnel funktionierte nicht.
        Es stellte sich heraus, dass die TX-Leitung zwischen Prozessor und einem LAN-Port irgendwo unterbrochen war. Zwar meldeten Router und PC eine Verbindung und TCP Dump listete auch die empfangenen und gesendeten (!) Pakete (der Tunnel funktionierte also), aber am angeschlossenen PC sah ich im Dump nur die von dort gesendeten Pakete, aber nicht die vom VPN-Router kommenden…
        Nach einem Wechsel der Schnittstelle lief es sofort.

        Da man die defekte Stelle auf solch einer Platine nicht unbedingt finden kann und die Reparatur auch eher schwierig ist, ist ein neues Modul vermutlich das Beste…

        1. Moin,
          Klar kann das mit dem Verbindungscut TX/RX kann Grundsätzlich sein, hier befinden sich aber Controller und Netwerkmodul im gleichen Chip. Deshalb halte ich das hier für eher unwahrscheinlich. Die Frage nach dem Widerstand für die Antenne war auch eher weil auf manchen meiner Boards der so drauf gerotzt ist dass es da sicherlich mal ein Problem entstehen kann. Was mir noch eingefallen ist, ob evtl was auf dem Kern 1 des Controllers läuft, hier kann es auch zu komischen Verhalten fürs Netzwerk kommen (habe ich nur gehört aber noch nicht selbst gesehen). Wollte mal eine meiner Cams anschliesse, ging allerdings auf die Schnell nicht, scheint Kaputt zu sein :(. Gruß Stefan

      3. Also ich habe nun ein weiteres erhalten und probiert.
        Mit der Lieferung der Cam ist ja schon eine Webserver Soft drauf.
        Verbinde ich mich mit dem Laptop auf diesen AP habe ich keineerlei Pingverluste! Sobald ich die ESP32Cam Software aufspiele und über mein WLAN gehe habe ich diese Problem….
        Also selbes Verhalten hier wieder.

        1. Hallo Patrick, ich habe mal mit drei unterschiedlichen Modulen Pingtests gemacht, Keine Cam hatte aussetzer aber die ersten beiden sind besser als letzte (Siehe neues Kapitel dazu). Nur um alles mal bedacht zu haben hier noch ein paar doofe Fragen:
          Du hast die Problem nur mit der ESP32 Cam Software – welche verwendest du denn?
          Du versorgst die CAM extern mit einer einer 5V Spannung?
          Du hast mal auf die Cam ein einfaches WIFI Beispiel aufgespielt um zu sehen ob es die gleichen Pingprobleme gibt?
          Du Pingst vom Rechner über den Accesspoint zur CAM – Wenn ich dich richtig verstanden habe, hast du die Probleme nicht wenn du dein Laptop anpingst, richtig?
          Wenn du per HTTP auf die Cam zugreifst ist der Stream stabil? Flüssiges Bild?

          Gruß
          Stefan

          1. Hallo Stefan
            Danke für Deine ausführliche Rückmeldung.
            Habe nun ein kleines WiFi-Client Skript hochgeladen, welches sich auf meinen AP verbindet. Hier sind keine Unterbrüche beim Ping feststellbar!
            Also kann es nicht ein Speisungsproblem sein, da es mit der orig. aufgespielten Testsoftware ja auch funzt. Sobald ich jedoch folgenden Sketch hochlade habe ich die besagten Probleme:
            https://RandomNerdTutorials.com/esp32-cam-shield-pcb-telegram/

            1. auch mit dem TestSkript aus der Beispiel-Datenbank keine Probleme.
              Also nur mit dem einen Skript.
              Aber eben, sobald ich die Cam in die Hand nehme, keine Aussetzer mehr!!!! Very Strange.

          2. Hallo Stefan
            Bin etwas weiter….
            Sobald ich bei meinem verwendeten Sketch die Telegram Instanz ausklammere, funzt es.
            also die Pings sind im normalen Rahmen.
            Ist die Instanz aktiviert spuckt es wieder. Obwohl ich dann mittels leichtem Druck auf die Platine die Ping’s wieder in den normalen Rahmen versetzen kann.
            Irgendwie nicht logisch(zumindest für mich)
            Gruss
            Patrick

            1. Da bin ich mit meinem Latein auch am Ende. Einzige Idee wäre noch alles nacheinander aus zu dokumentieren und schauen wie sich der Sketch verhält. Hatte ihm mir mal angesehen, ist eigentlich gut programmiert, Da sollte eigentlich nichts blockieren. Das Draufdrücken könnte was kurzschliessen. Wenn ich am Wochende Zeit habe spiele ich den Sketch auch mal auf eine meiner Cams.

  10. Hallo Stefan,
    ich habe mit eine Pan Tilt ESP32-Cam nach einem Projekt von random nerds https://randomnerdtutorials.com/esp32-cam-pan-and-tilt-2-axis/ nachgebaut. Das funktioniert stationär in meinem WLan sehr gut.
    Nun würde ich diese Überwachungseinheit gerne über internet auch ausserhalb meines WLan verwenden. Sonst habe ich dann immer einen Port freigegeben und mittels meines NO-IP Accounts z.B. meine Wetterdaten auf dem Handy „weltweit“ ausgelesen.
    Nun mein Problem:
    Das Projekt nutzt jeweils für stream und Pan Tilt einen eigenen Port. Port 81 für stream und port 80 für Steuerung.
    Wie kann ich dass den für meinen Plan anpassen? Geht das überhaupt?
    Eine IP und ein Port => xxxxx.ddns.net:port als Adresse

    Gruß Ulli

    1. Hallo Ulli,

      coole Anwendung für die Cam, habe ich gleich mal gelinkt. Die Frage die sich mir stellt warum gibst du nicht beide Ports frei? Gibt das der DNS Service nicht her? Habe mich gerade mal bei No-ip angemeldet und auf die Schnelle keine Einstränkung gesehen. Somit würde ich davon ausgehen dass er einfach deine Ip mit einem DNS Namen versieht und du jeden Port nutzen kannst. Wenns nicht geht kann es sein dass der Anbieter es verhindert. Man kann ja auch einen FT-Server und Http Server über die gleich DNS Freigeben und jeder hat einen anderen Port. Lange Rede kurzer Sinn denke, dass es auch so gehen müsste. Auf der Cam müsstest du irgendwie anfragen auseinander Steuern wenn du sie auf dem gleichen Port annimmst, das müssteste erstmal programmieren bin mir auch gerade unsicher wie das gehen könnte. Vielleicht weiss ja einer der anderen Mitlesenden hier noch eine Lösung.

      Gruß
      Stefan

      1. Moin,
        kurz zum Hintergrund von DNS (domain name service). Ein DNS Server sorgt „nur“ dafuer, dass ein Name (den man sich meist besser merken kann) in die entsprechende IP-Nummer geaendert wird. Er hat nichts mit den Ports zu tun. Bildlich gesprochen der Vergleich zu einer Adresse:
        „ich suche im Hotel XY das Zimmer Z“. Da Hotels nicht auf der Karte sind, muss „Hotel XY“ (Name) in die (IP-)Adresse umgesetzt werden. Das macht der Nameserver. Vor Ort muss dann noch immer das Zimmer (der Port) gesucht werden. Wo das ist, braucht (und kann) der „Uebersetzer“ nicht wissen.

        Zu Deinem Problem: Du musst auf Deiner Firewall (umgangsprachlich Router *schuettel*) nicht nur den Port 80, sondern auch den Port 81 freigeben und auf die Kamera umleiten.

        Natuerlich kann man auch Server und Client umprogrammieren, so dass alles auf einem Port laeuft. Das wuerde aber deeeeuuuuuuuutlich umfangreicher werden 😉
        und auch sonst fallen mir bei diesem Ansatz nur Nachteile ein…

        Viele Gruesse,
        Lars

  11. Hallo,

    bisher habe ich alle Projekte mit Lazarus und RasPi3b+ realisiert und bin bei den esp32- Board’s und deren Programmiersprache über die Arduino-IDE kompletter Anfänger.

    Ich möchte einen analogen Sensor (z.B. MQ135) sowie einen kleinen Servo ( z.B. SG90 ) am esp32-cam-Modul ( AI-Thinker mit USB-Buchse ) betreiben. Der Sensor soll dabei die Aktionen auslösen,
    der Servo eine Klappe öffnen und die Kamera Photo schiessen auf SD speichern – dann wieder Klappe zu zurück in den Sensorbetrieb gehen.

    Es ist mir nach den Anleitungen im Netz bereits gelungen, Photos (wenn auch ziemlich schlechte) mit dem Cam-Board aufzunehmen und Sensor und Servo an einem AZ_Delivery ESP32 NodeMCU Module WLAN WiFi Development Board’s mit CP2102 anzusteuern.

    Jetzt möchte ich alle Bauteile am cam-Modul ansteuern, lese aber hier auf dem Blog, das bereits nahezu alle Pins von Kamera und SD-Karte, welche ich benötige, bereits belegt sind.

    Daher:

    Kann ich zeitversetzt ( Sensor überwachen => Servo ansteuern => Kamera und SD-Karte nutzen => Sensor überwachen etc…in Schleife) die Pins unterschiedlich nutzen ?

    Wenn ja, welche Pins nutze ich für den Sensor (A=>D_Eingang)
    und den Servo ( PWM ??)

    MfG

    Stephan

    War wahrscheinlich schon häufiger irgendwo beantwortet,
    habe nur nicht gefunden…

    1. Hallo Stephan,
      im Prinzip steht im Kapitel „Sonstiges -> Freie Pins“ alles was ich hierzu weiss.
      PWM Kannst du an fast allen IO ports verwenden. Im Kapitel gelinkten Beitrag sind auch noch ein paar hacks für die SD Karte.
      Gruß Stefan

  12. Vielen Dank für die vielen guten Infos!
    Hinter „WPC“ und BPC“ verbirgt sich nach meinen Tests sowas wie „White Pixel Correction“ und „Black Pixel Correction“. Einige der Pixel in den Kameras sind teilweise defekt und senden immer kein Signal oder Vollausschlag. WPC und BPC erkennen dies und ersetzen das fehlerhafte Pixel mit den korrekten Werten der Nachbarpixel.
    Gruß Jörg

  13. Hallo,

    ich hab die CAM32 im Einsatz und streame Videos und stere die über den Webbrowser.
    Nun würde ich gern noch die LED ansteuern.
    Wie schicke ich diese Befehle dazu an die ESP32 Cam?

    1. Moin Rodnic,

      Soweit ich weiss ist hierfür kein Befehl implementiert.
      Wenn die SD Karte nich benutzt wird, kann die LED am Port 4 betrieben werden.
      Diesen müsste man mit einem neu zu definierenden Befehl an/aus schalten.
      Gruß
      Stefan

  14. Heute kam hier ein HK-ESP32-CAM-MB (Board-Sandwich: ESP32-CAM Board + ESP32-CAM-MB mit CH340) an, leider mit Camera TY-OV2640-V2.0, denn beim Starten des Arduino Sketches CameraWebServer bekomme ich
    [E][camera.c:1483] esp_camera_fb_get(): Failed to get the frame on time!
    Sehe ich es richtig dass da nur eine Ersatz-Kamera hilft?

    1. Moin, das Frambuffer Problem kann auch andere Gründe haben. Externe Spannung fehlt, nicht richtig gewählter Kamera typ. Sollte es um das Probelem der 2.0er Version gehen gabs einen anderen Sketch um das zumindest mal zu probieren. Mal im Kapitel Probleme nachsehen.
      Gruß Stefan

      1. Die definierte Kamera ( #define CAMERA_MODEL_AI_THINKER ) ist schon korrekt, da ich ein zweites baugleiches ESP32-CAM Board habe, bei dem nur eine andere Kamera (Beschriftung auf dem Flachbandkabel „LA AF2569 0927XA“) verbaut ist

  15. Sehr schöne Anleitung. Ich frage mich aber, warum sich dieses Kamera einfach nicht mittels „http://:81/stream“ in die Surveillance Station einer Synology DiskStation einbinden lässt. Hat da jemand einen Tipp? Mit Motioneye im Docker der DiskStation klappt es dagegen problemlos.

  16. Hej Stefan,
    ein lob fuer die von dir investierte arbeit! danke dafuer.
    versuche seit einiger zeit die esp32-cam zu ueberreden…
    ich nutze die IDE 1.8.13 unter kubuntu 20.04
    programmer FTDI232

    die einstellungen:
    Board: ESP32 Wrover Module habe ich gewaehlt, die anderen einstellungen auch wie beschrieben. aber ich kann keinen programmer auswaehlen, ist ausgegraut…

    in deiner abbildung hast du auch Port rot umrandet, der wird bei mir sofort nach dem anstecken des FTDI232 automatisch erkannt.
    hast du einen tip wo das klemmT

    1. Hallo Helmut,
      da fällt mir leider nicht viel zu ein. Ich hatte das auch mal bei einer modifizierten Version der Arduino Gui aber das lag an der Version.

      Mit dem ESP32 Dev Modul sollte es eigentlich auch funktionierten haste das mal ausprobiert (hier sind nur mehr einstellungen möglich und ich hatte bei einer Konstellation exceptions auf dem ESP)

      Gruß
      Stefan

  17. Hallo,
    deine Seite hat mir sehr geholfen die ESP-Cam zum Laufen zu kriegen und außerdem ein paar Pins freizubekommen (SD Card in 1Bit SPI), was ich für mein Projekt auch wirklich brauche.

    Eine Info, über die ich gestoßen bin, die bei dir aber leider keine Erwähnung findet, ist die Möglichkeit per FT232RL ohne manuelles Überbrücken zu flashen. Vielleicht kanntest Du diese Methode noch nicht – wäre sicherlich eine sinnvolle Ergänzung im Artikel.

    Es gibt dieses Issue im Tracker von der AI-Tinker Cam, wo darauf verwiesen wird, dass man an den nach innen gewandtem Pad des RST-Buttons einen Draht löten kann und am FT232RL am RTS-Signal anlegt – Quelle: https://github.com/raphaelbs/esp32-cam-ai-thinker/issues/32. Es handelt sich um EN/CHIP_PU.

    Dadurch wird das Auto-Flashing möglich – habe es in meinem Projekt getestet und in Verwendung: (https://github.com/michaelkubina/SpotMicroESP32/blob/master/electronics/2020-12-09_Circuitry_final.png). Die Arduino-IDE hat bereits das richtige Python-Script für die Flash-Routine via RTS/DTR

    Viele Grüße!
    Michael

      1. hallo Stefan,
        wie ist bitte der letzter stand:
        lässt sich das modul flashen ohne den jumper zwischen IO0 und GND zu setzen? Den jumper kann man ja nur dann anbringen, wenn man einen direkten zugriff auf das modul hat, ist es irgendwo fest verbaut wirds schwierig…

        1. Hallo Georg,

          entweder man müsste einen Taster/Schalter nach aussen führen der den IO0 und GND bei Bedarf verbindet, oder man flashed ein OTA (over the air (programmer)) mit auf die Kamera. Dann kann man sie via Netwerk updaten. Bei der zweiten Lösung bin ich mir nicht sicher ob sie wirklich funktioniert, da die Kamerasoftware schon viel Speicherplatz auf dem ESP verbraucht. Evtl. hat das hier ja schon jemand mal ausprobiert?

          Gruß
          Stefan

          Nachtrag: Soweit ich sehen kann gibts eine aktualisierte Version der Camsoftware mit OTA auf GIThub.
          https://github.com/easytarget/esp32-cam-webserver

  18. Danke für die Beschreibung. Zum flashen reichten die 3.3V des FTDI (Adafruit) nicht. Nach dem nie eine Verbindung zustande kam, habe ich mal die Spannung nachgemessen, um 0 Volt. Also den 5V Pin des ESP (POW 5V) mit VCC des FTDI verbunden und VCC auf 5V umgeschalten am FTDI (die Signalleitungen natürlich bei 3.3V belassen).

  19. Hallo,
    ich habe die Tage ein ESP32-CAM-Modul auf eBay mit integriertem CH340-Seriell-Wandler geschossen. Darauf ist eine OV2640-Kamera. Ich habe alles eingerichtet wie oben beschrieben Das Ding läuft prinzipiell, ist im WLAN erreichbar und zeigt ein Bild. Leider ist das Bild meist komplett rosa.
    Nur sehr helle Bildbereich wie eine Lampe kann man sehen. Ich habe schon an allen Reglern und Schaltern gespielt. Es verbessert sich nicht wirklich. Auch die Reduktion der Clock von 20 auf 10MHz in config.xclk_freq_hz = 10000000; bringt nix.

    Was könnte das sein kann? Oder ist da was kaputt?

    So siehts bei mir aus:
    https://www.mikrocontroller.net/attachment/485344/ESP32CAM.PNG

    1. Hallo Michael,
      vielen Dank für deine Frage. Da ich nicht weiss was du sonst noch so ausprobiert hast hier mal eine paar Ideen die mir spontan einfallen:

    2. Flachbandkabel überprüfen, steckt dieses richtig in der Buchse oder ist es beschädigt. (Die Buchse hat ne Arretierung einfach mal öffnen das Kabel neu reinstecken und wieder verschliessen. Vorsichtig die Kabel brechen schnell.
    3. Richtige Konfiguration ausgewählt? Bei mir CAMERA_MODEL_AI_THINKER.
    4. Pins – Das Mapping der Pins mal überprüfen ggf. mal einzelne pins in der Konfigurationsdatei tauschen.
    5. Lötpins der Buchse überprüfen, reicht manchmal schon aus auf jeden mal, vorsichtig ohnen einen Kurzschluss zu verursachen, drauf zu drücken.
    6. Auch wenn eher unwahrscheinlich, Kamera könnte defekt sein. Ich hatte das gleicher Problem mal bei einer RPI Cam, Diese gibts einzeln für ein paar „Pfennig“ nach zu kaufen
    7. Ich hoffe eine der Maßnahmen hilft (nicht die letzte 😉 ) .
      Gruss
      SteFam

      1. Hallo Stefan,
        das meiste habe ich wirklich schon probiert. Flachbandkabel raus/rein, Stecker mit Mikroskop untersucht. Ich habe alle Kameravarianten durch (alle anderen bringen nur Fehlermeldungen). Bei den Pins gibts eigentlich auch nichts, was vertauscht sein könnte. Bei den ganzen Clocks und Syncs würde ich vermutlich bei falscher Belegung auch die Lampen nicht sehen können. Bleiben die Datenleitungen. Aber was soll ich da probieren? Da gibts unendlich Kombinationen.

        Ich habe mal ein Modul ohne den USB-Konverter bei einem anderen Händler bestellt. Mal schauen ob das geht. Da kann ich die Kamera dann auch quertauschen.
        Einen wirklich günstigen Kameraanbieter habe ich aber noch nicht gefunden.

        Michael

        1. Hallo Michael, kannste mir mal ein Bild od. Link des Moduls schicken. Habe noch ein paar hier liegen und würde gerne mal vergleichen. Gruss Stefan

            1. Hallo Michael,

              da ist mein Latein auch am Ende. Habe ein Pinout gefunden dieses ist gleich zu der normalen ESP32-Cam. Sollte ich diese Version der Kamera schon haben finde ich sie leider nicht mehr. Ich habe mir das Board auch mal bestellt kommt aber wahrscheinlich erst zwischen den Jahren. Austauschkameras habe ich da (wenn sie denn passen).

              Gruß Stefan

            2. Hallo Stefan,
              Heute kam das andere Modul. Das geht. Allerdings ist dort das Bild übel unscharf. Offenbar ist die Linse nicht gerade drauf. Vermutlich Transportschaden, War richtig schlecht verpackt und die Hälfte der Pins waren schon vor dem Auspacken krumm.

              Die alte Kamera bringt auf dem neuen Modul auch ein rosa Bild. Also Kamera defekt. Der Händler will mir ein Ersatzmodul schicken.

    8. Hallo Michael,

      gestern ist das Modul vom gleichen Lieferanten gekommen, habe es mit den gewohnten Einstellungen bespielt. (Kamera ist ok, kein Horror in Lila, musst wohl ein Montagsmodell erwischt haben) Das Modul scheint etwas stabiler zu laufen als die initiale ESPCam. Keine Streifen keine Abstürze bis jetzt, auch ohne externe Stromversorgung. Flashen geht bei mir nur per Knopfdruck ist das bei dir auch so?

  20. Hallo,
    Vielen Dank für den tollen Beitrag. Ich habe mit einem Raspberry PI Zero W eine LTE Wildkamera gebaut. Leider dauert der Bootvorgang relativ lange und das Bild wird zu spät aufgenommen. Daher wäre es schön das mit dem ESP32-CAM-Modul zu machen. Die Idee ist, das ESP nimmt ein Bild auf, speichert es und ich kann es dann mit dem PI abholen. z.B. über FTP oder wie auch immer.
    Wie lange benötigt das ESP-Modul bis es gebootet hat und ein Bild aufnehmen kann. Ich möchte es nicht genau wissen. Es geht mehr um die Größenordnung. (1-2 s oder eher 10-20 s) . Besteht überhaupt die Möglichkeit ein einzelnes Foto zu machen und es zu speichern? In welchem Format liegt das Foto dann vor?
    Vielen Dank
    Gruß
    Paul

    1. Hallo Paul,
      danke für deinen Kommentar. Es ist möglich einzelne Bilder mit der Kamera zu machen, diese liegen beim Kamera-Webserver im jpeg Format vor. Bei anderen Programmen habe ich auch schon die Ablage als BMP Datei gesehen. Wenn du die Cam an GSM anbinden möchtest, brauchst du noch ein zusätlich Modul z.b. SIM 8000. Die Anbindung ist nicht ganz trivial, weil die ESP Cam nicht so viele freie pins hat. Im Prinzip können die Bilder auf einer SD Karte gespeichert werden, oft werden die Pins für die SD Karte aber anderweitig verwendet. Als Kameramodul könntest du dir auch nochmal die von TTGO ansehen, die sind schon mit Bewegungsmelder und aus meiner Erfahrung heraus etwas leichter im Umgang da sie einen USB Port haben und stabiler laufen. https://www.fambach.net/vorschau-lilygottgo-t-kamera-esp32-2/
      Um auf deine Hauptfrage zu kommen, die Rebootzeiten sind wenige Sekunden und wenn du auf DeepSleep zurück greifst kannst du das nochmal optimieren. Da gibts auch ein nettes Video von Andreas Spiess https://www.youtube.com/watch?v=r75MrWIVIw4.
      Ich bin mir nicht sicher ob die Qualität für Wildbeobachtungen ausreicht, auch ist kein IR Licht dabei. Da der Preis je nach Modul bei 9-20 € liegt kann man das aber einfach mal ausprobieren ;).
      Gruß
      Stefan

      1. Hallo Stefan,
        danke für deine ausführliche Antwort. Die Qualität der Bilder ist eher nebensächlich, da ich die Aufnahmen lediglich mache, um die Wildarten zu erkennen. Die Kamera die ich aktuell baue hat schon Infrarotlicht und einen Bewegungsmelder. Das ist alles aus solchen China-Modulen zusammengebaut. Für die Übertragung der Bilder verwende ich einen LTE-Stick von Huawai. Das SIM 900 würde bei kleinen Bilddateien sicherlich auch gehen. Es benötigt ja nur zwei Pins für die UART. Ich werde das ESP32 auf jeden Fall mal testen. Aber erst muss meine Kamera fertig werden und schnell ins Revier, bevor die Schweine kommen.

        Viele Grüße
        Paul

  21. Hallo!
    Erstmal vielen Dank für deine Arbeit.
    Es scheint neue Module (mit OV2640) aus China zu geben, für die keine der hier angegebenen Parameter für die Arduiono-ESP 1.0.4 korrekt sind. Sie kommen aber mit eigenem Programm („esp32-cam-demo“) , welches funktioniert. Es wurde mit der ESP-IDF v3.3-beta1-506-gebdcbe8c6 am 5. März 2019 kompiliert.
    Mit einem Arduino Sketch erreicht man zwar das Board und kann auch die Kamera initialisieren. Beim Auslesen des Framebuffers gibt es aber den bekannten Fehler „“[E][camera.c:1344] esp_camera_fb_get(): Failed to get the frame on time! Camera capture failed“
    LG

    1. Hallo Horst,

      vielen Dank für deinen Beitrag.
      Ich würde deinen Tip gerne mit in das Problem Kapitel aufnehmen.
      Nach etwas suchen habe ich ein Frambuffer Problem gefunden das aber auf eine zu hohe Taktrate zurück zu führen ist.
      Hier mal die Links, entspricht dies deinen Beobachtungen?
      https://github.com/espressif/esp32-camera/issues/155
      https://github.com/espressif/esp32-camera/issues/93

      Meinst du mit Programm Camera Demo Igors?:
      https://github.com/igrr/esp32-cam-demo
      Vorab vielen Dank für deine Rückmeldung. Hast du evtl. noch einen Link/Bild von deiner Kamera?
      Gruß
      Stefan

  22. Hallo Stefan,
    hier ein kleiner Tip zum Übertragen auf das Modul: bei diesem Modul wie auch Node usw. wird immer gesagt, dass man beim „Connecting“ die Reset-Taste betätigen soll. Es geht viel einfacher: IO0 und GND verbinden, nach einer Sekunde den Reset-Taster kurz drücken und loslassen, danach die Verbindung IO0 und GND lösen ( ich habe hierzu einen Taster angelötet). Dann kann man beliebig den Compiler starten und die Übertragung läuft dann ohne weiteres zutun.
    Gruß Klaus

    1. Hallo Klaus,
      danke für den Tip, ist bestimmt Praktisch wenn man die Kamera oft neu programmieren will.
      Ich habe einen Taster genommen, ein Dupond Weibchen/Weibchen Kabel in der mitte durchgeschnitten und es an den Taster gelötet, klappt auch.

      Gruß
      Stefan

  23. Hallo zusammen,

    zunächst herzlichen Dank an Stefan für den super Artikel. Hat mir bei den ersten Schritten mit der ESP32-Cam prima geholfen.

    Als Info für alle, die bei Ali ein ESP32-Cam Board bestellen:

    Nach dem Flashen des Cam Webserver Beispiels mit Arduino IDE, Entfernen der Brücke und Reset warf das Board auf dem Serial Monitor immer einen Exception Error aus.

    Nach einigen Fragen an Tante Google, Debuggen und Auswerten des Stacktraces und eigenen Experimenten habe ich festgestellt, dass ich für mein Board nicht ESP32-Wrover, sondern TTGO T1 einstellen musste. Als Kamera Module das auch von Dir verwendete AI-Thinker Modell.

    Nun läuft das Board super !

    Viele Grüße
    Peter

  24. Hallo,
    danke für die Anleitung. Dies ist die einzige Seite, die ich gefunden habe, die die Fernsteuerung per HTTP beschreibt. Kann man beim Aufruf mit HTTP auch mehrere Paramater auf einmal übergeben?

    Freundlichen Gruß

    Andre

    1. Hallo Andre,
      die Steuerung wird in der Methode

      static esp_err_t cmd_handler(httpd_req_t *req){

      bei mir ab Zeile 452 in Datei app_httpd.cpp abgefragt. Wenn ich mich nicht ganz verguckt habe wird hier von einem Key/Value Paar ausgegangen. Das könnte man anpassen um mehrere Einstellungen zu akzeptieren oder man sendet einfach alle Einstellungen per Request hintereinander, was für mich jetzt ersteinmal einfacher klingt.
      Gruß
      Stefan

      1. Hallo Stefan,
        ich werde mir das mal anschauen, ob ich das umsetzen kann, mit mehreren Parametern übergeben, weiß ich noch nicht.
        Aber ich werde sicher hinbekommen, die für mich besten Parameter schon beim Kompilieren mit zu übergeben.
        Ich werde auch mal das Internet durchstöbern, ob sich jemand einen Webserver geschrieben hat, bei dem man ein paar Einstellungen machen kann die dann auch gespeichert werden.
        Ansonsten bin ich von der Qualität wirklich überrascht, klar ist das Bild etwas weich gezeichnet, aber dafür dass ich meine 3-D Drucker beobachten will, und das mit so wenig Aufwand klappt, ist das Modul perfekt. Mal sehen was die Weitwinkelkameras bringe ich bestellt habe.
        Freundliche Grüße André

    1. Hallo joednemesis,
      ich würde vermuten im
      app_httpd.cpp Ca Zeile 208
      static esp_err_t capture_handler(httpd_req_t *req){
      camera_fb_t * fb = NULL;
      esp_err_t res = ESP_OK;
      int64_t fr_start = esp_timer_get_time();

      GPIO 4 auf high schalten und am Ende wieder aus.
      Aufpassen GPIO 4 wird auch von der SD Karte verwendet.
      Gruß
      Stefan

  25. Hallo,
    ich habe mir o.g. CAM gekauft und mit dem Beispiel CameraWebServer programmiert.
    Hat auch soweit alles geklappt.
    Im Seriellen Monitor bekomme ich aber hier nur vorlaufent die folgende Info angezeigt.
    „—
    ets Jun 8 2016 00:22:57
    rst:0x3 (SW_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
    configsip: 0, SPIWP:0xee
    clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
    mode:DIO, clock div:1
    load:0x3fff0018,len:4
    load:0x3fff001c,len:1216
    ho 0 tail 12 room 4
    load:0x40078000,len:9720
    ho 0 tail 12 room 4
    load:0x40080400,len:6352
    entry 0x400806b8
    –„
    Ansonsten geht es nicht weiter.
    Sieht so aus als ob das Programm in einer Schleife festhängt.
    Kann mir hier jemand helfen?

    1. Hallo Woli,
      da fallen mir leider nur die Standards ein:

    2. IO 0 wieder gelöst?
    3. Modul mit 5 Volt Versorgt?
    4. richtige Speichereinstellungen beim Programmieren gemacht?
    5. Korrekte Kamera gewählt
    6. Um dich dem Problem zu nähern mal ein paar debug Ausgaben in den code machen.

      1. Hallo Stefan,
        IO 0 wieder gelöst? – Nein
        Modul mit 5 Volt Versorgt? -Ja
        richtige Speichereinstellungen beim Programmieren gemacht? -ja
        Korrekte Kamera gewählt -Ja

        Nach weiteren versuchen und Rechergen im Netz, habe ich auch einfache Programme wie z.b. ChipID ausprobiert.
        Es wurde immer v. g. ausgegeben. Startsequenz vom ESP32
        Der Programmupload funktioniert zwar aber ein Starte erfolgt nicht. .
        Ich gehe davon aus dass es im Speicher probleme gibt.
        Werde Modul als def. zurückschicken.

        Danke nochmals für die Rückinfo.
        G.Woli

      2. wie war das gleich mit der Antworttiefe?
        Daher dieses Posting leider als Antwort auf eine korrekte Antwort und sehr geduldige Antwort (Respekt) und nicht das Posting, auf das ich mich eigentlich beziehe:

        „IO 0 wieder gelöst? – Nein“
        Sorry, aber wenn ich jemanden um Rat frage und der so nett ist, mir eine Checkliste zu schicken und bereits meine erste Antwort nein ist, dann wuerde ich doch stutzig werden und versuchen sie in ein Ja zu wandeln, bevor ich etwas als defekt zurueck schicken wuerde und dann mit dem Ersatz dasselbe Problem zu haben.

        Ich zitiere ein paar Zeilen weiter oben:
        „Die Verbindung zwischen Masse und IO0 muss zum Programmieren gesteckt und danach wieder entfernt werden.“
        (weiter unten steht das sinngemaess von mir noch einmal, bei jemandem, der ein aehnliches Problem hatte…)

        Das schreibt doch niemand nur zum Spass…

        Zum Hintergrund: Vereinfacht gesagt, guckt das Modul (genauer: der bootloader) bei einem Neustart -noch bevor das eigentliche Programm startet- ob der Pin auf 0 ist. Wenn ja, wird das als Zeichen gesehen, dass das Modul programmiert werden soll. Dann startet nicht das gewuenschte Programm, sondern die Routine fuer den Upload.

        (ja, ich weiss, dass ich so bin, wie die Lehrer, die ich als Kind gehasst habe… aber sie sind die, die mir am Ende etwas vermittelt haben…)

  26. Hallo,

    die den ESP32 Cam habe ich wie oben beschrieben in Betrieb genommen.
    Läuft auch alles.
    Leider muss ich nach Spannungsreset immer den kleinen Taster auf dem ESP drücken, damit die Camera läuft.
    Woran kann das liegen?

    1. Hallo Nico,
      Danke für deine Anfrage. Ich bin mir nicht ganz sicher was du mit Spannungs Reset meinst, Reset durch Spannungsverlusst oder einfach abgeklemmt. Der Taster macht ja auch einfach nur ein Reset. Hast du evtl. noch den Programmier pin (Glaube IO0) verbunden? Sonst würde mir leider auch nix einfallen.

      Gruß
      Stefan

  27. Hallo,
    ich benutze das gleiche Modul wie hier in der Anleitung.
    Leider bekomme ich die Fehlermeldung
    „⸮[E][camera.c:1344] esp_camera_fb_get(): Failed to get the frame on time! Camera capture failed“ als würde ich so ein Ali Express Teil ohne PSRAM verwenden. Das Design funktioniert im übrigen auch nicht. Kann der Fehler noch woanders her kommen?

    Vielen Dank und vg
    Kilian

  28. Guten Tag,
    ich möchte das Modul in einen HO Modellbahnwagen einbauen. Dazu ist es auf Grund der zu geringen Höhe des Wagens nötig, das Modul flach einzubauen. Dann kann ich die Kamera aber nicht mehr an der Rückwand des Waggons einbauen, da das Verbindungskabel Kamera-Stecker zu kurz ist. Gibt es Verlängerungskabel oder andere Kameramodule mit längerem Anschlusskabel? Falls jemand dazu etwas weiß, bin ich für einen Hinweis sehr dankbar.
    Gruß
    Rudolf

    1. Hallo Rudolf,

      das ist aber mal ein schönes Projekt, Modellbahn aus der Sicht des Reisenden. Zu deiner Frage ja es gibt Verlängerungen und auch Kameras mit längeren Kabeln,
      Hier eine Cam vom schnellen Ali: https://de.aliexpress.com/item/33032154571.html?spm=a2g0o.productlist.0.0.7bbfb95158cq3O&algo_pvid=fc9eceba-d0ea-4d2e-8216-c8e59311a5c0&algo_expid=fc9eceba-d0ea-4d2e-8216-c8e59311a5c0-37&btsid=0ab6f82215908620215504583e6b50&ws_ab_test=searchweb0_0,searchweb201602_,searchweb201603_
      Unten noch mein Alter Beitrag dazu, ob das dann wirklich funktioniert müsste man mal ausprobieren,
      Gruß
      Stefan

      „Hallo Stefan,
      das ist ein FPC FFC Flachkabel mit 24 Adern (bitte nochmal gegeprüfen), es gibt Verlängerungen bei Ebay od. Ali Express wie der folgende Link zeigt (vorsicht sind nur 10 Adern) z.b hier, https://www.ebay.de/itm/5PCS-Extension-Flat-Cable-FPC-FFC-10Pin-To-10Pin-ZIF-0-5mm-Connector-Adapter-/153128423071

      Ach so, kurzer Nachtrag, wenn es zu Problemen mit der Verlängerung kommt, kann es sein dass die Spannung/Strom zu gring ist.
      Gruß
      Stefan“

  29. Hallo Sven,

    hast du auch versucht vor dem Programmieren den GPIO_Null auf Masse zu ziehen und im anschluss die RST-Taste am ESP zu drücken? Das müsste den Boot-Modus zum flashen aktivieren.

    Grüße Turgut

  30. Hallo zusammen,
    toller Artikel danke! Ich möchte gerne zusätzlich noch einen Temperatursensor über i2c anschließen, also (Cam+SD Karte+I2C Sensor), habe es aber noch nicht hingekriegt, den Sensor auszulesen… Habe ich in der Kombi überhaupt freie Ports dafür?
    Danke für die Hilfe!
    Liebe Grüße
    Mark

    1. Hallo Mark,
      danke für deinen Beitrag. Ich hatte das in einem anfänglichen Post mal beschrieben aber alte Posts verschwinden irgendwann ausser Sicht. Deshalb ist es jetzt bei Sonstiges gelandet.

      Wenn der Programmer ab ist bleiben meiner Meinung nach noch GPIO1, GPIO3 und evtl. GPIO16.
      Aber das habe ich leider noch nicht selbst getetest. Der ESP32 sollte noch mehr Pins frei haben, evtl. könnte man direkt an einen der Pins gehen.

      Mein Vorgehen wäre es mal den I2C Scanner (https://www.fambach.net/wp-admin/post.php?post=822&action=edit) als Wlan version zu implementieren.
      Dann den I2C Bus auf die genannten Ports zu legen und mit einem Putty den Output zu betrachten.
      Leider fehlt mir aktuell die Zeit 🙁 Ich wäre sehr an deiner Lösung interessiert 😉

      Gruß
      Stefan

  31. Hallo,
    vielen Dank für deinen Beitrag. Habe mir gleich das Gerät bestellt.
    Klappt dank der guten Kommentare. Doch leider nur bis zum Browser.
    Im Serial Monitor wird wie in der Beschreibung die IP des Webservers angezeigt. In der Fritzbox ist es im WiFi, doch der Server läuft nicht. Website Timeout. Auch der Stream auf Port 81 ist nicht erreichbar..
    Hat jemand eine Idee?

    1. Hallo Michael,

      Wenn du keine Exceptions bekommst und auch die 5V Spannungsversorgung angeschlossen hast, könnte ich auch nur Vermutungen anstellen. Alle würden in Richtung Firewall gehen.

      Gruß
      Stefan

      1. Hallo Stefan,

        danke für die Antwort. Warum auch immer bekomme ich nun die Website der Cam zu sehen. Die ganzen Einstellungen auf der linken Seite sind zu sehen. Einzelfotos werden hin und wieder angezeigt. Ein Video-Streaming-Bild leider gar nicht. Da sehe ich nur das Kreuz im roten Kreis. Nach einiger Zeit erscheint dann das browsertypische Symbol für eine Grafik, die nicht geladen werden kann.

        Da ich nun alle 3 ESP32-Cams mit zwei verschiedenen Routern und zwei verschiedenen Laptops getestet habe, bin ich mit meinem Latein am Ende. Ich hatte zwischenzeitlich auch die Version 1.0.2 für das ESP32-Board installiert. Dabei kam es allerdings zu Kompilierungsproblemen. Der 0k-Widerstand an der Antenne ist für die interne Antenne gesetzt.

        Hast du vielleicht noch einen Tipp?

        1. Hallo Michael,

          puh, das hatte ich auch ein paar mal wenn ich keine oder eine instabile 5V Versorgung hatte,
          das hast du ja aber schon, die Firewall ist auch schon geprüft.

          Wenn du es nicht ohnehin schon versucht hast, könntest du den Stream mal mit nem externen Prorgramm abfragen.
          Was kommt denn auf der Console an, wenn der Stream läuft müsste er dir schreiben wenn er einen Frame produziert sind kontinuierliche Ausgaben.

          Sonst lief das recht Problemlos, hättest du keine 3 Cams würde ich auf ein Motagsmodell tippen.

          Sorry habe sonst keine Idee ausser mal Consolen-Ausgaben in den Code zu bauen, um zu schauen was so lange dauert.

          (Pins?, Kameramodell?)

          Gruß

          Stefan

    1. Hallo Lars, nett habe hier seit zwei Wochen 2 weitere Kamera module u.a. mit pir liegen, diese wollte ich mal als nächstes ausprobieren. Vielleicht kann man das ja kombinieren.
      Zuerst möchte ich aber noch meinen Beitrag zum TTGO Ts fertig machen. Lora finde ich auch sehr interessant, habe mich aber noch garnicht (Ausser mit nem Bericht in der Make) auseinandergesetzt . Vielleicht sollte ich mal nach nem Forum ausscha halten die Kommentare werden doch recht schnell unübersichtlich .

      Gruß
      Stefan

    1. Glueckwunsch 🙂

      wenn Du mal Lust und Zeit hast, kannst Du ja mal gucken, ob -und wie- es Dir gelingt mittels

      LILYGO TTGO LORA32 868Mhz ESP32 LoRa OLED 0.96 Inch Blue

      laengere Entfernungen zu ueberbruecken… ich bin damit (mit den mitgelieferten Antennen) auf ca. 200m gekommen… und habe dann recht schnell das Projekt (zunaechst?!) auf Eis gelegt, da ich ein paar Kilometer brauche und weder die Antennen, noch die Ausgangsleistung messen kann…
      Ich weiss, Lora ist seeeeehr langsam, aber auch dafuer gibt es genug Anwendungsmoeglichkeiten. Zur Zeit nutze ich fuer ein Projekt einen Arduino mit GSM-Modul. Es werden nur ab und zu (manchmal mehrfach am Tag, teilweise wochenlang gar nicht) ein paar Daten (ca. 200 Bytes) uebertragen. Mittelfristig wuerde ich schon gerne von GSM weg kommen.
      Die Software selber ist kein Problem, die findet man an jeder Ecke, Wie so oft im Funkbereich scheitert es an der Hardware (Antenne) und ggf. an einer Einstellung, die dann den „Powermodus“ 😉 aktiviert…

      1. Claus hat gerade im nRF Beitrag geschrieben, dass er mit dem nRF24 Modul versucht gute Reichweiten hin zu bekommen evtl. habt ihr ja das gleich Forschungsgebiet 😉

        200 Meter hört sich echt wenig an da ja 2 bis 40 Kilometer angepriesen werden. Aber wahrscheinlich kommt es auch hier auf das „Richtige“ Modul an. In der Make war hierüber mal ein Beitrag muss mal bei Gelegenheit schauen welche Rechweiten die geschafft haben.

        Gruß Stefan

        Hier noch der Link zum Kommentar:
        https://www.fambach.net/funk-ueber-2-4-ghz-nrf24l01-module/#comment-3949

  32. Wieso kann man eigentlich auf einige Postings direkt antworten und auf andere nicht?

    Zur Frage nach dem Video ueber SPI: Da ich Dinge gerne mit eigen Augen sehe, habe ich bei Youtube nach:

    esp32 video spi

    gesucht. Gleich als Erstes kommt:

    https://www.youtube.com/watch?v=nRs2ZnhCV0g

    Hier wird ein Video von der SD Karte abgespielt und in der Beschreibung ist auch ein Link auf die Sourcen

    aber, wenn ich ehrlich sein soll: Ich denke, man ist hier mit einem Raspberry Pi besser bedient… Dafuer gibt es alles fertig und die paar Euro die man bei der Anschaffung spart, investiert man hundertfach in seine Zeit. Und irgendeine Stimme sagt mir, dass der Fragende die nicht unbedingt opfern moechte (aber vielleicht meint die Stimme auch mich 😉

    1. Hallo Lars,

      gute Frage mit dem direkten Antworten, habe bei WordPress dafür leider keine schnelle Antwort gefunden.
      Ich frage mich auch warum ich in der Administration immer in einem 5 Zeilen Feld antworten muss, wo doch so viel Platz auf dem Bildschirm ist …
      Zum Thema Display,
      Natürlich ist der Raspberry als Linux System durch seine vielen schon vorhanden Programme unschlagbar, zwei Zeilen Code und ne Config und schon ist das Bild da ;). Aber auch der PI muss installiert und konfiguriert werden, was nicht schwer ist aber für einen Neuling erstmal einwenig Website Hopping bedeutet.
      Auch gut eignet sich meiner Meinung nach das eigene Handy, das ist schon da und in den meisten Fällen auch leistungsfähiger.

      Davon abgesehen, wenn man aber ein Projekt sucht und vielleicht eine feste Station benötigt die weniger Strom zieht als der Raspberry ist man schon wieder nahe beim ESP.
      Nicht desto trotz muss ich dir zustimmen, Beispiele für Bildsequenzen oder Filme gibts genug im Netz.
      Mit meinen Suchanfragen konnte ich jedoch nur wenige finden dei denen der ESP als Streaming Client genutzt wird. Könnte ne lücke sein oder ich habe die falschen Begriffe verwendet 😉
      In einem bin ich mir aber ganz sicher, wer so etwas realisieren will muss auch einige Zeit ins Recherchieren stecken. Über deine Stimme musst du dir schon selbst klar werden, ganz abwegig klingen die für mich nicht.
      Meine Stimmen sagen mir, das es leichter ist einen paar Experten zu fragen als „lange“ nach einer Antwot zu suchen und sie sagen auch hey du hast da noch einen TTGO TS 1.2 rumliegen, der hat ein 1,4″ Farbdisplay und den wolltest du die ganze Zeit schon mal testen 🙂

      Gruß
      Stefan

      PS. Habe mal die feischalt funktion (Zensur 😉 ) nach dem ersten Beitrag ausgeschaltet, da der Captscha den ich installieren für die hunderte von Spam post die ich jeden Tag hatte zu funktionieren scheint.

      1. Stimmt, ein (altes) Handy ist eine noch leichtere Loesung! So viel Hard- und Software bekommt man selten fuer das Geld. Rechenleistung, Kamera, Programme… alles da!

        Wobei es natuerlich richtig ist, dass man viele Dinge macht, weil man es kann (oder lernen will). Geht mir auch so 🙂 ich kann auch bis 30 zaehlen und habe trotzdem aus einem Mikroprozessor, einem Ultraschallentfernungsmesser und einem LED Streifen einen Handwaschtimer gebaut 😉

        Ich kenne es aber aus anderen Foren, dass die Leute sich ueber- bzw. die Problematik unterschaetzen. Da wird der Blink Sketch hochgeladen, mit etwas Glueck klappt es auch und man hat „ganz alleine“ etwas gebaut. Und schon denkt man, man kann eine Smart Home Steuerung entwickeln… 😉

        Sogar ich habe, obwohl ich schon seit ueber 30 Jahren programmiere, erst einmal Blink umgeschrieben und zunaechst mit dem Delay rumexperimentiert, bis ich dann beliebige Texte morsen konnte, bevor ich angefangen habe, Sensoren anzuschliessen.

        Die Sache mit dem „Experten fragen, statt selber suchen“ sehe ich allerdings etwas kritischer. Wenn ich z. B. lese, dass jemand fragt, welche der 5 Optionen er fuer seine Kamera einstellen muss, waere mein Rat z. B.: Probiere doch erst einmal die restlichen vier aus! Wenn es dann nicht geht, kann man noch immer fragen. Aber das kommt vielleicht von meiner persoenlichen Geschichte: Zu meiner Zeit gab es kein Internet, Leute mit Computern waren die Aussenseiter, aeh Seltenheit 😉 und ich hatte viel Software ohne Dokumentation 😉 und musste damit ja irgendwie klar kommen…

        Apropos: „Zu meiner Zeit“: Dazu las ich heute einen Witz:

        Sohn: Papa, darf ich Deine Taschenlampe haben? Ich will heute Abend auf dem Friedhof knutschen!
        Vater, kopfschuettelnd: Zu meiner Zeit hatten wir keine Taschenlampen!
        Sohn: So sieht Mama auch aus 😉

        1. Hallo Lars,
          netter Witz :D. Ich muss sagen bei mir gabs schon Taschenlampen aber die Batterien waren immer ein Problem ;).
          Ich habe mal deinen Link mit dem Viewer näher betrachtet, finde ich ne gute Idee und habe den link jetzt auch mal in die Quellen aufgenommen.
          Folgende Seite klingt auch noch sehr vielversprechend:
          https://github.com/moononournation/M5Stack-Cam-Viewer
          Der M5 Stack ist ein ESP32 somt … ERSCHEINT ES MÖGLICH ;). Ich habe auch mal den TTGO TS angeworfen,
          bin aber aktuell erst nach der Verbindung die Daten werden gesammelt
          jetzt müsste ich sieh noch in jpeg Form bringen und dann über einen JPeg decoder anzeigen.
          Kenn jemand hierfür eine nette Lib, natürlich habe ich schon ein paar gefunden, gefallen mir aber nicht :).
          Wenn nicht würde ich glaube ich mal auf dem M5 stack weiter reiten und schauen wie die das machen.

          Gruß Stefan

    2. Ein kleiner Nachtrag: Ich habe glaube ich habe das Problem mit dem direkten Antworten gefunden. Ich hatte die Antworttiefe auf 2 beschränkt. Habe es mal auf 3 Hoch gesetzt. Ich glaube mehr wird zu unübersichtlich, Meinungen sind wie immer erswünscht 😉 Gruß Stefan

      1. hm.. an das mit der Tiefe dachte ich zunaechst auch, aber wenn ich mich nicht verguckt habe, gab es vorher auch schon Postings mit einer groesseren Tiefe?! Wobei ich mir nicht sicher bin… es kann auch sein, dass die Antworten von Dir stammen und als Admin darfst Du vielleicht das letzte Wort haben ;-)))

  33. Hallo,
    die Fehler: Brownout detected oder Kamera nicht erkannt sind häufig durch zu schwache Stromversorgung ausgelöst. Der FTDI232 bringt bei 3,3V zu wenig Strom für den Normalbetrieb (zum Programmieren reicht’s). Bei der Initialisierung bricht die Spannung ein, deshalb den FTDI auf 5V einstellen und am ESP32 den 5V-Pin (andere Seite) als Versorgung stöpseln. Dann läuft alles wunderbar.
    Stefan, Deine Seite ist toll, danke dafür.
    Gruß Georg

    1. Hallo
      Lob für die tolle Anleitung

      Kann man mit einem 2. esp32 und einem
      Display auch eine Video Brücke machen?
      hat der Empfänger esp32 genügend Dampf
      ein Display per SPI anzusteuern?

      1. Hallo Sigi,
        fände ich ein cooles Projekt. Ich versuche mich mal an einer möglichst vagen Antwort 😉
        Grundsätzlich können SPI oder auch I2C Displays am ESP betrieben werden.
        Ein beliebtes Beispiel sind die Uncanny Eyes (https://github.com/adafruit/Uncanny_Eyes).
        Dann bräuchte man noch einen MJpeg decoder auf dem Empfänger, was auch nur 10-20 Zeilen Code sind oder man denkt sich gleich ein eigenes Protokoll aus.

        Weiterhin gibt es begrenzende Faktoren

      2. Speicher – Bilder müssen gespeichert und an das Display übertragen werden.
        (Denkbar wäre hier auch zeilenweises übertragen und direktes Zeichnen auf dem Bildschirm.)
      3. Display Größe – viele Libs arbeiten mit Doppelbufferung, erst Bild in Speicher schreiben dann das Display updaten, bei 500×500 Pixel und 1 Bit farbtiefe wären das schon 250kB/Bild.
      4. CPU – der Empfänger muss das Bild Emfangen, decodieren und aufs Display packen da wird den ESP sicherlich nicht langweilig
      5. Fazit ein klares aber bestimmtes vielleicht 😉 Spass bei Seite ich denke es sollte möglich sein.
        Ich würde das gerne mal ausprobieren befürchte aber, dass mir die Zeit fehlt 🙁
        Wenn es jemand probieren möchte, ich verlinke oder veröffentliche die Ergebnisse gerne hier.

  34. Hallo,
    schöner Artikel, hat mich gleich inspiriert 😉
    Leider bekomme ich nach dem flashen im Monitor immer nur diese Ausgabe und keine IP:

    16:03:21.030 -> Brownout detector was triggered
    16:03:21.030 ->
    16:03:21.030 -> ets Jun 8 2016 00:22:57
    16:03:21.030 ->
    16:03:21.030 -> rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
    16:03:21.030 -> configsip: 0, SPIWP:0xee
    16:03:21.030 -> clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
    16:03:21.030 -> mode:DIO, clock div:1
    16:03:21.030 -> load:0x3fff0018,len:4
    16:03:21.030 -> load:0x3fff001c,len:1100
    16:03:21.030 -> load:0x40078000,len:9232
    16:03:21.030 -> load:0x40080400,len:6400
    16:03:21.030 -> entry 0x400806a8
    16:03:21.680 ->
    16:03:21.680 -> Brownout detector was triggered

    diese Anzeige läuft und läuft und läuft und …
    Erkennt jemand das Problem?
    Danke
    André

    1. Hallo André,
      ich hatte die „Brownout detector was triggered“ Nachricht bis jetzt nur wenn die Spannungsversorgung nicht gestimmt hat. Einfach mal mit externer 5V Spannungsquelle verbinden.
      Evtl. reicht auch ein besseres USB Kabel aus. Ich habe am Vin schon 6V und mehr angeschlossen, da ist ja ein Spannungswandler (Der dann aber ziemlich heiß wird), Angabe natürlich ohne Gewähr 😉

      Gruß
      Stefan

  35. Hallo Stefan, habe jetzt das Programm auf dem ESP32 drauf. Nun meckert der mir nur noch die Kamera an.
    Welche von den 5 Modellen entspricht meiner
    TY-OV2640-V2.0
    Oder, wo finde ich die Zuordnung? Nur über die Pinbelegung?
    Danke im voraus
    Siggi
    PS: im ser.Monitor kommt genau dein beschriebener Fehler.

    1. Hallo Siggi,

      dein Modul unterscheidet sich etwas von den meinem. Im Prinzip steuern die defines ja (fast) nur welche Pinbelegung verwendet wird.
      Bei mir war es CAMERA_MODEL_AI_THINKER. Grundsätzlich könntest du die auch mal durchprobieren natürlich ohne gewähr von mir ;).
      Bei mir war auch das Problem wenn ich keine 5 Volt angelegt habe, dass die Kamera nicht erkannt wurde, vielleicht hilft das noch?
      Das habe ich noch gefunden: https://github.com/espressif/esp32-camera/issues/5, es scheinen ein paar Leute Probleme mit dem Modell zu haben, weil Pullups anderst gesetzt werden müssten.

      Gruß
      Stefan

  36. Hallo, bin nach Anleitung gegangen und habe bereits beim Kompilieren folgenden Fehler:

    Der Sketch verwendet 2100663 Bytes (160%) des Programmspeicherplatzes. Das Maximum sind 1310720 Bytes.
    Globale Variablen verwenden 53552 Bytes (16%) des dynamischen Speichers, 274128 Bytes für lokale Variablen verbleiben. Das Maximum sind 327680 Bytes.
    Der Sketch ist zu groß; unter http://www.arduino.cc/en/Guide/Troubleshooting#size finden sich Hinweise, um die Größe zu verringern.
    Fehler beim Kompilieren für das Board ESP32 Wrover Module.

    Was mache ich falsch ?

    1. Hi Siggi schau mal bei den Boardeinstellungenen da muss Patition Schema huge app … no Ota stehen, Siehe Kapitel zur Testprogramm.
      Damit hats bei mir ohne Optimierung geklappt.
      Gruß
      Stefan

  37. Als kleiner viewer bietet sich unter Linux mpv an. Da der Probleme mit dem MJPEG Format hat, erzeugt man am Besten eine Datei
    ~/.config/mpv/mpv.conf mit folgendem Inhalt:
    demuxer-lavf-probescore=25
    Dann klappt’s auch mit dem Viewer!

    Ggf vor dem Aufruf die Konfiguration mit Hilfe der „http:///control?var=&val=“ URL schreiben. Dazu einmalig nach Benutzung über Web-IF den aktuellen Stand z.B. mit „wget http:///status“ auslesen und dann mit einer Latte von „http:///control?…“ setzen.

  38. Kurzes Update bezueglich der Streifen: Ich hatte das Modul mit 3,3 V betrieben, die ich aus einem breadboard power adapter erzeugt habe (mein USB-RS232 Adapter loeste einen Brownout reset aus).
    Nachdem ich mir an dem Adapter fast die Finger verbrannt habe, habe ich nach alternativen Spannungsversorgungen geguckt und dabei gesehen, dass das Modul auch einen 5V Eingang hat. Seit dem ich den nehme, sind die Streifen quasi weg.

    Gruss,
    Lars

    P. S.: Danke fuer den Artikel!

    1. Erstmal vielen Dank an alle die sich hier beteilligen. Ich betreibe den Blog schon ne weile und solch eine rege Kommunikation war noch nie da.
      Den Tip mit den 5V Eingang werde ich direkt in den Artikel aufnehmen.

      Ich habe nochmal über das Problem „im Programmiermodus verbleiben“ nachgedacht. Folgendes würde mir noch einfallen:
      Manchmal vergessen die Hersteller den Bootloader aufzuspielen, spielen den falschen auf oder es geht was schief. Es wäre also eine Möglichkeit diesen mal zu ersetzen. (habe ich selbst noch nicht gemacht gibt aber Beispiele im Netz).
      Als zweite Option ist mir nur noch ein physikalisches Problem eingefallen, schau mal ob am io0 irgendwo eine Verbindung zu einer anderen Leiterbahn oder so bsteht, bzw schaue mal am ESP ob dieser auch richtig verlötet ist. Gruß Stefan (und bleibt gesund 😉 )

  39. An Sven:
    Ich denke auch, dass sich Dein Modul noch im Programmiermodus befindet. Wenn Du sicher bist, dass Du die Bruecke zwischen io0 und GND entfernt hast und die Nachricht nach einem Reset noch immer erscheint, wuerde ich io0 einfach mal auf HIGH setzen, damit der Pin definitiv auf 1 ist.

    An alle: Auf dem obigen Foto sieht man duenne Querstreifen. Die habe ich auch. Weiss jemand, wie man sie weg bekommt, bzw. woher sie kommen? Bleibt bei Euch die Uebertragung auch ab und zu stehen und geht dann weiter?
    Gruss,
    Lars

  40. Hallo Stefan
    danke für den Artikel.
    Bei mir hat nach den üblichen Anfangsschwierigkeiten alles gut funktioniert.
    Hast Du schon herusgefunden wie man die fehlerhaften Zeilen
    verringern oder ganz ausschalten kann?
    ich würde gern auf einige Bider verzichten wenn ich dafür eine höhere Qualität erzielen kann.

  41. Hallo Stefan,

    ich habe Deinen Beitrag gelesen und die Installation auch versucht durchzuführen. Laut dem Log aus der ArduinoIDE kann ich nicht erkennen, ob er einen Fehler gemacht hat. Ich bekomme aber nach dem Upload nur die Meldung

    „ets Jun 8 2016 00:22:57

    rst:0x1 (POWERON_RESET),boot:0x3 (DOWNLOAD_BOOT(UART0/UART1/SDIO_REI_REO_V2))
    waiting for download“

    angezeigt.

    Nach dem Upload in der IDE steht die Meldung

    „Writing at 0x00008000… (100 %)
    Wrote 3072 bytes (119 compressed) at 0x00008000 in 0.1 seconds (effective 282.5 kbit/s)…
    Hash of data verified.

    Leaving…
    Hard resetting via RTS pin…“

    Eigentlich sollte jetzt der sketch im esp sein, oder?

    Ich hoffe Du, oder jemand hier bei Dir hat eine Idee, warum der sketch nicht auf dem Board landet.

    Grüße

    Sven

    1. Hallo Sven, sieht erstmal recht gut aus. So pauschal fallen mir da auch nur die generelle Sachen ein: Unbedingt prüfen dass der Schalter am Programmer auf Programmieren steht und danach wieder zurück stellen. Evtl. vorher mal ein Reset machen. Wenn der Programmierer keinen Schalter hat, eine Widerstandsbrücke Basteln (siehe ESP01).Einstellungen zur Programmierung überprüfen (Board, ISP, Speicher, Comport). Ich hoffe das hilft weiter, Gruß Stefan

    2. Hallo Stefan,

      vielen Dank für Deine Antwort.

      Ich habe einiges versucht, und nach den div. Anleitungen versucht zu flashen…

      Mein Ergebnis ist immer das Gleiche: Schreiben geht, aber nach dem RST nichts…

      Hier der flash log aus der Arduino IDE

      Der Sketch verwendet 2107963 Bytes (67%) des Programmspeicherplatzes. Das Maximum sind 3145728 Bytes.
      Globale Variablen verwenden 53800 Bytes (16%) des dynamischen Speichers, 273880 Bytes für lokale Variablen verbleiben. Das Maximum sind 327680 Bytes.
      esptool.py v2.6
      Serial port COM5
      Connecting……
      Chip is ESP32D0WDQ6 (revision 1)
      Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
      MAC: 24:6f:28:b0:f2:6c
      Uploading stub…
      Running stub…
      Stub running…
      Changing baud rate to 921600
      Changed.
      Configuring flash size…
      Auto-detected Flash size: 4MB
      Compressed 8192 bytes to 47…

      Writing at 0x0000e000… (100 %)
      Wrote 8192 bytes (47 compressed) at 0x0000e000 in 0.0 seconds (effective 3855.1 kbit/s)…
      Hash of data verified.
      Compressed 17392 bytes to 11186…

      Writing at 0x00001000… (100 %)
      Wrote 17392 bytes (11186 compressed) at 0x00001000 in 0.2 seconds (effective 886.2 kbit/s)…
      Hash of data verified.
      Compressed 2108080 bytes to 1665609…

      Writing at 0x00010000… (0 %)
      Writing at 0x00014000… (1 %)
      Writing at 0x00018000… (2 %)
      Writing at 0x0001c000… (3 %)
      Writing at 0x00020000… (4 %)
      Writing at 0x00024000… (5 %)
      Writing at 0x00028000… (6 %)
      Writing at 0x0002c000… (7 %)
      Writing at 0x00030000… (8 %)
      Writing at 0x00034000… (9 %)
      Writing at 0x00038000… (10 %)
      Writing at 0x0003c000… (11 %)
      Writing at 0x00040000… (12 %)
      Writing at 0x00044000… (13 %)
      Writing at 0x00048000… (14 %)
      Writing at 0x0004c000… (15 %)
      Writing at 0x00050000… (16 %)
      Writing at 0x00054000… (17 %)
      Writing at 0x00058000… (18 %)
      Writing at 0x0005c000… (19 %)
      Writing at 0x00060000… (20 %)
      Writing at 0x00064000… (21 %)
      Writing at 0x00068000… (22 %)
      Writing at 0x0006c000… (23 %)
      Writing at 0x00070000… (24 %)
      Writing at 0x00074000… (25 %)
      Writing at 0x00078000… (26 %)
      Writing at 0x0007c000… (27 %)
      Writing at 0x00080000… (28 %)
      Writing at 0x00084000… (29 %)
      Writing at 0x00088000… (30 %)
      Writing at 0x0008c000… (31 %)
      Writing at 0x00090000… (32 %)
      Writing at 0x00094000… (33 %)
      Writing at 0x00098000… (34 %)
      Writing at 0x0009c000… (35 %)
      Writing at 0x000a0000… (36 %)
      Writing at 0x000a4000… (37 %)
      Writing at 0x000a8000… (38 %)
      Writing at 0x000ac000… (39 %)
      Writing at 0x000b0000… (40 %)
      Writing at 0x000b4000… (41 %)
      Writing at 0x000b8000… (42 %)
      Writing at 0x000bc000… (43 %)
      Writing at 0x000c0000… (44 %)
      Writing at 0x000c4000… (45 %)
      Writing at 0x000c8000… (46 %)
      Writing at 0x000cc000… (47 %)
      Writing at 0x000d0000… (48 %)
      Writing at 0x000d4000… (49 %)
      Writing at 0x000d8000… (50 %)
      Writing at 0x000dc000… (50 %)
      Writing at 0x000e0000… (51 %)
      Writing at 0x000e4000… (52 %)
      Writing at 0x000e8000… (53 %)
      Writing at 0x000ec000… (54 %)
      Writing at 0x000f0000… (55 %)
      Writing at 0x000f4000… (56 %)
      Writing at 0x000f8000… (57 %)
      Writing at 0x000fc000… (58 %)
      Writing at 0x00100000… (59 %)
      Writing at 0x00104000… (60 %)
      Writing at 0x00108000… (61 %)
      Writing at 0x0010c000… (62 %)
      Writing at 0x00110000… (63 %)
      Writing at 0x00114000… (64 %)
      Writing at 0x00118000… (65 %)
      Writing at 0x0011c000… (66 %)
      Writing at 0x00120000… (67 %)
      Writing at 0x00124000… (68 %)
      Writing at 0x00128000… (69 %)
      Writing at 0x0012c000… (70 %)
      Writing at 0x00130000… (71 %)
      Writing at 0x00134000… (72 %)
      Writing at 0x00138000… (73 %)
      Writing at 0x0013c000… (74 %)
      Writing at 0x00140000… (75 %)
      Writing at 0x00144000… (76 %)
      Writing at 0x00148000… (77 %)
      Writing at 0x0014c000… (78 %)
      Writing at 0x00150000… (79 %)
      Writing at 0x00154000… (80 %)
      Writing at 0x00158000… (81 %)
      Writing at 0x0015c000… (82 %)
      Writing at 0x00160000… (83 %)
      Writing at 0x00164000… (84 %)
      Writing at 0x00168000… (85 %)
      Writing at 0x0016c000… (86 %)
      Writing at 0x00170000… (87 %)
      Writing at 0x00174000… (88 %)
      Writing at 0x00178000… (89 %)
      Writing at 0x0017c000… (90 %)
      Writing at 0x00180000… (91 %)
      Writing at 0x00184000… (92 %)
      Writing at 0x00188000… (93 %)
      Writing at 0x0018c000… (94 %)
      Writing at 0x00190000… (95 %)
      Writing at 0x00194000… (96 %)
      Writing at 0x00198000… (97 %)
      Writing at 0x0019c000… (98 %)
      Writing at 0x001a0000… (99 %)
      Writing at 0x001a4000… (100 %)
      Wrote 2108080 bytes (1665609 compressed) at 0x00010000 in 24.7 seconds (effective 682.7 kbit/s)…
      Hash of data verified.
      Compressed 3072 bytes to 119…

      Writing at 0x00008000… (100 %)
      Wrote 3072 bytes (119 compressed) at 0x00008000 in 0.0 seconds (effective 1365.3 kbit/s)…
      Hash of data verified.

      Leaving…
      Hard resetting via RTS pin…

      Demnach sieht alles okay aus, aber es funktioniert nicht…

      Was kann das noch sein?

      Viele Grüße

      Sven

    3. Hallo Stefan,

      ich noch einmal. Ich vermute, dass das Board im BOOT/FLASH-Modus bleibt, ob ich gpio0 Brücke oder nicht. Wenn ich das richtig gelesen habe, ist die Meldung im Monitor
      „ets Jun 8 2016 00:22:57

      rst:0x1 (POWERON_RESET),boot:0x3 (DOWNLOAD_BOOT(UART0/UART1/SDIO_REI_REO_V2))
      waiting for download“

      der Hinweis darauf, dass das Board auf Daten für den FLASH wartet. Korrigiere mich, wenn das falsch ist.

      Viele Grüße

      Sven

  42. Hallo,

    gibt es die Möglichkeit die Kamera über ein „Verlängerungskabel“ auch ein weniger weiter weg von der Platine zu platzieren?

    Wie heißt diese Anschluss über den die Kamera mit dem ESP32 verbunden wird?

    Grüße

    1. Hallo Stefan,
      das ist ein FPC FFC Flachkabel mit 24 Adern (bitte nochmal gegeprüfen), es gibt Verlängerungen bei Ebay od. Ali Express wie der folgende Link zeigt (vorsicht sind nur 10 Adern) z.b hier, https://www.ebay.de/itm/5PCS-Extension-Flat-Cable-FPC-FFC-10Pin-To-10Pin-ZIF-0-5mm-Connector-Adapter-/153128423071

      Ach so, kurzer Nachtrag, wenn es zu Problemen mit der Verlängerung kommt, kann es sein dass die Spannung/Strom zu gring ist.
      Gruß
      Stefan

  43. Hallo
    Kurze Frage zu den I/O ’s kann ich die wie gewohnt verwenden oder sind die für das Kammera-Modul Reserviert?
    Ich würde gern ein Bewegungsmelder, einen Helligkeitssensor und und ein Ausgang für Leuchten dazu basteln.

    1. Hallo Karsten,

      Ich habe mir mal die Pinouts von Kamera und SD Karte herausgesucht und in den Artikel gepackt.
      Wenn der Programmer ab ist bleiben meiner Meinung nach noch GPIO 1 und GPIO 3. Wenn du den SD Karten Slot nicht verwendest, hast du mehr GPIOs frei.

      Vielleicht wäre ja die TTGO Cam was für dich. Die ist nicht viel teuerer und hat schon einen Bewegungsmelder (PIR) mit drauf. Ausserdem hat sie einen USB Port gleich mit dabei …
      https://www.heise.de/newsticker/meldung/Gesichtserkennung-mit-ESP32-WLAN-Kameraboards-ab-15-Euro-4269519.html
      Gruß
      Stefan

Schreibe einen Kommentar zu Patrick Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert