DIY: Creare un Tracker
con un Raspberry Pi e un ricevitore GPS USB
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
- 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
Panoramica
Il processo è semplice:
- Prepara la tua configurazione su Trakkit.org
- Installa Raspberry Pi OS
- Installa Joli_Compagnon
- Testa il tracker
- 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.
- Crea la tua Boat
- Crea un Tag
(assegnagli un nome riconoscibile) - Crea una password per questo Tag
- Crea un Track con:
- Data di inizio: 01/01/2020
- Data di fine: 01/01/2050
- 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:
- Crea un utente (in questa guida assumiamo che il nome utente sia pi)
- 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.