DIY : Créer un Tracker

avec un Raspberry Pi et un récepteur GPS USB


Raspberry Pi Python Linux GPS

Ce guide explique comment construire votre propre Trakkit.org live tracker avec un Raspberry Pi ou tout système Linux.

Les systèmes compatibles incluent :

  • Raspberry Pi OS
  • Ubuntu
  • Debian

  • Pour ce guide, nous utilisons un récepteur GPS USB BU-355N5 — Abordable, largement utilisé et totalement compatible.

Table des matières


Vue d’ensemble

Le processus est simple :

  1. Préparer votre configuration sur Trakkit.org
  2. Installer Raspberry Pi OS
  3. Installer Joli_Compagnon
  4. Tester le tracker
  5. Automatiser le démarrage

⚓ - Configurer votre Boat sur Trakkit.org

Avant d’installer quoi que ce soit sur le Raspberry Pi, déclarez votre tracker sur Trakkit.org.

  1. Créez votre Boat
  2. Créez un Tag
    (donnez-lui un nom reconnaissable)
  3. Créez un password pour ce Tag
  4. Créez un Track avec :
    • Date de début : 01/01/2020
    • Date de fin : 01/01/2050
  5. Marquez ce track comme LiveTrack

Vous devez disposer de :

TAG
TAG PASSWORD

Ces identifiants seront utilisés par le tracker.


🍓 - Installer Raspberry Pi OS

Installez Raspberry Pi OS normalement sur votre carte SD.

Suivez les instructions officielles :

https://www.raspberrypi.com/software

Il n’y a aucune configuration spéciale requise.

Vous pouvez choisir la version Desktop, plus facile à configurer, ou la version Lite si vous êtes à l’aise avec Linux.


⚙️ — Configuration système de base

Au premier démarrage :

  1. Créez un utilisateur (dans ce guide, nous supposons que le nom d’utilisateur est pi)
  2. Configurez normalement :
    • langue
    • clavier
    • réseau (Wifi pour accéder à Internet)

Il est recommandé de régler le fuseau horaire sur UTC.


📦 — Installer Joli_Compagnon

Téléchargez le logiciel depuis le site Trakkit :

Trakkit.org → About → Download

Téléchargez le fichier :

joli_compagnon.tgz

Extrayez-le dans votre répertoire personnel :

tar -xzf joli_compagnon.tgz

Cela crée le répertoire : joli_compagnon_last qui contient tous les scripts.


🐍 — Créer l’environnement virtuel Python

Placez-vous dans le répertoire :

cd joli_compagnon_last

Créez l’environnement virtuel Python :

python3 -m venv venv

Activez-le :

source venv/bin/activate

Installez les modules requis :

pip install -r requirements.txt

🛰️ — Connexion GPS et test

Nous utiliserons un BU-353N5 USB GPS largement disponible.

Connectez le GPS au Raspberry Pi et vérifiez qu’il est détecté.

Lister les périphériques USB :

lsusb

Exemple de sortie :

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

Le GPS BU-353N5 apparaît généralement comme un adaptateur USB-série (souvent basé sur une puce Prolific ou similaire).


Identifier le périphérique série

Le GPS va créer un périphérique série, généralement :

/dev/ttyUSB0

Pour le vérifier, exécutez :

dmesg | grep tty

Exemple de sortie :

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

Cela confirme que le GPS est disponible sur :

/dev/ttyUSB0

Vérifier les permissions

Vérifiez que le périphérique existe :

ls -l /dev/ttyUSB*

Exemple :

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

Si nécessaire, assurez-vous que votre utilisateur appartient au groupe dialout :

sudo usermod -a -G dialout $USER

Puis déconnectez-vous et reconnectez-vous.


Tester la réception des données GPS

Les périphériques GPS NMEA utilisent généralement 4800 bauds par défaut.

Afficher les phrases NMEA entrantes :

cat /dev/ttyUSB0

Si les phrases NMEA défilent en continu, le GPS fonctionne correctement.

Si rien n’apparaît, le GPS utilise peut-être une vitesse série différente.
Vous pouvez changer manuellement le débit en bauds du périphérique et tester à nouveau.

Les vitesses NMEA courantes sont :

4800
9600
38400

Pour changer la vitesse du périphérique série, utilisez stty.

Exemple pour 4800 bauds :

stty -F /dev/ttyUSB0 4800

Puis testez à nouveau :

cat /dev/ttyUSB0

Si rien n’apparaît, essayez une autre vitesse.

Exemple pour 9600 bauds :

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

Une fois la bonne vitesse trouvée, vous devriez voir des phrases NMEA telles que :

$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

Une fois que les phrases NMEA sont visibles, notez :

  • le chemin du périphérique (généralement /dev/ttyUSB0)
  • le débit en bauds (par exemple 4800)

Ces valeurs seront utilisées plus tard dans le fichier config.ini.


🔁 — Lancement manuel du tracker

Activez l’environnement virtuel Python :

source venv/bin/activate

Renommez le fichier de configuration :

mv config.ini.EXAMPLE config.ini

Modifiez le fichier :

nano config.ini

Configurez la section GPS :

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

Puis configurez vos identifiants Trakkit :

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

Démarrez le lecteur GPS :

./reader_usb.py

Vous devriez voir des trames NMEA affichées.

Démarrez l’émetteur dans un autre terminal :

./sender.py

Ce script envoie les positions GPS vers Trakkit.org.

Attendez quelques minutes.

La position de votre Boat devrait maintenant apparaître sur Trakkit.org.


🚀 - Automatiser le démarrage avec systemd

À ce stade, vous avez maintenant un tracker entièrement fonctionnel pour Trakkit.org. La dernière étape consiste à le configurer pour démarrer automatiquement au boot.

Pour la suite de ce guide, nous supposons que le nom d’utilisateur est pi et le chemin d’installation suivant :

/home/pi/joli_compagnon_last/

Les scripts et l’environnement virtuel s’y trouvent.


Service pour le lecteur GPS

Créez :

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 pour l’émetteur

Créez :

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

Activer les services

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

Démarrez-les :

sudo systemctl start trakkit_reader
sudo systemctl start trakkit_sender

Votre Trakkit.org Companion démarrera désormais automatiquement au boot et enverra la position de votre Boat en continu.