Raspberry Pi + Android: Schwenkbarer Kamera-Livestream

Eine Liveübertragung von ein oder mehreren aufgestellten Kameras kann optimal zur Überwachung der eigenen vier Wände genutzt werden. Wie wir bereits in einem vorherigen Tutorial gesehen haben, ist die Installation eines Livestreams am Raspberry Pi sehr einfach. Der Nachteil besteht bisher darin, dass wir die Kamera nicht so einfach bewegen können.

In einem weiteren Teil der Raspberry Pi + Android Tutorialreihe erstellen wir in Zusammenarbeit mit droid-lernen.de eine Android App, mit welcher wir die Livebilder der Kamera sehen können und diese zusätzlich drehen können. Dazu nutzen wir einen Servo Motor, der per App-Oberfläche in die jeweilige Richtung gedreht werden kann.

 

Bevor wir mit dem Aufbau starten ist es sinnvoll, dass die Android App bereits installiert ist. Alle nötigen Informationen zum eigenen Erstellen der Anwendung gibt es in diesem Artikel bei droid-lernen.de. Dort ist es im Übrigen auch möglich die APK Datei direkt herunter zu laden. Solltest du dies tun, muss allerdings der Pfad sowie Skriptname wie hier beschrieben, genommen werden.

 

Zubehör

Raspberry Pi Überwachungskamera Livestream NoIR

Der fehlende IR Filter sorgt für eine höhere Lichtempfindlichkeit.

Wie bereits erwähnt nehmen wir einen Servo Motor zum Schwenken. Es gibt hierbei mehrere Modelle, jedoch würde ich einen etwas stärkeren empfehlen (keinen SG-90). Da wir den Motor jeweils nur sehr kurz ansteuern ist auch der etwas höhere Stromverbrauch zu vernachlässigen. Neben einem Raspberry Pi werden folgende Komponenten gebraucht:

Ob man eine USB Webcam oder das offizielle Kamera Modul nimmt, spielt keine Rolle. Einen Vorteil bietet das NoIR Kamera Modul, da es vor allem bei Nacht dank fehlendem Infrarot Filter bessere Aufnahmen erstellt. Andererseits haben höherwertigere USB Kameras oft eine bessere Auflösung. Du solltest allerdings beachten, dass eine höhere Auflösung bei geringer Internetgeschwindigkeit auch zur geringeren Framerate führt. Beide Optionen sind jedenfalls möglich.

Der Vorteil zu handelsüblichen Überwachungskameras / IP Kameras, die ungefähr ebenso viel kosten wie die Bauteile dieses Projekts, besteht darin, dass der Raspberry Pi daneben noch viel mehr Funktionsmöglichkeiten bietet, wie bspw. zur Hausautomatisierung. In vorherigen Tutorials haben wir in Kooperation mit Droid-Lernen z.B. das Schalten von Funksteckdosen per App oder auch das Abfragen sicherheitsrelevanter Komponenten für eine Alarmanlage.

 

Anschluss des Servo Motors

Ein Servo Motor arbeitet anders als ein normaler Gleichstrom- oder Schrittmotor, da er nur eine Frequenz übergeben bekommt. Je nachdem wie hoch diese ist, stellt sich der Winkel ein. Die Übertragung nennt sich dabei Pulsweitenmodulation (PWM) und kann über einen einzigen Pin (Gelb bzw. Orange) stattfinden. Daher ist der Anschluss des Motors am Raspberry Pi auch sehr einfach. Neben Spannungs- und Massepin wird lediglich ein weiterer Datenpin benötigt. In meinem Fall habe ich dafür GPIO 26 (Pin 37) genommen, aber natürlich kann auch jeder andere freie GPIO genutzt werden. Laut Datenblatt sind 5V für den Servo Motor ausreichend. Solltest du einen anderen Motor nutzen, solltest du vorher schauen, wie viel Spannung dieser braucht.

