Servidor GPS
Nota importante: La configuracion de GPS y la configuracion de la antena Wifi se pueden consultar a partir del minuto 28 del webinar
Configuración de antena GPS
Se recomienda instalar los siguientes paquetes para ejecutar un servicio GPS y para verificar su funcionamiento.
sudo apt update
sudo apt install gpsd gpsd-clients
Después de conectar la antena GPS a la computadora, se recomienda ejecutar el comando dmesg para verificar los mensajes asociados a la conexion del dispositivo y poder identificarlo dentro del sistema. En el siguiente ejemplo de la salida del comando, se puede observar que el dispositivo es ttyACM0:
[ 5287.951232] usb 2-2.2: New USB device found, idVendor=1546, idProduct=01a7, bcdDevice= 1.00
[ 5287.951247] usb 2-2.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 5287.951253] usb 2-2.2: Product: u-blox 7 - GPS/GNSS Receiver
[ 5287.951259] usb 2-2.2: Manufacturer: u-blox AG - www.u-blox.com
[ 5288.000250] cdc_acm 2-2.2:1.0: ttyACM0: USB ACM device
Es necesario identificar el dispositivo asociado al GPS para configurarlo correctamente. Una manera de verificar su ruta absoluta, es listando el contenido de /dev/ y filtrando por ACM0.
$ ls /dev/tty* -l | grep ACM0
crw-rw---- 1 root dialout 166, 0 Aug 9 00:23 /dev/ttyACM0
A continuación y con el usuario root, se crea el archivo de configuración del servicio gpsd, donde se indica la ruta absoluta del dispositivo, entre otras opciones.
echo 'DEVICES="/dev/ttyACM0"'>/etc/default/gpsd
echo 'GPSD_OPTIONS="-n"'>>/etc/default/gpsd
echo 'START_DAEMON="true"'>>/etc/default/gpsd
Finalmente, se recomienda detener y volver a iniciar el servicio. Esto con el fin de recargar la configuración y asegurar su funcionamiento.
sudo systemctl stop gpsd.socket
sudo systemctl start gpsd.socket
Una manera de verificar que el servicio se inició correctamente es revisando si se abrió el puerto 2947 de forma correcta. Un ejemplo de esto se muestra en el siguiente ejemplo, junto con la salida del comando.
$ netstat -natulp | grep 2947
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
tcp 0 0 0.0.0.0:2947 0.0.0.0:* LISTEN -
tcp6 0 0 ::1:2947 :::* LISTEN -
Para verificar que se reciben datos GPS válidos, se puede ejecutar el comando cgps -s en el mismo equipo del servidor. A continuación, se muestra un ejemplo de la salida de este comando.
┌───────────────────────────────────────────┐┌────────────────Seen 18/Used 3──┐
│ Time 2024-08-09T05:01:41.000Z (18)││GNSS S PRN Elev Azim SNR Use│
│ Latitude 19.<REDACTED> N ││GP 7 7 44.0 346.0 28.0 Y │
│ Longitude 99.<REDACTED> W ││GP 8 8 50.0 54.0 23.0 Y │
│ Alt (HAE, MSL) n/a, n/a ft ││GP 9 9 77.0 231.0 22.0 Y │
│ Speed 2.97 mph ││GP 2 2 18.0 139.0 0.0 N │
│ Track (true, var) 253.8, 4.4 deg ││GP 3 3 3.0 176.0 0.0 N │
│ Climb n/a ft/min ││GP 4 4 49.0 158.0 8.0 N │
│ Status 2D FIX (12 secs) ││GP 14 14 27.0 264.0 0.0 N │
│ Long Err (XDOP, EPX) n/a , n/a ││GP 17 17 7.0 206.0 0.0 N │
│ Lat Err (YDOP, EPY) n/a , n/a ││GP 21 21 19.0 123.0 0.0 N │
│ Alt Err (VDOP, EPV) 1.00, n/a ││GP 22 22 11.0 249.0 0.0 N │
│ 2D Err (HDOP, CEP) 2.49, +/- 155 ft ││GP 27 27 19.0 41.0 0.0 N │
│ 3D Err (PDOP, SEP) 2.68, +/- 167 ft ││GP 30 30 22.0 317.0 0.0 N │
│ Time Err (TDOP) 1.20 ││SB133 46 67.0 177.0 0.0 N │
│ Geo Err (GDOP) 2.94 ││SB135 48 45.0 244.0 0.0 N │
│ Speed Err (EPS) +/- 5.6 mph ││SB138 51 65.0 203.0 0.0 N │
│ Track Err (EPD) n/a ││QZ 1 193 n/a 0.0 0.0 N │
│ Time offset 1.409956910 s ││QZ 2 194 n/a 0.0 0.0 N │
│ Grid Square <REDACTED> ││QZ 4 196 n/a 0.0 0.0 N │
Nota: Los datos que mas nos importan de la salida anterior son los de latitud y longitud, sin embargo puede tardar un poco en mostrar dichos datos. Por esto, se recomienda esperar a que se muestren. Si despues de unos pocos minutos no se muestran, se recomienda posicionarse en un lugar mas despejado y revisar las configuraciones anteriores.