DIY: Een Tracker maken

met een Raspberry Pi en een NMEA-gateway


Raspberry Pi Python Linux GPS WiFi TCP UDP

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

Compatibele systemen zijn onder andere:

  • Raspberry Pi OS
  • Ubuntu
  • Debian

  • Voor deze handleiding gebruiken we een NMEA-multiplexer zoals de ShipModul Miniplex of een vergelijkbare gateway.

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 Boat op Trakkit.org

Voordat je iets installeert op de Raspberry Pi, declareer 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 aan met:
    • Startdatum: 01/01/2020
    • Einddatum: 01/01/2050
  5. Markeer deze track als LiveTrack

Je moet beschikbaar hebben:

TAG
TAG PASSWORD

Deze gegevens worden door de tracker gebruikt.


๐Ÿ“ - Raspberry Pi OS installeren

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, makkelijker om te configureren, of de Lite-versie als je vertrouwd bent met Linux.


โš™๏ธ โ€” Basis systeemconfiguratie

Bij de eerste opstart:

  1. Maak een user aan (in deze handleiding gaan we uit van de gebruikersnaam pi)
  2. Configureer normaal:
    • taal
    • toetsenbord
    • netwerk (Wifi om toegang te krijgen tot het internet)

Het wordt aanbevolen om de tijdzone op UTC te zetten.


๐Ÿ›ฐ๏ธ โ€” WiFi- of LAN-verbinding met NMEA-gateway

Afhankelijk van het verbindingstype (WiFi of LAN) van je NMEA-gateway, vraag je de volgende informatie op bij de fabrikant:

  • IP-adres
  • Poort
  • Protocol (UDP of TCP)

Als je WiFi gebruikt en je NMEA-gateway niet bereikbaar is op hetzelfde netwerk als je primaire internetverbinding, moet je mogelijk een tweede WiFi-interface configureren op je Raspberry Pi met behulp van een extra USB WiFi-dongle.

Dit stelt je in staat om: - de NMEA-datastroom te ontvangen (inkomende route) - positiedata naar Trakkit.org te verzenden (uitgaande route)

Typisch ziet de configuratie er zo uit:

IP: 10.0.0.1
Port: 10110
Protocol: TCP

Deze waarden moeten worden geconfigureerd in het bestand config.ini.


๐Ÿ“ฆ โ€” Joli_Compagnon installeren

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.


๐Ÿ โ€” De Python virtual environment aanmaken

Ga naar de directory:

cd joli_compagnon_last

Maak de Python virtual environment aan:

python3 -m venv venv

Activeer deze:

source venv/bin/activate

Installeer de vereiste modules:

pip install -r requirements.txt

๐Ÿ” โ€” Handmatig starten van de tracker

Activeer de Python virtual environment:

source venv/bin/activate

Hernoem het configuratiebestand:

mv config.ini.EXAMPLE config.ini

Bewerk het bestand:

nano config.ini

Configureer je Trakkit-inloggegevens:

###############################################
# ๐Ÿ”‘ Your Trakkit.org login credentials
###############################################
[USER]
TAG = YOUR_TAG_HERE
PWD = YOUR_TAG_PASSWORD_HERE

Configureer vervolgens de NMEA-sectie met de eerder gedefinieerde waarden om toegang te krijgen tot je NMEA-gateway:

###############################################
# ๐Ÿ“ก Data source from NMEA multiplexer
###############################################
[NMEA]
NMEA_SRV = 10.0.0.1
NMEA_PORT = 10110

Start de NMEA-lezer volgens het gebruikte protocol
(er mag slechts รฉรฉn proces draaien):

./reader_tcp.py

OF

./reader_udp.py

Je zou NMEA-frames weergegeven moeten zien.

Start de sender in een andere terminal:

./sender.py

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

Wacht een paar minuten.

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


๐Ÿš€ - Automatisch 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 het opstarten.

Voor de rest van deze handleiding gaan we uit van het gebruik van het TCP-protocol, de gebruikersnaam pi en het volgende installatiepad:

/home/pi/joli_compagnon_last/

Scripts en virtual environment bevinden zich daar.


Service voor de NMEA-lezer

Maak aan:

sudo nano /etc/systemd/system/trakkit_reader.service
[Unit]
Description=Trakkit.org Companion NMEA Reader
After=network.target

[Service]
User=pi
WorkingDirectory=/home/pi/joli_compagnon_last
ExecStart=/home/pi/joli_compagnon_last/venv/bin/python reader_tcp.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

De services inschakelen

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 start nu automatisch bij het opstarten, maakt verbinding met je NMEA-gataway en verstuurt continu de positie van je boot.