Wissensdatenbank
Buehl, Kevin
13 Januar 2016
4.073

Wissensdatenbank

Raspberry Pi Geolocation Tracker (GPRS + GPS) with SIM908

Vorwort


In diesem Projekt habe ich einen GPS Tracker gebaut, welcher alle 60 Sekunden die Koordinaten und ein Bild auf einer 32 GB SD-Karte abspeichert. Diese Daten werden auf den Webserver übertragen sobald eine Internetverbindung besteht.

Hardware


SIM908 GSM&GPS Module
SIM900 and SIM908 Expansion Shield für Raspberry Pi
Raspberrry PI
Raspberry Pi Noir Camera

Datenblätter und Schaltpläne


Hier das Schema des Expansion Shields für den Pi, hier sieht man das die Ports (21|27) und 22 verwendet werden.
4b42

System vorbereiten

apt update
apt upgrade

Ich habe ein Skript in Python geschrieben, um das SIM900 bzw. das SIM908 Modul ansprechen zu können benötigt man folgende Software:
apt install -y python-serial python-rpi.gpio

Für die Raspberry Pi Noir Camera:
apte install -y python-picamera

Serielle Konsole ausschalten:
Dieser Link wurde entfernt. Links sind nur für Mitglieder sichtbar. Bitte melden Sie sich mit Ihrem Benutzernamen und Ihrem Passwort an und versuchen Sie es erneut.

Die GPS Daten werden in einer MySQL Datenbank gespeichert, welche auf einem meiner Webserver läuft. Der Datenaustausch wird von einem PHP Skript durchgeführt, deshalb benötigen Sie noch folgende Pakete:
apt install -y php5-cli php5-mysql


Skripte


Koordinaten


Derzeit arbeite ich an einem Skript in Python, die Versionen in C++ und PHP werden nicht mehr weiterentwickelt.
4b42

Startscript


nano /etc/init.d/gpstracker
#!/bin/bash -e
# 2014-05-20 Startscript by Kevin Bühl <kevin@buehl.biz>

### BEGIN INIT INFO
# Provides: gpstracker
# Required-Start: $all
# Required-Stop: $all
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: starts the gps tracker
# Description: starts gps tracker
### END INIT INFO

DAEMON=/root/gps.py
OPTIONS=
NAME=GPS-Tracker

case "$1" in
start)
/usr/bin/screen -dmS $NAME $DAEMON
;;
stop)
/usr/bin/screen -S $NAME -X quit
;;
*)
log_action_msg "Usage: $0 {start|stop}"
exit 1
;;

esac
exit 0
chmod +x /etc/init.d/gpstracker
update-rc.d gpstracker defaults

Datenbank


CREATE TABLE `gps` (
`timestamp` int(10) unsigned NOT NULL DEFAULT '0',
`frame` int(2) unsigned NOT NULL DEFAULT '0',
`longitude` float(10,6) NOT NULL DEFAULT '0.000000',
`latitude` float(10,6) NOT NULL DEFAULT '0.000000',
`altitude` float(10,6) NOT NULL,
`satellites` int(10) unsigned NOT NULL DEFAULT '0',
`speed` float(10,6) NOT NULL DEFAULT '0.000000',
`course` float(10,6) NOT NULL DEFAULT '0.000000',
PRIMARY KEY (`timestamp`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;