El Internet de las Cosas de código abierto: plataformas y aplicaciones para desarrolladores

El Internet de las Cosas de código abierto: plataformas y aplicaciones para desarrolladores

El 80% de las empresas internacionales considera el Internet de las Cosas como uno de los campos de innovación más importantes en la próxima década. Este es un listado de las plataformas y aplicaciones de código abierto más interesantes dentro del mercado.
BBVAOpen4U
|
25 Ago. 2015

Herramientas de desarrollo, hardware, software inteligente para hogares, plataformas de integración, procesos de monitorización, sistemas operativos… El Internet de las Cosas (IoT) es uno de esos campos tecnológicos del que se espera mucho crecimiento: 17.000 millones de dólares de aquí a 2020, el triple del volumen de negocio actual. Es un mercado en expansión, donde cada vez son más las empresas que valoran la conectividad entre dispositivos y con la Red.

De hecho, según una encuesta de Forrester Research, más del 80% de las empresas internacionales cree que el Internet de las Cosas es el campo más interesante para sus intereses durante la próxima década. Y lo que puede ser un dato aún más importante: el 25% de esas compañías ya están implementando soluciones de IoT. Para Gartner, el crecimiento es imparable: la consultora estima que en 2020 habrá 25.000 millones de dispositivos conectados, 30 veces más que en 2009. Su previsión es que en 2015 haya 4.900 dispositivos IoT, un 30% más que en 2014.

Esto pretende ser un listado de algunas de las plataformas de código abierto más conocidas dentro del mercado, separadas por los distintos campos de actividad:

Herramientas de desarrollo de hardware y software

1. Node-RED:

Node-RED es una herramienta de visualización sencilla y de código abierto para la conexión de dispositivos para el Internet de las Cosas. La herramienta, desarrollada por el departamento Emerging Technology de IBM, permite conectar, un hardware, una API o un servicio online. Node-RED proporciona una interfaz de usuario amigable para que los desarrolladores conecten dispositivos de forma sencilla y rápida. Node-RED está desarrollada en node.js, una plataforma JavaScript del lado del servidor muy utilizada en proyectos de IoT, y se puede ejecutar en la nube.

 

Además, es una herramienta que permite desplegar nuevos nodos para conectar más dispositivos o servicios sin ningún problema. Es una solución escalable. Todo el proyecto está disponible en GitHub bajo una licencia Apache versión 2.0

 

Node-RED podría utilizarse, por ejemplo, para la creación de una aplicación de chat utilizando el entorno Bluemix, la plataforma en la nube de IBM para construir, gestionar y ejecutar aplicaciones de todo tipo. Si eres un desarrollador y estás interesado en el uso de Node-RED para crear una app de chat, lee este tutorial. Este es un ejemplo de la estructura de la página en HTML, que contiene un <div> que recibe los mensajes de chat y un pie de página con los campos de envío. Todo el proceso de manejo de los datos se hace a través de lenguaje JavaScript. 

2. Kinoma Create:

Kinoma Create es un aparato que permite la conexión entre dispositivos sin tener unos conocimientos de programación en JavaScript demasiado elevados. Kinoma Create ya dispone de todo lo necesario para empezar a desarrollar pequeños proyectos de IoT. Sus componentes fundamentales son:

- Una pantalla táctil.

- Un procesador ARM SoC 800 MHz.

- Conexión inalámbrica por Bluetooth y WiFi.

- Varios puertos para conectar periféricos, entre ellos un puerto USB 2.0.

- Una memoria RAM de 128 MB y una memoria flash de 16 MB.

- Una ranura para una tarjeta microSD.

- Altavoz y micrófono.

- Distribución Linux. 

Kinoma Create sirve para todo tipo de proyectos: se pueden conectar sensores de temperatura, luz o movimiento con una finalidad concreta y recibir notificaciones en el teléfono móvil cuando se produzca alguna alteración. Y tener la capacidad para cambiar la condiciones de luz o temperatura desde tu propio dispositivo.

En la web de Kinoma Create existen muchos tutoriales sobre las aplicaciones prácticas de esta tecnología, con acceso al código de desarrollo subido en GitHub: con Kinoma Create se puede desarrollar un sintetizador (Kinoma proporciona el código en abierto para el desarrollo de la interfaz de usuario), una cámara trampa (realiza fotos si algún animal u objeto se interpone en el haz de un rayo láser) o una campana-alarma automática que suena para alertarnos de una situación. 

3. Eclipse IoT:

Eclipse IoT es una plataforma de código abierto que permite el desarrollo en Java de aplicaciones para el Internet de las Cosas. Proporciona un grupo de tecnologías open source para conectar y gestionar varios dispositivos en un entorno IoT.

