DIY: Maak een Tracker
met een Raspberry Pi en een USB GPS-ontvanger
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
- 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
Overzicht
Het proces is eenvoudig:
- Bereid je configuratie voor op Trakkit.org
- Installeer Raspberry Pi OS
- Installeer Joli_Compagnon
- Test de tracker
- Automatiseer het opstarten
⚓ - Configureer je boot op Trakkit.org
Voordat je iets op de Raspberry Pi installeert, registreer je je tracker op Trakkit.org.
- Maak je Boat aan
- Maak een Tag aan
(geef het een herkenbare naam) - Maak een password aan voor deze Tag
- Maak een Track met:
- Startdatum: 01/01/2020
- Einddatum: 01/01/2050
- 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:
- Maak een user aan (in deze handleiding gaan we uit van de gebruikersnaam pi)
- 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.