Schematisch sieht der Aufbau des Motors an den Raspberry Pi folgendermaßen aus:

Raspberry Pi Android Kamera servo Steckplatine

Sofern du das offizielle Raspberry Pi Kamera Modul nutzt und eine Halterung dafür hast, kannst du diese sehr einfach z.B. mit Heißkleber auf der montierbaren Achse des Servos befestigen. Bevor du dies allerdings festschraubst, solltest du die Position noch einstellen (dazu später mehr). Hier noch ein Bild der montierten Kamera auf dem Servo Motor (USB Kameras sollten ebenso befestigt werden).

Raspberry Pi Android Servo Motor mit Kamera

Die Raspberry Pi Kamera mit Halter ist auf dem MG945 Servo Motor montiert.

 

Installation notwendiger Programme

Nachdem wir uns per SSH ins Terminal des Raspberry Pi eingeloggt haben, müssen ein paar Tools installiert werden. Eines davon ist motion, dessen Installation ich bereits in einem vorherigen Tutorial gezeigt habe. Bevor du fortfährst, sollte das Programm ordnungsgemäß installiert sein. Folge dazu dieser Anleitung:

Raspberry Pi: Überwachungskamera Livestream einrichten

Anschließend erstellen wir ein Python Skript, welches von der App aufgerufen wird. Der Name wurde im Programmcode der App angegeben und ist standardmäßig „servo.py“. Hast du einen anderen Namen verwendet, so muss diese Datei auch auf dem Pi anders heißen. Im Homeverzeichnis erstellen wir jene Datei:

sudo nano servo.py

Wir möchten dieses Skript anschließend mit einem Parameter (Winkelangabe) aufrufen, woraufhin sich der Motor an die entsprechende Position dreht. Daher enthält unser Skript folgenden Inhalt:

Sofern du einen anderen GPIO als Nr. 26 nutzt, kannst du dies im Code anpassen.

Mit STRG+O kann die Datei gespeichert werden woraufhin mit STRG+X der Editor geschlossen wird.

 

Einstellungen der Raspberry Pi Security Cam Android App

Nachdem das Skript und Motion auf dem Raspberry Pi vorhanden sind und die Android App von droid-lernen.de auf unserem Smartphone installiert ist, starten wir diese. Anschließend müssen wir ein paar Daten angeben:

Raspberry Pi Security Camera App

In den meisten Fällen sind die Daten wie folgt einzugeben:

  • IP-Adresse: Entweder den Hostnamen (z.B. raspberrypi) oder die lokale IP (192.168.x.x) oder z.B. eine DNS Adresse.
  • Port: 22
  • Motion Port: 8081, esseidenn du hast diesen in der motion Konfigurationsdatei geändert
  • Motion Adresse: (leer lassen)
  • Nutzername: Standardmäßig „pi“
  • Passwort: Standardmäßig „raspberry“, sollte unbedingt geändert werden (mit sudo passwd)!

Ist der Raspberry Pi bereits online, die angeschlossen und der Motion Service läuft im Hintergrund, so kannst du bereits den Stream der Kamera sehen (falls alle Daten richtig waren). Mit dem Schieberegler am oberen Rand kann der Servo gedreht werden. Hierbei wird das Skript, welches wir vorher erstellt haben, mit einem Wert aufgerufen.

Ich empfehle den Motor per App nun mittig einzustellen und anschließend den Aufsatz (mit Kamera) zu befestigen.

Je nach eingestellter Qualität und Internetgeschwindigkeit ist das Bild etwa 1-2 Sekunden verzögert, was meiner Meinung nach aber bei einer Überwachungskamera nicht weiter schlimm ist.

 

Zugriff außerhalb des heimischen Netzwerks