Además, da soporte para algunos de los estándares abiertos fundamentales para cualquier solución del Internet de las Cosas: MQTT (un protocolo de conexión machine-to-machine, CoAP (un protocolo para la conexión sencilla de los dispositivos a Internet) y Lightweight M2M (un protocolo de comunicación entre servidor y cliente que permite la transmisión de datos o la administración de sensores o móviles). 

Eclipse IoT ofrece servicios de puerta de enlace al Internet de las Cosas para ayudar los desarrolladores a manejar tanto dispositivos como aplicaciones IoT. Dentro de esta plataforma, los programadores contará con el marco de desarrollo Kura, basado en Java y OSGi, que implementa servicios tan importante como:

- Administración de la conectividad en la nube.

- Apoyo a los protocolos de conexión entre dispositivos y servidores.

- Configuración de red WiFi.

- Aplicación remota y configuración y administración de dispositivos. 

Kura no es el único proyecto, ni siquiera el único framework, que permite el desarrollo de Eclipse IoT. Existen otras iniciativas también interesante:

-       Mihini: es un marco de desarrollo de código abierto basado en entorno Linux. Proporciona una API para el desarrollo de aplicaciones machine-to-machine con una curva de aprendizaje muy corta. Los desarrollos con Mihini utilizan Lua como lenguaje de programación.

-       OM2M: implementa el estándar SmartM2M. Proporciona una plataforma de servicios M2M para el desarrollo de servicios independientes que permitan desplegar aplicaciones verticales y diferentes tipos de dispositivos. Dispone de una API REST para la autenticación de máquina, registro de aplicaciones, comunicaciones síncronas y asíncronas, gestión de accesos…

-       Eclipse SCADA: es un conjunto de herramientas que proporciona bibliotecas para el desarrollo de proyectos, tanto el front-end como back-end, interfaz de aplicaciones… Es una solución escalable y totalmente personalizable.

Software inteligente para hogares

4. OpenHUB

A medida que las casas se llenan de dispositivos, aumenta la necesidad de conectarlos para disfrutar de una verdadera experiencia de vivienda inteligente. OpenHUB proporciona una plataforma de integración de dispositivos que, por razones obvias, hablan y se comunican en ‘idiomas’ totalmente distintos. ¿Cómo lo consigue? Con procesos de automatización e interfaces de usuario unitarias. 

- Puede correr en cualquier dispositivo capaz de ejecutar una Máquina Virtual Java, ya sea en un sistema operativo Linux, Mac o Windows.

- Motor de reglas para satisfacer las necesidades de automatización.

- Varias interfaces de usuario nativas.

- Solución de código abierto.

- Mejora constante a través de su comunidad.

- Dispone de APIs para su integración con otros sistemas o plataformas.

Intercambio de información entre aplicaciones y dispositivos

5. IoTSyS

IoTSyS proporcional un sistema de comunicación entre dispositivos basado en protocolos y estándares IPv6, 6LoWPAN, Constrained Application Protocol y Efficient XML Interchange. Su objetivo es proporcionar interfaces interoperables que permitan la conexión entre dispositivos, por ejemplo los sistemas de sensores. La plataforma se inició en el marco del proyecto europeo de investigación IoT6 y está mantenida por el Grupo de Sistemas de Automatización de la Universidad Tecnológica de Viena. Sus utilidades son diversas: conexión de sensores de luz y de movimiento en una persiana, sistemas de climatización, alarma acústica… 

Sistemas operativos

6. Contiki

Contiki es un sistema operativo de código abierto para sistemas del Internet de las Cosas. Permite la conexión de sistemas de ordenadores de 8-bit o sistemas integrados sobre microcontroladores, incluyendo nodos de redes de sensores. Se utiliza en la monitorización de ruidos, medición de energía eléctrica, sistemas de alarma, domótica, vigilancia remota… Está basado en protocolos y estándares como IPv4, IPv6, 6lowpan, RPL y CoAP. Sus características son:

- Protohilos de ejecución.

- Navegador web.

- Servidor web.

- Conectividad TCP/IP.

- Kernel multitarea.

- Cliente remoto usando VNC (Computación Virtual en Red).

7. RIOT

Sus creadores lo definen como “el sistema operativo amigable para el Internet de las Cosas”. RIOT está basado en una arquitectura de microkernel. Se ejecuta en hardwares de 8, 16 y 32 bits y, mediante un puerto nativo, tanto en entornos Linux como en Mac OS. Permite el desarrollo de aplicaciones mediante una programación estándar en lenguajes C y C++. Está bajo una licencia LGPL.

8. TinyOS

TinyOS es un sistema operativo de código abierto para redes de sensores inalámbricas. Está escrito en lenguaje de programación nesC, un dialecto de la sintaxis C optimizado para evitar los problemas derivados de las limitaciones de memoria que existen dentro de las redes de sensores. TinyOS es un proyecto conjunto de la Universidad de Berkeley e Intel. Existen herramientas y librerías en C o Java que aumentan sus funcionalidades y oportunidades de uso.  

9. Brillo

Brillo es el sistema operativo de Google de código abierto para la conexión de los wearable en el Internet de las Cosas, basado en el lenguaje de comunicación Weave, un sistema común que permitiría que todos los dispositivos hablen y se comuniquen en el mismo ‘idioma’. En este caso, no sería necesario que los dispositivos corrieran con Android.

El objetivo de Google con Brillo y Wave es crear un verdadero Internet de las Cosas, donde todos y cada uno de los dispositivos puedan estar conectados realmente: electrodomésticos, redes de sensores, dispositivos móviles o eléctricos… 

Plataformas y herramientas de integración

10. Nimbits

Nimbits es una plataforma (PaaS) de registro de datos para la conexión de sensores en la nube. Es un servicio de código abierto que permite conectarse a redes sociales como Facebook o Twitter, a bases de datos, al motor de conocimiento computacional WolframAlpha… Algunas de sus características fundamentales:

-       Usa el marco de desarrollo Spring.

-       Dispone de una API REST. 

-       Se pueden cargar y descargar datos en formato CSV. 

Síguenos en @BBVAAPIMarket