Elixir 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.
Elixir Circuits
Elixir Circuits es una colección de bibliotecas Elixir diseñadas para facilitar la interacción con hardware, facilitando el control de periféricos y la interacción con sensores. Proporciona herramientas para trabajar con diversas interfaces de hardware como GPIO, I2C, SPI y UART. Estas bibliotecas permiten a los desarrolladores escribir código Elixir que interactúa directamente con el hardware, lo que facilita la creación de sistemas incrustados, dispositivos IoT y más.