Nerves
Es un framework para crear firmware de sistemas embebidos de con Elixir que corre sobre la maquina virtual de Erlang: "BEAM".
Es ideal para trabajar con dispositivos potentes como Raspberry Pi, BeagleBone Black, etc. y permite trabajar con sistemas robustos con interfaces conectadas a hardware real (GPIO, 12C, SPI, etc).
Caracteristicas
-
Se puede desarrollar tu firmware en Elixir
-
Soporta actualizaciones
-
Tiene integración con Phoenix para paneles de control web
-
Usa herramientas modernas de Elixir como Mix, OTP y GenServer.
Proyecto ejemplo: Sistema de riego automático inteligente
-
ESP32 con AtomVM mide la humedad del suelo.
-
Si la humedad es baja, activa una electroválvula.
-
Se comunica vía WiFi con una Raspberry Pi con Nerves, que:
-
Muestra datos en una interfaz web.
-
Permite configurar umbrales de riego.
-
Guarda histórico en una base de datos.
-
-
Este sistema permite combinar lo mejor de ambos mundos:
-
Microcontroladores pequeños y eficientes (ESP32 con AtomVM).
-
Sistemas completos y robustos (Raspberry con Nerves).
-
Ventajas de usar Elixir + AtomVM/Nerves
-
Código funcional, fácil de razonar y mantener.
-
Alta concurrencia con procesos ligeros.
-
Alta tolerancia a fallos (modelo de actores de Erlang).
-
Ideal para IoT, domótica, robots, monitoreo industrial y sistemas distribuidos.
-
Usas el mismo lenguaje para la nube y el hardware.
NervesHub
NervesHub es un servicio web extensible que te permite gestionar actualizaciones de firmware por aire (OTA) de dispositivos desplegados en el campo. Construido con Phoenix, NervesHub ofrece soporte de primera clase para despliegues de hardware directamente desde la línea de comandos.
Logra agilidad en IoT con NervesHub
Una vez que tienes un conjunto de dispositivos IoT en producción — desplegados en el campo — ¿Cómo gestionas las actualizaciones de firmware? Con NervesHub, mantén tus productos conectados actualizados sin sacrificar seguridad ni velocidad.
Existen muchos beneficios al desarrollar aplicaciones incrustadas con Nerves: el entorno de ejecución de Erlang, robusto y tolerante a fallos, es muy adecuado para dispositivos IoT e industriales. Sin embargo, uno de los mayores atractivos del framework es la productividad del desarrollador. Herramientas del framework como fwup hacen que grabar tarjetas SD y realizar actualizaciones locales de firmware por aire (OTA) sea muy sencillo, mientras que el ecosistema de librerías, como nerves_time, ofrece configuraciones sensatas por defecto para problemas que no quieres preocuparte por resolver al inicio, como la gestión del tiempo mediante NTP, particiones A/B para actualizaciones y mucho más. Todo esto significa que puedes ser productivo desde el primer día.
Una de las herramientas más interesantes del ecosistema Nerves es NervesHub, una aplicación de código abierto para gestionar flotas de dispositivos. Proporciona mecanismos para enviar actualizaciones inalámbricas de firmware a dispositivos desplegados en el campo, acceso remoto a la consola y muchas otras funcionalidades.
Enlaces
Referencias
-
Nerves Framework: Getting Started guide. (2025, February 4). https://daily.dev/blog/nerves-framework-getting-started-guide?utm_source=chatgpt.com
-
Nerves · Elixir school. (n.d.). https://elixirschool.com/es/lessons/misc/nerves?utm_source=chatgpt.com