Cómo utilizar Docker para hacer compilación cruzada con Raspberry Pi


Un compilador cruzado es un sw de compilación capaz de crear código ejecutable para una plataforma distinta a la que está ejecutando el propio compilador como por ejemplo usar  un compilador que se ejecuta en un PC con Windows 10 pero que  genera código que se ejecuta en nuestra Raspberry Pi es un compilador cruzado.

Un compilador cruzado es necesario compilar para múltiples plataformas de una máquina. Una plataforma podría ser inviable para que un compilador funcione, tal como para el microcontrolador de un sistema embebido porque esos sistemas no contienen ningún sistema operativo. En la paravirtualización, una máquina ejecuta muchos sistemas operativos y un compilador cruzado podría generar un ejecutable para cada uno de ellos desde una fuente principal.

Los compiladores cruzados no deben confundirse con los compiladores fuente-fuente . Un compilador cruzado es para el desarrollo de software multiplataforma de código binario, mientras que un compilador de fuente a fuente se traduce de un lenguaje de programación a otro en código de texto. Ambos son herramientas de programación .

Solía ​​ser tedioso configurar un entorno de compilación cruzada. Seguro que se puede compilar en el Pi de la frambuesa en sí, pero a veces quiere utilizar su computadora grande – y se puede utilizar cuando su Pi no está a la mano como cuando en un avión con un ordenador portátil. Puede ser complicado configurar un compilador cruzado para cualquier herramienta de compilación, pero si pasa por un simple paso, se convierte en súper fácil, independientemente de lo que su computadora real se parece. Ese paso es instalar Docker.

Docker está disponible para Linux, Windows y Mac OS. Permite a los desarrolladores crear imágenes que son esencialmente entornos Linux preconfigurados que ejecutan algún servicio. Al igual que una máquina virtual, estas imágenes pueden funcionar juntas sin interferir entre sí. A diferencia de una máquina virtual, los contenedores Docker (el software en ejecución) son ligeros porque comparten el mismo kernel y hardware subyacentes de la computadora.

La realidad es, la creación de la Frambuesa Pi construir el medio ambiente no es más fácil. Es sólo que con Docker, alguien más ya ha hecho el trabajo para usted y usted puede tomar automáticamente su configuración y mantenerlo actualizado. Si ya está ejecutando Linux, su gestor de paquetes probablemente hace que el proceso sea muy fácil también (ver el post de Rud Merriam en ese proceso ). Sin embargo, lo bueno de las imágenes es que es un entorno aislado completo que puede moverse de máquina a máquina y de plataforma a plataforma (las plataformas Windows y Mac utilizan una variedad de técnicas para ejecutar el software de Linux, pero se hace de forma transparente) .

2024 04 06 16 44 58 Raspberry Pi 4 ya a la venta en España   Buscar con Google y 6 páginas más   Per

INSTALACIÓN DE DOCKER

Si no está utilizando Linux, tendrá que averiguar cómo instalar Docker. Hay varias maneras de hacerlo bajo Windows (dependiendo de qué versión de Windows usa)  Sin embargo, en Linux, debe ser capaz de instalar lo que necesita a través de su gestor de paquetes.

En Ubuntu y otras distribuciones similares, puede esperar instalar el paquete Docker. Tiene sentido, pero no. Ese paquete es un gestor de iconos de la bandeja del sistema. Lo que quiere es docker.io:

sudo apt-get install docker.io

Verá algunos paquetes sugeridos, y puedes considerar añadir la opción -install-suggest a apt-get si quiere.

Docker se compone de dos partes: un daemon (un servidor que se ejecuta en segundo plano) y un cliente llamado docker. Hay una variedad de herramientas GUI para gestionar Docker si no te gusta la línea de comandos. Me gusta, así que eso es todo lo que sé sobre eso.

COMPILACIÓN CRUZADA

Docker mantiene un repositorio de imágenes en su sitio web llamado el Hub . De forma predeterminada, si no tiene una imagen local, el cliente buscará allí. En este caso en particular, la imagen que desea es sdthirlwall / frambuesa-pi-cross-compilador: legacy-trusty. Eso es un bocado, y el revelador proporciona una escritura agradable para llamarla bajo circunstancias normales. ¿Cómo se obtiene el guión? Usted utiliza Docker, por supuesto.

