DIY: Creare un Tracker

con un Raspberry Pi e un ricevitore GPS USB


Raspberry Pi Python Linux GPS

Questa guida spiega come costruire il tuo live tracker Trakkit.org usando un Raspberry Pi o qualsiasi sistema Linux.

I sistemi compatibili includono:

  • Raspberry Pi OS
  • Ubuntu
  • Debian

  • Per questa guida utilizziamo un ricevitore GPS USB BU-355N5 — Economico, ampiamente usato e pienamente compatibile.

Indice


Panoramica

Il processo è semplice:

  1. Prepara la tua configurazione su Trakkit.org
  2. Installa Raspberry Pi OS
  3. Installa Joli_Compagnon
  4. Testa il tracker
  5. Automatizza l’avvio

⚓ - Configurare la tua Boat su Trakkit.org

Prima di installare qualsiasi cosa sul Raspberry Pi, dichiara il tuo tracker su Trakkit.org.

  1. Crea la tua Boat
  2. Crea un Tag
    (assegnagli un nome riconoscibile)
  3. Crea una password per questo Tag
  4. Crea un Track con:
    • Data di inizio: 01/01/2020
    • Data di fine: 01/01/2050
  5. Contrassegna questo track come LiveTrack

Devi avere a disposizione:

TAG
TAG PASSWORD

Queste credenziali saranno utilizzate dal tracker.


🍓 - Installare Raspberry Pi OS

Installa Raspberry Pi OS normalmente sulla tua scheda SD.

Segui le istruzioni ufficiali:

https://www.raspberrypi.com/software

Non è richiesta alcuna configurazione speciale.

Puoi scegliere la versione Desktop, più facile da configurare, oppure la versione Lite se ti senti a tuo agio con Linux.


⚙️ — Configurazione di base del sistema

Al primo avvio:

  1. Crea un utente (in questa guida assumiamo che il nome utente sia pi)
  2. Configura normalmente:
    • lingua
    • tastiera
    • rete (WiFi per accedere a Internet)

Si consiglia di impostare il fuso orario su UTC.


📦 — Installare Joli_Compagnon

Scarica il software dal sito Trakkit:

Trakkit.org → About → Download

Scarica il file:

joli_compagnon.tgz

Estrailo nella tua home directory:

tar -xzf joli_compagnon.tgz

Questo crea la directory: joli_compagnon_last che contiene tutti gli script.


🐍 — Creare l’ambiente virtuale Python

Spostati nella directory:

cd joli_compagnon_last

Crea l’ambiente virtuale Python:

python3 -m venv venv

Attivalo:

source venv/bin/activate

Installa i moduli richiesti:

pip install -r requirements.txt

🛰️ — Connessione GPS e test

Utilizzeremo un BU-353N5 USB GPS ampiamente disponibile.

Collega il GPS al Raspberry Pi e verifica che venga rilevato.

Elenca i dispositivi USB:

lsusb

Output di esempio:

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

Il GPS BU-353N5 tipicamente appare come un adattatore USB-seriale (spesso usa un chipset Prolific o simile).


Identificare il dispositivo seriale

Il GPS creerà un dispositivo seriale, di solito:

/dev/ttyUSB0

Per verificarlo, esegui:

dmesg | grep tty

Output di esempio:

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

Questo conferma che il GPS è disponibile su:

/dev/ttyUSB0

Verificare i permessi

Controlla che il dispositivo esista:

ls -l /dev/ttyUSB*

Esempio:

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

Se necessario, assicurati che il tuo utente appartenga al gruppo dialout:

sudo usermod -a -G dialout $USER

Quindi esci e accedi di nuovo.


Testare la ricezione dei dati GPS

I dispositivi GPS NMEA in genere usano 4800 baud per impostazione predefinita.

Visualizza le frasi NMEA in arrivo:

cat /dev/ttyUSB0

Se le frasi NMEA scorrono continuamente, il GPS funziona correttamente.

Se non appare nulla, il GPS potrebbe usare una diversa velocità seriale.
Puoi cambiare manualmente il baud rate del dispositivo e testare di nuovo.

Le velocità NMEA comuni sono:

4800
9600
38400

Per cambiare la velocità del dispositivo seriale, usa stty.

Esempio per 4800 baud:

stty -F /dev/ttyUSB0 4800

Quindi testa di nuovo:

cat /dev/ttyUSB0

Se non appare nulla, prova un’altra velocità.

Esempio per 9600 baud:

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

Una volta trovata la velocità corretta, dovresti vedere frasi NMEA come:

$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

Quando le frasi NMEA sono visibili, annota:

  • il percorso del dispositivo (di solito /dev/ttyUSB0)
  • il baud rate (per esempio 4800)

Questi valori verranno utilizzati più avanti nel file config.ini.


🔁 — Avvio manuale del tracker

Attiva l’ambiente virtuale Python:

source venv/bin/activate

Rinomina il file di configurazione:

mv config.ini.EXAMPLE config.ini

Modifica il file:

nano config.ini

Configura la sezione GPS:

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

Poi configura le tue credenziali Trakkit:

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

Avvia il lettore GPS:

./reader_usb.py

Dovresti vedere i frame NMEA visualizzati.

Avvia l’inviatore in un altro terminale:

./sender.py

Questo script invia le posizioni GPS a Trakkit.org.

Attendi qualche minuto.

La posizione della tua Boat dovrebbe ora apparire su Trakkit.org.


🚀 - Automatizzare l’avvio con systemd

A questo punto hai un tracker pienamente funzionante per Trakkit.org. Il passaggio finale è configurarlo per l’avvio automatico al boot.

Per il resto di questa guida, assumiamo il nome utente pi e il seguente percorso di installazione:

/home/pi/joli_compagnon_last/

Gli script e l’ambiente virtuale si trovano lì.


Servizio per il lettore GPS

Crea:

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

Servizio per l’inviatore

Crea:

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

Abilitare i servizi

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

Avviali:

sudo systemctl start trakkit_reader
sudo systemctl start trakkit_sender

Il tuo Trakkit.org Companion ora si avvierà automaticamente al boot e invierà continuamente la posizione della tua Boat.