DIY: Maak een Tracker

met een Raspberry Pi en een USB GPS-ontvanger


Raspberry Pi Python Linux GPS

Deze handleiding legt uit hoe je je eigen Trakkit.org live tracker bouwt met een Raspberry Pi of een ander Linux-systeem.

Compatibele systemen zijn onder andere:

  • Raspberry Pi OS
  • Ubuntu
  • Debian

  • Voor deze handleiding gebruiken we een BU-355N5 USB GPS-ontvanger — Betaalbaar, veelgebruikt en volledig compatibel.

Inhoudsopgave


Overzicht

Het proces is eenvoudig:

  1. Bereid je configuratie voor op Trakkit.org
  2. Installeer Raspberry Pi OS
  3. Installeer Joli_Compagnon
  4. Test de tracker
  5. Automatiseer het opstarten

⚓ - Configureer je boot op Trakkit.org

Voordat je iets op de Raspberry Pi installeert, registreer je je tracker op Trakkit.org.

  1. Maak je Boat aan
  2. Maak een Tag aan
    (geef het een herkenbare naam)
  3. Maak een password aan voor deze Tag
  4. Maak een Track met:
    • Startdatum: 01/01/2020
    • Einddatum: 01/01/2050
  5. Markeer deze track als LiveTrack

Je moet beschikbaar hebben:

TAG
TAG PASSWORD

Deze inloggegevens worden door de tracker gebruikt.


🍓 - Installeer Raspberry Pi OS

Installeer Raspberry Pi OS op de gebruikelijke manier op je SD-kaart.

Volg de officiële instructies:

https://www.raspberrypi.com/software

Er is geen speciale configuratie vereist.

Je kunt de Desktop-versie kiezen, die eenvoudiger te configureren is, of de Lite-versie als je vertrouwd bent met Linux.


⚙️ — Basis systeemconfiguratie

Bij de eerste boot:

  1. Maak een user aan (in deze handleiding gaan we uit van de gebruikersnaam pi)
  2. Configureer zoals gebruikelijk:
    • taal
    • toetsenbord
    • netwerk (Wifi voor toegang tot internet)

Het wordt aanbevolen om de timezone op UTC in te stellen.


📦 — Installeer Joli_Compagnon

Download de software van de Trakkit-website:

Trakkit.org → About → Download

Download het bestand:

joli_compagnon.tgz

Pak het uit in je home-directory:

tar -xzf joli_compagnon.tgz

Dit maakt de directory aan: joli_compagnon_last die alle scripts bevat.


🐍 — Maak de Python virtuele omgeving aan

Ga naar de directory:

cd joli_compagnon_last

Maak de Python virtuele omgeving aan:

python3 -m venv venv

Activeer deze:

source venv/bin/activate

Installeer de benodigde modules:

pip install -r requirements.txt

🛰️ — GPS-verbinding en test

We gebruiken een veel beschikbare BU-353N5 USB GPS

Sluit de GPS aan op de Raspberry Pi en controleer of deze wordt gedetecteerd.

Toon de USB-apparaten:

lsusb

Voorbeelduitvoer:

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

De BU-353N5 GPS verschijnt doorgaans als een USB-naar-serieel adapter (vaak met een Prolific- of vergelijkbare chipset).


Identificeer het seriële apparaat

De GPS maakt een seriële device aan, meestal:

/dev/ttyUSB0

Om dit te verifiëren, voer uit:

dmesg | grep tty

Voorbeelduitvoer:

[  123.456789] usb 1-1.2: pl2303 converter now attached to ttyUSB0

Dit bevestigt dat de GPS beschikbaar is op:

/dev/ttyUSB0

Controleer permissies

Controleer dat het device bestaat:

ls -l /dev/ttyUSB*

Voorbeeld:

crw-rw---- 1 root dialout 188, 0 Apr 21 12:34 /dev/ttyUSB0

Zorg er indien nodig voor dat je user tot de groep dialout behoort:

sudo usermod -a -G dialout $USER

Log daarna uit en weer in.


Test ontvangst van GPS-data

NMEA GPS-apparaten gebruiken standaard meestal 4800 baud.

Toon de binnenkomende NMEA-zinnen:

cat /dev/ttyUSB0

Als NMEA-zinnen continu doorlopen, werkt de GPS correct.

Als er niets verschijnt, gebruikt de GPS mogelijk een andere seriële snelheid.
Je kunt de baud rate van het device handmatig wijzigen en opnieuw testen.

Veelvoorkomende NMEA-snelheden zijn:

4800
9600
38400

Om de snelheid van het seriële device te wijzigen, gebruik je stty.

Voorbeeld voor 4800 baud:

stty -F /dev/ttyUSB0 4800

Test daarna opnieuw:

cat /dev/ttyUSB0

Als er niets verschijnt, probeer een andere snelheid.

Voorbeeld voor 9600 baud:

stty -F /dev/ttyUSB0 9600
cat /dev/ttyUSB0

Zodra de juiste snelheid is gevonden, zou je NMEA-zinnen moeten zien zoals:

$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

Zodra NMEA-zinnen zichtbaar zijn, noteer:

  • het device-pad (meestal /dev/ttyUSB0)
  • de baud rate (bijvoorbeeld 4800)

Deze waarden worden later gebruikt in het bestand config.ini.


🔁 — Handmatig starten van de tracker

Activeer de Python virtuele omgeving:

source venv/bin/activate

Hernoem het configuratiebestand:

mv config.ini.EXAMPLE config.ini

Bewerk het bestand:

nano config.ini

Configureer de GPS-sectie:

###############################################
# 🛰️  Data source from USB GPS device
###############################################
[GPS]
GPS_PORT = /dev/ttyUSB0
GPS_BAUDS = 4800

Configureer daarna je Trakkit-inloggegevens:

###############################################
# 🔑 Your Trakkit.org login credentials
###############################################
[USER]
TAG = YOUR_TAG_HERE
PWD = YOUR_TAG_PASSWORD_HERE

Start de GPS-lezer:

./reader_usb.py

Je zou NMEA-frames weergegeven moeten zien.

Start de sender in een andere terminal:

./sender.py

Dit script verstuurt de GPS-posities naar Trakkit.org.

Wacht een paar minuten.

De positie van je boot zou nu moeten verschijnen op Trakkit.org.


🚀 - Automatiseer opstarten met systemd

Op dit punt heb je nu een volledig functionele tracker voor Trakkit.org. De laatste stap is om deze zo te configureren dat hij automatisch start bij boot.

Voor de rest van deze handleiding gaan we uit van de gebruikersnaam pi en het volgende installatiepad:

/home/pi/joli_compagnon_last/

Scripts en virtuele omgeving bevinden zich daar.


Service voor de GPS-lezer

Maak aan:

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 voor de sender

Maak aan:

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

Schakel de services in

sudo systemctl daemon-reload
sudo systemctl enable trakkit_reader
sudo systemctl enable trakkit_sender

Start ze:

sudo systemctl start trakkit_reader
sudo systemctl start trakkit_sender

Je Trakkit.org Companion zal nu automatisch starten bij boot en continu de positie van je boot versturen.