In einem anderen Tutorial habe ich bereits erklärt, wie man die ESP32-Cam mithilfe der Arduino IDE installiert, einrichtet und damit anschließend einen Livestream-Webserver realisieren kann. Heute möchte ich auf dem Wissen aufbauen und einen modifizierten Sketch vorstellen, mit dem die ESP32-Cam einen RTSP-Stream bereitstellt. Der Stream lässt sich nicht nur mit Programmen wie dem VLC-Media-Player abspielen, sondern auch als Kamera in das eigene Smarthome einbinden.
Die Einbindung der ESP32-Cam in HomeKit funktioniert dabei nicht nativ, sondern über meine Smarthome-Bridge Homebrige, die auf meinem Raspberry Pi installiert ist. Die Handhabung ist sehr einfach und am Ende haben wir neben einer funktionierenden HomeKit Kamera einen vollwertigen RTSP-Stream, den man gleichzeitig auch noch anderweitig oder für andere Smarthome-Systeme verwenden kann.
Solltet ihr noch nicht wissen, wie man eine ESP32-Cam einrichtet und programmiert, dann schaut euch vorher gerne diesen Beitrag an. Darin erkläre ich Schritt für Schritt was zu tun ist, um die ESP32-Cam zu programmieren.
Zum Kapitel springen Hardware
Für dieses Tutorial werden die selben Komponenten benötigt, wie auch für die Programmierung der ESP32-Cam. Neben einer laufenden Homebridge werden also noch folgende Hardware-Komponenten benötigt:
Produktempfehlungen und -suche in Verbindung mit dem Amazon Partnerprogramm:
- Preis aufsteigend
- Preis absteigend
- Reduzierte zuerst
¹ Angaben ohne Gewähr. Bei einem Kauf über den Link erhalten wir eine Provision.
- Eine ESP32-Cam
- Einen USB-TTL Converter zum Programmieren
- Ein paar Jumper-Kabel für die Verdrahtung
- Optional: Ein Breadboard um die Verdrahtung leichter zu gestalten
Zum Kapitel springen ESP32-Cam Programmcode
Der Arduino Sketch für den RTSP-Stream auf der ESP32-Cam kann hier via Github heruntergeladen werden:
Entpackt zuerst das .zip-Archiv und öffnet dann den sich darin befindlichen Ordner diy-e14
.
Der Sketch trägt den Namen diy-e14.ino
und muss per Doopelklick geöffnet werden, damit auch die anderen Ressourcen im Ordner automatisch geladen werden:
src
camera_pins.h
wifikeys.h
Nachdem der Sketch geöffnet wurde, navigiert ihr oben in den Tabs der Arduino IDE in die Datei wifikeys.h
und passt dort die Daten zur WLAN-Verbindung an:
const char *ssid = "Network"; // Put your SSID here
const char *password = "Password"; // Put your PASSWORD here
Die Datei muss anschließend gespeichert werden. Das Programm ist dann auch schon bereit zum Hochladen auf die ESP32-Cam.
Zum Kapitel springen Der RTSP-Stream
Nach dem Upload des Programmcodes und dem Start der ESP32-Cam erscheint im seriellen Monitor der Arduino IDE folgende Ausgabe:
192.168.178.116
Stream Link: rtsp://192.168.178.116:8554/mjpeg/1
Über die IP-Adresse 192.168.178.116
kann der Stream direkt im Webbrowser angezeigt werden. Über diese URL kann man den Stream z.B auch mithilfe eines HTML-iFrames auf einer Webseite im lokalen Netzwerk einbinden:
<iframe src="http://192.168.178.116/" width="800px" height="600px"/>
Dies zeigt, dass wir einen vollwertigen RTSP-Stream haben, den wir nun vielseitig nutzen können. Beispielsweise im eigenen Smarthome.
Produktempfehlungen und -suche in Verbindung mit dem Amazon Partnerprogramm:
- Preis aufsteigend
- Preis absteigend
- Reduzierte zuerst
¹ Angaben ohne Gewähr. Bei einem Kauf über den Link erhalten wir eine Provision.
Zum Kapitel springen Homebridge Plugin installieren
Als Plugin innerhalb der Homebridge verwende ich homebridge-camera-ffmpeg. Es kann direkt über die Weboberfläche der Homebridge installiert werden:
Nach der Installation öffnet sich das Konfigurations-Fenster des Plugins. Ihr müsst nur die folgenden Parameter ausfüllen und eintragen - für den Rest werden die Standardparamter verwendet. Die IP-Adresse des Streams muss ggf. anhand der Ausgabe im seriellen Monitor angepasst werden.
Name | Kamera |
---|---|
Video Source | -i rtsp://192.168.178.116:8554/mjpeg/1 |
Still Image Source | none |
Enable Audio | False |
Unter dem Punkt Video Output
sollte zusätzlich der Punkt Unbridge Camera
deaktiviert werden, da dies anderenfalls die komplette Homebridge-Instanz verlangsamen könnte. Durch diese Einstellung muss die Kamera manuell hinzugefügt werden - macht in der Nutzung am Ende des Tages aber keinen Unterschied.
Wenn die Einstellungen eingetragen wurden, kann man diese ganz unten per klickt auf Speichern
übernehmen. Die Homebridge muss danach neugestartet werden.
Wichtig ist es, einen Blick in den Log auf der Startseite zu werfen. Dort wird beim Neustart der Pairing-Code der Kamera angezeigt.
[12/26/2020, 10:57:30 AM] Kamera is running on port 34217.
[12/26/2020, 10:57:30 AM] Please add [Kamera] manually in Home app. Setup Code: 273-85-527
Zum Kapitel springen Pairing mit HomeKit
Das Pairing der DIY-Kamera läuft ab wie bei jedem anderem Gerät, welches man der Apple Home App hinzufügt.
- Gerät hinzufügen
- Ich habe keinen Code bzw. kann nicht scannen
- Kamera auswählen, meine Kamera trägt die Bezeichnung
Kamera 3EBC
- Pairing-Code aus dem Log eingeben: 273-85-527
- Warten, bis die Kamera eingebunden wurde
Fertig ist die HomeKit-Kamera mit der ESP32-Cam - Die eigene DIY-Low-Budget Kamera für das Smarthome.