Uso de Docker para el parpadeo de un LED integrado en el OpenMote B

Programa tu placa openmote b usando docker-compose para la automatización industrial
14 de febrero de 2022 por
Uso de Docker para el parpadeo de un LED integrado en el OpenMote B
Boot & Work Corp. S.L., Fernandez Queralt Martinez

Introducción

En el post anterior, aprendimos cómo empezar a programar nuestra placa Openmote B haciendo parpadear el LED de nuestra placa.

Aunque en el post anterior aprendimos a hacerlo utilizando la herramienta 'make', en este post utilizaremos Docker, y Docker-compose, para trabajar con contenedores, aunque obteniendo el mismo resultado: el parpadeo del LED onboard de nuestra placa Openmote B.

Últimas publicaciones

Your Dynamic Snippet will be displayed here... This message is displayed because you did not provided both a filter and a template to use.

Requisitos

Placa Openmote B


OpenMote B es una placa de ultra bajo consumo para desarrollar aplicaciones IoT en el espacio industrial.

Es la referencia del Grupo de Trabajo 6TiSCG del IETF y está respaldada por la implementación más relevante de 6TiSCG de código abierto, incluidos los proyectos Contiki NG y OpenWSN.

Openmote B board - Using Docker for Blinking an OpenMote B on-board LED

Docker


Docker es un proyecto de código abierto que automatiza el uso de aplicaciones dentro de contenedores de software, requiere una capacidad adicional de abstracción y automatización de la virtualización de aplicaciones en múltiples sistemas operativos.

Pero, ¿qué es un contenedor? Un contenedor es un proceso aislado en su máquina que está aislado de todos los demás procesos en la máquina anfitriona. Ese aislamiento aprovecha los espacios de nombres del kernel y los cgroups, características que han estado en Linux durante mucho tiempo. Docker ha trabajado para que estas capacidades sean accesibles y fáciles de usar. En resumen, un contenedor: 

  • es una instancia ejecutable de una imagen. Puedes crear, iniciar, detener, mover o eliminar un contenedor utilizando la DockerAPI o la CLI.

  • puede ejecutarse en máquinas locales, máquinas virtuales o desplegarse en la nube.

  • es portátil (puede ejecutarse en cualquier sistema operativo)

  • Los contenedores están aislados unos de otros y ejecutan su propio software, binarios y configuraciones.

Odoo • Image and Text

Docker-compose

Compose es una herramienta para definir y ejecutar aplicaciones Docker multicontenedor. Con Compose, utilizas un archivo YAML para configurar los servicios de tu aplicación. Luego, con un solo comando, creas e inicias todos los servicios desde tu configuración.

Compose funciona en todos los entornos: producción, puesta en escena, desarrollo, pruebas, así como flujos de trabajo CI.

El uso de Compose es básicamente un proceso de tres pasos:

  1. Define el entorno de tu aplicación con un archivo Docker para que pueda reproducirse en cualquier lugar.

  2. Define los servicios que componen tu aplicación en docker-compose.yml para que puedan ejecutarse juntos en un entorno aislado.

  3. Ejecuta docker compose up y el comando Docker compose inicia y ejecuta toda tu aplicación. Docker-compose run ejecuta un comando único contra un servicio. Por ejemplo, el siguiente comando inicia el servicio web y ejecuta bash como su comando.

Parpadeo de un LED de la placa

Una vez que conocemos los fundamentos de openmote y docker-compose, ya estamos listos para ejecutar nuestro comando.

1. En primer lugar, vamos a Install Docker-compose on our system >>>

2. A continuación, conectamos la placa openmote al USB de nuestro ordenador. (Las baterías y las antenas no son necesarias)

3. Ir a Our repository >>>y haz clic en el último openmote-fw.tar.bz2 para descargarlo.

Repository openmote - Using Docker for Blinking an OpenMote B on-board LED

4. Una vez descargados, extraiga los archivos.

tar -xvf openmote-fw.tar.bz2

5. Ve al directorio.

cd openmote-fw/


6. Ahora, puedes hacer un cat del archivo docker-compose.yaml:

cat docker-compose.yaml

La salida debería ser la siguiente. Vamos a analizarla:

Odoo • Image and Text

a. En primer lugar, vamos a ver elversiónde docker-compose que vamos a utilizar. En este caso, la 3.8.

b. Puedes crear tantosservicioscomo quieras para tu aplicación, para que puedan ejecutarse juntos en un entorno y configuraciones aisladas. Hemos creado un servicio llamado 'openmote'.

c.  ConstruirOpciones de configuración que se aplican en el momento de la construcción. La compilación puede especificarse como una cadena que contiene una ruta al contexto de compilación o como un objeto con la ruta especificada en context y, opcionalmente, Dockerfile y args.

d. Volúmenes. Montar rutas de host o volúmenes con nombre, especificados como subopciones de un servicio. Puede montar una ruta de host como parte de una definición para un solo servicio, y no es necesario definirla en la clave de volúmenes de nivel superior.

e. Stdin_open: true. Es como hacer docker run -i o --interactive. Mantiene STDIN abierto incluso si no está conectado.

f. tty: true: Al poner a true la bandera tty, le estamos diciendo a Docker que asigne una sesión de terminal virtual dentro del contenedor. Esto se utiliza comúnmente con la opción anterior o el modo interactivo.

g. Dispositivos: Es una lista de mapeos de dispositivos. Utiliza el mismo formato que el --device opción de crear un cliente docker.


7. Así que, una vez que sabemos lo que vamos a ejecutar, esto es lo que vamos a hacer:

Vamos a ejecutar el proyecto llamado template, con el servicio docker-compose llamado openmote. Por último, vamos a eliminar el contenedor después de la ejecución con la opción --rm.

docker-compose run --rm openmote template


Finalmente, podrás ver cómo el LED de tu openmote B de la placa empieza a parpadear.

Buscar en nuestro blog

Uso de Docker para el parpadeo de un LED integrado en el OpenMote B
Boot & Work Corp. S.L., Fernandez Queralt Martinez 14 de febrero de 2022

¿Estás buscando tu Controlador Lógico Programable ideal?

Echa un vistazo a esta comparativa de producto de varios controladores industriales basados en Arduino.

Comparamos entradas, salidas, comunicaciones y otras especificaciones con las de los equipos de otras marcas destacadas.


Industrial PLC comparison >>>