DIY: Crear un Tracker
con una Raspberry Pi y un receptor GPS USB
Esta guía explica cómo construir tu propio Trakkit.org live tracker usando una Raspberry Pi o cualquier sistema Linux.
Los sistemas compatibles incluyen:
- Raspberry Pi OS
- Ubuntu
-
Debian
-
Para esta guía, usamos un receptor GPS USB BU-355N5 — Asequible, ampliamente utilizado y totalmente compatible.
Tabla de contenidos
- 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
Visión general
El proceso es sencillo:
- Prepara tu configuración en Trakkit.org
- Instala Raspberry Pi OS
- Instala Joli_Compagnon
- Prueba el tracker
- Automatiza el arranque
⚓ - Configura tu Boat en Trakkit.org
Antes de instalar nada en la Raspberry Pi, declara tu tracker en Trakkit.org.
- Crea tu Boat
- Crea un Tag
(ponle un nombre reconocible) - Crea una password para este Tag
- Crea un Track con:
- Fecha de inicio: 01/01/2020
- Fecha de fin: 01/01/2050
- Marca este track como LiveTrack
Debes tener disponibles:
TAG
TAG PASSWORD
Estas credenciales serán utilizadas por el tracker.
🍓 - Instalar Raspberry Pi OS
Instala Raspberry Pi OS normalmente en tu tarjeta SD.
Sigue las instrucciones oficiales:
https://www.raspberrypi.com/software
No se requiere ninguna configuración especial.
Puedes elegir la versión Desktop, más fácil de configurar, o la versión Lite si te sientes cómodo con Linux.
⚙️ — Configuración básica del sistema
En el primer arranque:
- Crea un usuario (en esta guía asumimos que el nombre de usuario es pi)
- Configura normalmente:
- idioma
- teclado
- red (Wifi para acceder a Internet)
Se recomienda configurar la zona horaria en UTC.
📦 — Instalar Joli_Compagnon
Descarga el software desde el sitio web de Trakkit:
Trakkit.org → About → Download
Descarga el archivo:
joli_compagnon.tgz
Extráelo en tu directorio personal:
tar -xzf joli_compagnon.tgz
Esto crea el directorio: joli_compagnon_last que contiene todos los scripts.
🐍 — Crear el entorno virtual de Python
Entra en el directorio:
cd joli_compagnon_last
Crea el entorno virtual de Python:
python3 -m venv venv
Actívalo:
source venv/bin/activate
Instala los módulos requeridos:
pip install -r requirements.txt
🛰️ — Conexión y prueba del GPS
Usaremos un BU-353N5 USB GPS ampliamente disponible
Conecta el GPS a la Raspberry Pi y verifica que sea detectado.
Lista los dispositivos USB:
lsusb
Salida de ejemplo:
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
El GPS BU-353N5 suele aparecer como un adaptador USB a serie (a menudo usando un chipset Prolific o similar).
Identificar el dispositivo serie
El GPS creará un dispositivo serie, normalmente:
/dev/ttyUSB0
Para verificarlo, ejecuta:
dmesg | grep tty
Salida de ejemplo:
[ 123.456789] usb 1-1.2: pl2303 converter now attached to ttyUSB0
Esto confirma que el GPS está disponible en:
/dev/ttyUSB0
Verificar permisos
Comprueba que el dispositivo existe:
ls -l /dev/ttyUSB*
Ejemplo:
crw-rw---- 1 root dialout 188, 0 Apr 21 12:34 /dev/ttyUSB0
Si es necesario, asegúrate de que tu usuario pertenece al grupo dialout:
sudo usermod -a -G dialout $USER
Luego cierra sesión e inicia sesión de nuevo.
Probar la recepción de datos GPS
Los dispositivos GPS NMEA suelen usar 4800 baudios por defecto.
Muestra las sentencias NMEA entrantes:
cat /dev/ttyUSB0
Si las sentencias NMEA se desplazan continuamente, el GPS funciona correctamente.
Si no aparece nada, el GPS puede estar usando una velocidad serie diferente.
Puedes cambiar manualmente la velocidad en baudios del dispositivo y volver a probar.
Las velocidades NMEA comunes son:
4800
9600
38400
Para cambiar la velocidad del dispositivo serie, usa stty.
Ejemplo para 4800 baudios:
stty -F /dev/ttyUSB0 4800
Luego prueba de nuevo:
cat /dev/ttyUSB0
Si no aparece nada, prueba otra velocidad.
Ejemplo para 9600 baudios:
stty -F /dev/ttyUSB0 9600
cat /dev/ttyUSB0
Una vez encontrada la velocidad correcta, deberías ver sentencias NMEA como:
$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
Una vez visibles las sentencias NMEA, anota:
- la ruta del dispositivo (normalmente
/dev/ttyUSB0) - la velocidad en baudios (por ejemplo
4800)
Estos valores se utilizarán más adelante en el archivo config.ini.
🔁 — Lanzamiento manual del tracker
Activa el entorno virtual de Python:
source venv/bin/activate
Renombra el archivo de configuración:
mv config.ini.EXAMPLE config.ini
Edita el archivo:
nano config.ini
Configura la sección del GPS:
###############################################
# 🛰️ Data source from USB GPS device
###############################################
[GPS]
GPS_PORT = /dev/ttyUSB0
GPS_BAUDS = 4800
Luego configura tus credenciales de Trakkit:
###############################################
# 🔑 Your Trakkit.org login credentials
###############################################
[USER]
TAG = YOUR_TAG_HERE
PWD = YOUR_TAG_PASSWORD_HERE
Inicia el lector GPS:
./reader_usb.py
Deberías ver frames NMEA mostrados.
Inicia el sender en otra terminal:
./sender.py
Este script envía las posiciones GPS a Trakkit.org.
Espera unos minutos.
La posición de tu Boat debería aparecer ahora en Trakkit.org.
🚀 - Automatizar el arranque con systemd
En este punto, ya tienes un tracker totalmente funcional para Trakkit.org. El paso final es configurarlo para que se inicie automáticamente al arrancar.
Para el resto de esta guía, asumimos el nombre de usuario pi y la siguiente ruta de instalación:
/home/pi/joli_compagnon_last/
Los scripts y el entorno virtual se encuentran allí.
Servicio para el lector 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
Servicio para el sender
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
Habilitar los servicios
sudo systemctl daemon-reload
sudo systemctl enable trakkit_reader
sudo systemctl enable trakkit_sender
Inícialos:
sudo systemctl start trakkit_reader
sudo systemctl start trakkit_sender
Tu Trakkit.org Companion ahora se iniciará automáticamente al arrancar y enviará la posición de tu Boat de forma continua.