Raspberry Pi als mobiler GPS-Tracker

Eine beliebte Anwendungsmöglichkeit für den Raspberry Pi bietet sich in Kombination mit einem GPS-Empfänger. Mit einigen kleinen Scripts und Tools wird aus dem Raspberry ein vollwertiger GPS-Tracker, der den Positionsverlauf lokal abspeichert. Die Auswertung kann dann „offline“ nachträglich erfolgen.

Benötigt werden:

  • Raspberry Pi
  • SD-Speicherkarte, mindestens 8 GB
  • WLAN (WiFi-Adapter) für die Programmierung des Raspberry Pi
  • GPS-USB-Empfänger, z.B. Pharos GPS 360
  • USB-Speicherstick (optional)
  • Externe Stromversorgung für den Raspberry Pi (optional)

Raspbian installieren

Es gibt zahlreiche Tutorials und Anleitungen, wie man das Betriebssystem „Raspbian“ auf dem Raspberry Pi installiert.

Eine guter Ansatz, wenn man einen Apple-PC mit MacOS benutzt, ist das Tool ApplePi Baker. Die Installation ist um einiges schneller, als wenn man Raspbian direkt auf dem Raspberry Pi installiert.

Zunächst lädt man sich Raspbian auf dem Mac herunter und speichert es auf dem Desktop. Dann formatiert man die SD-Speicherkarte mit dem FAT32-Dateisystem. Hierfür eignet sich SDformatter.

Man wählt die SD-Karte aus dem Menü aus und klickt auf Format. Anschließend öffnet man ApplePi Baker und wählt die SD-Karte aus dem Menü an der linken Seite aus. Dann klickt man auf Restore Backup und anschließend wählt man das heruntergeladene Betriebssystem-Image vom Desktop aus.

Jetzt muss nur noch die SD-Karte in den Raspberry Pi, und schon ist die Grundinstallation des Betriebssystems fertig.

Statische (feste) IP-Adresse einrichten

Der nächste Schritt ist nicht zwingend notwendig, aber wir empfehlen, dem Raspberry Pi eine statische IP-Adresse zuzuweisen, um ihn später einfacher im Netzwerk administrieren zu können. Der Zugriff ist dann deutlich einfacher, insbesondere, wenn kein Bildschirm direkt am Raspberry Pi angeschlossen ist.

Zunächst klickt man mit rechts auf das Netzwerk-Icon in der oberen rechten Ecke. Dort wählt man WiFi Networks (dhcpcdui) Settings aus.

Man muss das entsprechende Netzwerk-Interface, in diesem Fall wlan0, auswählen, und folgende Daten eingeben:

IP Address : 192.168.2.56

Router : 192.168.2.1

DNS Servers : 8.8.8.8

DNS Search : 8.8.4.4

Diese Daten variieren natürlich entsprechend dem lokal vorhandenen Netzwerk; ggf. müssen die Daten angepasst werden.

VNC installieren

Wir empfehlen das Paket TightVNC, um einen graphischen Fernzugriff auf den Raspberry Pi über das VNC-Protokoll zu ermöglichen.

Hierzu öffnet man ein Terminal-Fenster und gibt folgenden Befehl ein:

sudo apt-get install tightvncserver

Ggf. muss die Ausführung nochmal explizit bestätigt werden.

Anschließend startet man TightVNC mit folgendem Befehl:

tightvncserver

Direkt nach dem Start wird man aufgefordert, ein Passwort zur Absicherung des Fernzugriffs zu vergeben.

Um TightVNC automatisch beim Bootvorgang des Raspberry Pi zu starten, ist ein Eintrag in /etc/init.d/ notwendig. Hierzu wechselt man im Terminal in den Ordner /etc/init.d/ und erstellt ein Script mit folgendem Inhalt:

#! /bin/sh
# /etc/init.d/vncboot

### BEGIN INIT INFO
# Provides: vncboot
# Required-Start: $remote_fs $syslog 
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start VNC Server at boot time # Description: Start VNC Server at boot time.
### END INIT INFO

USER=pi HOME=/home/pi

export USER HOME

