Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Hardware
    4. ESP32 Cam mit Wlan

    NEWS

    • [erledigt] 15. 05. Wartungsarbeiten am ioBroker Forum

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    ESP32 Cam mit Wlan

    This topic has been deleted. Only users with topic management privileges can see it.
    • haselchen
      haselchen Most Active @marcuskl last edited by

      @marcuskl

      Was das Programmieren betrifft kann ich dir nicht helfen, aber die Kamera, die kann ich dir beschreiben.
      Auflösung und Bilder pro Sekunde sind passabel bis 800x600. Danach wird es bei mir Daumenkino.
      Du musst dir im Klaren sein, dass dunkel gleich dunkel bedeutet. Gerade in der jetzigen Jahreszeit siehste ab 18Uhr nichts mehr mit der Kamera. Nur bei voller Helligkeit hat sie ihre Stärken.

      1 Reply Last reply Reply Quote 0
      • Webranger
        Webranger @haselchen last edited by Webranger

        @haselchen sagte in ESP32 Cam mit Wlan:

        @Webranger

        Welche Fehlermeldung gibt es denn ?
        Welche Arduino Version?

        Fehlermeldung:

        Arduino: 1.8.10 (Mac OS X), Board: "ESP32 Wrover Module, Huge APP (3MB No OTA), QIO, 80MHz, 921600, None"
        
        Der Sketch verwendet 767518 Bytes (24%) des Programmspeicherplatzes. Das Maximum sind 3145728 Bytes.
        Globale Variablen verwenden 48668 Bytes (14%) des dynamischen Speichers, 279012 Bytes für lokale Variablen verbleiben. Das Maximum sind 327680 Bytes.
        esptool.py v2.6
        Serial port /dev/cu.usbserial-A50285BI
        Connecting........_____....._____....._____....._____....._____....._____.....____Beim Hochladen des Sketches ist ein Fehler aufgetreten
        _
        
        A fatal error occurred: Failed to connect to ESP32: Timed out waiting for packet header
        
        

        Version 1.8.10

        Alles drei mal probiert, langsam seh ich den Wald vor Bäumen nicht mehr.

        haselchen 1 Reply Last reply Reply Quote 0
        • Thisoft
          Thisoft last edited by

          Hast du mal Rxd und Txd getauscht?

          1 Reply Last reply Reply Quote 0
          • haselchen
            haselchen Most Active @Webranger last edited by haselchen

            @Webranger

            Probier mal die Anleitung:

            Für kleine Cam mal als Test, ob alles ok ist: in der IDE aus Beispiele/ESP32/Camera den CameraWebServer laden und mit Speichern unter im sketchbook speichern. Jetzt ziemlich oben im Sketch
            Code:
            // Select camera model
            //#define CAMERA_MODEL_WROVER_KIT
            //#define CAMERA_MODEL_M5STACK_PSRAM
            //#define CAMERA_MODEL_AI_THINKER
            //#define CAMERA_MODEL_ESP32CAM_M5

            Die beiden // vor dem AI Thinker Board entfernen.
            Bei ssid und password Deine WLAN-Daten eintragen, er startet im Station-Mode.

            Board: ESP32 Dev Module
            Partiton Scheme: Huge APP (3MB no OTA)

            Port auswählen und flashen...
            Seriell sollte Dir die IP ausgegeben werden die sie bekommen hat.
            Im Browser aufrufen und überraschen lassen.

            Webranger 1 Reply Last reply Reply Quote 0
            • Webranger
              Webranger @haselchen last edited by

              @haselchen

              Das ding bekommt ja nicht mal eine verbindung zustande.

              @Thisoft ja Rxd ud Txd schon getausch aber keine veränderung

              Thisoft 1 Reply Last reply Reply Quote 0
              • Thisoft
                Thisoft @Webranger last edited by

                @Webranger Naja - meines Wissens hat er schon eine Verbindung wenn er diese Connecting… Zeile anzeigt. Der ESP ist nur nicht im Bootmode…. Allerdings, was mir gerade auffällt "Jumper auf 3,3 Volt". Ich bin mir nicht sicher zumal ich keinen Adapter mit Jumper habe, aber ist hier nicht öfters davon die Rede dass das Modul lieber 5V haben möchte?

                Webranger 1 Reply Last reply Reply Quote 0
                • Webranger
                  Webranger @Thisoft last edited by

                  @Thisoft Die 5volt beziehen sich wohl nur auf den betrieb von dem modul.
                  Aber das habe ich tatsächlich auch schon ausprobiert.

                  1 Reply Last reply Reply Quote 0
                  • haselchen
                    haselchen Most Active last edited by

                    3,3V ist ok. Hatte ich auch. Wichtig ist, den Resetknopf zu drücken nachdem er den Connecting Countdown macht.

                    Webranger 1 Reply Last reply Reply Quote 0
                    • Webranger
                      Webranger @haselchen last edited by

                      @haselchen Auch dieses habe ich gerade noch einmal geteste.
                      hochladen gedrückt, warte bis connecting.................. kommt und dann den kleinen reset knopf gedrückt.

                      Leider war es das auch nicht

                      Thisoft 1 Reply Last reply Reply Quote 0
                      • Thisoft
                        Thisoft @Webranger last edited by

                        @Webranger Also, ich hab den Resetknopf immer vorher gedrückt - nicht erst wenn die Connecting-Zeile kommt... Hast du nochmal gecheckt, dass du die richtigen beiden Anschlüsse (GND und GPIO0) verbunden hast?

                        1 Reply Last reply Reply Quote 0
                        • Webranger
                          Webranger last edited by

                          2019-10-01 17.46.08.jpg

                          Das sieht so bei mir aus und schon paar mal komplett neu gesteckt heute.

                          Neuschwansteini 1 Reply Last reply Reply Quote 0
                          • Neuschwansteini
                            Neuschwansteini @Webranger last edited by

                            @Webranger ich glaube, das Problem beim flashen liegt eher an der Anbindung des FTDI Konverters zu deinem PC als am ESP... hast du den richtigen COM Port - mal ein anderen ESP am FTDI gesteckt um zu checken mit dem serial monitor, ob der ueberhaupt funktioniert...?? Nicht, dass es doch die falsche Schnittstelle ist...

                            Thisoft Webranger 2 Replies Last reply Reply Quote 0
                            • joergeli
                              joergeli last edited by joergeli

                              Hallo zusammen,

                              Ich habe vor ca. 1 Std. ebenfalls meine beiden ESP32-Cams geliefert bekommen und natürlich gleich ausprobiert.
                              1.) FTDI USB-Seriell-Wandler auf 3,3V eingestellt (gejumpert).
                              2.) Verkabelung gemäß: https://randomnerdtutorials.com/esp32-cam-video-streaming-web-server-camera-home-assistant/ ( unter "Uploading the Code" )
                              3.) Button an IO0 und GND angeschlossen.
                              4.) Geflasht unter Arduino-IDE 1.8.10 / WIN7
                              ( Während des Compilierens schon den RESET-Button und den Button an GPIO0 gedrückt halten )
                              5.) Wenn Uploading .... kommt, den RESET-Button loslassen, den GPIO0-Button aber noch gedrückt lassen!.
                              6.) Jetzt sollte das Hochladen beginnen.
                              7.) Wenn fertig, den GPIO0-Button loslassen.
                              8.) anschl. nochmals den RESET-Button kurz drücken.
                              ( dann sollte im seriellen Monitor der Arduino-IDE der Bootvorgang und die IP-Adresse angezeigt werden).

                              Wie gesagt, läuft bisher alles mit 3,3V, wobei es aber u.U. Probleme geben könnte.
                              Dann beim Betrieb auf 5V umstellen - aber nicht beim Flashen!.

                              Zusätzlich habe ich den Sketch etwas umgestrickt:
                              1.) Statische IP vergeben ( habe ich bei stationären WLAN-Geräten lieber).
                              2.) Video-Auflösung fest auf SVGA (800x600) eingestellt (UXGA hatte Artefakte und Frame-Rate war auch zu gering).

                              An die "Gesichts-Erkenner":
                              Ich hatte mal einen Raspi 3B mit Raspi-Cam gem. dieser Anleitung eingerichtet:
                              https://www.instructables.com/id/Real-time-Face-Recognition-an-End-to-end-Project/

                              Fazit: Um es mit Radio Eriwan zu sagen: Es funktioniert, aaaaaber .... 😉
                              Es ging zwar prinzipiell, daß das Kamera-Bild mit den vorher hinterlegten Snapshots der jeweilgen Person verglichen wurden, die Erkennungsrate ließ aber zu wünschen übrig.
                              Es kommt dabei auch auf die momentanen Lichtverhältnisse an und ob sich Personen ähnlich sehen ( Brille, Bart, etc.)
                              Kurzum, es war nur ein Versuch, der dann abgebrochen wurde.
                              Wenn es "nur" darum geht, zu erkennen, ob ein Gesicht vor der Kamera herumturnt, oder z.B. ein Ball, dann kann es aber durchaus funktionieren.

                              Anbei noch mein (abgewandelter) Sketch:

                              
                              
                              /*********
                                Rui Santos
                                Complete project details at https://RandomNerdTutorials.com
                                
                                IMPORTANT!!! 
                                 - Select Board "ESP32 Wrover Module"
                                 - Select the Partion Scheme "Huge APP (3MB No OTA)
                                 - GPIO 0 must be connected to GND to upload a sketch
                                 - After connecting GPIO 0 to GND, press the ESP32-CAM on-board RESET button to put your board in flashing mode
                                
                                Permission is hereby granted, free of charge, to any person obtaining a copy
                                of this software and associated documentation files.
                              
                                The above copyright notice and this permission notice shall be included in all
                                copies or substantial portions of the Software.
                              *********/
                              
                              #include "esp_camera.h"
                              #include <WiFi.h>
                              #include "esp_timer.h"
                              #include "img_converters.h"
                              #include "Arduino.h"
                              #include "fb_gfx.h"
                              #include "soc/soc.h" //disable brownout problems
                              #include "soc/rtc_cntl_reg.h"  //disable brownout problems
                              
                              /*
                               * #include "dl_lib.h"
                               */
                               
                              #include "esp_http_server.h"
                              
                              
                              //WLAN
                              const char ssid[] = "xxxxxxxx";    //### your WLAN SSID
                              const char pwd[]  = "yyyyyyyy";    //### your WLAN Password
                              bool dynIP = false;                //### DynamicIP (DHCP)?  Set to "false", if static IP is required.  !!!!!! In this case you must set your network parameters in setup-section !!!!!!!!!!
                              
                              
                              
                              
                              #define PART_BOUNDARY "123456789000000000000987654321"
                              
                              // This project was tested with the AI Thinker Model, M5STACK PSRAM Model and M5STACK WITHOUT PSRAM
                              #define CAMERA_MODEL_AI_THINKER
                              //#define CAMERA_MODEL_M5STACK_PSRAM
                              //#define CAMERA_MODEL_M5STACK_WITHOUT_PSRAM
                              
                              // Not tested with this model
                              //#define CAMERA_MODEL_WROVER_KIT
                              
                              #if defined(CAMERA_MODEL_WROVER_KIT)
                                #define PWDN_GPIO_NUM    -1
                                #define RESET_GPIO_NUM   -1
                                #define XCLK_GPIO_NUM    21
                                #define SIOD_GPIO_NUM    26
                                #define SIOC_GPIO_NUM    27
                                
                                #define Y9_GPIO_NUM      35
                                #define Y8_GPIO_NUM      34
                                #define Y7_GPIO_NUM      39
                                #define Y6_GPIO_NUM      36
                                #define Y5_GPIO_NUM      19
                                #define Y4_GPIO_NUM      18
                                #define Y3_GPIO_NUM       5
                                #define Y2_GPIO_NUM       4
                                #define VSYNC_GPIO_NUM   25
                                #define HREF_GPIO_NUM    23
                                #define PCLK_GPIO_NUM    22
                              
                              #elif defined(CAMERA_MODEL_M5STACK_PSRAM)
                                #define PWDN_GPIO_NUM     -1
                                #define RESET_GPIO_NUM    15
                                #define XCLK_GPIO_NUM     27
                                #define SIOD_GPIO_NUM     25
                                #define SIOC_GPIO_NUM     23
                                
                                #define Y9_GPIO_NUM       19
                                #define Y8_GPIO_NUM       36
                                #define Y7_GPIO_NUM       18
                                #define Y6_GPIO_NUM       39
                                #define Y5_GPIO_NUM        5
                                #define Y4_GPIO_NUM       34
                                #define Y3_GPIO_NUM       35
                                #define Y2_GPIO_NUM       32
                                #define VSYNC_GPIO_NUM    22
                                #define HREF_GPIO_NUM     26
                                #define PCLK_GPIO_NUM     21
                              
                              #elif defined(CAMERA_MODEL_M5STACK_WITHOUT_PSRAM)
                                #define PWDN_GPIO_NUM     -1
                                #define RESET_GPIO_NUM    15
                                #define XCLK_GPIO_NUM     27
                                #define SIOD_GPIO_NUM     25
                                #define SIOC_GPIO_NUM     23
                                
                                #define Y9_GPIO_NUM       19
                                #define Y8_GPIO_NUM       36
                                #define Y7_GPIO_NUM       18
                                #define Y6_GPIO_NUM       39
                                #define Y5_GPIO_NUM        5
                                #define Y4_GPIO_NUM       34
                                #define Y3_GPIO_NUM       35
                                #define Y2_GPIO_NUM       17
                                #define VSYNC_GPIO_NUM    22
                                #define HREF_GPIO_NUM     26
                                #define PCLK_GPIO_NUM     21
                              
                              #elif defined(CAMERA_MODEL_AI_THINKER)
                                #define PWDN_GPIO_NUM     32
                                #define RESET_GPIO_NUM    -1
                                #define XCLK_GPIO_NUM      0
                                #define SIOD_GPIO_NUM     26
                                #define SIOC_GPIO_NUM     27
                                
                                #define Y9_GPIO_NUM       35
                                #define Y8_GPIO_NUM       34
                                #define Y7_GPIO_NUM       39
                                #define Y6_GPIO_NUM       36
                                #define Y5_GPIO_NUM       21
                                #define Y4_GPIO_NUM       19
                                #define Y3_GPIO_NUM       18
                                #define Y2_GPIO_NUM        5
                                #define VSYNC_GPIO_NUM    25
                                #define HREF_GPIO_NUM     23
                                #define PCLK_GPIO_NUM     22
                              #else
                                #error "Camera model not selected"
                              #endif
                              
                              static const char* _STREAM_CONTENT_TYPE = "multipart/x-mixed-replace;boundary=" PART_BOUNDARY;
                              static const char* _STREAM_BOUNDARY = "\r\n--" PART_BOUNDARY "\r\n";
                              static const char* _STREAM_PART = "Content-Type: image/jpeg\r\nContent-Length: %u\r\n\r\n";
                              
                              httpd_handle_t stream_httpd = NULL;
                              
                              static esp_err_t stream_handler(httpd_req_t *req){
                                camera_fb_t * fb = NULL;
                                esp_err_t res = ESP_OK;
                                size_t _jpg_buf_len = 0;
                                uint8_t * _jpg_buf = NULL;
                                char * part_buf[64];
                              
                                res = httpd_resp_set_type(req, _STREAM_CONTENT_TYPE);
                                if(res != ESP_OK){
                                  return res;
                                }
                              
                                while(true){
                                  fb = esp_camera_fb_get();
                                  if (!fb) {
                                    Serial.println("Camera capture failed");
                                    res = ESP_FAIL;
                                  } else {
                                    if(fb->width > 400){
                                      if(fb->format != PIXFORMAT_JPEG){
                                        bool jpeg_converted = frame2jpg(fb, 80, &_jpg_buf, &_jpg_buf_len);
                                        esp_camera_fb_return(fb);
                                        fb = NULL;
                                        if(!jpeg_converted){
                                          Serial.println("JPEG compression failed");
                                          res = ESP_FAIL;
                                        }
                                      } else {
                                        _jpg_buf_len = fb->len;
                                        _jpg_buf = fb->buf;
                                      }
                                    }
                                  }
                                  if(res == ESP_OK){
                                    size_t hlen = snprintf((char *)part_buf, 64, _STREAM_PART, _jpg_buf_len);
                                    res = httpd_resp_send_chunk(req, (const char *)part_buf, hlen);
                                  }
                                  if(res == ESP_OK){
                                    res = httpd_resp_send_chunk(req, (const char *)_jpg_buf, _jpg_buf_len);
                                  }
                                  if(res == ESP_OK){
                                    res = httpd_resp_send_chunk(req, _STREAM_BOUNDARY, strlen(_STREAM_BOUNDARY));
                                  }
                                  if(fb){
                                    esp_camera_fb_return(fb);
                                    fb = NULL;
                                    _jpg_buf = NULL;
                                  } else if(_jpg_buf){
                                    free(_jpg_buf);
                                    _jpg_buf = NULL;
                                  }
                                  if(res != ESP_OK){
                                    break;
                                  }
                                  //Serial.printf("MJPG: %uB\n",(uint32_t)(_jpg_buf_len));
                                }
                                return res;
                              }
                              
                              void startCameraServer(){
                                httpd_config_t config = HTTPD_DEFAULT_CONFIG();
                                config.server_port = 80;
                              
                                httpd_uri_t index_uri = {
                                  .uri       = "/",
                                  .method    = HTTP_GET,
                                  .handler   = stream_handler,
                                  .user_ctx  = NULL
                                };
                                
                                //Serial.printf("Starting web server on port: '%d'\n", config.server_port);
                                if (httpd_start(&stream_httpd, &config) == ESP_OK) {
                                  httpd_register_uri_handler(stream_httpd, &index_uri);
                                }
                              }
                              
                              void setup() {
                                WRITE_PERI_REG(RTC_CNTL_BROWN_OUT_REG, 0); //disable brownout detector
                               
                                Serial.begin(115200);
                                Serial.setDebugOutput(false);
                              
                              // WiFi ____________________________________________________________________________________
                                // Wi-Fi connection
                                WiFi.mode(WIFI_STA);
                                WiFi.begin(ssid, pwd);
                                
                                //if Static IP-Adress set your network parameters here
                                if(!dynIP){
                                  IPAddress ip(192,168,192,87);       //### static IP
                                  IPAddress gateway(192,168,192,99);  //### gateway
                                  IPAddress subnet(255,255,255,0);    //### subnet
                                  WiFi.config(ip, gateway, subnet);
                                }
                                Serial.println("");
                                Serial.println("WiFi connected");
                                
                                Serial.print("Camera Stream Ready! Go to: http://");
                                Serial.print(WiFi.localIP());
                                
                              
                                
                                
                                camera_config_t config;
                                config.ledc_channel = LEDC_CHANNEL_0;
                                config.ledc_timer = LEDC_TIMER_0;
                                config.pin_d0 = Y2_GPIO_NUM;
                                config.pin_d1 = Y3_GPIO_NUM;
                                config.pin_d2 = Y4_GPIO_NUM;
                                config.pin_d3 = Y5_GPIO_NUM;
                                config.pin_d4 = Y6_GPIO_NUM;
                                config.pin_d5 = Y7_GPIO_NUM;
                                config.pin_d6 = Y8_GPIO_NUM;
                                config.pin_d7 = Y9_GPIO_NUM;
                                config.pin_xclk = XCLK_GPIO_NUM;
                                config.pin_pclk = PCLK_GPIO_NUM;
                                config.pin_vsync = VSYNC_GPIO_NUM;
                                config.pin_href = HREF_GPIO_NUM;
                                config.pin_sscb_sda = SIOD_GPIO_NUM;
                                config.pin_sscb_scl = SIOC_GPIO_NUM;
                                config.pin_pwdn = PWDN_GPIO_NUM;
                                config.pin_reset = RESET_GPIO_NUM;
                                config.xclk_freq_hz = 20000000;
                                config.pixel_format = PIXFORMAT_JPEG; 
                              
                                /*
                                if(psramFound()){
                                  config.frame_size = FRAMESIZE_UXGA;
                                  config.jpeg_quality = 10;
                                  config.fb_count = 2;
                                } else {
                                  config.frame_size = FRAMESIZE_SVGA;
                                  config.jpeg_quality = 12;
                                  config.fb_count = 1;
                                }
                              */
                                  config.frame_size = FRAMESIZE_SVGA;
                                  config.jpeg_quality = 12;
                                  config.fb_count = 1;
                                
                                
                                // Camera init
                                esp_err_t err = esp_camera_init(&config);
                                if (err != ESP_OK) {
                                  Serial.printf("Camera init failed with error 0x%x", err);
                                  return;
                                }
                              
                                
                                // Start streaming web server
                                startCameraServer();
                              }
                              
                              void loop() {
                                delay(1);
                              }
                              
                              
                              

                              Ich hoffe, das hilft dem Einen, oder Anderen.
                              Gruß
                              Jörg

                              1 Reply Last reply Reply Quote 0
                              • Thisoft
                                Thisoft @Neuschwansteini last edited by

                                @ilovegym sagte in ESP32 Cam mit Wlan:

                                @Webranger ich glaube, das Problem beim flashen liegt eher an der Anbindung des FTDI Konverters zu deinem PC als am ESP... hast du den richtigen COM Port - mal ein anderen ESP am FTDI gesteckt um zu checken mit dem serial monitor, ob der ueberhaupt funktioniert...?? Nicht, dass es doch die falsche Schnittstelle ist...

                                JA, das vermute ich auch mittlerweile...

                                1 Reply Last reply Reply Quote 0
                                • Webranger
                                  Webranger @Neuschwansteini last edited by

                                  @ilovegym

                                  Ich benutze ein MacBook und wird mir so angezeigt

                                  Bildschirmfoto 2019-10-01 um 17.59.47.png

                                  Das sieht eigentlich richtig aus für mich.

                                  1 Reply Last reply Reply Quote 0
                                  • Webranger
                                    Webranger last edited by

                                    Geht bei euch eigentlich die LED vom Board kurz an wenn ihr den reset Button drückt?

                                    joergeli 1 Reply Last reply Reply Quote 0
                                    • joergeli
                                      joergeli @Webranger last edited by

                                      @Webranger
                                      Ja

                                      Webranger 1 Reply Last reply Reply Quote 0
                                      • Webranger
                                        Webranger @joergeli last edited by

                                        @joergeli sagte in ESP32 Cam mit Wlan:

                                        @Webranger
                                        Ja

                                        ok dann liegt es wirklich an dem FTDI232

                                        jetzt mal ein kabel genommen mit dem ich immer tasmosta flashe, da kommt wenigstens schon mal nicht an.

                                        Ich teste weiter

                                        joergeli 1 Reply Last reply Reply Quote 0
                                        • Webranger
                                          Webranger last edited by

                                          Bildschirmfoto 2019-10-01 um 18.41.03.png

                                          Ich bin weiter mit einem anderem Kabel. aber was ist jetzt der RTS pin?

                                          joergeli Thisoft 2 Replies Last reply Reply Quote 0
                                          • joergeli
                                            joergeli @Webranger last edited by

                                            @Webranger
                                            Du kannst (zum Testen), vom FTDI mal nur 3,3V und GND (Masse) mit der ESP32-Cam verbinden, also nur die Spannungsversorgung herstellen, dann sollte die LED bei RESET-Button-Drücken leuchten.

                                            Nebenbei @all:
                                            Anscheinend kann die Cam zeitgleich nur einen Client mit dem Stream versorgen.
                                            Ich habe mal versucht den Stream im Browser und zusätzlich in einer anderen Anwendung aufzufufen:
                                            Es geht nur entweder/oder.

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            498
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

                                            42
                                            372
                                            77689
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo