{{tag>Code ESP8266 Hardware Nodemcu Nützliche_Links Cam}} ====== ESP32-CAM Dokumentation ====== {{..:esp32cam.jpg?400&direct|esp32cam.jpg}} {{..:esp32cam_programming.png?632x353&direct}} ===== Übersicht ===== Das ESP32-CAM Board basiert auf dem ESP32-S Chip und bietet eine kostengünstige Lösung für Kameraanwendungen in IoT-Projekten. Es verfügt über einen OV2640 Kamerasensor und unterstützt verschiedene Betriebsmodi. ===== Hardware Eigenschaften ===== * Mikrocontroller: ESP32-S * Kamera: OV2640 (2MP) * Flashlicht: Integrierte weiße LED * GPIO-Pins: Mehrere verfügbare Pins für Erweiterungen * Kommunikation: WLAN 2.4 GHz * Stromversorgung: 5V ===== Ersteinrichtung ===== ==== Flashen des Boards ==== Das Board muss für die erste Programmierung in den Flash-Modus versetzt werden: - Verbinden Sie das Board über einen USB-zu-TTL-Adapter (z.B. FTDI oder CP2102) mit Ihrem Computer - Stellen Sie folgende Verbindungen her: * ESP32-CAM GND → Adapter GND * ESP32-CAM 5V/3.3V → Adapter 5V/3.3V (je nach Adapter) * ESP32-CAM U0R (RX) → Adapter TX * ESP32-CAM U0T (TX) → Adapter RX - Verbinden Sie GPIO0 (IO0) mit GND, um den Flash-Modus zu aktivieren - Drücken Sie kurz den RST-Button auf der Rückseite des Boards - Führen Sie das Flashen mit Arduino IDE, ESPHome oder esptool durch - Nach dem Flashen: Entfernen Sie die Verbindung zwischen GPIO0 und GND - Drücken Sie erneut den RST-Button, um das Board neu zu starten ===== Integration in Home Assistant mit ESPHome ===== [[digitales:hardware:esp:erlaeuterungen_zum_code_esp32_cam]] ==== Basis-Konfiguration ==== substitutions: devicename: esp-cam upper_devicename: ESP32-Cam esphome: name: $devicename friendly_name: $upper_devicename esp32: board: esp32dev framework: type: arduino # Aktiviere Logging logger: level: WARN # Externe Pakete einbinden packages: wifi: !include packages/wifi.yaml mqtt: !include packages/mqtt.yaml ota: !include packages/ota.yaml ==== Kamera-Konfiguration ==== esp32_camera: name: $upper_devicename id: my_camera external_clock: pin: GPIO0 frequency: 20MHz i2c_pins: sda: GPIO26 scl: GPIO27 data_pins: [GPIO5, GPIO18, GPIO19, GPIO21, GPIO36, GPIO39, GPIO34, GPIO35] vsync_pin: GPIO25 href_pin: GPIO23 pixel_clock_pin: GPIO22 power_down_pin: GPIO32 idle_framerate: 0.1fps max_framerate: 10fps # Bildeinstellungen contrast: 0 special_effect: none # Belichtungseinstellungen aec_mode: auto aec2: false ae_level: 0 aec_value: 300 # Verstärkungseinstellungen agc_mode: auto agc_gain_ceiling: 2x agc_value: 0 # Weißabgleich-Einstellung wb_mode: auto # Ausrichtung vertical_flip: False horizontal_mirror: False ==== Webserver und LED-Steuerung ==== # Kamera-Webserver esp32_camera_web_server: - port: 80 mode: stream - port: 81 mode: snapshot output: - platform: ledc pin: GPIO4 id: gpio_4 channel: 2 frequency: 500Hz light: # Für die weiße LED - platform: monochromatic output: gpio_4 name: $upper_devicename Flash LED # Für die rote Status-LED - platform: status_led name: $upper_devicename Status LED id: cam_streaming pin: number: GPIO33 inverted: true ==== WLAN-Konfiguration (Beispiel) ==== wifi: # Feste IP-Adresse (passen Sie diese an Ihr Netzwerk an) manual_ip: static_ip: 192.168.178.40 gateway: 192.168.178.1 subnet: 255.255.255.0 # Alternative: Dynamische IP # ssid: "IHR_WLAN_NAME" # password: "IHR_WLAN_PASSWORT" ===== Kamera-Zugriff ===== Nach erfolgreicher Einrichtung können Sie auf die Kamera zugreifen: * Livestream: ''[[http://[KAMERA-IP]:80/]]'' * Einzelbild: ''[[http://[KAMERA-IP]:81/]]'' * In MotionEye einbinden: ''[[http://[KAMERA-IP]:81/]]'' ===== Troubleshooting ===== ==== Bekannte Probleme ==== - **Niedrige Bildrate (FPS)** * Mögliche Ursache: Interferenzen zwischen IO0 und der WLAN-Antenne * Lösung: Abschirmung des IO0-Pins mit antistatischer Folie oder durch Berührung * Alternativ: Positionierung des Boards entfernt von Störquellen - **Verbindungsprobleme** * Überprüfen Sie die Stromversorgung (mindestens 5V/1A empfohlen) * Stellen Sie sicher, dass sich das Board in Reichweite des WLAN-Routers befindet * Versuchen Sie eine Firmware-Aktualisierung {{:digitales:esp32cam_antistatische-folie.jpg?direct&400|Abschirmung des IO0-Pins mit antistatischer Folie}} ===== Nützliche Links ===== * [[https://ai-thinker.com/product/esp32-cam/|ESP32-CAM AI-Thinker Datenblatt]] * [[https://esphome.io/components/esp32_camera.html|ESPHome Dokumentation für ESP32-Camera]] * [[https://github.com/espressif/esp32-camera|GitHub Repository mit Beispielcode]] * [[https://randomnerdtutorials.com/esp32-cam-camera-pin-gpios/|Pinout-Diagramm und technische Details]]