case "$1" in start) echo "Starting VNC Server" #Insert your favoured settings for a VNC session su - $USER -c "/usr/bin/vncserver :1 -geometry 1280x800 -depth 16 -pixelformat rgb565" ;;

stop) echo "Stopping VNC Server" /usr/bin/vncserver -kill :1 ;;

*) echo "Usage: /etc/init.d/vncboot {start|stop}" exit 1 ;; esac

exit 0

 

Die Datei wird unter dem namen vncboot gespeichert und mit dem Befehl

chmod 755 vncboot

als ausführbar markiert.

Nach einem Reboot des Raspberry Pi kann man den Login mit einem beliebigen VNC-Client versuchen. Wichtig ist, beim Zugriff über die IP-Adresse im VNC-Client den ersten virtuellen Monitor des Raspberry Pi mit „:1“ hinter der IP-Adresse auszuwählen.

Eine ausführliche Beschreibung findet sich auch hier.

GPS einrichten

Dafür gibt es hier eine Anleitung.

Zuerst wird der USB-GPS-Empfänger am Raspberry Pi eingesteckt, danach prüft man mit folgendem Befehl, ob der Stick vom System korrekt erkannt wurde:

sudo lsusb

Jetzt sollte der Eintrag Prolific Technologies (oder der jeweilige Hersteller des verwendeten USB-Sticks) angezeigt werden.

Jetzt wird der GPS-Dämon GPSD mittels nachfolgendem Befehl installiert:

sudo apt-get install gpsd gpsd-clients python-gps

Danach kann man versuchen, mittels

cgps -s

eine Standortangabe zu erhalten.

Falls das GPS einen Time-Out meldet, kann man folgenden Befehl versuchen:

sudo killall gpsd
sudo gpsd /dev/ttyUSB0 -F /var/run/gpsd.sock

Jetzt sollte man mittels

xgps

im Terminal aktuelle und gültige GPS-Koordinaten sehen können. Das ist der erste große Schritt hin zum GPS-Tracker!

GPS-Tracker und Datenspeicherung

Als nächstes muss der Prozess zur Ermittlung der GPS-Koordinaten automatisiert werden, so dass der Raspberry Pi nach dem Einschalten automatisch den Standort erfasst und die GPS-Rohdaten bzw. Koordinaten auf dem USB-Speicherstick abspeichert.
Hierzu wird, wenn man die Daten auf einem externen Speicher ablegen möchte, zunächst der USB-Speicherstick am Raspberry Pi eingesteckt.

Dann gibt man

lsblk

im Terminal ein, um den Pfad zum USB-Stick zu finden. Wenn man den Pfad identifiziert hat, benötigt man nur noch ein Script das automatisch startet, wenn der Raspberry Pi gebootet wird.

Hierzu geht man in den pi Ordner :

$ cd ~

und erstellt und speichert dort eine neue Script-Datei:

$ sudo nano gpspipe

Dann kopiert man die folgenden Befehle in die Datei und speichert sie. Wichtig ist dabei, die Stelle ******* mit der Pfadangabe zum USB-Speicherstick zu ersetzen.

#!/bin/bash
gpspipe -r -o /media/pi/*******/rawgps.txt

Als nächstes öffnet man die Konfigurationsdatei .bashrc:

$ sudo nano .bashrc

In der Datei scrollt man bis ans Ende und ergänzt nachfolgende Zeile:

./gpspipe

Jetzt ändert man die Berechtigungen für das Script über den Befehl:

sudo chmod 755 gpspipe

Ab sofort speichert der Raspberry Pi nach dem Bootvorgang automatisch die Rohdaten auf den USB-Stick und arbeitet somit als echter GPS-Tracker.

Ein Tutorial zu Startup-Scripts findet sich hier.

Daten visualisieren und anzeigen

Schlussendlich geht es darum, die aufgezeichneten Rohdaten des GPS-Tracker zu visualisieren und anzuzeigen. Wenn man erst einmal die abgespeicherten Rohdaten hat, kann man diese über verschiedene Wege (es gibt hierzu zahlreiche Anleitungen im Internet) bei Google Maps darstellen.

Eine schnelle und einfache Lösung bietet hierfür das Tool GPS Visualizer.