Raspberry Pi Bewegungserkennung

Neben der Sprachsteuerung lässt sich der Raspberry Pi auch für die Bewegungserkennung und Raumüberwachung nutzen. Mit dem „motion“ Paket lässt sich der Pi in ein Motion Detection Device verwandeln.

Motion

Die PS3 EyeToy Kamera besitzt neben dem Mikrofon auch eine brauchbare Kamera. Mitels lsusb kann die korrekte Erkennung der Kamera ermittelt werden.

$ lsusb
Bus 001 Device 005: ID 1415:2000 Nam Tai E&E Products Ltd. or OmniVision Technologies, Inc. Sony Playstation Eye

Das motion Paket wird benötigt.

$ sudo apt-get install motion

Nach der Installation muss die Konfiguration angepasst werden. Die Datei motion.conf enthält die notwendingen Informationen.

$ sudo vi /etc/motion/motion.conf
daemon on
width 640
height 480

Damit ist der Hintergrunddienst aktiv und die Auflösung angepasst. Um die Kamera testen zu können, kann motion per Kommandozeile aufgerufen werden. Ein normales Starten, im Hintergrund, ist ohne den -n Parameter möglich.

$ sudo motion -n

Events

Die Events On_motion_detected, on_event_start und on_event_end können mit Skripten belegt werden. Bilder können beispielsweise auch mittels FTP hochgeladen werden (Referenz).

on_picture_save wput –B ftp://username:password@yourftpserver %f
Spracherkennung mit Google Speech API

Mit dem Raspberry Pi sprechen ist eine spannende Sache. Die Google Speech API v2 ist eine einfache Möglichkeit dafür.

In einem älteren Artikel hatte ich bereits die API erwähnt. Dort hatte ich die Nutzung aber aufgrund der Situation, Daten an Google zu schicken, ausgeschlossen. Mittlerweile kamen jedoch ein paar Anfragen zu dem Thema, so dass ich dies hier noch einmal aufgreifen möchte. Viele Artikel im Internet sind leider veraltet und greifen auf Version 1 zurück. Daher gibt es hier eine vollständige Beschreibung für V2 inklusive Key Generierung.

UPDATE Juni 2018: Leider ist auch die v2 API mittlerweile veraltet. Grundsätzlich funktioniert der Ansatz hier noch. Lediglich das Ziel ist etwas anders. Siehe die Kommentare unten oder die Beispiele auf der Google Speech API Webseite.

ALSA und co

Die Einrichtung der Soundkarte funktioniert wie im anderen Artikel beschrieben.

Zusätzliche Module

$ sudo apt-get install flac
$ sudo apt-get install python-pycurl

API Key generieren

Zuerst muss die chromium-dev@chromium.org subscribed werden. Dies ist nötig, damit in der Google Clound Console die Option für die Speech API erscheint. Bei dem subscriben ist es aber möglich das Benachrichtigen per E-Mail zu deaktivieren! Anschließend auf der Developer Console ein Projekt erstellen und unter API die „Speech API“ aktivieren. Danach im Bereich „public key access“ den „Key for browser applications“ erstellen.

Das Skript

Den folgenden Inhalt in eine Datei „text2speech.sh“ kopieren und mittels „$ chmod +x text2speech.sh“ ausführbar machen.

#!/bin/bash

KEY="DEN_KEY_HIER_EINTRAGEN"
URL="https://www.google.com/speech-api/v2/recognize?output=json&lang=en-us&key=$KEY"

echo "Recording... Press Ctrl+C once to Stop and WAIT."
arecord -D plughw:0,0 -f cd -t wav -d 0 -q -r 16000 | flac - -s -f --best --sample-rate 16000 -o file.flac;

echo "Processing..."
wget -q -U "Mozilla/5.0" --post-file file.flac --header "Content-Type: audio/x-flac; rate=16000" -O - "$URL" >stt.txt

echo -n "Google reply: "
cat stt.txt

rm file.flac  > /dev/null 2>&1

Output

Die Ausgabe erfolgt im JSON Format. Dieser kann weiter verarbeitet werden. Das Projekt Pi Translate bietet ein Python Skript mit Textoutput an. Hier muss aber in der Datei „text-to-translate.py“ die letzte Zeile auskommentiert werden, andernfalls werden noch Übersetzungsprogramme durchgeführt. Am Anfang der Datei ist ein Feld für den Key.

