Überwachungskamera mit einem Raspberry Pi

In dem folgendem Blogeintrag soll es darum gehen, wie man aus einem Raspberry Pi und einer Webcam eine Überwachungskamera basteln kann, welche auf Bewegungen reagiert.

Der Raspberry Pi

Raspberry Pi: Modell mit Montagelöchern und 512MB RAM (Made in China)

Doch bevor der Artikel beginnt, möchte ich mich zunächst vorstellen. Ich bin Gehaxelt und werde folgend meinen ersten Gastbeitrag auf Tacticalcodes Blog verfassen.

Voraussetzungen

Wir benötigen für die Überwachungskamera eine USB-Webcam, sowie einen Raspberry Pi (vorzugsweise Modell B, da 2x USB).

Gegebenenfalls benötigt ihr einen powered USB-Hub, falls der Strom nicht für den Raspberry Pi und die Webcam ausreicht.

Wenn die Hardware dann soweit angeschlossen und konfiguriert ist (Treiber sollten bei Raspbian vorinstalliert sein), dann können wir mit der Installation anfangen.

Installation

Für unsere Zwecke brauchen wir das Programm Motion, welches die eingehenden Bilder der Webcam auf Veränderungen untersucht, und diese Veränderungen abspeichert, online streamt oder Kommandos ausführt.

Das Paket motion ist in den Paketquellen vorhanden, und kann ganz einfach installiert werden:

sudo apt-get install motion

Konfiguration

Informationen zur Konfiguration bzw. zu den einzelnen Optionen findet man im ausführlichen Wiki von Motion.

Bei der Installation wird eine Beispielkonfigurationsdatei angelegt, welche bei mir jedoch die falschen Rechte besaß (nur root durfte lesen). Das kann man jedoch fix ändern:

sudo chmod 755 /etc/motion/motion.conf

Wenn man diese Datei öffnet, stehen dort alle Option kurz und verständlich beschrieben, sodass man sich zurecht findet.

Da es ziemlich viele Einstellungsmöglichkeiten gibt, liste ich hier nur die auf, welche interessant sind:

daemon on #Als Daemon in den Hintergrund
width 320 #Weite je nach Kamera
height 240 #Je nach Kamera
framerate 25 #Bildwiederholrate
quality 75 #Qualität
target_dir /tmp/motion/ #Zielordner für Bilder
ffmpeg_video_codec flv #Videocodec und Videotyp
target_dir /tmp/motion #Zielordner für Bilder bzw. Videos
webcam_localhost on #Webcam online streamen (localhost oder global)
control_localhost on #Motion Server Kontrollzentrum (localhost oder global)
on_event_start "echo Bewegung! > /home/pi/Bewegung" #Kommando was bei Bewegung ausgeführt werden soll
sql_log_image on #Bewegungen in eine Datenbank loggen

Wenn man die Konfiguration überflogen, und die oben gezeigten Punkte entsprechend verändert hat, dann kann man Motion starten.

Wenn sich etwas im Bild der WebCam verändert, z.B. durch eine Bewegung, dann werden die Einzelbilder in dem konfigurierten Ordner abgelegt. Ein FLV- bzw. SWF-Filmchen wird dazu auch noch erstellt, falls es längere Bewegungen sind.

Motion starten & stoppen

Man startet motion relativ einfach, in dem man die entsprechende Konfigurationsdatei angibt.

motion -c /etc/motion/motion.conf

Da ich keinen Switch zum Beenden gefunden habe, machen wir es wie folgt:

kill $(pgrep motion)

Danach sollte motion beendet sein.

Performance

Mein meinem auf 800MhZ getakteten Pi erzeugte motion ~20% CPU-Last.

Fazit

Der Raspberry Pi ist sehr vielfältig nutzbar, u.a. auch für eine (mobile) Überwachungskamera, welche Bewegungen in Bildern bzw. einem Film abspeichert, und dessen Inhalt im Netzwerk streamt,