Als letztes möchte ich noch auf die Möglichkeit eingehen, den Stream auch außerhalb des eigenen WLANs zu nutzen. Da man in den häufigsten Fällen von außerhalb seine Überwachungskamera per Handy / Tablet prüfen will, ist dies auch eine erwähnenswerte Option. Im Grund gibt es zwei Möglichkeiten, um darauf zugreifen zu können:

  1. Du besitzt eine feste / statische IP: Sofern die Ports geöffnet sind, kannst du die IP Adresse inkl. Port anstatt einer gewöhnlichen URL angeben. In unserem Fall müsstest du die feste IP Adresse ins erste Feld der App eingeben. Allerdings bieten die wenigsten Provider eine statische IP und wenn, dann meist nur gegen eine zusätzliche Gebühr.
  2. Du hast keine statische IP und musst einen DNS Service nutzen: Normalerweise wird einmal pro Tag für kurze Zeit der Internetzugang vom Provider unterbrochen und man bekommt automatisch eine neue IP zugewiesen. Zwar wäre es möglich bis zur nächsten Änderung diese wie eine feste IP Adresse zu nutzen, aber kaum jemand möchte jeden Tag den neuen Wert auslesen.
    Hilfreich dagegen sind sog. DNS Services. Dieser wird z.B. auf dem Raspberry Pi installiert und aktualisiert sich, sobald die IP Adresse geändert wurde. Eine angelegte Subdomain (z.B. xyz.noip.org) leitet direkt zu der aktuell gültigen IP Adresse des Clients weiter. In der Praxis kannst du im ersten Feld anstelle der IP Adresse deine Subdomain angeben.
    Eine genaue Anleitung zur Installation und Einrichtung eines DNS Service findest du übrigens hier: Raspberry Pi DNS Server via No-IP

In beiden Fällen muss Fortforwarding für die entsprechenden Ports (hier: 22 und 8081) und die entsprechende interne IP Adresse des Raspberry Pi’s aktiviert sein. Du solltest dir aber der Gefahr bewusst sein, die bei schlechter Sicherheitskonfiguration ausgehen kann. Daher ist es ratsam nur jene Ports im Router zu öffnen, die gebraucht werden und vor allem ein starkes Passwort zu nutzen!

