Foro Navegantes

Versión completa: Conexiones NMEA0183 en Signal K ¿Como se hacen?
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Páginas: 1 2 3 4
Los que usamos Openplotter tenemos la suerte de poder recurrir a la herramienta Signal K como central de datos de nuestra embarcación. Signal K tiene la enorme ventaja de poder trabajar con todo tipo de datos. Bien sea los de tipo NMEA0183 como los N2K así como los datos directamente extraídos de sensores conectados a nuestra Rpi como los de rumbo, barométricos, temperatura Etc. Ademas tiene la capacidad de transformarlos y enviarlos por la red haciéndolos disponibles a un gran grupo de instrumentos que estén conectados a la misma red wifi o cableada, si la tenemos. Cuenta también con otras herramientas como plugins que permiten crear datos nuevos a partir de datos existentes, por ejemplo viento real a partir de viento aparente y velocidad del barco.

Evidentemente, cuando una herramienta se vuelve tan poderosa es inevitable que también se haga mas complejo su uso. Hoy abordaremos el ejemplo mas sencillo de uso que se refiere a la creación de unas conexiones de tipo físico, con puertos serie que suelen ser las que usan los sistemas NMEA0183.

Una advertencia. Muchos estáis habituados a crear estas conexiones directamente en opencpn, la herramienta cartográfica de openplotter. No es lo adecuado. Esto se debe a que si creamos estas conexiones en opencpn solo funcionaran en esta aplicación. No es lo que queremos. Al hacerlo directamente en Signal K sera este servidor el encargado de distribuir todos los datos a todas las otras herramienta o dispositivos, incluido opencpn. Lo unico que necesitaremos en opencpn es crear una conexion de red de tipo Signal k con direccion localhost y puerto 3000:
[Imagen: 8YiRAGI.png]

Así opencpn recibirá TODOS los datos que Signal K envía. A su vez todos los demás dispositivos o aplicaciones podrán también disponer y mostrar esos datos. En sistemas opencpn mas obsoletos puede que tengamos que usar la conexión de red TCP a localhost y puerto 10110 ya que no dispone de opción signal K.

EL SERVIDOR SIGNAL K
Como bien dice su nombre, Signal K funciona en modo servidor. Vamos, como una web de Internet pero que corre directamente en nuestro ordenador o Rpi. Como servidor de red que es necesitaremos saber la dirección ip y el puerto para poder acceder a el. No es complicado. Si estamos usando nuestra Rpi con openplotter bastara con ir al navegador de Internet y meter en la barra de direcciones:

localhost:3000

donde localhost hace referencia al mismo ordenador que usamos y 3000 es el puerto de uso del servidor Signal K. No olvidemos poner los dos puntos : entre ambos datos. Siempre ip:puerto. Detalle importante para los mas avanzados. Esto es una herramienta muy valiosa para aquellos que usan un sistema openplotter sin pantalla. ¿Por que? por que desde cualquier dispositivo que tengamos conectado a la red podremos manejar y configurar todo el servidor. Solo necesitaremos saber cual es la ip que tiene asignada la Rpi dentro de la red. Por ejemplo, si la Rpi tiene asignada la ip 192.168.43.10 podemos usarla desde nuestro smartphone metiendo en el chrome 192.168.43.10:300 y desde el mismo teléfono hacer las tareas sin necesidad de mas hardware. Cuando te acostumbras a hacer este tipo de cosas es cuando dices "¡guau!" sobre Signal K.

Pero...vayamos a lo mas sencillo y veamos que aparece en nuestra pantalla del navegador la primera vez que accedemos a Signal K con localhost:3000

[Imagen: IbDdbnc.png]

Esta es la vista que se nos presenta la primera vez que lo usamos. En ella se nos pide que introduzcamos un nombre de usuario y una contraseña para securizar el acceso. Podemos poner las que deseemos y una vez hecho esto ya podremos iniciar sesión con nuestros flamantes usuario y contraseña. No es necesario usar una contraseña muy segura si solo vamos a conectarnos en nuestro barco. Pero hay algunos que se conectan a su Signal K desde miles de kilómetros de distancia a través de Internet y en esos casos si que se requieren contraseñas fiables. Una vez ya iniciada la sesión esta es la pantalla principal que encontraremos:
[Imagen: z6VGtCi.png]

En ella veremos las principales opciones de Signal k así como las conexiones que tenemos creadas, si las hay, y el volumen de datos que manejan, si los hay.

