Ahora que se habla del “Internet of things” (el Internet de las
cosas) en donde la televisión
está integrada con Internet, como ya ocurre de facto con cualquier
televisor moderno, y en un futuro próximo ocurrirá con el coche, la
nevera o hasta el colchón de la cama. Windows ya ha sacada
una versión específica de su sistema operativo para IoT, y parece lógico pensar que la potente
electrónica digital de nuestros barcos debería estar también
preparada para el IoT. Algo
totalmente imposible si permanecemos anclados en el pasado del NMEA.
Con el "Internet of Things", van a aparecer una nueva generación de
equipos de navegación que compartirán datos en distintas plataformas
y equipamientos, para ofrecer ventajas que ahora solo comenzamos a vislumbrar.
Prestaciones que harán mucho más segura la navegación, más
accesible, más placentera y cómoda.
Adiós NMEA...
Cada vez se hace más evidente la necesidad de disponer de un nuevo
protocolo que sea capaz de solucionar las necesidades en un mundo
cada vez más conectado. Existen varios problemas básicos con el
actual estándar NMEA, y el primero de ellos deriva de ser un
protocolo pensado para comunicar datos en red local y con un
limitado número de dispositivos. El segundo es su lenta velocidad de
comunicación. NMEA 0183 transmite a solo 4.800 baudios y a un solo
dispositivo de transmisión. Por su parte, NMEA 2K alcanza los 250
kbaudios y permite la transmisión de hasta 50 elementos en una misma
red, algo perfectamente lógico para lo que entendemos una red de
dispositivos de navegación dentro de un barco, pero insuficiente
para las necesidades que están surgiendo fruto de la alta
conectividad con Internet.
Problemas técnicos o problemas legales
Pero otro de los problemas de NMEA 2K no es de carácter
técnico, aunque como ya hemos comentado no está adaptado a los
tiempos actuales en los que los smartphone, tabletas y placas
integradas, son tan capaces como el mejor equipo multifunción del
mercado. Especialmente, los ordenadores integrados con placas
miniatura como son Raspberry, Pine-64, LattePanda, o UDOO-x86 entre
otros, son extremadamente potentes y están preparados para hacer
mucho más que compartir datos de viento y coordenadas de situación o
competir con las multifunción del mercado.
¡Uno de los problemas principales de NMEA es un asunto legal! NMEA
está publicado y es público para cualquier equipo de desarrolladores
que quieran utilizarlo, sin embargo no es gratuito… Su uso está
sujeto a una licencia que restringe la forma de utilizarlo, para así
prevenir la creación de un software “open source” que utilice el
estándar NMEA.
Además los dos NMEA, así como los otros protocolos propietarios de
algunos famosos fabricantes, fueron creados cuando la
instrumentación típica de los barcos era muy sencilla y con pocas
prestaciones.
Por el contrario, SIGNAL K es código abierto, y de hecho se pueden
descargar las fuentes compilables en Apache versión 2.0, así como la
definición de los protocolos y descripción de interfaces,
(consultar
www.signalk.org).
Ahora hasta la nevera se puede conectar a Internet… ¿Cómo no
deberían hacerlo los barcos para compartir datos de gran importancia
como ya está haciéndose con el AIS? Hay muchos barcos que navegan a
nuestro alrededor con diversas informaciones en cada uno de ellos, y
muchas otras fuentes de información cercanas como son marinas,
puertos, lugares costeros, centros meteorológicos… Datos que pueden
ser cargados en el barco y distribuidos hacia las pantallas
multifunción y a cualquiera de los dispositivos con los que
actualmente solemos navegar, como son tabletas, ordenadores o
teléfonos inteligentes.
Ya estamos dejando atrás la época en la que el protocolo de
comunicación no permitía compartir datos fuera de la red troncal del
barco.
¿Cómo organiza la información SIGNAL K?
El modelo de datos de Signal-K describe una larga y potente
jerarquía de datos organizada en capítulos y subcapítulos para
organizar los datos de nuestro barco o de otros barcos que naveguen
a nuestro alrededor, datos de sistemas de ayuda a la navegación,
datos de marinas o puertos deportivos, datos de puntos de interés,
datos de guías de navegación on-line entre otros. En Signal-K cada
información o dato tiene definida su localización lo cual se conoce
como el "path" o procedencia, como ocurre por ejemplo en las URLs de
Internet, o URI (Uniform Resource Identifier) en SIGNAL-K.
Además de existir datos dinámicos que evolucionan continuamente en
el tiempo, como pueden ser por ejemplo unas coordenadas GPS, o la
velocidad del barco, dirección del viento o datos de sonda, el
modelo de datos de SIGNAL-K es capaz de almacenar y tratar con datos
estáticos como son por ejemplo, la información del barco,
cartografías, datos de una marina, notas de una zona de navegación,
etc.
El protocolo en SIGNAL K
El modelo de seguridad en SIGNAL-K es parecido al que estamos
acostumbrados a utilizar en los ordenadores y se especifican 2
permisos (lectura y escritura para 3 grupos de usuarios (usuarios,
grupos, otros).
El protocolo permite definir cómo interactúan entre sí varios
elementos de la red y cómo se hablarán entre sí. Se definen 5
comandos básicos; List, Get, Put, Subscribe, Unsubscribe.
Lo importante es que el modelo de datos es consistente y por ello,
nuestros instrumentos pueden mostrar tanto nuestros datos del barco
como datos externos. Cada instrumento o sensor mantiene una copia parcial
del modelo de datos con los datos que le son particularmente
necesarios. Por ejemplo, una sonda que recoge datos del sensor de
profundidad sabrá que esa profundidad corresponde a nuestro barco,
pues el modelo de objetos indica que es un dato de batimetría
perteneciente a un barco concreto.
SIGNAL-K pueden interactuar con datos compatibles entre distintos
barcos. Y como todos los elementos de SIGNAL-K y sensores hablan en
el mismo modelo de datos, todos los sensores son compatibles con
todos los instrumentos y viceversa.
Además, es totalmente compresible de forma natural, pues el lenguaje
es descriptivo y cualquier sentencia puede ser leída y comprendida
para conocer que tipo de información está siendo transferida entre
los dispositivos.
Veamos una serialización de datos en JSON (JavaScript Object
Notation) para un velero de nombre Endurance con un MMSI 123456789
que navega a rumbo verdadero de 23º y con un rumbo magnético de 43º,
en una fecha determinada de Enero de 2017 y a una hora.
En el siguiente ejemplo se utiliza JSON para intercambiar datos,
aunque esto no quiere decir que SIGNAL-K esté circunscrito
necesariamente al modelo de objetos de JavaScripts como lenguaje de
transmisión de la información.
{
"self":
"123456789",
"vessels":
{
"123456789":
{
"name":
"endurance",
"mmsi":
123456789,
"navigation":
{
"headingTrue":
{
"value":
23,
"source":
"self",
"timestamp":
"2017-01-24T00:15:41Z"
},
"headingMagnetic":
{
"value":
43,
"source":
"self",
"timestamp":
"2017-01-24T00:15:41Z"
}
}
}
}
}
Transmisión de datos en SIGNAL K
SIGNAL-K nos ofrece un modelo de datos extensible y capaz de dar
cabida a cualquier fuente de información, sea de nuestro barco,
otros barcos, o muchas otras fuentes de datos como ya hemos
comentado, permitiéndose la transmisión de estos datos de forma
eficiente entre los diferentes elementos, equipos y sensores.
El modelo de datos está formado por una estructura de meta-datos en
forma de árbol jerarquizado y transferido, por ejemplo, como una
cadena de caracteres en lenguaje Javacript Object Notification (JSON),
en la cual se ha filtrado sólo la información necesaria. Por
ejemplo, si un equipo sólo necesita la información de velocidad del
barco, la cadena de datos transmitida será simplemente;
Vessels.localBoat.navigation.speedThroughWater
O quizás hayamos transmitido todos los datos de navegación como;
Vessels.localBoat.navigation
O quizás deseemos ver en nuestra pantalla multifunción los datos de
viento de cualquier fuente que tengamos disponible; SIGNAL-K admite
la fusión de datos desde distintas fuentes para que diversos equipos
puedan interoperar entre sí, lo cual sin duda dará lugar a nuevas
prestaciones y ventajas en los próximos equipos electrónicos de
navegación. Por ejemplo, un chart-plotter podría lanzar esta
sentencia para recibir meteo de todo lo que tengamos a nuestra
disposición en este momento incluyendo los datos meteo de otros
barcos que naveguen a nuestro alrededor. ¡Impresionante ¿verdad?!
Var
windVectors
=
Array.prototype.slice(vessels)
.map(function(node)
{
return
node.environment.wind
});
Signal-K define métodos para combinar datos dentro de familias, en
vez de tener que definir cientos de mensajes específicos. Existen
unos pocos formatos de mensajes que pueden contener cualquier
combinación de datos. O sea, no necesitamos crear un nuevo mensaje
cada vez que salga un nuevo dispositivo. Así, cualquier dispositivo
puede leer cualquier mensaje y un nuevo dispositivo puede introducir
un nuevo tipo de datos que será entendido por los anteriores
dispositivos sin tener que hacer actualizaciones en el firmware.
Internet es el
modo de transmisión
SIGNAL-K, aunque no de forma exclusiva, transmite en JSON que es
totalmente nativo a Internet, totalmente nativo a cualquier
navegador de Internet y por tanto, totalmente compatible con la
forma en que trabajamos actualmente, incluyendo WiFi, Ethernet, USB,
Bluetooth, telefonía 3G, y todo lo que esté por venir.
A diferencia de NMEAs, no se define ningún protocolo de transporte o
de cableado específico. Los mensajes JSON pueden ser transferidos
mediante cualquier "capa" de transporte, aunque por defecto se
utilice con muy buenos motivos TCP/IP o transmisión serie.
Y es importante remarcar que lo que se transmite es una cadena de
caracteres en lenguaje JSON por lo que podemos "serializar" los
mensajes y datos a través de redes y cables en RS232/442, CAN-Bus,
Onewire o lo que sea.
NMEA comenzó transmitiendo a 4800 baudios para pasar a 38.400
baudios en su última versión y NMEA2K subió a 250.000 baudios, lo
cual encajaba con las necesidades exigidas por ejemplo por los AIS.
Pero ahora cualquier tableta, Smartphone o red WiFi supera los 54
Mbits subiendo a 1.000 Mbits en las redes de cable Ethernet, lo cual
permite compartir
video y datos
gráficos
de alta resolución o datos de alta densidad de información. Datos
que son totalmente adecuados a SIGNAL-K e imposibles de digerir o
ser ni siquiera planteables con NMEA.
SIGNAL-K y NMEA
Para que SIGNAL-K pueda ser mayoritariamente aceptado, es necesario
que soporte conversión desde NMEA0183, NMEA2000 y SeaTalk. Pronto
veremos sensores y transductores que saquen datos nativos en SIGNAL-K,
pero por ahora tenemos que utilizar un "conversor" que tome datos de
NMEA o Seatalk y devuelva Signal-K. El asunto ya está resuelto y el producto se llama iKommunicate, está fabricado por Digital Yacht. Se trata de una
"caja-negra" que permite hacer compatible ambos mundos convirtiendo
en tiempo real NEMA0183 y MMEA2000 en datos SIGNAL-K y de forma "plug&Play"
sin tener nada más que enchufar el conversor.
Una solución alternativa para los más técnicos consiste en utilizar
Raspberry o placa de ordenador parecida para montar un servidor de Signal-K por
muy poco esfuerzo y dinero cuyas fuentes se pueden descargar desde
la web oficial de Signal-K como veremos en otros artículos de
próxima publicación.
App
NMEA Remote
Aunque existe otras aplicaciones para Android o IOs, esta App descargable
desde Apple Store permite desde 3,99€ representar en un iPAd o
iPhone los datos de navegación que posiblemente hayamos
reconvertido desde la red de datos NMEA actual de nuestro
barco mediante un iKommunicate o directamente obtenidos en
SIGNAL-K por otros medios. NMEA-Remote también procesa
directamente datos NMEA y Signal-K y con esta solución tendremos
posiblemente una de las mejores pantallas de datos que
pudiéramos instalar en nuestro barco.
|
Artículos relacionados:
-
NMEA; compartir la electrónica en el barco
-
Potencia al máximo
la electrónica de tu barco
-
Datos e Internet a bordo
-
iPad y otras "tablets" a bordo
-
La batalla de la "tablets"
náuticas
-
¿Puede fallar el GPS?
-
MaxSea TimeZero ¿Gratis y en iPad?
-
Electrónica marina; el futuro ya está aquí
-
ChartPlotter; ¿Para cuándo el futuro?
-
MaxSea; todo el poder de la cartografía
-
PC marino; la
potencia está en el Software
-
Electrónica marina ¿Hacia el PC?