19 Kommentare

  1. Ein sehr schöne Projekt.
    Persönlich werde ich die shop.pimoroni.com/products/pan-tilt-hat einsetzen.
    So befreit man der RPi mit PWM aufgaben. Ich habe ein Pan/tilt von Pimoroni und bin sehr zufrieden damit.

    Antworten
  2. Hallo interssantes Projekt, möchte die Kamera zur Überwachung im Außenbereich einsetzen und möchte ein Dauerbild auf einen externen Monitor projizieren. Nach Möglichkeit über WLAN oder LAN Anschluss z. B über einen preiswertes Tablet. Wie müsste man das machen. Bin Laie und habe keine Ahnung.

    Antworten
    • Hallo Stefan,
      als Erstes solltest du versuchen deinen Pi in ein wasserdichtes Gehäuse zu verpacken und am besten zusätzlich unter einem Giebel zu verstecken, damit auch das Gehäuse keinem Regen, Schnee oder ähnlichem ausgesetzt ist. Es gibt bei Amazon preiswerte Kamera Dummy Leergehäuse zur Abschreckung, diese kannst du verwenden. Für so ein Gehäuse eignet sich vor allem ein Raspberry Pi Zero sehr gut, da dieser kleiner ist.

      Dein Tablet kannst du irgendwo in der Wohnung aufstellen und installierst die zugehörige Android App darauf. Diese gibt es auf Droid-Lernen am Ende des Artikels mit dem Source Code zusammen als Download. Wenn die Kamera nicht schwenkbar sein soll, dann kannst du auch gerne den Source Code anpassen und den Schieberegler entfernen.
      Das Tablet kannst du über den Entwicklermodus bei Stromversorgung auf einen dauerhaft aktiven Display einstellen. Den Entwicklermodus aktivierst du über die Einstellungen -> Infos -> mehrfacher Klick auf „Buildversion/number“.

      Gruß,
      Marvin von Droid-Lernen.de

      Antworten
  3. Hallo,

    eine Frage bitte.
    In dem Beitrag heisst es:
    Einstellungen der Raspberry Pi Security Cam Android App
    Nachdem das Skript und Motion auf dem Raspberry Pi vorhanden sind und die Android App von droid-lernen.de auf unserem Smartphone installiert ist, starten wir diese. Anschließend müssen wir ein paar Daten angeben:

    Gilt das Ganze nur für ein Androit-Smartphone?
    Mir steht nur ein iPhone zur Verfügung.

    Antworten
    • Hallo Hans,
      ja, wie der Titel verrät sind diese Tutorials in Kombination nur für Android Smartphones/Tablets und leider nicht für iPhones/iPads.
      LG, Felix

      Antworten
  4. Hallo,
    Vielen Dank für dieses Projekt.
    Jedoch hätte ich eine Frage.
    Ich würde das Projekt nach bauen wollen, jedoch statt auf einem Handy oder Tablet, würde ich über den Internetbrowser von überall auf den Livestream zugreifen wollen. Und im Internetbrowser Buttons haben um nach rechts oder links zuschwenken. Was müsste ich dafür verändern.(also Steurung und Übertragung über Webinterface)
    Also ich kann mir gut vorstellen, das die Einstellungen für den Motor und für die Kamera bleiben, man aber als Output statt die App einen Webadresse braucht.
    Ich bin Anfänger und würde mich über jeden Tipp, Hilfe und Link freuen.

    Vielen Dank

    Antworten
  5. Hallo Felix,

    vielen lieben Dank für Dein Projekt. Als Anfänger bin ich mit Python nicht vertraut. Ich habe die app auf meinem Smartphone installiert und kann auch mit interner ip adresse das Bild sehen, aber den Servo bekomme ich nicht in Bewegung. Wie sollte das servo.py in /home/pi freigegeben werden mit root:root und allen Rechten und wie kann ich sehen ob das servo.py überhaupt funktioniert, also manuell. mit python servo.py tut sich nichts auch nicht mit sudo, Bei Starten des Raspi zuckt der Servo kurz, also nehme ich an, das er anspricht. Ein einfachtes python script zum Testen von Gpio 26 würde auch schon helfen. Ich habe Raspi3 und jessie installiert, d.h. python2 und 3 sind soweit ich weiss installiert.
    Lieben Gruß
    Markus

    Antworten
  6. hallo,
    erstmal tolles Projekt!
    aber bei mir tritt das Problem auf das wenn ich bei der app bei den eistellungen auf speichern drücke die app abstürtzt! Und das aber erst seit dem ich den raspberry pi eingerichtet habe vorher konnte ich die app normal benutzen
    Mfg jacob

    Antworten
    • Hallo Jacob,

      entschuldige die späte Antwort. Ich bin persönlich nicht so oft auf dieser Seite des gemeinsamen Projektes unterwegs.
      Magst du mir einmal eine Fehlermeldung aus Android Studio zukommen lassen?

      Gruß,
      Marvin (von Droid-Lernen)

      Antworten
  7. Hallo,

    ich bräuchte mal deine Hilfe! Ich habe eine ip Video türsprechanlage die quasi im LAN ist. Ich würde gerne das Bild mit dem raspberry abfangen und als überwachungsvideo Speichern. Bzw würde es mir reichen wenn ich alle 2 sek. ein Bild machen würde und das wird gespeichert. Natürlich müsste es ein dynamisches speichern sein! Den livestream via Webbrowser würde ich in diesem Zusammenhang auch gern nutzen.

    Danke für die Hilfe schon einmal! Ich hoffe es gibt dafür eine Lösung

    Antworten

Hinterlasse einen Kommentar

Deine Email Adresse wird nicht veröffentlicht.

Blog abonnieren

Abonniere Raspberry Pi Tutorials, um kein Tutorial mehr zu verpassen!