Ahora es el momento adecuado para conectar nuestro GPS-USB. Una vez conectado pulsaremos en el boton superior del Signal K donde pone "restart". Así reiniciamos el servidor y nos aseguramos de que encontrará nuestro GPS en su momento. Una vez reiniciado -toma unos pocos segundos continuaremos con las conexiones.

Para proceder a crear nuestras conexiones pulsaremos en la opción "server" (servidor) que nos permite modificar parámetros del servidor. Nos aparecerán estas opciones:
[Imagen: nl7fBgI.png]

Pulsaremos sobre "data connections" (conexiones de datos) para crear nuestra conexión nueva. Se abre esta vista:
[Imagen: PU9G67p.png]

Aquí deben aparecer las conexiones que tenemos ya creadas. Como en nuestro caso no hay ninguna todavia nos limitaremos a pulsar el boton "Add" (añadir) para crear una conexion Nueva.

Continuará....
Ahora es donde viene el meollo de la cuestion. Tras pulsar Add los primeros campos a completar son:
[Imagen: V9McVQk.png]

El tipo de datos evidentemente escogeremos NMEA0183 ya que nuestro GPS funciona con ese sistema.

El botón de "enabled" (activado) debe estar... activado, claro está.

El campo ID es para que le pongamos un nombre de nuestra elección a esta conexión, por ejemplo GPS.

El "NMEA0183 source" (fuente NMEA0183) nos pregunta de donde vendrán tales datos. Como se trata de una conexión de puerto serie escogeremos la opción "serial".

Ahora veamos que sucede al pulsar en el desplegable donde pone "serial port" (puerto serie):

Nos pueden aparecer opciones similares a estas.
[Imagen: SDhKnfS.png]

Nota aclaratoria. Normalmente nuestro dispositivo serie suele identificarse como de tipo ttyUSB0 o tal vez como dispositivo ttyACM0 o similares. Sin embargo en la lista de la imagen hay tres opciones a destacar. La primera es la de la flecha verde. Como se puede ver se ha identificado como ttyUSB0. Podríamos escoger esta y funcionaria pero merece la pena ver las otras dos.

La de la flecha roja "by-id". Esto quiere decir que se identifica nuestro dispositivo por el fabricante y su identificador. Esta es muy interesante ya que sin importar en que puerto USB conectemos este GPS el servidor lo reconocerá correctamente y lo usará. Si hubiéramos usado la opción de simplemente ttyUSB0 podríamos tener problemas si disponemos de mas dispositivos USB ya que se podrían confundir unos con otros. Usando el sistema by-id no pasaría eso.

Pero... ¿y si tenemos mas de un dispositivo serie y ademas estos comparten el mismo id del fabricante? Esto no es raro en absoluto. En realidad me ha pasado personalmente. Para eso disponemos de la opción que marca la flecha azul "by-path" (por camino) es decir que decidirá asignar la conexión correcta siempre y cuando conectemos ese dispositivo serie en el mismo conector usb -el camino- y no lo cambiemos a otro. En tal caso cada conexión ira a su sitio aunque compartan identificador siempre que no las movamos de su puerto USB.

Se que esto es farragoso y pesado. Pero es importante para lograr conexiones fiables y que no den problemas.

Ahora ya solo queda asignar el "baud rate" (velocidad en baudios) que normalmente es de 4800 para los GPS y 38400 para los AIS. Hay algunos GPS que pueden funcionar a una velocidad distinta por lo que si con 4800 no funcionan debemos probar con 9600.

Ahora ya podemos pulsar el botón de abajo "Apply" (aplicar cambios) y tras reiniciar con "restart" veremos nuestra nueva conexion y un marcador amarillo que muestra que los datos NMEA están entrando correctamente. Si nuestro opencpn esta correctamente conectado a signal k ya veremos nuestra posición o datos AIS en la pantalla.


COSAS A CONSIDERAR

Todo lo que entra como datos NMEA0183 dentro de Signal K es reenviado por el puerto 3000 en formato signal K y por el puerto 10110 en TCP.

Todos los datos que NO entran como NMEA0183 sino en el resto de formatos son reenviados por el puerto 3000 pero NO son enviados por TCP 10110. Si queremos que sean enviados deberemos usar un plugin de signal K para convertirlos en NMEA0183. esto antes era necesario para opencpn pero actualmente no ya que opencpn entiende los datos signal K directamente y eso facilita las cosas.

