Überwachungsmodul SPi zur eigenständigen Raumüberwachung

- motion activate -
- photos -
- alarmsound, if speakers available (3.5" audio jack) -
- send photo to E-Mail-

standalone SPi-observer or observer-module extension for RaspberryLife

Dieses Modul kann als Erweiterung für das RaspberryLife-System, aber auch eigenständig betrieben werden. Der SPi-Observer ist ein sehr kleiner und eigenständiger Computer, der zum Beispiel in einem Buchregal getarnt seine Umgebung überwachen kann. Er reagiert auf Bewegung und löst die PiCam, eine integrierte Kamera aus. Erzeugte Bilder werden auf dem Observer-Modul selbst abgelegt und außerdem an eine vorkonfigurierte Mail-Adresse versendet. Der 3.5" Klinke ermöglicht den Anschluß an ein Soundsystem, Boxen. Wird er an Lautsprecher angeschlossen, ist automatisch das Alarm-Signal aktiviert. Sollten Unbefugte durch die Bewegungserkennung registriert werden, löst die Kamera aus und sendet dem Besitzer eine Nachricht auf sein Handy, mit der Information, dass gerade ein Alarm ausgelöst wurde und einem Foto oder Video des Geschehens. Das Observer-Modul lässt sich über die Weboberfläche aktivieren und deaktivieren.
In naher Zukunft werde ich die Weboberfläche überarbeiten, oder direkt eine APP anbieten. Im Mittelpunkt der Entwicklung steht eine Komponente eines Systems zur Automatisierung üblicher Abläufe in Haushalten. Dieses Projekt ist ein Teilprojekt, eine eigenständige Komponente die einen Raum überwachen wird. Um den einfachen Nachbau für Interessierte zu ermöglichen werden kostengünstige Komponenten genutzt. Die Software beruht auf kostenfreien Open Source Lösungen und wird auch weiterhin inkl. Eigenentwickelung kostenfrei zur Verfügung gestellt.  
Wichtige Hinweise, Befehle und Links werden optisch wie folgt hervorgehoben:  wichtigertext


add_shopping_cart
Benötigte Bauteile für das Modul

  1. Pyroelektrischer Bewegungssensor Infrarot PIR Motion-Sensor-Modul ca. 8 Euro für 5 Stück
  2. Tages- und nachtsichttaugliches Kamera Modul für alle Raspberry Pi Modelle Raspberry Pi Kamera Modul NoIR V2 ohne IR Filter
  3. 3 Steckbrücken / Jumperkabel fem/fem Beim Elektro um die Ecke nur ein paar Cent, oder eben die hier: TIMESETL 3er Jumper Wire Kabel 40PIN x 20cm Female/Female, Male/Female, Male/Male Steckbrett Steckbrücken
  4. Ich habe diese hier verwendet, sie reicht aus, mehr Performance bietet jedoch der Pi 3. Mini Hauptplatine - Raspberry Pi 2 - 900MHz quad-core ARM Cortex-A7 CPU, 1GB LPDDR2 SDRAM, complete compatibility with Raspberry Pi 1 2
  5. Entweder das StarterKit für ca. 50 Euro oder
  6. Den neuenRaspberry Pi 3 Model B ARM-Cortex-A53 4x 1,2GHz, 1GB RAM, WLAN, Bluetooth, LAN, 4x USB
  7. SanDisk Ultra 32GB microSDHC Speicherkarte + Adapter bis zu 98 MB/Sek.Class 10, U1, A1, FFP
  8. Asus USB-N10 Nano N150 Wi-Fi USB Stick (802.11 b/g/n, USB 2.0) ca. 10 Euro
  9. 2er Spar-Set " Von den Raspberry-Entwicklern empfohlen"! Steckernetzteil Micro-USB 5V / 1,2A für Raspberry Pi Model A und B, für den globalen Einsatz, TÜV geprüft mit TÜV-GS Zeichen! TüV geprüft mit TüV-GS
  10. Premium Case für Raspberry Pi 3 Modell B Quad Core und Raspberry Pi 2 Modell B + (B PLUS) Optional - Gehäuse ca. 5 Euro

Planungsphase

Ist-Analyse

Aufgrund der vieler Diebstähle und Einbrüche entsteht das Bedürfnis nach Sicherheit. Aus Gesprächen mit der Polizei geht hervor dass Einbrecher oft nur durch Beobachtungen von Anwohnern dingfest gemacht werden konnten. Werden Täter nicht erwischt sind sie oft schon über alle Berge wenn der Diebstahl entdeckt wird. Einbrüche schüren den Wunsch nach Prävention bilden den aktuellen IST-Zustand ab. Eine Idee, Überwachung des Besitzes im eigenen Heim und diese Idee soll im Folgenden realisiert werden.

 Soll-Konzept

Mithilfe eines möglichst unauffälligen Oberserver-Moduls sollen Bewegungen in einem Raum bemerkt und eine Reaktion auslöst werden. Dieses Oberserver-Modul dient der Erweiterung eines vorhandenen RaspberryLife Systems und soll mittels sicherer Serververbindung mit dem Server dieses Systems kommunizieren. Um unerwünschtes Betreten zu registrieren bedarf es einer mobilen Lösung. Bereits vorhandene Komponenten Raspberry Pi und Pi Cam werden im Folgenden Durchgang erweitert.

Beispiele:    Ein Bild aufzeichnen, Ton abspielen, Versand einer Nachricht …

 

 Anforderungen


Das Observer-Modul kann sich über WLAN gesichert mit dem Server verbinden um bei Auslösen durch eine Bewegung eine Nachricht und ein Bild an den Server zu übertragen. Als Basisprotokoll zur Kommunikation zwischen Server und dem Observer-Modul wird Protobuf eingesetzt. Zur komfortablen Wartung des Observer-Moduls ohne Maus und Tastatur oder Display ist die Steuerung über das XRDP (X Remote Desktop Protokoll) möglich.

 Meilensteine
  • Recherche
  • Beschaffung
  • Betriebssystem wählen und installieren
  • WLAN Stick installieren
  • WLAN Server Verbindung
  • UMTS Stick installieren
  • UMTS Verbindung herstellen
  • OpenVPN installieren
  • OpenVPN zu Server
  • Montage der PiCam
  • Installation der PiCam
  • Test der PiCam
  • Montage des Bewegungsmelders
  • Test des Bewegungsmelders
  • Auslösen der Kamera und speichern eines Bildes durch Bewegung
  • Aufbau Verbindung zum Server
  • WLAN Übertragen einer Nachricht an den Server
  • UMTS Übertragen einer Nachricht an den Server
  • Übertragen der Bilder an den Server
  • Alarmfunktion am Observer-Modul ausgeben
  • Ein- und Ausschalten des Observers via App im Netzwerk
  • Upload auf den Github Server

Beschaffung

 Vorraussichtliche Hardware für den Betrieb
  • Rasberry Pi
  • PiCam
  • Internetzugriff via LAN / WLAN Dongle USB
  • SD-Speicherkarte, oder MicroSD mit SD-Adapter vorzugsweise der Klasse 10 mindestens aber Klasse 6

Optional
Bewegungsmelder / Modul
Jumper / Kabel beidseitig weiblich mindestens 3 Stück

 Für die Installation erforderliche Hardware
  • Tastatur
  • und wenn gewünscht Maus Bildschirm mit HDMI-Anschluss
    HDMI-Kabel
  • SD-Kartenleser
 Betriebssystem aus dem Internet

Die Wahl des Betriebssystems ist auf Rasbian gefallen.  Das Betriebssystem kann unter der folgenden Adresse beschafft werden.
http://www.raspberrypi.org/downloads

Der Name der Distribution lautet Debian Wheezy mit dem Release Datum September 2014. Der Prototyp des SPI verwendet die Kernel Version: 3.12. Die Datei muss heruntergeladen werden.

Vorbereitung Speicherkarte

Um die Karte vorzubereiten eignet sich das Tool Win32 Disk Imager.
Dieses Tool ist unter der folgenden Adresse kostenlos verfügbar.
http://sourceforge.net/projects/win32diskimager

 Entpacken der Dateien

Um Speicherkapazität zu sparen sind Dateien im Internet meist komprimiert. Die Dateien müssen dann auf dem Computer erst ausgepackt (dekomprimiert) werden bevor sie nutzbar sind.
Das kostenlose Tool 7Zip erfüllt genau diesen Zweck und steht deshalb mit auf der Beschaffungsliste.
http://sourceforge.net/projects/sevenzip/


Umsetzung

Betriebssystem installieren

Zuerst die SD-Karte in einen Kartenleser stecken und das Tool Win32 Disk Imager öffnen. Unter dem Punkt Device wird die Speicherkarte gewählt. Ob dies die Richtige war sollte zuvor überprüft werden wenn mehrere Datenträger mit dem Computer verbunden sind.  Der Knopf mit dem blauen Verzeichnis wird ein Verzeichnis öffnen, an dieser Stell wird nun zum heruntergeladenen Image Rasbian gewechselt, und somit als Quelle für die SD-Karte zum Beschreiben gewählt. Nach dem Betätigen der Option Write startet der Kopiervorgang der mehrere Minuten dauert. Während dieser Zeit kann die Hardware montiert werden.

Hardwaremontage

Nachdem alle Kabel und Eingabe/Ausgabegeräte verbunden sind wird die fertig bespielte SD-Karte in den SD-Kartenslot gesteckt und der Strom eingeschaltet, indem das Netzteil eingesteckt wird.

Kamera

Bei der PiCam handelt es sich um eine kleine Platine mit einer Kamera. Der Anschluss erfolgt über die 15-polige serielle Schnittstelle auf dem Raspberry Pi. Die Wahl fiel auf dieses Kamera-Modul wegen der direkten Verbindung zwischen Broadcom BCM2835, ohne Umweg über den USB. Die Infrarot Version der Kamera (Noir) verfügt über einen Nachtlichtfilter, verfälscht daher bei Tageslicht die Farbgebung. Bei reiner Nutzung bei Tageslicht sollte daher die normale Version ohne Noir genutzt werden. Da Überwachung zu jeder Tageszeit möglich sein soll ist hier die Noir Version vorzuziehen.
Bei der Montage der Kamera ist zu beachten dass die Schnittstelle zwischen dem HDMI und der Netzwerkschnittstelle dazu genutzt wird. Um die Kamera zu montieren wird das ZIF-Kabel in den Steckplatz gesteckt, vor und nach dem Einstecken des Kabels vorsichtig den kleinen Clip am Steckplatz lösen und wieder festdrücken um das Kabel zu fixieren. 
Anmerkung:  Das Knicken des ZIF-Kabels muss vermieden werden, diese Kabel sind sehr fein und Kabelbrüche auch durch wenig Beanspruchung keine Seltenheit. Der Steckplatz neben dem HDMI ist der Richtige!  Die blanken Kontakte zeigen Richtung SD-Karte.  
Nachdem die Kamera richtig eingesteckt wurde muss sie eingeschaltet werden. Dies ist möglich mit dem Befehl:
sudo raspi-config
In der folgenden Anzeige die Option „Enable Kamera“ wählen und zu „Enabled“ navigieren, erlassen. Nach dem Neustart leuchtet die LED rot und die Kamera kann benutzt werden.
Nach dem Neustart muss das System aktualisiert werden. Dies mithilfe der bekannten Befehle im Terminal möglich.
sudo apt-get update
sudo apt-get upgrade

Sollten den beiden Programme raspivid und raspistill nicht nach der Aktualisierung vorhanden sein, sind diese zu beschaffen. Die Programme bieten folgende Steuerung der Kamera

  • Raspivid – Bewegte Bilder (Videos) im H264-Format
  • Raspistill – Einzelne Bilder bzw. Bilderserien.

Nachträgliche Installation durch:
apt-get install raspivid
apt-get install raspistill

Nun erneut den Aktualisierungsvorgang s.o. starten.

Lokaler Zugriff via RDP

Um den SPi ohne Display steuern zu können bietet sich das Protokoll XRDP an, der Bildschirm des SPi landet auf dem Heim-PC.
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install xrdp
Nach der Installation des XRDP ist der PC startbereit für die Übertragung des Bildschirmes auf einem beliebigen PC im Netzwerk der auch über Remotezugriff verfügt. In diesem Beispiel handelt es sich um ein Notebook mit Windows 7 und der Remotedesktopverbindung. Diese gibt es auch bei älteren Versionen, wie Windows XP, Vista, 2K, Me...

Jetzt kann der Remoteclient gestartet werden, der SPI ist unter der lokalen IP-Adresse erreichbar. Sollte diese nicht bekannt sein hilft ein Blick in die Ausgabe des Terminals von:
ifconfig

Der Benutzername lautet sofern kein weiterer Benutzer eingerichtet wurde: pi
Passwort, das geänderte Passwort,
ansonsten lautet das Standardpasswort: raspberry

BITTE DAS STANDARD PASSWORT ÄNDERN!
JEDER Raspberry PI NUTZER KENNT DAS STANDARD PASSWORT!
Beispiel: bxhd!4711

Externer Zugriff via Internet mit DNS und XRDP – Optional

Anbieter wie DynDNS.org oder No-IP.biz bieten kostenlose DNS-Dienste an. Nachdem ein Benutzeraccount erstellt wurde, bieten diese Dienste die Möglichkeit eine Subdomain mit Wunschnamen zu erstellen, nachdem diese erstellt wurde, können die Daten in den Router übertragen werden.  

 

                      

Anmeldevorgang mittels Terminal oder GUI am Observer-Modul

Durch Aufruf der IP-Adresse des Observer-Moduls mithilfe von XRDP oder einer alternativen Terminalverbindung wie Remotedesktopverbindung unter Microsoft Windows lässt sich das Terminal von einem anderen System aus steuern. Highlight bei diesem Protokoll ist die Möglichkeit der Nutzung der grafischen Oberfläche des Oberserver-Moduls.


Kamera Auslöser Script

import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
PIR_PIN = 7
GPIO.setup(PIR_PIN, GPIO.IN)
print “Raumüberwachung Startvorgang .  .  . ”
time.sleep(2)
print “Die Raumüberwachung ist jetzt aktiv”

while True:
if GPIO.input(PIR_PIN):
print '\a'
print “Erkenne Bewegung!”
# Kamera auslösen und Bild speichern
sudo raspistill -o test.jpg       
# cooldown
time.sleep 0.3
except KeyboardInterrupt:
print “Raumüberwachung beendet”  
GPIO.cleanup()


Steuerung per lokalem Webinterface

#!/usr/bin/python
# take photos and play alarmfile when motion is detected
# Author: Jasmin Sunitsch
# Contact: RaspberrySPi@Netz-Planet.de
# Date: 30/01/2015
# Requires Raspberry Pi, PiCam, Motion Detector, WLAN or UMTS
# -*- coding: UTF-8 -*-

Befehle:
chmod +x Datei ausführbar
/path/to/htpasswd -c /etc/htpasswd/.htpasswd NAME-DES-NUTZERS
/etc/init.d/apache2 reload

apt-get install apache2 php5 libapache2-mod-php5
su root -c "/home/pi/pir_1.py &"

ein.php

<?php
exec ("touch /var/www/go.info");
header("Location:index.html");
?>

aus.php

<?php
shell_exec ("rm /var/www/go.info");
header("Location:index.html");
?>

Medienversand an E-Mail Adresse

# Mail for Raspberry SPi
#-----------------------------------
# Author    : Jasmin Sunitsch
# Contact   : RaspberrySPi@netz-planet.de
# Date      : 13/01/2015
# Requires Mail Account
#-----------------------------------

apt-get install ssmtp mailutils
nano /etc/ssmtp/ssmtp.conf

/etc/ssmtp/ssmtp.conf
root=postmaster
mailhub=smtp.googlemail.com:587
hostname=raspberrypi
FromLineOverride=YES
UseSTARTTLS=YES
AuthUser=deineMail@gmail.com
AuthPass=freecode

nano playsound.sh
echo "Bewegungsmelder meldet Bewegung" | mail -s "ALARM!" Ihre-eMail@domain.tld


IST-SOLL Vergleich

Erreichte Funktionalität
  • WLAN via USB-Stick
  • Weitere Verbindung bei Verlassen des lokalen Netzes.
    UMTS USB-Stick
  • Verschlüsselte Kommunikation mithilfe eines VPN-Tunnels IPSec.
  • Verbindung zu Server
  • Kamera Überwachung
  • Bewegungserkennung
  • Auslösen der Kamera und speichern eines Bildes oder Videos auf dem Server und direkter E-Mail Versand eines Fotos nach Erkennung einer Bewegung
  • WLAN Übertragen einer Nachricht an den Server
  • UMTS Übertragen einer Nachricht an den Server
  • Übertragen der Bilder an den Server
  • Alarmfunktion am Observer-Modul ausgeben SOUND & E-Mail
  • Ein- und Ausschalten des Observers via App im Netzwerk
  • Upload auf den Github Server

 

Glossar

Image
Abbild eines Datenträgers, in diesem Fall des Betriebssystems Raspbian
SD-Karten Klasse
Geschwindigkeit der Vorgänge Lesen und Schreiben, hohe Klasse = schnell
ZIF-Kabel
Hochflexible Flachleiterverbinder

Hochflexible Flachleiterverbinder

Zugriff optional auch von Außerhalb möglich, siehe DNS.

 

face
Download

DOWNLOAD des Python Codes bei Github

open_in_browserDownload bei Github
important_devices
Entwickelt von

Authors and Contributors observer-module "SPi"
Autoren und Mitwirkende des Observer-Moduls "SPi"
Jasmin Sunitsch, Moers - Netz-Planet.de