Procesos digitales
La idea del código abierto existe desde hace años, mucho antes del movimiento hacia el software de código abierto a finales de la década de 1980, incluso antes de los ordenadores y mucho antes de las herramientas del Internet de las Cosas (IoT) que existen hoy en día en el mercado. En los primeros tiempos de la automoción, George Selden era el propietario de la patente del motor de gas de dos ciclos, lo que significaba que ningún fabricante de automóviles podía desviarse del diseño y los requisitos básicos de Selden sin ser demandado. Henry Ford puso fin a esta situación impugnando con éxito la patente de Selden y haciéndola prácticamente inútil.
Esta acción también dio lugar a la Asociación de Fabricantes de Vehículos de Motor y a la "concesión de licencias cruzadas", que permitió a los fabricantes de automóviles estadounidenses desarrollar y compartir sus innovaciones abiertamente sin la amenaza de litigios entre varias empresas automovilísticas. Se podría decir que este enfoque aceleró la innovación y la disponibilidad de esas nuevas tecnologías para los consumidores en general. Avancemos hasta 2015: nos encontramos en un momento crucial de la historia de la humanidad, en el que buscamos soluciones de código abierto para acelerar la innovación y la adopción del IoT.
Impulsores del código abierto
La popularidad del código abierto se debe a muchos factores: Los consumidores quieren utilizar una gran variedad de dispositivos de tecnología de consumo, y no quieren estar limitados a utilizar dispositivos de un proveedor específico (algunos relojes inteligentes sólo pueden emparejarse con el smartphone del mismo proveedor).
Los proveedores de dispositivos IoT quieren aumentar el número de ecosistemas tecnológicos en los que sus dispositivos puedan integrarse sin mayor esfuerzo. Los desarrolladores de aplicaciones quieren ser compatibles con una amplia gama de dispositivos sin tener que desarrollar código específico del proveedor.
Las soluciones de código abierto permiten esta escala, velocidad de innovación y flexibilidad. Escala Para poder conectar y dar soporte a entre 50.000 y 70.000 millones de sensores en la próxima década, se necesitarán potencialmente millones de routers, pasarelas y servidores de datos. No hay forma de alcanzar estos niveles de escala sin depender de marcos y plataformas de código abierto dentro de esa infraestructura. Cualquier otro enfoque será sencillamente inasequible.
Velocidad de innovación Las tecnologías de código abierto apoyan la innovación rápida a través de varias características ventajosas, lo que permite un enfoque de adopción más natural dentro de la empresa. Son gratuitas y generalmente fáciles de descargar, instalar y poner en marcha. Esto permite explorar y experimentar fácilmente con nuevas tecnologías y permite a las empresas sentirse cómodas con el software en proyectos más pequeños y no críticos para la misión antes de que se requiera un compromiso financiero. Además, el software de código abierto permite la innovación sin permisos, aliviando las preocupaciones sobre los derechos de autor o las demandas.
En particular, el código abierto promueve la innovación por integración, donde los desarrolladores crean nuevos sistemas combinando componentes de código abierto disponibles libremente. Una vibrante comunidad de desarrolladores Los proyectos de software de código abierto tienden a promover la innovación más rápidamente que las soluciones propietarias, porque atraen las contribuciones de una gran comunidad de desarrolladores.
La acumulación de esta participación comunitaria acelera la entrega de las características clave y el ecosistema que necesitan las empresas. El resultado es que el código abierto suele ofrecer las capacidades deseadas más rápidamente que las alternativas propietarias. Interoperabilidad La mejor manera posible de que una nueva tecnología logre una rápida adopción es combinando estándares abiertos con una sólida implementación de código abierto. Las implementaciones de código abierto proporcionan una vía de adopción fácil con interoperabilidad, y reducen el coste de entrada en el mercado.
Los desarrolladores pueden dedicar menos tiempo a la implementación de un estándar y centrarse, en cambio, en la creación de un software que proporcione a la empresa las características diferenciadoras del producto que los clientes valoran. No hay bloqueo Una de las principales ventajas de las soluciones de código abierto es que no obligan a la empresa a seguir a un proveedor propietario. El coste de cambiar de solución y de proveedor suele ser elevado, lo que mantiene a las empresas y a las startups como rehenes de los proveedores de servicios propietarios.
El código abierto mitiga el riesgo de que las soluciones propietarias dejen de funcionar o de recibir soporte. ¿Cuántas empresas han comprado software propietario y han invertido en costosas personalizaciones, sólo para quedarse con un sistema sin soporte o con una costosa ruta de actualización?
Herramientas de desarrollo del IoT
1. Arduino
Arduino es una plataforma de creación de prototipos de código abierto basada en hardware y software de fácil uso. Es tanto una especificación de hardware para la electrónica interactiva como un conjunto de software que incluye un IDE y el lenguaje de programación Arduino. El sitio web explica que Arduino es "una herramienta para crear ordenadores que pueden percibir y controlar más del mundo físico que tu ordenador de sobremesa". Proyecto: Una lámpara nocturna inteligente para niños: se ilumina cuando está oscuro y cambia de color automáticamente. ¡Tutorial paso a paso con el código fuente completo!
2. Proyecto Eclipse IoT
¿Has oído hablar ya del lenguaje de programación Lua? Eclipse patrocina varios proyectos diferentes en torno al IoT. Incluyen marcos y servicios de aplicación, implementaciones de código abierto de protocolos IoT y herramientas para trabajar con Lua, que Eclipse está promoviendo como un lenguaje de programación IoT ideal. Los proyectos relacionados con Eclipse son Mihini, Koneki y Paho. Proyecto: El proyecto Paho proporciona implementaciones fiables de código abierto de protocolos de mensajería abiertos y estándar dirigidos a aplicaciones nuevas, existentes y emergentes para Máquina a Máquina (M2M) e Internet de las Cosas (IoT).
3. Kinoma
Kinoma, una plataforma de creación de prototipos de hardware de Marvell Semiconductor, engloba tres proyectos diferentes de código abierto. Kimona Create es un kit de construcción DIY para la creación de prototipos de dispositivos electrónicos. Kimona Studio es el entorno de desarrollo que funciona con Create y el Kinoma Platform Runtime. Kimona Connect es una aplicación gratuita para iOS y Android que enlaza smartphones y mesas con dispositivos IoT. Github Sparkle Motion: Crea un mapa mundial de LEDs impulsado por los datos de tráfico global de Twitter.
4. M2MLabs Mainspring
M2MLabs Mainspring es un marco de aplicación de código abierto para la construcción de aplicaciones machine to machine (M2M) como la monitorización remota, la gestión de flotas o la red inteligente.Sus capacidades incluyen el modelado flexible de dispositivos, la configuración de dispositivos, la comunicación entre dispositivos y aplicaciones, la validación y normalización de datos, el almacenamiento de datos a largo plazo y las funciones de recuperación de datos. Se basa en Java y en la base de datos NoSQL Apache Cassandra. Las aplicaciones M2M pueden ser prototipadas en horas en lugar de semanas y finalmente transferidas a un entorno de ejecución de alto rendimiento construido sobre un servidor J2EE estándar y la base de datos Apache Cassandra altamente escalable. Proyecto de ejemplo del tutorial: Este tutorial cubre el modelado de sensores y dispositivos, la creación de dispositivos, la recuperación de datos y la visualización de datos en la plataforma M2M.
5. Node-RED
Una herramienta visual para el cableado de la Internet de las Cosas, es decir, el cableado de los dispositivos de hardware, las API y los servicios en línea en formas nuevas e interesantes. Construida sobre Node.js, Node-RED se describe a sí misma como "una herramienta visual para el cableado del Internet de las Cosas". Permite a los desarrolladores conectar dispositivos, servicios y APIs mediante un editor de flujos basado en el navegador. Puede funcionar en Raspberry Pi, y hay más de 60.000 módulos disponibles para ampliar sus capacidades. Puedes contribuir al proyecto Node-Red de IBM o en node-red github. Software de automatización del hogar.
6. OpenHAB
OpenHAB permite que los dispositivos inteligentes que ya tiene en su casa se comuniquen entre sí. Es neutral en cuanto a proveedores y hardware, y funciona en cualquier sistema compatible con Java. Uno de sus objetivos es permitir a los usuarios añadir nuevas funciones a sus dispositivos y combinarlos de nuevas maneras. Ha ganado varios premios y tiene un servicio complementario de computación en la nube llamado my.openHAB.
7. El sistema Thing
Este proyecto incluye tanto componentes de software como protocolos de red. Promete encontrar todas las cosas conectadas a Internet en tu casa y reunirlas para que puedas controlarlas. Es compatible con una larga lista de dispositivos, como los termostatos Nest, los aires acondicionados inteligentes de Samsung, las bombillas LED Insteon, Roku, Google Chromecast, los smartwatches Pebble, las cerraduras inteligentes Goji y mucho más. Está escrito en Node.js y puede caber en una Raspberry Pi. Middleware
8. IoTSyS
Este middleware de IoT proporciona una pila de comunicaciones para dispositivos inteligentes. Soporta múltiples estándares y protocolos, como IPv6, oBIX, 6LoWPAN, Constrained Application Protocol y Efficient XML Interchange. Varios vídeos en la web muestran su funcionamiento en acción.
9. OpenIoT
El sitio web de OpenIoT explica que el proyecto es "un middleware de código abierto para obtener información de las nubes de sensores, sin preocuparse de qué sensores exactos se utilizan". Su objetivo es permitir la "detección como servicio" basada en la nube, y ha desarrollado casos de uso para la agricultura inteligente, la fabricación inteligente, el crowdsensing urbano, la vida inteligente y los campus inteligentes. Sistemas operativos
10. AllJoyn
Creado originalmente por Qualcomm, este sistema operativo de código abierto para el Internet de las Cosas está ahora patrocinado por una de las organizaciones más destacadas del IoT: la AllSeen Alliance, entre cuyos miembros se encuentran la Linux Foundation, Microsoft, LG, Qualcomm, Sharp, Panasonic, Cisco y Symantec, entre otros. Incluye un marco y un conjunto de servicios que permitirán a los fabricantes crear dispositivos compatibles. Es multiplataforma con APIs disponibles para Android, iOS, OS X, Linux y Windows 7.
11. Contiki
Contiki se describe a sí mismo como "el SO de código abierto para el Internet de las cosas". Conecta microcontroladores de bajo consumo a Internet y soporta estándares como IPv6, 6lowpan, RPL y CoAP. Otras características clave son una asignación de memoria muy eficiente, una red IP completa, un consumo de energía muy bajo y la carga dinámica de módulos, entre otras. Entre las plataformas de hardware soportadas se encuentran los Econotags de Redwire, las motas Zolertia z1, los kits de desarrollo de ST Microelectronics y los chips y placas de Texas Instruments. Existe soporte comercial de pago.
12. Raspbian
Aunque la Raspberry Pi fue concebida como un dispositivo educativo, muchos desarrolladores han comenzado a utilizar este ordenador del tamaño de una tarjeta de crédito para proyectos de IoT. La especificación completa del hardware no es de código abierto, pero gran parte del software y la documentación sí lo es. Raspbian es un popular sistema operativo para Raspberry Pi que se basa en la distribución Debian de Linux.
13. RIOT
RIOT se anuncia como "el sistema operativo amigable para el Internet de las Cosas". Bifurcado del proyecto FeuerWhere, RIOT debutó en 2013. Su objetivo es ser amigable con los desarrolladores y los recursos. Soporta múltiples arquitecturas, incluyendo MSP430, ARM7, Cortex-M0, Cortex-M3, Cortex-M4, y PCs x86 estándar.
14. Spark
Spark es un sistema operativo IoT distribuido y basado en la nube. La misma empresa también ofrece kits de desarrollo de hardware fáciles de usar y productos relacionados que comienzan en sólo 39 dólares (y los diseños de hardware también son de código abierto). Incluye un IDE basado en la web, una interfaz de línea de comandos, soporte para múltiples lenguajes y bibliotecas para trabajar con muchos dispositivos IoT diferentes. Tiene una comunidad de usuarios muy activa, y hay disponible mucha documentación y ayuda en línea.
15. Freeboard
El objetivo de Freeboard es permitir a los usuarios crear sus propios cuadros de mando para supervisar los despliegues de IoT. El código está disponible de forma gratuita en GitHub o puedes probar el servicio de forma gratuita si haces público tu tablero de control. También hay planes de bajo precio para quienes quieran mantener sus datos en privado. Los tableros de control de ejemplo en el sitio muestran cómo se pueden utilizar para rastrear la calidad del aire, los electrodomésticos residenciales, el rendimiento de la destilería o las condiciones ambientales en un humidor.
16. Impresora Exciting
Exciting ofrece un kit de código abierto para experimentar con la impresión del IoT. Permite construir tu propia impresora pequeña y utilizarla para imprimir información obtenida de varios dispositivos IoT. Por ejemplo, podría imprimir una lista de recordatorios diarios, el informe del tiempo, etc. Y en un giro interesante, si quieres contactar con los propietarios del proyecto, puedes hacer un dibujo que se imprimirá en la impresora IoT de su oficina. Plataformas y herramientas de integración
17. DeviceHive
Este proyecto ofrece un marco de comunicación máquina a máquina (M2M) para conectar dispositivos al Internet de las Cosas. Incluye un software de gestión basado en la web muy fácil de usar para crear redes, aplicar reglas de seguridad y supervisar los dispositivos. El sitio web ofrece proyectos de muestra construidos con DeviceHub, y también tiene una sección de "patio de recreo" que permite a los usuarios utilizar DeviceHub en línea para ver cómo funciona.
18. Devicehub.net
Devicehub.net se describe a sí mismo como "la columna vertebral de código abierto para el Internet de las cosas". Se trata de un servicio basado en la nube que almacena datos relacionados con el Internet de las cosas, proporciona visualizaciones de esos datos y permite a los usuarios controlar los dispositivos del Internet de las cosas desde una página web. Los desarrolladores han utilizado el servicio para crear aplicaciones que hacen un seguimiento de la información sanitaria, controlan la ubicación de los niños, automatizan los electrodomésticos, rastrean los datos de los vehículos, controlan el tiempo y mucho más.
19. Kit de herramientas IoT
El grupo que está detrás de este proyecto trabaja en una serie de herramientas para integrar múltiples redes de sensores y protocolos relacionados con la IO. El proyecto principal es una API de objetos inteligentes, pero el grupo también está trabajando en un mapa semántico de HTTP a CoAP, un marco de aplicación con agentes de software integrados y mucho más. También patrocinan un grupo de encuentro en Silicon Valley para personas interesadas en el desarrollo del IoT.
20. Mango
Mango se anuncia como "el software de código abierto más popular del mundo para el intercambio de datos entre máquinas (M2M)". Basado en la web, es compatible con múltiples plataformas. Las características clave incluyen soporte para múltiples protocolos y bases de datos, meta puntos, eventos definidos por el usuario, importación/exportación y más.
21. Nimbits
Nimbits puede almacenar y procesar un tipo específico de datos -datos que han sido estampados en el tiempo o en la geografía-. Está disponible una plataforma pública como servicio, o se puede descargar el software y desplegarlo en Google App Engine, en cualquier servidor J2EE en Amazon EC2 o en una Raspberry Pi. Es compatible con múltiples lenguajes de programación, incluyendo Arduino, JavaScript, HTML o la biblioteca Java Nimbits.io.
22. OpenRemote
OpenRemote ofrece cuatro herramientas de integración diferentes para aficionados, integradores, distribuidores y fabricantes caseros. Es compatible con docenas de protocolos diferentes existentes, lo que permite a los usuarios crear casi cualquier tipo de dispositivo inteligente que puedan imaginar y controlarlo mediante cualquier dispositivo que soporte Java. La plataforma es de código abierto, pero la empresa también vende una amplia variedad de soporte, libros electrónicos y otras herramientas para ayudar en el proceso de diseño y desarrollo de productos.
23. SiteWhere
SiteWhere es una plataforma de IoT de código abierto. Proporciona un sistema que facilita la ingestión, el almacenamiento, el procesamiento y la integración de los datos de los dispositivos. Este proyecto proporciona una plataforma completa para gestionar dispositivos IoT, recopilar datos e integrarlos con sistemas externos. Github
24. ThingSpeak
ThingSpeak puede procesar peticiones HTTP y almacenar y procesar datos. Entre las principales características de la plataforma de datos abierta se encuentran una API abierta, la recopilación de datos en tiempo real, los datos de geolocalización, el procesamiento de datos y las visualizaciones, los mensajes de estado de los dispositivos y los plugins. Con ThingSpeak, el usuario puede crear aplicaciones de registro de sensores, aplicaciones de seguimiento de la ubicación y una red social de cosas con actualizaciones de estado.