Update: Zum parsen der JSON Datei in dem Skripte die Zeile „cat stt.txt“ mit dem folgenden Aufruf ersetzen:

cat stt.txt  | sed -e 's/[{}]/''/g' | awk -F":" '{print $4}' | awk -F"," '{print $1}' | tr -d 'n'

Referenzen: Raspberry Pi Voice Recognition Works Like Siri

Raspberry Pi einrichten

Die ganze Haussteuerung lässt sich mit dem kleinen und handlichen Raspberry Pi durchführen. Wo es den kleinen Superhelden gibt und wie du den Raspberry Pi einrichten kanst, erfährst du hier.

Einkaufen

In der Raspberry Pi Einkaufsliste sind alle notwendigen Komponenten aufgeführt.

Raspbian installieren

Auf der Download Webseite raspberrypi.org/downloads gibt es das aktuelle Raspbian Image.

Unter Windows hilft die Software Win32DiskImager. Die Software muss mittels Rechtsklick auf „Als Administrator ausführen“ gestartet werden. Danach wählt man das heruntergeladene ISO Image aus, gibt den korrekten(!!!) Laufwerksbuchstaben der SD Karte an und klickt auf „write“.

Nach dem Schreiben des Images auf die Karte ist die Einrichtung von Raspbian erledigt. Die SD Karte muss nur noch in den Raspberry Pi gesteckt werden. Nach dem Anbringen der Stromversorgung sollte das System booten. Mit einem SSH Tool auf die IP Adresse erscheint die Anmeldemaske. Die Zugangsdaten lauten „pi / raspberry“.

Raspberry Pi konfigurieren

Die Konfiguration ist im Raspberrycenter hervorragend beschrieben.

Danach kann die Einrichtung der Hausautomatisierung beginnen.

Bildquelle: raspberrypi.org

Securitysoftware und Portscanner

Netzwerk- und Vulnerability Scanner gehören neben Portscanner, Netzwerkanalysetool und Sniffer zum Standardrepertoire eines Administrators. Einrichtung und Aufbau der Programme erfordert oft viel Zeit. Einfacher ist hier eine Lösung die viele Tools direkt mitbringt.

Eine von vielen Lösungen ist die Linux Live Distribution Kali. Kali Linux ist der Nachfolger des eingestellten BackTrack Linux. Der große Vorteil des Systems besteht darin, dass Konfigurationen für unterschiedlichste Szenarien bereitstehen. Die Standard ISO Datei umfasst die gängigsten Tools aus den Bereichen Password Recovery Tool, Netzwerk-/Portscanner, Sniffer, Wireless Analyse, Vulnerability Scanner und einigen mehr. Mittels Forensic Modus können Dateisysteme ohne Veränderung ausgelesen werden.

Nutzung

Die Nutzung ist dabei sehr intuitiv. Nach dem herunterladen der ISO Datei, kann diese auf eine DVD oder einem USB Stick installiert werden. Im Bootmenü ist eine Auswahl des gewünschten Modus möglich. Danach begrüßt einem der Desktop, der die gängigen Tools bereits nach Kategorien sortiert zur Verfügung stellt.

Neben der i386 und amd64 Architektur steht auch eine ARM-Fassung von Kali für den Raspberry Pi zur Verfügung!

Rechtliches

Ein rechtlicher Hinweis für deutsche Anwender ist der Wikipedia zu entnehmen.

Kali Linux enthält Softwaretools, die zum Teil Sicherheitsvorkehrungen umgehen und die nach § 202c StGB, dem Ende Mai 2007 inkraftgetreten sogenannten Hackerparagrafen, in Deutschland als Computerprogramme zum Ausspähen von Daten aufgefasst werden. Aufgrund dieser Gesetzeslage kann bereits der Besitz oder Vertrieb strafbar sein, sofern die Absicht zu einer rechtswidrigen Nutzung nach § 202a StGB (Ausspähen von Daten) oder § 202b StGB (Abfangen von Daten) besteht.

Top10 Tools