Esto es lo básico como punto de partida. Espero os sirva para experimentar creando conexiones. También podéis plantear vuestras dudas respecto a conexiones en este hilo para centrar esta cuestión mas especificamente.

Suerte.
Uauuuu!  adoracion

Muchas gracias! Que currada! 

Bravo

El lunes lo pruebo!
(01-05-2021, 10:14 PM)onilum escribió: [ -> ]Uauuuu!  adoracion

Muchas gracias! Que currada! 

Bravo

El lunes lo pruebo!

Ok. Ya nos contaras si te ha servido o tenemos que hilar mas fino. Tomate tu tiempo y trata de disfrutar por el camino.
Buen día!

Probé ayer la Rpi y FUNCIONÓ!  Pirata (Grácias Pinguino adoracion)

 Parece que todo bien, que la instalación de la imágen en la tarjeta se hizo correctamente y que funciona todo, hasta donde yo puedo darme cuenta bien.
 
Tengo unas cuantas preguntas, las dejo por aquí lo más claro y breve que pueda, para que me respondáis cuando tengáis algo de tiempo. Si debo abrir otro hilo al respecto para no cargar otra vez de mensajes y consultas este, avisadme y lo abro.

 *Guardé las cartas de Opencpn en una memoria externa, la cual conecto via usb a la Rpi, para que Open las pueda cargar, la SD és única y exclusivamente para la imagen de Openploter? O puedo por ejemplo guardar las cartas en ella también? 

 *Vi en el primer post del hilo de instalación de Openplotter que mencionas como muy importante, que hay que expandir la tarjeta SD. NO se donde acceder al terminal que comentas, y ejecutar el comando (sudo raspi-config). Si no estoy equivocado, entiendo algo como que desde el terminal este, introduciendo comandos puedo instalar o desinstalar diferentes programas, y ejecutar acciones, pero por ahora creo que aún no estoy capacitado para meterme en nada de eso. Simplemente saber como expander la SD, si és necesario hacerlo.

 *Cree las conexiones del GPS y del AIS, el GPS por una parte me queda conectado, se queda con la linea amarilla, de señal nmea0183 aunque no me posiciona el barco en Opencpn, tampoco produce destellos el led que tiene que con el pc destellaba en verde. Tengo que decir que lo tuve que probar dentro de casa con la rpi conectada a la tv y no pude sacar el gps al exterior!! Igual no coje señal?

* El Ais directamente sale en la lista de conexiones pero no se pone con la linea amarilla de conexion, OJO igual pasa lo mismo, estoy en casa y aqui no hay barcos Cunao
[attachment=5261]
* Mi última pregunta, por ahora es si hay alguna manera ahora que tengo el Openplotter almenos medio configurado de poder volcarlo al wifi y manejar desde un pc? Si no és muy complicado... Tengo de pantalla la TV con un cable no muy largo y un teclado y ratón con cable que pillé del ordenador del taller... Es decir, no lo tengo muy práctico, ni comod para hacer pruebas, si és muy engorroso voy a comprar un teclado, un ratón inalámbrico y una pantallita a 12V, aunque si hay otras opciones me ahorraría el gasto.

Grácias de nuevo!! Hemos dado un paso!! Bier Bravo
¡Gracias pinguino!

Por la pandemia solo pude navegar un poco el año pasado y se me quedó el proyecto Rpi parado.
Me he animado a ponerme de nuevo gracias a la divulgación de tus conocimientos.  Pirata Gracias
Brindis
Hola Smile
(04-05-2021, 06:55 AM)onilum escribió: [ -> ]...
 *Guardé las cartas de Opencpn en una memoria externa, la cual conecto via usb a la Rpi, para que Open las pueda cargar, la SD és única y exclusivamente para la imagen de Openploter? O puedo por ejemplo guardar las cartas en ella también? 

Se puede guardar archivos en la misma tarjeta SD. Para eso la expandes, para aprovechar todo el espacio disponible Smile


 *Vi en el primer post del hilo de instalación de Openplotter que mencionas como muy importante, que hay que expandir la tarjeta SD. NO se donde acceder al terminal que comentas, y ejecutar el comando (sudo raspi-config). Si no estoy equivocado, entiendo algo como que desde el terminal este, introduciendo comandos puedo instalar o desinstalar diferentes programas, y ejecutar acciones, pero por ahora creo que aún no estoy capacitado para meterme en nada de eso. Simplemente saber como expander la SD, si és necesario hacerlo.

