Foro Navegantes

Versión completa: Información de GPS mediante UDP
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Hola a todos.

He montado una instalación de OpenPlotter (con OpenCPN, claro) en una RPi, pero por razones de cobertura en el lugar de la instalación, no quisiera conectar el GPS directamente a la RPi y para ello lo he conectado a un ESP8266, y mediante wifi y UDP envío las sentencias NMEA a OpenCPN, que las recibe perfectamente, pero no se, (si es que es posible), como hacer que OpenCPN use esas sentencias para posicionar el barco en la carta. ¿Es necesario que la información le llegue por un puerto serie o USB?
¿Alguien puede ayudarme?

Gracias
La verdad es que no estoy demasiado seguro de entender Tu pregunta. Pero para aclarar conceptos...

Opencpn se situara en la carta siempre que reciba datos NMEA 0183 (pronto también con los de Signal K) de posicion GPS. No importa si estos entran por un puerto físico, virtual o por la Red.

Por tanto...

Si mediante wifi estas enviando los datos de NMEA 0183 del GPS opencpn ya se debe estar posicionando sobre la carta. Si no es así es por alguno de estos motivos:

1- No llegan datos por la red. Supongo que esto ya lo has comprobado.

2- Los datos NMEA que entran no son los adecuados. Opencpn solo entiende NMEA0183 pero no NMEA2000.

3- El GPS envía datos pero estos todavía no han obtenido una posición, bien sea por falta de vista de satélites o por no haber esperado suficiente tiempo en un inicio "frio".

Como extra te diría que en Openplotter lo correcto es crear las conexiones en Signal K y no en opencpn puesto que de este modo se reparten por todo el sistema mientras que si las haces en opencpn solo le sirven a el.
Hola Pinguino,
Gracias por tu rápida respuesta (mas aún en un dia como hoy).
Creo que me has entendido muy bien.
En realidad, como estoy haciendo las pruebas en casa, no estoy enviando los datos reales del GPS, sino sólo oraciones $RMC simuladas, por lo tanto, no estoy enviando ninguna información acerca de los satelites, que, segun dices, es imprescindible para que sean tenidas en cuenta.
Inicialmente probé mandando deltas SignalK a OpenPlotter, pero al no lograr que se posicionase, decidí intentarlo con NMEA0183 y OpenCPN.
Probaré enviando la información real del GPS.
Muchas gracias de nuevo y feliz 2020.
Hola de nuevo,

Ya estoy enviando la información real del GPS, y OpenCPN funciona correctamente, pero he intentado enviarla a SignalK u OpenPlotter con el siguiente resultado:

Tengo un módulo GPS que puede enviar la información mediante UDP-wifi, tanto en formato NMEA0183 como SignalK.

Puedo recoger dicha información directamente en una conexión de OpenCPN (formato NMEA0183), (puerto 4210 UDP) y reenviarla a una salida UDP para el piloto automático.

Puedo recogerla (formato SignalK) en una conexión del servidor SignalK (OPsensors puerto 55557),y visualizarla en el panel de instrumentos pero no puedo convertirla a NMEA0183 y pasarla a OpenCPN, a pesar de tener activado el plugin correspondiente.

No puedo recogerla (en formato NMEA0183) en una conexión del servidor SignalK definiendo Input Type como NMEA0183.

No puedo recogerla en ninguna conexion de OpenPlotter.

No paro de indagar por la red pero no consigo resolver el problema, de como configurar correctamente el conjunto de OpenPlotter, así que cualquier ayuda será bienvenida.

Muchas gracias.
Yo lo que haría es enviar los datos directamente en formato NMEA0183 desde el modulo a Signal k. A mi no me da problemas el crear una conexión de ese tipo Nosabo :

[Imagen: V4bx26N.png]

Si esa conexión funciona ya no hay que hacer nada mas puesto que Signal K los reenvia en TCP:10110 a todo el mundo Opencpn incluido

¿Cual es concretamente el problema que te impide crear esa conexión?
Hola Pinguino y gracias de nuevo.
Cuando creo una conexión exactamente igual que la que has mostrado, los datos siguen llegando a OpenCPN (porque allí existe una conexión de entrada en el puerto UDP 4210), pero no aparecen en SignalK (panel de instrumentos por ejemplo).

Si creo esa misma conexión con otro puerto (51952 p. ej.) los datos no llegan a ningun sitio.
Ante todo elimina la conexion UDP de opencpn y dejalo solo con la TCP 10110.

Una vez creada la conexión en Signal K debes reiniciar el servidor para activar la nueva conexión. Tras pulsar reiniciar espera unos 10 segundos y veras la lista de conexiones con su barra indicadora en amarillo. Si entran datos allí te lo dice tanto en numero por segundo como en la barra amarilla. Si hay errores de conexión te lo confirmará abajo con un mensaje en rojo. Ese mensaje sera en verde si la conexión esta correcta.
[Imagen: CegWk6k.png]

Si los datos NMEA0183 entran ya se mostrara la posicion en opencpn.
Genial!!!
Como dijiste, al desactivar las conexiones de OpenCPN (salvo la TCP:10110 de entrada y una de salida UDP:4444 que he habilitado para el piloto), todo empezó a funcionar. Envío NMEA al servidor SignalK y los recibo en OpenCPN, en el piloto y en el panel de instrumentos.
No lo entiendo muy bien, pero ya iré aprendiendo.

!MUCHAS GRACIAS!