DIY: Einen Tracker erstellen
mit einem Raspberry Pi und einem USB-GPS-Empfänger
Diese Anleitung erklärt, wie du deinen eigenen Trakkit.org Live-Tracker mit einem Raspberry Pi oder einem beliebigen Linux-System bauen kannst.
Kompatible Systeme sind unter anderem:
- Raspberry Pi OS
- Ubuntu
-
Debian
-
Für diese Anleitung verwenden wir einen BU-355N5 USB-GPS-Empfänger — günstig, weit verbreitet und vollständig kompatibel.
Inhaltsverzeichnis
- Overview
- Configure your boat on Trakkit.org
- Install Raspberry Pi OS
- Basic system configuration
- Install Joli_Compagnon
- Create the Python virtual environment
- GPS connection and test
- Manual launch of the tracker
- Automate startup with systemd
Übersicht
Der Prozess ist einfach:
- Bereite deine Konfiguration auf Trakkit.org vor
- Installiere Raspberry Pi OS
- Installiere Joli_Compagnon
- Teste den Tracker
- Automatisiere den Start
⚓ – Konfiguriere dein Boat auf Trakkit.org
Bevor du irgendetwas auf dem Raspberry Pi installierst, deklariere deinen Tracker auf Trakkit.org.
- Erstelle dein Boat
- Erstelle ein Tag
(gib ihm einen wiedererkennbaren Namen) - Erstelle ein Passwort für dieses Tag
- Erstelle einen Track mit:
- Startdatum: 01/01/2020
- Enddatum: 01/01/2050
- Markiere diesen Track als LiveTrack
Du musst Folgendes verfügbar haben:
TAG
TAG PASSWORD
Diese Zugangsdaten werden vom Tracker verwendet.
🍓 – Raspberry Pi OS installieren
Installiere Raspberry Pi OS normal auf deiner SD-Karte.
Folge den offiziellen Anweisungen:
https://www.raspberrypi.com/software
Es ist keine spezielle Konfiguration erforderlich.
Du kannst die Desktop-Version wählen (einfacher zu konfigurieren) oder die Lite-Version, wenn du dich mit Linux auskennst.
⚙️ — Grundlegende Systemkonfiguration
Beim ersten Start:
- Erstelle einen Benutzer (in dieser Anleitung gehen wir vom Benutzernamen pi aus)
- Konfiguriere wie üblich:
- Sprache
- Tastatur
- Netzwerk (WLAN, um auf das Internet zuzugreifen)
Es wird empfohlen, die Zeitzone auf UTC zu setzen.
📦 — Joli_Compagnon installieren
Lade die Software von der Trakkit-Website herunter:
Trakkit.org → About → Download
Lade die Datei herunter:
joli_compagnon.tgz
Entpacke sie in deinem Home-Verzeichnis:
tar -xzf joli_compagnon.tgz
Dadurch wird das Verzeichnis: joli_compagnon_last erstellt, das alle Skripte enthält.
🐍 — Die Python-Virtual-Environment erstellen
Wechsle in das Verzeichnis:
cd joli_compagnon_last
Erstelle die Python-Virtual-Environment:
python3 -m venv venv
Aktiviere sie:
source venv/bin/activate
Installiere die benötigten Module:
pip install -r requirements.txt
🛰️ — GPS-Verbindung und Test
Wir verwenden ein weit verbreitetes BU-353N5 USB GPS
Schließe das GPS an den Raspberry Pi an und überprüfe, ob es erkannt wird.
Liste die USB-Geräte auf:
lsusb
Beispielausgabe:
Bus 001 Device 004: ID 067b:2303 Prolific Technology, Inc. USB-Serial Controller
Bus 001 Device 003: ID 0424:9514 Microchip Technology Hub Controller
Bus 001 Device 002: ID 0424:ec00 Microchip Technology SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Das BU-353N5-GPS erscheint typischerweise als USB-zu-Seriell-Adapter (oft mit einem Prolific- oder ähnlichen Chipsatz).
Das serielle Gerät identifizieren
Das GPS erzeugt ein serielles Gerät, üblicherweise:
/dev/ttyUSB0
Zur Überprüfung führe aus:
dmesg | grep tty
Beispielausgabe:
[ 123.456789] usb 1-1.2: pl2303 converter now attached to ttyUSB0
Dies bestätigt, dass das GPS verfügbar ist unter:
/dev/ttyUSB0
Berechtigungen überprüfen
Prüfe, ob das Gerät existiert:
ls -l /dev/ttyUSB*
Beispiel:
crw-rw---- 1 root dialout 188, 0 Apr 21 12:34 /dev/ttyUSB0
Falls nötig, stelle sicher, dass dein Benutzer zur Gruppe dialout gehört:
sudo usermod -a -G dialout $USER
Melde dich dann ab und wieder an.
Empfang der GPS-Daten testen
NMEA-GPS-Geräte verwenden standardmäßig typischerweise 4800 Baud.
Zeige die eingehenden NMEA-Sätze an:
cat /dev/ttyUSB0
Wenn NMEA-Sätze kontinuierlich durchlaufen, funktioniert das GPS korrekt.
Wenn nichts erscheint, verwendet das GPS möglicherweise eine andere serielle Geschwindigkeit.
Du kannst die Baudrate des Geräts manuell ändern und erneut testen.
Gängige NMEA-Geschwindigkeiten sind:
4800
9600
38400
Um die Geschwindigkeit des seriellen Geräts zu ändern, verwende stty.
Beispiel für 4800 Baud:
stty -F /dev/ttyUSB0 4800
Dann erneut testen:
cat /dev/ttyUSB0
Wenn nichts erscheint, probiere eine andere Geschwindigkeit.
Beispiel für 9600 Baud:
stty -F /dev/ttyUSB0 9600
cat /dev/ttyUSB0
Sobald die richtige Geschwindigkeit gefunden ist, solltest du NMEA-Sätze sehen wie:
$GPRMC,184551.00,A,4250.5589,N,07059.3421,W,0.13,309.62,210424,,,A*6C
$GPGGA,184551.00,4250.5589,N,07059.3421,W,1,10,0.8,12.3,M,-33.9,M,,*5A
Sobald NMEA-Sätze sichtbar sind, notiere:
- den Gerätepfad (üblicherweise
/dev/ttyUSB0) - die Baudrate (z. B.
4800)
Diese Werte werden später in der Datei config.ini verwendet.
🔁 — Manueller Start des Trackers
Aktiviere die Python-Virtual-Environment:
source venv/bin/activate
Benenne die Konfigurationsdatei um:
mv config.ini.EXAMPLE config.ini
Bearbeite die Datei:
nano config.ini
Konfiguriere den GPS-Abschnitt:
###############################################
# 🛰️ Data source from USB GPS device
###############################################
[GPS]
GPS_PORT = /dev/ttyUSB0
GPS_BAUDS = 4800
Konfiguriere dann deine Trakkit-Zugangsdaten:
###############################################
# 🔑 Your Trakkit.org login credentials
###############################################
[USER]
TAG = YOUR_TAG_HERE
PWD = YOUR_TAG_PASSWORD_HERE
Starte den GPS-Reader:
./reader_usb.py
Du solltest NMEA-Frames angezeigt bekommen.
Starte den Sender in einem anderen Terminal:
./sender.py
Dieses Skript sendet die GPS-Positionen an Trakkit.org.
Warte ein paar Minuten.
Die Position deines Boat sollte jetzt auf Trakkit.org erscheinen.
🚀 – Automatischen Start mit systemd einrichten
An diesem Punkt hast du nun einen vollständig funktionsfähigen Tracker für Trakkit.org. Der letzte Schritt ist, ihn so zu konfigurieren, dass er beim Booten automatisch startet.
Für den Rest dieser Anleitung gehen wir vom Benutzernamen pi und dem folgenden Installationspfad aus:
/home/pi/joli_compagnon_last/
Skripte und Virtual-Environment befinden sich dort.
Service für den GPS-Reader
Erstelle:
sudo nano /etc/systemd/system/trakkit_reader.service
[Unit]
Description=Trakkit.org Companion GPS Reader
After=network.target
[Service]
User=pi
WorkingDirectory=/home/pi/joli_compagnon_last
ExecStart=/home/pi/joli_compagnon_last/venv/bin/python reader_usb.py
Restart=always
[Install]
WantedBy=multi-user.target
Service für den Sender
Erstelle:
sudo nano /etc/systemd/system/trakkit_sender.service
[Unit]
Description=Trakkit.org Companion Sender
After=trakkit_reader.service
[Service]
User=pi
WorkingDirectory=/home/pi/joli_compagnon_last
ExecStart=/home/pi/joli_compagnon_last/venv/bin/python sender.py
Restart=always
[Install]
WantedBy=multi-user.target
Services aktivieren
sudo systemctl daemon-reload
sudo systemctl enable trakkit_reader
sudo systemctl enable trakkit_sender
Starte sie:
sudo systemctl start trakkit_reader
sudo systemctl start trakkit_sender
Dein Trakkit.org Companion startet nun beim Booten automatisch und sendet die Position deines Boat kontinuierlich.