Por cierto, por defecto, necesitas ejecutar el cliente de Docker como root, aunque también puedes crear un grupo especial (aunque usar sudo funciona igual de bien). Aquí está el comando para ejecutar para obtener la secuencia de comandos rpxc:

sudo docker ejecutar sdthirlwall / raspberry-pi-cross-compilador: legacy-trusty> rpxc
Dado que probablemente no tenga esa imagen en su disco duro, el cliente tardará un tiempo en descargarla y completar la tarea. La próxima vez no tomará tanto tiempo porque Docker tendrá una copia local.

Puede configurar el comando rpxc para ejecutar con este comando:

Chmod + x rpxc

Luego muévalo a algún lugar de tu camino (o haz referencia a él por el camino completo como ./rpxc o ~ / Downloads / rpxc, si lo prefieres). Aunque puede descargar toda la imagen desde el Hub, si desea ver los archivos, contribuir o seguir el desarrollo, debería echar un vistazo al reporte de GitHub para el proyecto.

EN USO

El script rpxc generalmente ejecuta cualquier comando que desee en el nuevo entorno. Dado que ejecuta Docker, necesita ser root o en el grupo Docker, por supuesto. Todas las herramientas habituales de construcción están prefijadas con rpxc, así que:

rpxc rpxc-gcc -o hello-world hello-world.c

O, si tiene un Makefile:

rpxc make

El directorio actual en el que se encuentra al ejecutar rpxc, se convierte en el directorio / build en el nuevo entorno y es el directorio de trabajo actual por defecto.

Si usted es perezoso, usted puede ser que prefiera apenas funcionar:

rpxc bash

Entonces puedes emitir comandos y hacer lo que quieras. Haga una ls en / usr / local / bin / rpxc * para ver todas las herramientas disponibles. También puede utilizar el script rpxc para actualizar la imagen y sí mismo. Utilice el comando update para hacer ambos, o puede especificar update-image o update-script.

UNIÓN CÓSMICA

Hay otras imágenes que puede ser interesantes. Tienes que conseguir una cuenta gratuita en el Hub, y una vez que lo hagas, podrías pensar que hay un número muy pequeño de imágenes. Sin embargo, intente hacer una búsqueda de frambuesa, por ejemplo. O Arduino, que muestra una gran cantidad de entornos Arduino preconfigurados. También puede disfrutar de la búsqueda de ESP8266. Incluso hay una imagen Docker para el software de diseño Eagle PCB .

Fuente hackaday.com

Como estar avisado si nos falta la red de corriente alterna en una vivienda


Una solución simple para recibir una notificación cuando haya una falta de red eléctrica en una segunda vivienda a primera vista podríamos pensar en utilizar un dispositivo de monitoreo de energía o un enchufe inteligente. Estos dispositivos se conectan a la toma de corriente de una vivienda y nos permiten controlar y monitorear el estado de la electricidad de forma remota.

Aquí proporcionamos los pasos generales para implementar esta solución:

  1. Elegir un dispositivo de monitoreo de energía o un enchufe inteligente: Hay muchas opciones disponibles en el mercado, como el TP-Link HS110, el Belkin WeMo Insight, el Etekcity Voltson, entre otros. Asegúrese de elegir uno que sea compatible con su red WiFi y que pueda enviar notificaciones.
  2. Configurar el dispositivo: Siga las instrucciones del fabricante para configurar el dispositivo. Normalmente, tendrá que conectarlo a su red WiFi y configurar una cuenta en la aplicación correspondiente.
  3. Conectar el dispositivo a la toma de corriente de su segunda vivienda: Asegúrese de que el dispositivo esté conectado a la toma de corriente de su segunda vivienda. Esto permitirá que monitoree el estado de la energía eléctrica.
  4. Configurar las notificaciones: En la aplicación del dispositivo, busca la opción de configurar notificaciones o alertas. Asegúrese de habilitar las notificaciones para recibir una alerta cuando se detecte una falta de energía eléctrica.
  5. Realizar pruebas periódicas: Una vez que haya configurado todo, es recomendable realizar pruebas periódicas para asegurarse de que el dispositivo esté funcionando correctamente. Puede desconectar la energía eléctrica en su segunda vivienda temporalmente para verificar si recibe la notificación de falta de energía.

