Sie haben mehrere Webcams im Einsatz, sei es zur Überwachung Ihres Zuhauses, Ihres Büros oder Ihres 3D-Druckers? Dann kennen Sie das Problem: Ständig zwischen den einzelnen Streams hin- und herzuwechseln, um den Überblick zu behalten. Die Lösung: Ein eigener Kontrollmonitor! Und das Beste daran: Mit einem Raspberry Pi ist das einfacher und kostengünstiger, als Sie denken. In diesem Artikel zeigen wir Ihnen Schritt für Schritt, wie Sie Ihren eigenen Webcam-Überwachungsbildschirm realisieren.
Was Sie benötigen
Bevor wir loslegen, stellen Sie sicher, dass Sie alles Notwendige zur Hand haben:
* Ein Raspberry Pi (Modell 3, 4 oder neuer wird empfohlen für bessere Leistung).
* Eine MicroSD-Karte (mindestens 16 GB) mit installiertem Betriebssystem (Raspberry Pi OS).
* Ein Netzteil für den Raspberry Pi.
* Ein Monitor mit HDMI-Anschluss.
* Eine Tastatur und Maus (zum Einrichten).
* Ein Ethernet-Kabel oder WLAN-Verbindung.
* Die IP-Adressen Ihrer Webcams.
* Optional: Ein Gehäuse für den Raspberry Pi.
Schritt 1: Raspberry Pi vorbereiten
Als Erstes müssen Sie Ihren Raspberry Pi startklar machen.
1. Betriebssystem installieren: Laden Sie das Raspberry Pi OS (ehemals Raspbian) von der offiziellen Raspberry Pi-Website herunter und installieren Sie es auf Ihrer MicroSD-Karte. Verwenden Sie dazu ein Tool wie Raspberry Pi Imager.
2. Pi starten: Legen Sie die MicroSD-Karte in den Raspberry Pi ein, verbinden Sie ihn mit Monitor, Tastatur, Maus und Netzwerk, und schalten Sie ihn ein.
3. Konfiguration: Nach dem Start führen Sie die grundlegende Konfiguration durch, z. B. die Sprache, das Tastaturlayout und das WLAN-Passwort. Aktivieren Sie SSH im Raspberry Pi Configuration Tool unter Interfaces, um später über Ihren PC auf den Pi zuzugreifen.
4. Updates: Öffnen Sie ein Terminalfenster und führen Sie die folgenden Befehle aus, um das System auf den neuesten Stand zu bringen:
„`bash
sudo apt update
sudo apt upgrade
„`
Schritt 2: Die Qual der Wahl: Software für Ihren Kontrollmonitor
Es gibt verschiedene Möglichkeiten, einen Webcam-Kontrollmonitor zu realisieren. Wir stellen Ihnen drei gängige Methoden vor:
* **MotionEyeOS:** Eine schlanke und einfache Linux-Distribution, die speziell für die Videoüberwachung entwickelt wurde. Sie bietet eine webbasierte Benutzeroberfläche zur Konfiguration und Überwachung Ihrer Kameras.
* **MultiCamView:** Ein Python-Skript, das mehrere Webcam-Streams in einem einzigen Fenster anzeigt. Es ist flexibel und anpassbar, erfordert aber etwas mehr Konfigurationsaufwand.
* **Node-RED:** Ein visueller Programmierer, mit dem Sie komplexe Automatisierungen erstellen können, einschließlich eines Webcam-Dashboards.
Im Folgenden werden wir die Einrichtung mit **MultiCamView** genauer betrachten, da es eine gute Balance zwischen einfacher Einrichtung und Flexibilität bietet.
Schritt 3: MultiCamView installieren und konfigurieren
**MultiCamView** ist ein Python-Skript, das die Streams mehrerer Webcams nebeneinander anzeigt.
1. Python installieren: Falls noch nicht installiert, installieren Sie Python 3 und die benötigten Bibliotheken:
„`bash
sudo apt install python3 python3-pip
pip3 install opencv-python numpy
„`
2. MultiCamView herunterladen: Laden Sie das Skript von GitHub herunter (suchen Sie nach „MultiCamView Raspberry Pi” oder einem ähnlichen Suchbegriff). Alternativ können Sie das Skript direkt im Terminal erstellen:
„`bash
nano multicamview.py
„`
Fügen Sie dann den Code des Skripts in die Datei ein (ein Beispielskript finden Sie unten). Drücken Sie Strg+X, dann Y zum Speichern und Enter zum Bestätigen des Dateinamens.
3. **Skript bearbeiten:** Öffnen Sie das Skript mit einem Texteditor (z.B. `nano multicamview.py`) und passen Sie die Kamera-URLs an Ihre Bedürfnisse an. Die URLs können RTSP-Streams, MJPEG-Streams oder einfache HTTP-Links zu Kamerabildern sein. Achten Sie darauf, dass die IP-Adressen und Portnummern korrekt sind. Das Skript enthält typischerweise einen Array (oder eine Liste) mit den URLs der Kameras.
4. **Beispiel-Skript:** Hier ein einfaches Beispiel für ein `multicamview.py`-Skript:
„`python
import cv2
import numpy as np
# Kamera URLs – ANPASSEN!
camera_urls = [
„http://user:[email protected]/image.jpg”, # Ersetzen Sie mit Ihrer ersten Kamera URL
„http://user:[email protected]/image.jpg”, # Ersetzen Sie mit Ihrer zweiten Kamera URL
„http://user:[email protected]/image.jpg” # Ersetzen Sie mit Ihrer dritten Kamera URL
]
# Fenstername
window_name = „Webcam Kontrollmonitor”
# Erstellen von VideoCapture-Objekten für jede Kamera
caps = [cv2.VideoCapture(url) for url in camera_urls]
while True:
frames = []
for cap in caps:
ret, frame = cap.read()
if not ret:
print(„Fehler beim Lesen eines Frames von einer Kamera.”)
frame = np.zeros((480, 640, 3), dtype=np.uint8) # Erstellt ein schwarzes Bild
frames.append(frame)
# Kombinieren der Frames in einer einzigen Anzeige
if len(frames) == 1:
display_frame = frames[0]
elif len(frames) == 2:
display_frame = np.hstack(frames)
elif len(frames) == 3:
top_row = np.hstack(frames[:2])
bottom_row = frames[2]
display_frame = np.vstack((top_row, bottom_row))
elif len(frames) >= 4:
top_row = np.hstack(frames[:2])
bottom_row = np.hstack(frames[2:4])
display_frame = np.vstack((top_row, bottom_row))
else:
display_frame = np.zeros((480, 640, 3), dtype=np.uint8) # Erstellt ein schwarzes Bild
# Anzeigen des kombinierten Frames
cv2.imshow(window_name, display_frame)
# Beenden des Programms bei Drücken der Taste ‘q’
if cv2.waitKey(1) & 0xFF == ord(‘q’):
break
# Freigeben der Ressourcen
for cap in caps:
cap.release()
cv2.destroyAllWindows()
„`
Ersetzen Sie unbedingt die Platzhalter-URLs durch die tatsächlichen URLs Ihrer Webcams. Achten Sie darauf, ob Ihre Kameras eine Authentifizierung erfordern und geben Sie diese in der URL an (wie im Beispiel gezeigt).
5. Skript ausführen: Führen Sie das Skript im Terminal aus:
„`bash
python3 multicamview.py
„`
Wenn alles klappt, sollte ein Fenster mit den Live-Streams Ihrer Webcams erscheinen.
Schritt 4: Automatischer Start beim Booten
Um den Kontrollmonitor automatisch beim Start des Raspberry Pi zu starten, erstellen Sie einen Systemd-Service.
1. **Service-Datei erstellen:** Erstellen Sie eine neue Service-Datei:
„`bash
sudo nano /etc/systemd/system/multicamview.service
„`
2. **Service-Datei bearbeiten:** Fügen Sie den folgenden Inhalt in die Datei ein (passen Sie den Pfad zum Skript an!):
„`
[Unit]
Description=MultiCamView Webcam Monitor
After=network.target
[Service]
User=pi
WorkingDirectory=/home/pi
ExecStart=/usr/bin/python3 /home/pi/multicamview.py
Restart=on-failure
[Install]
WantedBy=multi-user.target
„`
3. **Service aktivieren:** Aktivieren und starten Sie den Service:
„`bash
sudo systemctl enable multicamview.service
sudo systemctl start multicamview.service
„`
4. **Status prüfen:** Überprüfen Sie den Status des Services:
„`bash
sudo systemctl status multicamview.service
„`
Wenn alles richtig konfiguriert ist, sollte der Service beim nächsten Neustart des Raspberry Pi automatisch starten.
Schritt 5: Optimierung und Erweiterung
Ihr Webcam-Kontrollmonitor ist nun einsatzbereit. Hier sind ein paar Tipps zur Optimierung und Erweiterung:
* **Hardware-Beschleunigung:** Aktivieren Sie die Hardware-Beschleunigung für eine flüssigere Videowiedergabe. Dies kann in der `raspi-config` aktiviert werden.
* **Weboberfläche:** Erstellen Sie eine Web-basierte Oberfläche zur Steuerung des Monitors, z.B. mit Flask oder Django. Dies ermöglicht die Fernsteuerung.
* **Alarmfunktionen:** Integrieren Sie Alarmfunktionen, die bei Bewegungserkennung eine Benachrichtigung senden. MotionEyeOS bietet diese Funktion bereits integriert.
* **Gehäuse:** Verwenden Sie ein Gehäuse für den Raspberry Pi, um ihn vor Staub und Beschädigungen zu schützen.
* **Monitorauswahl:** Wählen Sie einen Monitor mit der passenden Größe und Auflösung für Ihre Bedürfnisse.
Fazit
Mit einem Raspberry Pi lässt sich mit wenigen Handgriffen ein einfacher, aber effektiver Kontrollmonitor für Ihre Webcams realisieren. Ob für die Sicherheit, zur Überwachung von Prozessen oder einfach nur zum Spaß, dieser DIY-Ansatz ist eine kostengünstige und flexible Lösung. Probieren Sie es aus und passen Sie die Software an Ihre individuellen Bedürfnisse an! Viel Erfolg beim Basteln!