No te asustes por el terminal, es una herramienta muy potente, pero no implica grandes conocimientos para hacer cosas sencillas (actualizar, listar, modificar parámetros...) Sip
En efecto puedes (y debes) expandir la tarjeta sd con el terminal. Para acceder a él, tienes el menú de aplicaciones (supongo, no tengo openplotter instalado, pero los linux son todos parecidos) o usar una combinación de teclas, para este caso, pulsa simultáneamente Ctrl, Alt, y la tecla T (de terminal). Se te abrirá una pantallita negra con letras (rollo el antiguo MS-DOS) y allí es donde debes escribir el comando que quieres, en este caso es sudo raspi-config, que arrancará la aplicación de configuración y te permitirá, siguiendo los pasos que has visto, expandir la tarjeta SD Smile


 *Cree las conexiones del GPS y del AIS, el GPS por una parte me queda conectado, se queda con la linea amarilla, de señal nmea0183 aunque no me posiciona el barco en Opencpn, tampoco produce destellos el led que tiene que con el pc destellaba en verde. Tengo que decir que lo tuve que probar dentro de casa con la rpi conectada a la tv y no pude sacar el gps al exterior!! Igual no coje señal?

Aquí ya entro en el mundo de las suposiciones, porque no tengo el Openploter instalado, pero lo he usado. Los GPS usb (y otros dispositivos, como los modems usb) tienen un código de luces para indicar su estado. Si la luz no es verde, muy probablemente, indica que no tiene cobertura de satélites, y por eso no te posiciona. Suelen tardar bastante en coger cobertura en interiores (si lo consiguen...) Pero la instalación parece estar bien. Cuando estés en el barco (o en el exterior) parpadeará un rato hasta que quede el pilotito fijo, al coger cobertura Smile

* El Ais directamente sale en la lista de conexiones pero no se pone con la linea amarilla de conexion, OJO igual pasa lo mismo, estoy en casa y aqui no hay barcos Cunao

Tiene pinta de ser el mismo error (sin cobertura) pero piensa que, a diferencia del gps, els AIS necesita recibir señal de radio y tener barcos cerca... parece aún más complicado dentro de casa Loco

* Mi última pregunta, por ahora es si hay alguna manera ahora que tengo el Openplotter almenos medio configurado de poder volcarlo al wifi y manejar desde un pc? Si no és muy complicado... Tengo de pantalla la TV con un cable no muy largo y un teclado y ratón con cable que pillé del ordenador del taller... Es decir, no lo tengo muy práctico, ni comod para hacer pruebas, si és muy engorroso voy a comprar un teclado, un ratón inalámbrico y una pantallita a 12V, aunque si hay otras opciones me ahorraría el gasto.

En esto del Linux, opciones siempre hay Big Grin otra cosa es que sea sencillo Cunao  La forma correcta de conectarte al servidor de openplotter desde un pc te la explicará ahora alguien con más mañas que yo, paciencia Smile  Pero para no comprar nada y aceder a la raspberry desde un ordenador conectado a la misma red wifi, tienes por ejemplo el protocolo SSH, o una VPN, o... vamos que opciones tienes, no compres nada Wink
...
Saludos y Brindis
(04-05-2021, 08:22 AM)Parazoa escribió: [ -> ]Hola Smile
Saludos y Brindis

Añadiendo a lo que te comenta Parazoa...

En el GPS siempre hay datos. Incluso cuando no tiene suficiente cobertura, por eso ves la linea amarilla. Simplemente... en esos datos dice que no hay posición. Por eso el icono de opencpn no cambia a verde. Lo hará cuando estés en el exterior.

Respecto al AIS, si no hay barcos no hay datos y por tanto hasta que no vayas al puerto y captes algunos no veras nada amarillo en la linea.

Las cartas puedes tenerlas en un USB, pero es mejor tenerlas en la misma SD. Usa una SD buena, de buena capacidad -al menos 32 GB- y todo ira mas rápido con las cartas en la SD. Si esta expandida con el raspi-config tienes todo el espacio disponible. El USB lo usas para guardar en el cosas menos relevantes como música y documentos o películas.

Respecto a lo de conectar desde fuera... luego te escribo que la gatita me está dando la paliza y tengo que atenderla.
Respecto a lo de manejarla a distancia... 