Recuerde que esta solución depende de que la vivienda tenga acceso a una red WiFi y que el dispositivo de monitoreo de energía o enchufe inteligente esté conectado a Internet para enviar las notificaciones.

Indirectamente dado que este tipo de enchufes inteligentes estan emparejados con una app podemos deducir la falta de red cuando estos no estén accesibles pero obviamente esto no es una solución «amigable» ( seria por ejemplo algo similar a deducir falta de red si cuenta con cámaras de seguridad y estas no estan accesibles ) , vemos otras opciones.

Notificaciones si no hay energia ni wifi

En efecto un enchufe inteligente NO puede enviar una notificación si falta la red eléctrica y no cuenta con una fuente de energía alternativa, como una batería integrada , lo cual podria ser subsanable usando un SAI (o UPS )conectado al router ( como por ejemplo este).

En caso de no disponer de un SAI en al router, una alternativa viable es utilizar un sistema de monitoreo remoto que funcione con una tarjeta SIM y conectividad celular pues estos sistemas están diseñados para supervisar el estado de diferentes parámetros, incluyendo la electricidad, y enviar notificaciones a través de mensajes de texto (SMS), llamadas telefónicas o aplicaciones móviles.

Aquí hay una opción de cómo podría implementar esta solución:

  1. Buscar un sistema de monitoreo remoto con conectividad celular: Existen varios sistemas en el mercado que ofrecen monitoreo remoto con tarjetas SIM integradas. Algunos ejemplos populares son el NetBiter de HMS Networks, el Monnit Cellular Gateways y el Libelium Waspmote Plug & Sense.Un Estos dispositivos utilizan la red celular para enviar notificaciones.
  2. Elegir un sistema compatible con sus necesidades: Considere sus requisitos específicos, como el tipo de notificaciones que desea recibir (SMS, llamadas, aplicaciones móviles) y las funcionalidades adicionales que pueda requerir, como monitoreo de temperatura, humedad, etc. Asegúrese de que el sistema tenga la capacidad de detectar la falta de energía eléctrica.
  3. Instalar y configurar el sistema de monitoreo remoto: Siga las instrucciones proporcionadas por el fabricante para instalar y configurar el sistema. Esto generalmente incluye insertar una tarjeta SIM y establecer los parámetros de monitoreo.
  4. Configurar las notificaciones: Una vez que haya configurado el sistema, asegúrese de configurar las notificaciones correspondientes para recibir alertas cuando se detecte una falta de energía eléctrica en tu segunda vivienda. Esto puede incluir la configuración de números de teléfono para recibir mensajes de texto o realizar llamadas.

Recuerde verificar la cobertura celular en su segunda vivienda para garantizar una conexión estable. Además, tenga en cuenta que los sistemas de monitoreo remoto con conectividad celular pueden requerir un plan de datos y pueden estar sujetos a cargos adicionales por el uso de la red celular.


Como ejemplo de este tipo de soluciones ,existe en el mercado un nuevo enchufe domótico inteligente que puede ser controlado de forma remota a través de SMS, aplicación, llamada o botón. Este modelo ( cuesta unos 100€ +la SIM) está disponible en castellano e inglés e incluye un sensor de temperatura mejorado. Con este enchufe, es posible encender y apagar dispositivos como calefacción, caldera, aire acondicionado, luces, calentador de agua y motores a distancia. No requiere WiFi ni internet, solo una tarjeta SIM activa y cobertura. El enchufe tiene una función de programación horaria y días, así como notificaciones por SMS en caso de corte de corriente o alcanzar una temperatura específica. También incluye un manual en castellano e inglés y un sensor de temperatura mejorado con mayor precisión y resistencia al agua.

Problema si no disponemos de presupuesto para una SIM

