{{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]]