Hace tiempo un amigo me regalo un GPS con conexión mediante USB. Como muchas cosas ha dormido en el cajon de los proyectos. Al abrirlo encontré este dispositivo y pensé en darle alguna utilidad.
En algunas ocasiones utilizo la raspberry en aplicaciones que no están constantemente conectadas a internet. Y como necesitaba una fuente de reloj fiable, decidí hacerlo mediante un GPS.
En esta primera parte, conectaremos el GPS veremos los datos que se recogen, en la segunda parte, crearemos el servidor NTP.
Conectamos el Receptor USB a un puerto y comprobamos si lo ha detectado, con la orden lusb
lusb
Deberíamos tener una respuesta del tipo:
Lo ha detectado como un dispositivo Prolific Technology y lo ha configurado como un puerto serie.
Si buscamos en /var/log/syslog, vemos que ha creado el puerto como /dev/ttyUSB0, ya que es el primer puerto serie.
El siguiente paso es conseguir que el pi reciba los datos de los satélites. Hay un conjunto de herramientas denominado gpsd, los cuales instalaremos.
sudo apt-get install gpsd gpsd-clients
A continuación, iniciamos el demonio:
sudo gpsd /dev/ttyUSB0 -F /var/run/gpsd.sock
Ignoramos cualquier mensaje en el terminal o en los archivos de registro.
editamos /etc/default/gpsd
sudo nano /etc/default/gpsd
Añadimos a ese fichero las siguientes lineas:
# Default settings for the gpsd init script and the hotplug wrapper.
# Start the gpsd daemon automatically at boot time
START_DAEMON=»true»
# Use USB hotplugging to add new USB devices automatically to the daemon
USBAUTO=»false»
# Devices gpsd should collect to at boot time.
# They need to be read/writeable, either by user gpsd or the group dialout.
DEVICES=»/dev/ttyUSB0″
# Other options you want to pass to gpsd
GPSD_OPTIONS=»»
#tried -F, -n in here too – no difference
GPSD_SOCKET=“/var/run/gpsd.sock»
Reiniciamos el sevicio
sudo /etc/init.d/gpsd restart
Comprobación que recibe datos
Ejecutamos la orden: cgps
cgps -s
De esta forma escribe los datos procesados, mostrándo la siguiente pantalla.
Aquí puede ver que está recibiendo de 7 satélites y que tiene la hora y su ubicación. La sección 3D FIX dice que tiene suficientes datos para una corrección 3D en su ubicación (es decir: Altitud, Longitud, Latitud, Velocidad). Las líneas Err le indican el error en su posición. Los valores de Err cambian cada segundo más o menos.