NEWS
ESP32 Cam mit Wlan
-
@crunchip mußte mich entscheiden - mehrere oder schnell - ist mehrere geworden
aber kenn ich gut - manchmal will man halt nicht warten
-
Kleiner Tipp. Mit diesem Sketch kann man die bevorzugten Presets für die Kamera setzen. Dann muss man nach einem Spannungsverlust nicht jedes Mal alles neu einstellen.
#include "esp_camera.h" #include <WiFi.h> // // WARNING!!! Make sure that you have either selected ESP32 Wrover Module, // or another board which has PSRAM enabled // // Select camera model //#define CAMERA_MODEL_WROVER_KIT //#define CAMERA_MODEL_ESP_EYE //#define CAMERA_MODEL_M5STACK_PSRAM //#define CAMERA_MODEL_M5STACK_WIDE #define CAMERA_MODEL_AI_THINKER #include "camera_pins.h" const char* ssid = "**********"; const char* password = "**********"; void startCameraServer(); void setup() { Serial.begin(115200); Serial.setDebugOutput(true); Serial.println(); 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; //init with high specs to pre-allocate larger buffers 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; } #if defined(CAMERA_MODEL_ESP_EYE) pinMode(13, INPUT_PULLUP); pinMode(14, INPUT_PULLUP); #endif // 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; } sensor_t * s = esp_camera_sensor_get(); s->set_brightness(s, 0); // -2 to 2 s->set_contrast(s, 0); // -2 to 2 s->set_saturation(s, 0); // -2 to 2 s->set_special_effect(s, 0); // 0 to 6 (0 - No Effect, 1 - Negative, 2 - Grayscale, 3 - Red Tint, 4 - Green Tint, 5 - Blue Tint, 6 - Sepia) s->set_whitebal(s, 1); // 0 = disable , 1 = enable s->set_awb_gain(s, 1); // 0 = disable , 1 = enable s->set_wb_mode(s, 0); // 0 to 4 - if awb_gain enabled (0 - Auto, 1 - Sunny, 2 - Cloudy, 3 - Office, 4 - Home) s->set_exposure_ctrl(s, 1); // 0 = disable , 1 = enable s->set_aec2(s, 0); // 0 = disable , 1 = enable s->set_ae_level(s, 0); // -2 to 2 s->set_aec_value(s, 300); // 0 to 1200 s->set_gain_ctrl(s, 1); // 0 = disable , 1 = enable s->set_agc_gain(s, 0); // 0 to 30 s->set_gainceiling(s, (gainceiling_t)0); // 0 to 6 s->set_bpc(s, 0); // 0 = disable , 1 = enable s->set_wpc(s, 1); // 0 = disable , 1 = enable s->set_raw_gma(s, 1); // 0 = disable , 1 = enable s->set_lenc(s, 1); // 0 = disable , 1 = enable s->set_hmirror(s, 1); // 0 = disable , 1 = enable s->set_vflip(s, 1); // 0 = disable , 1 = enable s->set_dcw(s, 1); // 0 = disable , 1 = enable s->set_colorbar(s, 0); // 0 = disable , 1 = enable //initial sensors are flipped vertically and colors are a bit saturated if (s->id.PID == OV3660_PID) { s->set_vflip(s, 1);//flip it back s->set_brightness(s, 1);//up the blightness just a bit s->set_saturation(s, -2);//lower the saturation } //drop down frame size for higher initial frame rate s->set_framesize(s, FRAMESIZE_SXGA); #if defined(CAMERA_MODEL_M5STACK_WIDE) s->set_vflip(s, 1); s->set_hmirror(s, 1); #endif WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected"); startCameraServer(); Serial.print("Camera Ready! Use 'http://"); Serial.print(WiFi.localIP()); Serial.println("' to connect"); } void loop() { // put your main code here, to run repeatedly: delay(10000); }
-
Ein ganz blöde Frage, aber wie kommt man eigentlich auf den Webserver?
Bild bekomme ich per MotionEye mit der normalen IP Adresse,
Aber wenn ich die in den Browser eingeben kommt nichts. Auch nicht bei :80 oder :81, usw. -
@dtp Danke, ist bestellt. Ich habe es trotz der Suchfunktion bei Conrad nicht gefunden.
-
@hg6806 sagte in ESP32 Cam mit Wlan:
Ein ganz blöde Frage, aber wie kommt man eigentlich auf den Webserver?
Normalerweise wird dir das ja im seriellen Monitor-Fenster der Arduino-Software angezeigt.
Ansonsten öffnet "IP-Adresse der ESP32-Cam:80" das Bedienpanel und "IP-Adresse der ESP32-Cam:81/stream" den zugehörigen Stream.
-
@hg6806 eventuell die falsche Cameinstellung ausgewählt. Hatte ich anfangs auch. bei Eingabe der IP kam nur das Bild.
https://randomnerdtutorials.com/esp32-cam-video-streaming-face-recognition-arduino-ide/
https://forum.iobroker.net/post/295961 -
@crunchip Ja, das Ding ist, wie komme ich jetzt da hin???
Den UART Adapter wollte ich nicht mehr dranfummeln. -
@hg6806 bleibt dir nix anderes übrig, ist doch keine große Sache
-
weiß jemand ob ich den Stream passwort schützen kann ?
-
@crunchip So, habe jetzt mal einen USB-UART Adapter drangefummelt. Auf der Konsole wird kein Webserver gemeldet. Ich hatte "ESP32Cam" geflasht, das ist wohl ohne Webserver.
Jetzt will ich ESP32 Wrover Module flashen, habe mein Wlan eingestellt, "#define CAMERA_MODEL_WROVER_KIT" auskommentiert und "#define CAMERA_MODEL_AI_THINKER" hereingenommen.
Nach dem Kompilieren kommt folgender Fehler:Arduino: 1.8.8 (Windows 10), Board: "ESP32 Wrover Module, Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS), QIO, 80MHz, 115200, None" Der Sketch verwendet 2100663 Bytes (160%) des Programmspeicherplatzes. Das Maximum sind 1310720 Bytes. Globale Variablen verwenden 53544 Bytes (16%) des dynamischen Speichers, 274136 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. Dieser Bericht wäre detaillierter, wenn die Option "Ausführliche Ausgabe während der Kompilierung" in Datei -> Voreinstellungen aktiviert wäre.
-
@hg6806 sagte in ESP32 Cam mit Wlan:
ESP32 Wrover Module
?? ich habe die letzte cam gewählt, alles andere auskommentiert, siehe Beitrag
-
falls esp32 nach dem flash keine camera findet
log im serial monitor:
E][camera.c:1049] camera_probe(): Detected camera not supported. [E][camera.c:1249] esp_camera_init(): Camera probe failed with error 0x20004
habe meine esp32's bekommen - das flashen war ein graul - hatte immer fehler , das camera nicht gefunden wird
die lösung habe ich hier: https://github.com/espressif/esp32-camera/issues/102#issuecomment-663830216
-
@liv-in-sky hatte damals auch ewig rum, es sind zwar alles die "gleichen" camś aber doch unterschiedlich
-
@crunchip
So heißt wohl der Sketch, das ist schon i.O.
Habe es hinbekommen. Man muss in der Arduino Umgebung Partition Scheme "Huge App (3MB noOTA" auswählen.
Jetzt klappt alles.
Allerdings speichert das Modul die Einstellungen nicht.
Geht das generell nicht? -
@crunchip kurze frage
habe motioneye und will das bild in der vis kleiner haben
wo mache ich das am besten und wie - in motioneye odr in der vis
-
@liv-in-sky Besser in Motineye. Im Zweifelsfall über einen separaten Stream.
In der VIS klappt das nicht so richtig gut. -
@liv-in-sky ich habe bei einer cam in Motioneye die Auflösung herabgesetzt, zusätzlich habe ich über css
transform: scale(0.6)
das widget verkleinert und entsprechend die Positionen angepasst. -
ich stell mich immer an, wenn es um solche media sachen geht
hier habe ich versucht, dass ganze kleiner zu bekommen - wenn ich in der vis einen iframe öffne muss ich auf 1600*1200 bei breite und höhe einstellen, damit ich das ganze bild sehe - mit scale kann ich das kleiner in der vis bekommen, aber dann muss doch der browser wieder mehr arbeiten
diese einstellung ändert aber nichts an der größe
ich finde aber nix in motioneye, was ich hier einstellen könnte, damit das ganze kleiner in der vis ankommt
habt ihr da noch einen tipp?
-
@liv-in-sky Einfach in Motioneye die Auflösung runter auf 800x600 beispielsweise.
-
@Chaot aber wo ????