fbpx

En la actualidad hay excelentes herramientas de software Open Source para IoT.

A continuación te presento una lista de herramientas y plataformas.

Desarrollo

Arduino

arduino iot open source

Seguramente ya conoces Arduino. Nació como una plataforma para enseñar programación de microcontroladores, pero hoy ofrece productos de desarrollo de nivel profesional.

Arduino incluye software y hardware Open Source. Es muy conocido y utilizado su entorno de desarrollo (IDE), que utiliza un lenguaje basado en C++.

Hoy hay una gran variedad de microcontroladores y dispositivos que pueden programarse utilizando el IDE de Arduino. En la actualidad se puede usar de manera local o a través de la plataforma en la nube que ofrece el fabricante.

Arduino sigue ofreciendo hardware para educación, pero también placas para prototipado y dispositivos listos para usar en aplicaciones comerciales e industriales.

Con Arduino se pueden desarrollar incluso dispositivos que corran modelos Machine Learning, como es el caso de las placas Arduino Nano 33 BLE Sense y la gama profesional de los Arduino Portenta.

PlatformIO

Platform IO es un entorno de desarrollo (IDE) multiplataforma, que permite programar una gran variedad de dispositivos.

Algunos de los fabricantes más conocidos son: Espressif, Microchip, Raspberry Pi, Arduino, Intel, Maxim, NXP, Nordic, ST, TI, entre otros.

Sin lugar a dudas es una plataforma de desarrollo muy potente.

Atom

Atom es un editor de texto avanzado, en el que se puede escribir código en muchos lenguajes diferentes.

Este editor trabaja con un sistema de paquetes (packages) que permite instalar temas para cambiar la apariencia, resaltadores de lenguaje, software para interactuar con el puerto serie (USB), correr código Python (usando intérprete ya instalado), etc.

Visual Studio Code

Visual Studio Code es un entorno de desarrollo de software multilenguaje muy potente.

A través de sus extensiones es posible programar una gran variedad de lenguajes y dispositivos. Algunos en la lista de fabricantes son: Arduino, Espressif, Microchip, Intel, Nordic, ST, TI, etc.

En cuanto a los lenguajes, es prácticamente posible programar en cualquier lenguaje de los que se utilizan hoy en día.

Entre sus características más destacadas están:

  • Autocompletado con Intellisense.
  • Consola de debug.
  • Comandos GIT integrados.
  • Extensiones para agregar lenguajes, temas, debuggers y conexión a servicios.

Plataformas IoT

Node Red

Node Red es una plataforma para IoT que utiliza Node.js para procesar mensajes provenientes de servicios y dispositivos IoT.

Posee una interfaz web que permite programar eventos de manera gráfica, conectando bloques y formando flujos de información. De esta manera se pueden realizar cualquier tipo de procesos sobre la información e interactuar con dispositivos y servicios.

Además de los bloques que vienen por defecto con la aplicación, es posible instalar bloques desarrollados por la comunidad o construir propios.

Existe una gran variedad de bloques para conectar todo tipo de servicios y dispositivos.

Grafana

Grafana es una plataforma de gestión de información que permite construir tableros de visualización, procesar analíticas y gestionar eventos y alertas.

Se puede obtener información de diversas fuentes, como bases de datos relacionales, bases de datos NoSQL, bases de datos de series de tiempo, logs, hojas de cálculos, archivos csv, entre otros.

Es sin dudas una plataforma muy potente y robusta, que ofrece todo tipo de gráficos, entre los que podemos encontrar:

  • Gráficos de series de tiempo.
  • Gráficos estadísticos.
  • Paneles catergóricos y booleanos.
  • Texto y logs.
  • Vistas topológicas.
  • Información georeferenciada.

Todas estas características se logran a través de un sistema de plugins, que permite agregar funcionalidades.

Los plugins sirven para:

  • Agregar nuevos orígenes de datos.
  • Generar nuevos tipos de gráficos.
  • Integraciones con aplicaciones externas.

Mosquitto

Mosquitto es un broker MQTT desarrollado por la Fundación Eclipse.

MQTT es un protocolo diseñado para el envío de mensajes cortos desde dispositivos IoT. Se basa en un modelo cliente/servidor de publicación/suspcripción.

Ofrece bajo consumo de energía, lo que lo hace recomendable para dispositivos IoT alimentados a baterías.

Ofrece seguridad mediante usuario/contraseña y encriptación TLS.

También posee un método para instrumentar calidad de servicio.

Mosquitto implementa las versiones 5.0, 3.1.1 and 3.1 y del protocolo MQTT.

Influx DB

InfluxDB es una base de datos de series de tiempo. Puede ser encuestada mediante sentencias SQL, donde se pueden especificar rangos de tiempos y los parámetros ( measurements ) de los sensores, para obtener los valores correspondientes.

Cada registro de la base de datos está asociado a una marca de tiempo ( timestamp ) y contiene objetos JSON, que pueden contener distintos items ( key/values ) asociados a diferentes mediciones, parámetros o características del dispositivo.

Es una de las bases de datos más utilizadas para registrar valores de sensores.

Se puede instalar de manera local o probarla directamente a través del servicio en la nube que ofrece la empresa InfluxData.

Gestión de imágenes

Balena Etcher

Balena Etcher es un software para copiar imágenes de sistemas operativos en tarjetas SD o pendrives.

Es muy fácil de usar. En solo tres pasos se selecciona la imagen, la unidad de destino y se inicial la copia.

Win32 Disk Imager

Win32 Disk Imager es un viejo proyecto Open Source para gestionar imágenes.

Si bien desde el 2018 no ha tenido actualizaciones, en general no supone un riesgo utilizarlo.

Algo útil sobre este software es que también permite crear imágenes a partir de una tarjeta SD o pendrive que contenga los archivos del sistema operativo y las aplicaciones. De este modo se puede luego utilizar esta imagen para replicarla en otros dispositivos.

Raspberry Pi Imager

Raspberry Pi Imager es la herramienta oficial de Raspberry Pi para copiar las imágenes de sistemas operativos en la tarjeta SD.

Desde esta aplicación se puede seleccionar algunos de los sistemas operativos que ofrece la Fundación de Raspberry Pi. La aplicación descargará el SO correspondiente y lo instalará en la tarjeta.

También se pueden seleccionar imágenes de manera manual.

Machine Learning

Tensor Flow Lite

El sitio de Tensor Flow Lite explica bien de qué se trata, así que lo transcribo aquí abajo.

TensorFlow Lite para microcontroladores se diseñó para ejecutar modelos de aprendizaje automático en microcontroladores y otros dispositivos usando solo algunos kilobytes de memoria. El entorno de ejecución principal cabe en 16 KB en un procesador ARM Cortex M3 y puede ejecutar varios modelos básicos. No requiere compatibilidad con el sistema operativo, ninguna biblioteca C o C++ estándar ni asignación de memoria dinámica.

tensorflow.org

OpenVINO

OpenVINO es un SDK Open Source desarrollado por Intel para la construcción de modelos de visión artificial.

Además de entrenar modelos propios, permite optimizar modelos entrenados con otras librerías de ML.

Definitivamente es algo que tienes que evaluar si te interesa el ML y la visión artificial.

Conclusión

Hasta aquí te presenté unas cuantas opciones Open Source para el desarrollo de IoT.

¿Conoces alguna otra?.

Te leo en los comentarios.


0 comentarios

Deja una respuesta

Marcador de posición del avatar

Tu dirección de correo electrónico no será publicada.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

A %d blogueros les gusta esto: