Una solución que utilizo implica un servidor de impresión 3D. He definido scripts de shell que se dirigen a los puertos GPIO de la Raspberry Pi que ejecuta OctoPrint. OctoPrint es un servidor de impresión 3D al que se puede acceder a través de su red doméstica.
Desde la página de inicio de OctoPrint:
OctoPrint es la interfaz web ágil para su impresora 3D que le permite controlar y monitorear todos los aspectos de su impresora y trabajos de impresión, directamente desde su navegador.
Esta aplicación de servidor de impresión permite la especificación de comandos personalizados de Gcode (vinculados a comandos del sistema, por ejemplo; tenga en cuenta que este es un complemento llamado "Comandos de sistemas GCODE", vea la imagen a continuación).
Como ejemplo, p. ej. OCTO100 está programado para ejecutar el script de shell fan_on.sh. Este script, a su vez, acciona un relé para encender el molesto ventilador de enfriamiento del extrusor que siempre está encendido cuando la impresora está encendida. Estos códigos se pueden usar en todo su archivo dividido para hacer las cosas que desee (por ejemplo, utilizando el complemento TweakAtZ de Cura). P.ej. el ventilador de mi extrusora permanecerá encendido varios minutos antes de que se programe su apagado después de una impresión exitosa a través de OCTO110, que en sí mismo ejecuta el script fan_off.sh.
Los scripts de la figura podrían configurarse para programar una acción, p. ej. fan_on.sh controla un relé usando el puerto 22 del GPIO de la Raspberry PI:
#! / bin / bashgpio export 22 outgpio -g write 22 0
Entonces, para deshabilitar el ventilador, necesitaría que fan_off.sh sea:
#! / bin / bashgpio export 22 outgpio -g write 22 1