La clave es saber la dirección ip de la Rpi en la red a la que esta conectada. Cuando conectes tu rpi a la red de casa mira el icono de conexiones y al poner el puntero del ratón encima sin pulsar aparecerá la ip que tu red le ha otorgado a la Rpi.

Cuando la conectes a otra red como, por ejemplo, una creada con tu teléfono o la del router de tu barco -si lo tienes- o la del mismo AP de la Rpi la ip sera casi seguro distinta compruébala para saber cual tiene en cada red.

Una vez que ya sabes la ip de la rpi ya solo se trata de ver que método usar. Por ejemplo, si tienes opencpn instalado en tu ordenador basta con crear una conexión de red de tipo signal k, puerto 3000 e ip -la de la rpi- para que tu opencpn en el ordenador, tableta o teléfono funcionen con los datos de la Rpi.

Si lo que quieres es manejar el servidor signal k para crear nuevas conexiones, modificarlas, instalar plugins, configurarlos Etc lo mejor es ir al navegador de tu dispositivo -ordenador, teléfono, tableta-y meter la ip de la raspberri y el puerto 3000 y ya lo estas manejando a distancia como si estuvieras haciéndolo desde la misma rpi.

Si lo que quieres es manejarlo por escritorio remoto viendo en tu pantalla a distancia un clon de la pantalla de la rpi debes usar realvnc:

https://www.realvnc.com/es/connect/download/viewer/

Tras instalar el cliente en tu ordenador, teléfono, tableta ya te puedes conectar usando la ip de la rpi. Comprueba que tienes el escritorio vnc activado en tu rpi en la aplicación de la configuración de Raspberry pi, en la pestaña interfaces.

Lo del SSH lo dejaremos para usuarios mas avanzados.
Hola a todos! 

Sigo teniendo algunos problemas... La conexión por vnc al introducir el IP de la Rpi me pide un usuario y contraseña que no coincide con el usuario y contraseña de la cuenta vnc que he creado. No soy capaz de saber que usuario y contraseña introducir.
Después de varios intentos lo he dejado y he intentado conectar el pc portátil al opencpn de la rpi... Por desgrácia tampoco sin éxito!  Meparto

Entiendo que en el opencpn de la Rpi debo dejar como dirección de red el (localhoost) envío imagen por si me puedes verificar que lo tenga bien introducido porque después de probar con otros IP no se si lo he escrito correctamente.
[attachment=5270]

I en opencpn del portàtil he introducido el IP de la rpi y el puerto 3000. 
[attachment=5271]

Solo tengo las cartas cargadas en la rpi, en el portátil no las he cargado debería ver al estar conectado exactamente la pantalla de la Rpi? Es decir vería la cartografía en el portátil aún sin tener la cargada en el? Es así? 

Saludoos!!
P.d.: La ampliación de la tarjeta si me ha funcionado y tengo ya también localizado el terminal! No me salía el lunes en la barra de herramientas y hoy por arte de magia lo tengo allí!  Meparto O no lo vi....  Cunao
Credenciales VNC SERVER
(No son los datos de su cuenta de RealVNC)

NOMBRE USUARIO:
CONTRASEÑA:

(Esto es lo que me pide el VNC) 
Nosabo
(05-05-2021, 07:23 PM)onilum escribió: [ -> ]Credenciales VNC SERVER
(No son los datos de su cuenta de RealVNC)

NOMBRE USUARIO:
CONTRASEÑA:

(Esto es lo que me pide el VNC) 
Nosabo

Asegurate de no haber instalado el servidor. Lo que debes instalar es el cliente. La rpi ya es servidor. Si estas usando el cliente o viewer el usuario que te pide es el que usa la rpi es decir pi y la contraseña sera la que le pusiste tu al usuario pi.
(05-05-2021, 07:32 PM)pinguino escribió: [ -> ]Asegurate de no haber instalado el servidor. Lo que debes instalar es el cliente. La rpi ya es servidor.

Vnc viewer. Este és el que he instalado, me pasaste el enlace. Diría que es el correcto
(05-05-2021, 07:32 PM)pinguino escribió: [ -> ]Asegurate de no haber instalado el servidor. Lo que debes instalar es el cliente. La rpi ya es servidor. Si estas usando el cliente o viewer el usuario que te pide es el que usa la rpi es decir pi y la contraseña sera la que le pusiste tu al usuario pi.

Ok! Lo pruebo
Páginas: 1 2 3 4