Qué es internet de las cosas
El Internet de las cosas (IoT) es un sistema de dispositivos informáticos, máquinas mecánicas y digitales interrelacionados a los que se les proporcionan identificadores únicos y la capacidad de transferir datos a través de una red sin necesidad de un humano a otro o interactuar con la computadora
Importancia del IoT
El Internet de las cosas proporciona a las empresas y a las personas una mejor comprensión y control del 99 por ciento de los objetos y entornos que quedan fuera del alcance de Internet. Y al hacerlo, IoT permite que las empresas y las personas estén más conectadas con el mundo que los rodea y realizar un trabajo más significativo y de mayor nivel.
Este tema se profundiza en la Especialización en Internet de las Cosas – IOT de la Universidad EIA.
En IoT, todas las cosas que se conectan a Internet se pueden clasificar en tres categorías:
- Cosas que recopilan información y luego la envían.
- Cosas que reciben información y luego actúan sobre ella.
- Cosas que hacen ambas cosas.
Y los tres tienen enormes beneficios que se alimentan entre sí.
1. Recopilación y envío de información
Sensores de temperatura, sensores de movimiento, sensores de humedad, sensores de calidad del aire, sensores de luz, lo que sea. Estos sensores, junto con una conexión, nos permiten recopilar automáticamente información del entorno que, a su vez, nos permite tomar decisiones más inteligentes.
2. Recibir información y actuar sobre ella
Todos estamos familiarizados con las máquinas que obtienen información y luego actúan. Tu impresora recibe un documento y lo imprime. Tu carro recibe una señal de las llaves y las puertas se abren. Los ejemplos son infinitos.
Ya sea tan simple como enviar el comando «encender» o tan complejo como enviar un modelo 3D a una impresora, sabemos que podemos decirle a las máquinas qué hacer desde lejos.
El verdadero poder de Internet de las cosas surge cuando las cosas pueden recopilar información y enviarla, pero también recibir información y actuar en consecuencia.
3. Hacer ambas cosas
Los sensores pueden recopilar información sobre la humedad del suelo para decirle al agricultor cuánto regar los cultivos, pero en realidad no necesita al agricultor. En cambio, el sistema de riego puede encenderse automáticamente según sea necesario, según la cantidad de humedad que haya en el suelo.
Lenguajes de programación utilizados en el IoT
C / C ++
C y C ++ gobiernan la lista cuando se trata de dispositivos IoT. Según la encuesta de desarrolladores de IoT, el lenguaje C aseguró la primera posición para los dispositivos restringidos, mientras que C ++ aseguró la segunda posición. Estos lenguajes son bien conocidos por su portabilidad y la mayoría de los microcontroladores para dispositivos IoT son compatibles con estos lenguajes para la informática.
Go
Creado por Google, el lenguaje de programación Golang o Go juega un papel importante en el desarrollo de la plataforma IoT. Esto se debe a que Golang tiene simultaneidad incorporada y excelentes características de rendimiento que maximizan la utilización del hardware, lo que hace que el lenguaje sea compatible con los dispositivos de IoT. Este lenguaje es compatible debido a varias razones, como la utilización completa del hardware, el soporte de la comunidad en la nube, la simultaneidad incorporada, la compatibilidad con otras plataformas, etc.
Java / JavaScript
Java y JavaScript son opciones populares para los desarrolladores cuando se trata de aplicaciones de IoT. El lenguaje domina los nodos de puerta de enlace y de borde, así como para las aplicaciones en la nube de IoT, según el informe IoT Developers Survey 2019. Java Embedded para IoT incluye una serie de beneficios, como una sólida disponibilidad de recursos, menor costo de soporte, diferentes tipos de soporte de hardware y mucho más.
LUA
Lua es un lenguaje de programación integrado de propósito general diseñado para admitir la programación de procedimientos con funciones de descripción de datos. Es un lenguaje de procedimiento extensible con potentes funciones de descripción de datos que está diseñado para usarse como un lenguaje de extensión de propósito general. Al ser un lenguaje integrado, solo funciona integrado en un cliente anfitrión.
Parasail
ParaSail es un nuevo lenguaje de programación paralelo diseñado para respaldar el desarrollo de aplicaciones seguras y altamente paralelas que se pueden asignar a arquitecturas de múltiples núcleos, muchos núcleos, heterogéneas o distribuidas. Son las siglas de Parallel Specification and Implementation Language. Este lenguaje incluye características de especificación de alto nivel, incluidos módulos parametrizados con una separación completa de la interfaz de la implementación, condiciones previas y posteriores para operaciones individuales dentro de un módulo, invariantes que se aplican a todas las operaciones dentro de un módulo y mucho más.
Python
Es uno de los lenguajes más populares en la comunidad de desarrolladores. Python es compatible con IoT por varias razones. como una vasta comunidad de desarrolladores, una gran cantidad de bibliotecas, herramientas y mucho más.
PHPoC
PHPoC (PHP on Chip) es un lenguaje de programación y una plataforma de hardware IoT que se desarrolla en base al lenguaje PHP ampliamente utilizado. Esto hace que el lenguaje no solo sea un lenguaje de desarrollo web, sino también el lenguaje de programación de propósito general para IoT. La sintaxis es casi la misma que la de PHP y hereda casi todas las funciones básicas de PHP. Además, PHPoC agrega nuevas funciones que se utilizan para interactuar con periféricos de hardware como E / S, UART, I2C, SPI, ADC, TIMER / COUNTER, RTC y mucho más.
Rust
El lenguaje de programación Rust se introdujo como una alternativa al lenguaje C. C y C ++ son lenguajes de programación comunes para los dispositivos de IoT debido a su gestión de memoria detallada y su baja sobrecarga de tiempo de ejecución. Del mismo modo, Rust también es un lenguaje de programación de sistema seguro para la memoria que también proporciona una sobrecarga de tiempo de ejecución baja y gestión de la memoria. Es un lenguaje de programación con sólidas garantías de seguridad que evita la corrupción de la memoria y tiene el potencial de resolver los problemas que pueden ocurrir al utilizar el lenguaje C.
Frameworks de desarrollo web para IoT
Las plataformas o frameworks más populares para desarrollar IoT son:
DeviceHive
Es una plataforma de gestión de servicios en la nube de IoT de código abierto, con licencia de Apache License Versión 2.0, con un enfoque particular en el análisis de big data. Esta tecnología rica en funciones:
- Admite Python, Node.js, Java y otras bibliotecas cliente
- Proporcionar recursos escalables en la nube pública, privada o híbrida
- Admite las opciones de implementación de Docker y Kubernetes
- Manejar volúmenes de producción únicos y múltiples a escala
- Privar de pequeñas peculiaridades técnicas
- Conectar cualquier dispositivo con los protocolos REST API, WebSockets o MQTT
- Aprovechar los beneficios de las soluciones Apache Kafka, Spark y Cassandra para el análisis de big data.
Lo más destacado de DeviceHive es que en su mayoría es de uso gratuito, aunque también tiene servicios de precio fijo. DeviceHive ofrece herramientas sólidas para configurar la comunicación entre dispositivos inteligentes de IoT. Cubre la brecha entre el desarrollo en la nube, el desarrollo de aplicaciones integradas y móviles.
ThingSpeak
Es una plataforma de IoT relativamente joven que colabora estrechamente con MathWorks. Esto brinda la posibilidad de aprovechar el análisis de datos MATLAB oportuno de innumerables sensores. La plataforma comprende:
- Agregación y análisis de flujos de datos en vivo;
- Grabación de datos de canales públicos para su uso posterior en canales privados de nueva creación;
- Asignación de canales públicos para compartir datos;
- Visualización de datos recopilados;
- Actualizaciones de la alimentación del canal a través de las API REST y MQTT;
- Herramientas analíticas en línea MATLAB® para explorar patrones y relaciones;
- Función TimeControl que habilita alertas activadas por eventos.
Mainflux
Es una plataforma de IoT de código abierto y libre de patentes que tiene una gran cantidad de herramientas ventajosas para la recopilación y gestión de datos, análisis central y programación de eventos. Mainflux ofrece:
- Conectividad de cosas y usuarios a través de protocolos HTTP, MQTT, WebSocket, CoAP;
- Administración y aprovisionamiento de dispositivos;
- Implementación basada en contenedores de Docker;
- Orquestación de contenedores por Kubernetes;
- Seguridad de datos mejorada con claves API personalizables y JWT con alcance;
- Beneficios bajos de OPEX (gastos operativos);
- Tanto el protocolo como el dispositivo son independientes.
Esta plataforma está escrita en Golang y se puede implementar como un modelo local, híbrido o basado en la nube. Los precios pueden variar, desde modos de instalación absolutamente gratuitos y planes de soporte hasta variantes comerciales y personalizadas totalmente administradas.
Thinger.io
Es una plataforma de código abierto lista para usar para proyectos de IoT en la nube. Este software permite la implementación a través de métodos de Docker. Entre sus características beneficiosas se encuentran:
- Integración fluida de múltiples hardware;
- Soporte de hardware de placas Arduino IDE, Linux, Sigfox y ARM Mbed;
- Consola de administración en la nube fácil de usar;
- Transmisión de datos en vivo a websockets;
- Visualización de datos de dispositivos en la nube a través de paneles de control en tiempo real;
- Soporte de aplicaciones móviles iOS y Android;
- Configuración activada por eventos IFTTT para múltiples dispositivos IoT
Esta herramienta OSS es muy sensible, fácil de usar, escalable y segura. Están disponibles planes de suscripción gratuitos y de pago.
Zetta
Es el primer marco de IoT de código abierto orientado a API que básicamente sirve para transmitir cargas de datos sin parar. Esta tecnología está privada de una visualización de datos vívida, pero su principal ventaja sigue siendo la «programación reactiva». La lista de características consta de:
- Integración fluida con la lógica empresarial del cliente
- Basado en Node.js;
- Aprovecha los patrones de Reactive Hypermedia para la transmisión de datos;
- Utiliza el formato de sirena para crear una API sólida para dispositivos de IoT;
- Independiente del protocolo de red;
- Conexión segura entre servidores de intercambio de tráfico;
- Transición de datos consistente a través de websockets;
- Capacidad para enviar datos a otras plataformas analíticas;
- Una sintaxis SQL para consultas y notificaciones.
OpenRemote
Es una solución 100% de código abierto para crear aplicaciones de Internet de las cosas. Ya ha demostrado su eficacia en aplicaciones de IoT comerciales más grandes. Incluye:
- Agentes de protocolo genéricos como HTTP REST o MQTT, para conectar sus dispositivos, puertas de enlace o servicios de datos de IoT o crear una API específica del proveedor que falta.
- Motor de reglas con un editor de flujo, un When-Then y una interfaz de usuario Groovy.
- Tablero para aprovisionar, automatizar, controlar y monitorear su aplicación, así como los componentes de la interfaz de usuario web para crear aplicaciones específicas del proyecto.
- Aplicación móvil para Android e iOS, que incluye la opción de usar geofencing y notificaciones push.
- Solución Edge Gateway para conectar varias instancias con una instancia de administración central.
- Capacidad para usar múltiples dominios combinados con administración de cuentas y servicio de identidad.
Laravel
Laravel intenta facilitar las tareas comunes que se utilizan en la mayoría de los proyectos web, como la autenticación, el enrutamiento, las sesiones y el almacenamiento en caché. Laravel tiene como objetivo hacer que el proceso de desarrollo sea agradable para el desarrollador sin sacrificar la funcionalidad de la aplicación.
Laravel es un marco PHP del lado del servidor; con él se pueden crear aplicaciones de pila completa, es decir, aplicaciones con funciones que normalmente requieren un backend, como cuentas de usuario, exportaciones, gestión de pedidos, etc.
La Especialización en Internet de las Cosas – IOT de la EIA posibilita la comunicación de los dispositivos, dotados con sensores, con la nube o con otros dispositivos, y de esta forma descentralizar el análisis y la toma de decisiones; al contar con respuestas en “tiempo real” mejora las condiciones de vida y facilita los modelos de negocio personalizados. Conoce más sobre inscripciones y matrículas aquí.
Fuentes consultadas:
-IoTForAll
-Analytics India Mag.
-ByteAnt
-IoT Web Planet