3 Minuten
ESP32-CAM mit ESPHome

Mit der ESP32-CAM ist eine günstige internetfähige Webcam auf dem Markt positioniert. Sie basiert auf dem ESP32 und lässt sich daher einfach mit ESPhome in Homeassistant integrieren. Die kosten für die kleine Kamera belaufen sich bei Aliexpress lediglich auf 5-6€.
Das Vorgehen ist einfach erklärt. Mit dem ESPHome Add-On wird eine Firmware für den ESP32 generiert und diese mittels eines USB-TTL-Adapters auf den Microcontroller geflasht. Das Flashen funktioniert seit kurzem reibungslos direkt über einen Webkit-basierten Browser, also Chrome oder Safari und kann daher auch von unbedarften Users einfach vorgenommen werden. Genaueres dazu kann hier nachgelesen werden.
Esphome: Firmware generieren
Über das ESPHome Add-On muss eine neue Firmware generiert werden. Das Add-On bietet dazu einen Wizard, der den Microcontrollertypen, Ausführungen, Gerätenamen und WLan-Credentials abfragt.
Der Platzhalter YOUR_GENERATED_ID
muss durch eine selbstgenerierte ID ersetzt werden. Diese kann direkt auf der ESP Home Webseite generiert und kopiert werden.
Die Config sollte anschließend wie folgt aussehen. Neben der Camera wird noch die eingebaute LED als eigene Entity in Homeassistant bereitgestellt:
esphome:
name: gockelcam
platform: ESP32
board: esp32cam
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_passwd
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Gockelcam Fallback Hotspot"
password: !secret ap_passwd
captive_portal:
# Enable logging
logger:
# Enable Home Assistant API
api:
encryption:
key: "YOUR_GENERATED_ID"
ota:
password: !secret ota_passwd
esp32_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
horizontal_mirror: false
vertical_flip: false
name: gockelcam
output:
- platform: gpio
pin: GPIO4
id: gpio_4
light:
- platform: binary
output: gpio_4
name: gockelcam light
Zur Verwendung einer secrets.yaml
-Datei mit ESPHome kann dieser Post erläuternd zu Rate gezogen werden:
ESPhome Bluetooth Low Energy Hub
Das initiale Flashen der Firmware muss einmalig über eine Kabelverbindung erfolgen. Anschließend kann die Konfiguration einfach und unkompliziert Over the air angepasst werden.
Wurden alle Schritte erfolgreich durchlaufen erkennt Homeassistant automatisch die neue ESPHome-Node und bietet an diese einzubinden. Anschließend stehen zwei neue Entities zur Verfügung:

USB-Stromversorgung
Da das ESP32-CAM-Modul keinen eigenen Micro-USB-Anschluss auf der Platine enthält, empfielt es sich einen altes USB-Ladegerät am Steckerende abzutrennen, die einzelnen Kabel freizulegen und direkt mit der Platinenanschlüssen zu verlöten oder auf ein USB-Breakout-Board zurückzugreifen, wie bspw. in diesem Post beschrieben.
Gehäuse drucken
Da eine nackte Platine nicht sonderlich ansehnlich erscheint, kann der heimische 3D-Drucker angeworfen werden und bei Thingiverse ein passendes Gehäuse gewählt werden. Die vorhande Auswahl ist groß.
ESP32-CAM in der Lovelace-UI einbinden
Ich habe meine ESP32-CAM mit einer Picture Glance Card in die UI eingebunden. Diese erlaubt neben dem direkten betrachten des Videostream auch das einfach Ein- und Ausschalten der LED auf der Platine des ESP32. Der Code dafür:
camera_view: auto
type: picture-glance
title: Gockelcam
entities:
- entity: light.gockelcam_light
camera_image: camera.gockelcam
In der Lovelace UI sieht dies dann folgendermaßen aus. Die LED kann mit einem Klick auf das Lampen-Icon einfach geschaltet werden:
