La aplicación Aqua Map, al igual que otras aplicaciones del mercado náutico, es capaz de conectarse a la instrumentación de la embarcación y mostrar la información recibida.
Es posible obtener la posición GPS recibida de un GPS externo y utilizarla en lugar del GPS integrado en el dispositivo, mostrar el valor de profundidad recibido del sonar, mostrar la dirección de la brújula y utilizarla para orientar los mapas en la aplicación, ver la información del viento recibida por el anemómetro, ver el objetivo AIS recibido por el dispositivo AIS.
Los logros de esta función se basan en diferentes tecnologías superpuestas y en estándares definidos a lo largo de muchos años en diferentes organizaciones de normalización.
Con este artículo queremos ofrecer a los curiosos una visión general de las tecnologías en las que se basa la función sin pretender una discusión técnica exhaustiva y en profundidad.
Paso 1 - Los dispositivos deben ser visibles para la app: la red del barco y la conexión WiFi
En primer lugar es necesario que tus dispositivos estén "conectados" a la misma red para poder verse e intercambiar datos. Tu tablet o smartPhone puede conectarse a un punto de acceso WiFi de la red.
En la configuración más utilizada la red del barco tiene una pasarela WiFi que funciona como punto de acceso Wifi y transmite la información al SmartPone/Tablet. También es posible tener una configuración más sencilla en la que un único dispositivo como un receptor AIS, transmita directamente sus datos a través de WiFi actuando también como punto de acceso.
La conexión puede establecerse en los ajustes WiFi del Tablet/SmartPhone (ver un ejemplo a continuación de la página de ajustes de un iPad)
La red WiFi debe ser la que ofrece el punto de acceso de la red de su embarcación.
Desde el punto de vista técnico, la norma IEEE 802.11 define los protocolos que permiten la comunicación con los dispositivos inalámbricos Wi-Fi actuales, incluidos los routers inalámbricos y los puntos de acceso inalámbricos.
Wi-Fi significa "fidelidad inalámbrica". El lugar de nacimiento técnico de Wi-Fi es Holanda. En 1991, NCR-Corporation y AT&T Corporation inventaron el precursor de 802.11. La primera versión del protocolo 802.11 se publicó en 1997 y ofrecía velocidades de enlace de hasta 2 Mbit/s. En 1999, la WiFi-Alliance se convirtió en la primera red inalámbrica del mundo. En 1999 se constituyó la WiFi-Alliance como asociación comercial que ostenta la marca Wi-Fi, bajo la cual se venden la mayoría de los productos. Hoy en día, en todas partes hay un punto de acceso WiFi y todos los smartphones tienen capacidad WiFi integrada.
Paso 2 - Los dispositivos deben ser capaces de transportar datos a la aplicación: TCP/IP y UDP
El SmartPhone/Tablet y el getway u otro dispositivo de la red del barco deben tener una forma de comunicarse entre sí, identificarse e iniciar un intercambio de datos.
Cuando quieras crear una conexión en Aqua Map necesitas definir entre un protocolo TCP o UDP. Esta selección informa a la aplicación del tipo de biblioteca de software que debe utilizarse para conectar con el dispositivo que envía la información. TCP y UDP forman parte del conjunto de protocolos de Internet y definen la forma en que los dispositivos "hablan" entre sí para intercambiar los paquetes de datos.
Los protocolos TCP y UDP forman parte de la capa de transporte del conjunto de protocolos de Internet. Esta capa establece la conectividad de host a host en forma de servicios de transferencia de mensajes de extremo a extremo que son independientes de la red subyacente e independientes de la estructura de los datos de usuario y de la logística de intercambio de información. La conectividad en la capa de transporte puede clasificarse como orientada a la conexión, implementada en TCP, o sin conexión, implementada en UDP.
El protocolo TCP requiere la indicación de la dirección IP (por ejemplo, 192.168.1.10) del dispositivo que se va a conectar y el número de puerto (ID del canal de comunicación para la aplicación), el protocolo TCP es más robusto y está más protegido contra errores de transmisión, mientras que el protocolo UPD puede sufrir de errores en la comunicación y pérdida de paquetes, pero puede ser más rápido en la comunicación y es más adecuado para aplicaciones como streaming media (audio, vídeo)
El conjunto de protocolos de Internet es el modelo conceptual y el conjunto de protocolos de comunicación utilizados en Internet. Se conoce comúnmente como TCP/IP porque los protocolos fundacionales del conjunto son el Protocolo de Control de Transmisión (TCP) y el Protocolo de Internet (IP). Durante su desarrollo, sus versiones se conocían como modelo del Departamento de Defensa (DoD) porque el desarrollo del método de trabajo en red fue financiado por el Departamento de Defensa de Estados Unidos a través de DARPA (Defense Advanced Research Projects Agency)
El conjunto de protocolos de Internet proporciona una comunicación de datos de extremo a extremo que especifica cómo deben empaquetarse, direccionarse, transmitirse, enrutarse y recibirse los datos. Las normas técnicas subyacentes al conjunto de protocolos de Internet y sus protocolos constituyentes son mantenidas por la Internet Engineering Task Force (IETF).
El conjunto de protocolos de Internet es el resultado de la investigación y el desarrollo llevados a cabo por la Agencia de Proyectos de Investigación Avanzada de Defensa a finales de los años 60. En 1975, se realizó una prueba de comunicaciones TCP/IP de dos redes entre Stanford y el University College de Londres. En noviembre de 1977, se realizó una prueba TCP/IP de tres redes entre sitios de EE.UU., Reino Unido y Noruega. Entre 1978 y 1983 se desarrollaron otros prototipos de TCP/IP en varios centros de investigación.
En marzo de 1982, el Departamento de Defensa de EE.UU. declaró TCP/IP como estándar para todas las redes informáticas militares
La difusión de TCP/IP se vio impulsada en junio de 1989, cuando la Universidad de California en Berkeley accedió a hacer de dominio público el código TCP/IP desarrollado para BSD Unix.
Hoy en día es el estándar para las comunicaciones por Internet.
Paso 3 - Envío y recepción de información significativa: NMEA 0183
Ahora que su Smartphone/Tablet es capaz de conectarse al punto de acceso y tiene un "lenguaje" para intercambiar datos con el dispositivo emisor, tiene que tener una forma de transferir el flujo de bytes recibidos en información significativa para la aplicación en ejecución (por ejemplo, Aqua Map).
La aplicación puede basarse en un "estándar" utilizado por todos los instrumentos de la embarcación para enviar datos. Este estándar es el NMEA 0183.
NMEA 0183 es una especificación eléctrica y de datos combinada para la comunicación entre la electrónica marina, como ecosondas, sonares, anemómetros, pilotos automáticos con girocompás, receptores GPS y muchos otros tipos de instrumentos. Está definida y controlada por la National Marine Electronic Association. En las aplicaciones náuticas de recreo, está desapareciendo poco a poco en favor de la nueva norma NMEA 2000, aunque los sistemas compatibles con NMEA 2000 también envían información en cadenas NMEA0183.
La norma NMEA 0183 utiliza un sencillo protocolo de comunicaciones ASCII en serie que define cómo se transmiten los datos en una "frase" de un "hablante" a varios "oyentes" a la vez.
En la capa de aplicación, la norma también define el contenido de cada tipo de frase (mensaje), para que todos los oyentes (por ejemplo, la aplicación) puedan analizar los mensajes con precisión.
El flujo de bytes recibido se interpreta como una serie de frases NMEA, como en la imagen siguiente
Cada dispositivo transmite diferentes tipos de sentencias todas las sentencias tienen la forma te
$PREFIX,data1,data2,...,dataN*suma de comprobación
El PREFIX es una palabra de la forma YYXXX
Donde YY es el tipo de hablante, por ejemplo GP significa que la sentencia es de un dispositivo GPS, mientras que XXX es el tipo de sentencia.
Por ejemplo, la frase RMC da la "Información mínima de navegación recomendada":
$GPRMC, 092750.000, A, 5321.6802, N, 00630.3372, W, 0.02, 31.66, 280511, , , A*43
Los datos proporcionados como información separada por comas son:
- Hora (UTC),
- Estado,
- Latitud,
- N o S,
- longitud,
- E u O,
- Velocidad sobre tierra (nudos)
- Trayectoria Realizada (grados verdaderos),
- Fecha, ddmmyy
- Variación magnética, grados
- E o W
- Estado A - Datos válidos, V - Datos no válidos, Indicador de modo FAA (NMEA 2.3 y posteriores)
Veamos otras frases importantes:
Del GPS:
GGA - Datos Fijos del Sistema de Posicionamiento Global
GSV - Satélites a la vista
De Compás:
HDT - Rumbo, verdadero
HDM - Rumbo, magnético
De AIS:
AIVDM & AIVDO - Sistema Automático de Información (AIS)
De ecosonda:
DBT - Profundidad por debajo del transductor
DPT - Profundidad del agua
Del anemómetro:
MWD - Dirección y velocidad del viento
MWV - Velocidad y ángulo del viento
Ahora tenemos todas las piezas en su lugar y la aplicación puede mostrar los datos de los sensores en su pantalla :)
Es realmente impresionante pensar cuántas personas, organizaciones y conocimientos han sido necesarios para crear una función fácil de usar en nuestros productos cotidianos. Estamos muy orgullosos de hacer nuestra pequeña contribución a esta historia utilizando los resultados de todos estos esfuerzos para servir a nuestros navegantes.
Enrico Valle, equipo de Aqua Map.