El problema de una solución con GSM es que necesitamos una tarjeta SIM y un dispositivo que generalmente es caro, pero afortunadamente hay soluciones en el mercado que pueden soslayar el problema del SIM, la conectividad y la energia, por ejemplo con el dispositivo italiano USBy, un dispositivo que avisa cuando se corta la electricidad
Los dispositivos capaces de enviar alertas en caso de un corte de energía ya llevaban años en el mercado, pero por ejemplo ControlloCasa tuvo la idea innovadora de usar Internet ahora presente en cada hogar, oficina o negocio, ahorrando dinero en comparación con las soluciones tradicionales, porque no necesita de unaGSM SIM ni de un sistema de alimentación ininterrumpida para su funcionamiento.

Con USBy recibirá un correo electrónico en su smartphone que le notificará cuando falla la fuente de alimentación o cuando se restablezca la electricidad o Internet con el tiempo total de apagón
Los correos electrónicos de alerta, que llegan directamente a su teléfono inteligente, son administrados por el servidor en la nube de modo que incluso si su enrutador WiFi falla debido a un corte de energía, podrá recibir alarmas.

¿Se puede realizar por uno mismo un monitor de falta de red «casero»?

Efectivamente con una placa basada en Arduino con conectividad WIFI como el ESP32 se podria enviar una señal cada 30 segundos de que hay red de ca a un dispositivo remoto y en caso de no recibir esa señal este otro dispositivo emitiría una alarma, así que si está buscando una solución más económica y personalizada, utilizar una placa ESP32 para enviar señales periódicas y recibir alarmas en caso de falta de red eléctrica puede ser una excelente opción. Aquí tiene una descripción general de cómo podría implementar esta solución:

  1. Obtenga una placa ESP32: La placa ESP32 es un microcontrolador de bajo costo y versátil que cuenta con conectividad WiFi y Bluetooth. Puede adquirir una placa ESP32 fácilmente en tiendas de electrónica en línea.
  2. Programar la placa ESP32: Utilize el entorno de desarrollo integrado (IDE) de Arduino u otro entorno compatible para programar la placa ESP32. Es posible encontrar bibliotecas y ejemplos disponibles en línea para facilitar la programación y la comunicación con la red WiFi.
  3. Configurar la placa ESP32 para enviar señales periódicas: Programe la placa ESP32 para enviar una señal periódica a un dispositivo remoto a través de una conexión WiFi. Puede establecer un intervalo de 30 segundos para enviar estas señales y asegúrese de que estén llegando correctamente al dispositivo remoto.
  4. Configurar el dispositivo remoto: Necesitará otro dispositivo, como un ordenador o una Raspberry Pi, para recibir las señales enviadas por la placa ESP32. Puede programar este dispositivo para que monitoree la llegada de las señales y tome acciones en caso de que no se reciba ninguna señal durante un período de tiempo determinado.
  5. Implemente una alarma o notificación: En el dispositivo remoto, configure una alarma o una notificación para que se active en caso de que no se reciba ninguna señal de la placa ESP32 durante un tiempo predefinido. Esto podría ser una notificación en tu teléfono móvil, un correo electrónico o cualquier otro método que elijas.

Recuerde asegurarse de que el dispositivo remoto esté siempre encendido y conectado a la red WiFi para poder recibir las señales de la placa ESP32. Además, esta solución requiere conocimientos básicos de programación y configuración de hardware, así como un mantenimiento regular para asegurarse de que todo esté funcionando correctamente.

¿Y si en lugar de una Raspberry pi o un ordenador fuese un telefono móvil corriendo una aplicación móvil?

En efecto también puede utilizar un teléfono móvil con una aplicación móvil personalizada en lugar de un ordenador o una Raspberry Pi como dispositivo remoto para recibir las señales de la placa ESP32. Aquí tiene los pasos generales para implementar esta solución:

  1. Desarrollar una aplicación móvil: Utilizar un entorno de desarrollo para móviles, como Android Studio para Android o Xcode para iOS, para crear una aplicación móvil que pueda recibir y procesar las señales enviadas por la placa ESP32 a través de la conexión WiFi. Puede utilizar las herramientas y bibliotecas disponibles para establecer la comunicación y la detección de la falta de señales.
  2. Configurar la placa ESP32 para enviar señales periódicas: Programar la placa ESP32 para enviar señales periódicas a la dirección IP y el puerto de la aplicación móvil en el teléfono. Asegúrese de que la aplicación móvil esté escuchando y esperando las señales entrantes.
  3. Implementar la detección de falta de señales: En la aplicación móvil, establezca un temporizador o un mecanismo para detectar la falta de señales durante un período de tiempo determinado. Si no se reciben señales dentro de ese tiempo, activar una alarma o una notificación en el teléfono móvil para indicar la falta de red eléctrica en tu segunda vivienda.
  4. Mantener el teléfono móvil en funcionamiento: Asegúrese de que el teléfono móvil esté siempre encendido, conectado a una fuente de alimentación y con la aplicación en primer plano o ejecutándose en segundo plano para recibir las señales de la placa ESP32.