Nessus (tenable.com) Nessus ermöglicht, analog zu Nexpose, das Scannen nach bekannten Schwachstellen. Als Ergebnis listet der Scanner eine Reihe von potentiellen Sicherheitslücken auf und bietet Anleitungen zur Behebung.

Metasploit Framework (metasploit.com) Mit dem Metasploit Framework können Exploits getestet und entwickelt werden. Metasploit ermöglicht die Überprüfung von Sicherheitslücken, die Nexpose erkannt hat.

Aircrack-ng (aircrack-ng.org) Aircrack-ng umfasst die Analyse von Funknetzwerken. Mit der Software können 802.11 WEP and WPA-PSK Keys ermittelt werden.

Burp Suite (portswigger.net) Die Burp Suite stellt Tools für die Sicherheitsanalyse von Webapplikationen. WebSpider und Proxys unterstützen die Analyse.

THC-Hydra (thc.org – hydra) Mittels THC-Hydra können Zugangsdaten ermittelt werden. Die Software unterstützt sehr viele Applikationen und Protokolle.

John the Ripper (openwall.com – john) John the Ripper ist ein Tool zur Wiederehestellung von Passwörtern. Insbesondere UNIX Passwörter sind hiermit analysierbar.

Maltego (paterva.com – maltego) Die Software ermöglicht das Sammeln von Daten über Unternehmen, Personen, Webseiten und Sozialen Netzwerken und bringt diese in eine Verbindung miteinander. Damit ergibt sich ein Netzwerk aus Relationen, die grafisch aufbereitet werden.

Nmap (nmap.org) Network Mapper ist ein einfaches Analyse Tool für die Ermittlung von offenen Ports (Portscanner) und die Analyse von Betriebssystem und Serverversionen.

OWASP Zed Attack Proxy Project (owasp.org) Das Tool des Open Web Application Security Projects ist ein Schwachstellenscanner für Webapplikationen. Die intuitive Oberfläche ermöglicht schnelle Tests der eigenen Applikationen.

Wireshark (wireshark.org) Wireshark schneidet den Datenverkehr im Netzwerk mit und ermöglicht eine umfassende Analyse der Datenpakete und deren Inhalt. Mit Hilfe von umfangreichen Filtern können relevante Informationen einfach und zusammenhängend extrahiert werden.

Weitere Tools

sqlmap (sqlmap.org) sqlmap umfasst die Erkennung aus Nutzung von SQL Injections für alle gängigen Datenbanksysteme.

Social-Engineer Toolkit (SET) (trustedsec.com) SET bietet Tools rund um das Thema Social-Engineer Hacking. Beispielsweise lassen sich bestehende Webseiten klonen, um die modifizierte Version für gefälschte Anmeldemasken zu nutzen.

Ettercap (github.io – ettercap) Ettercap ermöglicht Man-in-the-middle Attacken. Mit dem Tool ist es möglich, Netzwerkpakete zu manipulieren und zu filtern.

Nemesis (sourceforge.net – nemesis) Nemesis ist ein Tool zur Manipulation von Datenpaketen. Intrusion Prevention Systeme (IPS) können hiermit geprüft werden.

Weiterführende Artikel

Schnellstart mit Kali Linux Kurze Einführung von Heise security zu Kali Linux.

Cracking Passwords Guide Ein Artikel zur Wiederherstellung von Passwörtern.

Extracting MetaData from photos using exiftool Hiermit lassen sich beispielsweise GPS Koordinaten aus Bildern extrahieren.

Hacking Tools Repository Hunderte von Sicherheitsprogrammen aufgelistet.

Bildquelle: By Offensive Security (Desktop screen shot) [GPL], via Wikimedia Commons

Raspberry Pi Gesichtserkennung

Auf adafruit.com gibt es einen spannenden Artikel zum Thema Gesichtserkennung mit dem Raspberry Pi. In dem Artikel geht es darum eine Holzkiste zu verschließen bzw. zu öffnen, wenn das korrekte Gesicht erkannt wird.

Ein anderer Artikel ermöglicht die gezielte Differenzierung von Gesichtern.

Als Ausblick werde ich versuchen die Entwicklung als Basis für eine Hausautomatisierung zu nutzen. Ein Update folgt bald.

Um die Playstation Eye Camera zu nutzen gibt es einen weiteren Artikel.