Metainformationen zur Seite
  •  

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
digitales:hardware:esp:esp32-cam [24.04.2025] – gelöscht - Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1digitales:hardware:esp:esp32-cam [25.05.2025] (aktuell) – [ESP32-CAM Dokumentation] cs
Zeile 1: Zeile 1:
 +{{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 ====
 +
 +<code yaml>
 +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
 +</code>
 +
 +==== Kamera-Konfiguration ====
 +
 +<code yaml>
 +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
 +</code>
 +
 +
 +==== Webserver und LED-Steuerung ====
 +
 +<code yaml>
 +# 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
 +</code>
 +
 +==== WLAN-Konfiguration (Beispiel) ====
 +
 +<code yaml>
 +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"
 +</code>
 +
 +
 +===== 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]]
 +