Es importante destacar que el teléfono móvil deberá tener una conexión WiFi estable para recibir las señales de la placa ESP32. Además, asegúrese de que la aplicación móvil esté autorizada para ejecutarse en segundo plano y recibir las señales incluso cuando la pantalla esté apagada. Tenga en cuenta que esta solución requerirá un desarrollo de aplicaciones móviles y un conocimiento adecuado de la programación móvil para implementarla correctamente.

¿Alexa podria enviar esa señal cada 15 minutos para luego ser detectada en la segunda vivienda?

Sí, es posible utilizar Alexa para enviar una señal periódica desde tu primera vivienda a tu segunda vivienda para su detección. Aquí tiene un enfoque posible para implementar esta solución:

  1. Configurar un dispositivo Echo en tu primera vivienda: Coloca un dispositivo Echo en tu primera vivienda y asegúrate de que esté conectado a la red WiFi. Configura el dispositivo Echo con tu cuenta de Amazon y habilítalo para que se comunique con otros dispositivos y aplicaciones.
  2. Crear una rutina en la aplicación de Alexa: Utilize la aplicación de Alexa en su teléfono móvil para crear una rutina. Configurar la rutina para que se active cada 15 minutos y envíe un comando específico a otro dispositivo o habilidad.
  3. Configurar un dispositivo o habilidad en su segunda vivienda: En su segunda vivienda, asegúrese de tener otro dispositivo Echo o una habilidad compatible con Alexa que pueda recibir el comando enviado por la rutina. Esto puede ser otro Echo o un dispositivo inteligente compatible que pueda interactuar con Alexa.
  4. Detectar el comando en su segunda vivienda: Programar el dispositivo o la habilidad en su segunda vivienda para detectar el comando enviado por la rutina de Alexa. Puede configurar el dispositivo o la habilidad para que realice una acción específica o emita una notificación cuando se active el comando.

Con este enfoque, Alexa enviará la señal cada 15 minutos desde tu primera vivienda a tu segunda vivienda. Cuando la señal sea detectada en su segunda vivienda, podrá configurar la acción deseada, como recibir una notificación o activar algún dispositivo.

Recuerda que necesitará tener dispositivos Echo en ambas viviendas y asegurarse de que estén conectados a la red WiFi. Además, tenga en cuenta que la configuración específica puede variar según los dispositivos y las habilidades disponibles en tu región.

¿Alexa podria enviar esa señal cada 30 segundos desde un dispositivo Amazon Echo para luego ser detectada en la segunda vivienda por otro Amazon Echo?

Lamentablemente, no es posible programar directamente a Alexa o a los dispositivos Amazon Echo para que envíen una señal o comando específico a intervalos de tiempo tan cortos como 30 segundos. Los dispositivos Echo están diseñados principalmente para interactuar con los comandos de voz y realizar acciones basadas en las solicitudes del usuario.

El funcionamiento básico de los dispositivos Echo implica que respondan a palabras de activación, como «Alexa», seguidas de una solicitud o comando. No existe una funcionalidad nativa para enviar señales a intervalos regulares sin la interacción directa del usuario.

Si desea enviar señales periódicas cada 30 segundos desde su primera vivienda a tu segunda vivienda, deberás buscar otras opciones que se ajusten a tus necesidades. Algunas alternativas pueden ser el uso de microcontroladores como Arduino o ESP32 para programar una solución personalizada que envíe señales a intervalos regulares, o utilizar otros dispositivos y tecnologías específicas para el propósito de monitoreo y comunicación, como sensores de monitoreo de energía o sistemas de automatización del hogar.

Recuerde que cualquier solución personalizada requerirá conocimientos técnicos y programación para su implementación adecuada.