Ich bedanke mich für das Lesen des Artikels, und möchte mich für die Möglichkeit des Gastbloggens bedanken.

MfG

Gehaxelt

Dieser Eintrag wurde veröffentlicht in RaspberryPi
Bookmarken: Permanent-Link Schreibe einen Kommentar oder hinterlasse einen Trackback: Trackback-URL.

6 Kommentare

  1. phill54
    Erstellt am 19. März 2013 um 16:58 | Permalink zum Kommentar

    Hi :)
    Danke für Deinen Posting. Was für eine Webcam hast Du denn verwendet? Sind die ~20% CPU-Last entstanden als Du ein 320×240 Video gemacht hast? Hast Du mal 640×480 probiert?
    Ich konnte bisher keine Webcam finden, die Auflösungen über 320×240 sauber an der Rasp übertragt. Möchte auch nur ungern zig verschiedene Webcams nur zu diesem Zweck kaufen… deswegen suche ich dazu Informationen.

    Danke und viele Grüße
    Phill

  2. Erstellt am 21. März 2013 um 16:45 | Permalink zum Kommentar

    Hi,
    ich habe nur die Auflösung 320×240 ausprobiert. Ich nutze eine Microsoft Live Webcam (Model 1407), Die genaue Bezeichnung steht nicht auf der Webcam und ich hab wohl die Packung verlegt. Es scheint aber diese hier zu sein: http://www.microsoft.com/hardware/en-us/p/lifecam-vx-800/JSD-00014#overview

    Ich habe eben mal versucht die Auflösung zu erhöhen, jedoch möchte daraufhin das Streaming nicht (der interne Webserver verabschiedet sich immer).

    Ich kann mich die Tage nochmal mit dem Problem auseinandersetzen. Mit 320×240 läuft alles ohne Probleme…

    Gruß
    gehaxelt

  3. Kurt
    Erstellt am 24. Mai 2013 um 19:00 | Permalink zum Kommentar

    Wenn man Motion im Hintergrund als Daemon laufen lässt, kann man ihn mit „service motion stop“ anhalten. Wie man ihn ggfs. manuell wieder startet? Dreimal darfst Du raten… ;-)

  4. Maik
    Erstellt am 24. Oktober 2013 um 11:55 | Permalink zum Kommentar

    Moin, danke für die Hilfe nur muss ich die „Video Device“ ändern da ich die Original RasPi Cam dran habe uund da ist es nicht mehr „Video Device 0“, kannst du da helfen?

  5. Peter
    Erstellt am 7. Januar 2014 um 17:06 | Permalink zum Kommentar

    Hallo!
    Ich habe folgende Frage:
    Wenn ich alles nach deinen Angaben einstellen speichert der RPi bei mir hunderte an Bildern bei Bewegung, aber ich hätte gerne ein Video.
    Ist dieses auch möglich?
    VG, Peter!

  6. Op3rat0r
    Erstellt am 10. Januar 2014 um 00:11 | Permalink zum Kommentar

    Hi,

    der Artikel ist ja jetzt schon ein Jahr alt, aber ich denke noch immer ein aktuelles Thema. Allerdings kommt mir die geringe Auflösung 320×240 doch sehr gering vor. Ich zumindest würde mich wahrscheinlich garnicht bemühen das mit meinem Pi zu testen.
    Interessieren würde mich ob man auch Videos mit einer höheren Auflösung streamen/aufnehmen kann. Der Pi kann ja auch 720p/1080p abspielen. Zumindest zum Aufnehmen ist ja nicht zwingend ein WebServer notwendig, oder?

    Grüße
    Opi

Achtung: Wordpress interpretiert bestimmte Zeichenfolgen als Markup und verändert diese. Nutzt für Programmcode lieber Gist oder PasteBin-Services und verlinkt die Code-Schnipsel.

Post a Comment

Ihre E-Mail wird niemals veröffentlicht oder verteilt. Benötigte Felder sind mit * markiert

*
*

Du kannst diese HTML Tags und Attribute verwenden: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>