Metainformationen zur Seite
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
digitales:hardware:esp:esp32-cam [24.04.2025] – gelöscht - Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1 | digitales:hardware:esp:esp32-cam [25.05.2025] (aktuell) – [ESP32-CAM Dokumentation] cs | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | {{tag> | ||
+ | |||
+ | ====== ESP32-CAM Dokumentation ====== | ||
+ | |||
+ | {{..: | ||
+ | |||
+ | {{..: | ||
+ | |||
+ | |||
+ | ===== Ü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: | ||
+ | * Kamera: OV2640 (2MP) | ||
+ | * Flashlicht: Integrierte weiße LED | ||
+ | * GPIO-Pins: Mehrere verfügbare Pins für Erweiterungen | ||
+ | * Kommunikation: | ||
+ | * Stromversorgung: | ||
+ | |||
+ | ===== 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: | ||
+ | |||
+ | |||
+ | ==== Basis-Konfiguration ==== | ||
+ | |||
+ | <code yaml> | ||
+ | substitutions: | ||
+ | devicename: esp-cam | ||
+ | upper_devicename: | ||
+ | |||
+ | esphome: | ||
+ | name: $devicename | ||
+ | friendly_name: | ||
+ | |||
+ | esp32: | ||
+ | board: esp32dev | ||
+ | framework: | ||
+ | type: arduino | ||
+ | |||
+ | # Aktiviere Logging | ||
+ | logger: | ||
+ | level: WARN | ||
+ | |||
+ | # Externe Pakete einbinden | ||
+ | packages: | ||
+ | wifi: !include packages/ | ||
+ | mqtt: !include packages/ | ||
+ | ota: !include packages/ | ||
+ | </ | ||
+ | |||
+ | ==== 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: | ||
+ | power_down_pin: | ||
+ | idle_framerate: | ||
+ | max_framerate: | ||
+ | |||
+ | # Bildeinstellungen | ||
+ | contrast: 0 | ||
+ | special_effect: | ||
+ | # Belichtungseinstellungen | ||
+ | aec_mode: auto | ||
+ | aec2: false | ||
+ | ae_level: 0 | ||
+ | aec_value: 300 | ||
+ | # Verstärkungseinstellungen | ||
+ | agc_mode: auto | ||
+ | agc_gain_ceiling: | ||
+ | agc_value: 0 | ||
+ | # Weißabgleich-Einstellung | ||
+ | wb_mode: auto | ||
+ | # Ausrichtung | ||
+ | vertical_flip: | ||
+ | horizontal_mirror: | ||
+ | </ | ||
+ | |||
+ | |||
+ | ==== 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 | ||
+ | </ | ||
+ | |||
+ | ==== 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: | ||
+ | # ssid: " | ||
+ | # password: " | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== Kamera-Zugriff ===== | ||
+ | |||
+ | Nach erfolgreicher Einrichtung können Sie auf die Kamera zugreifen: | ||
+ | |||
+ | * Livestream: '' | ||
+ | * Einzelbild: '' | ||
+ | * In MotionEye einbinden: '' | ||
+ | |||
+ | ===== 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 | ||
+ | |||
+ | {{: | ||
+ | ===== Nützliche Links ===== | ||
+ | |||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | |||