Controlando nuestra impresora 3D con OctoPrint, The Spaghetti Detective y Home Assistant

Bueno, este creo que será un post asalvajado, así que desde ya os voy pidiendo disculpas… ¿Bueno qué? Intentaremos ver cómo instalar OctoPrint para controlar nuestras impresoras 3D, continuaremos con The Spaghetti Detective para que alguien mire por nosotros durante la impresión y si sucede algo inoportuno pare la impresión, o haga lo que tenga que hacer. Y acabamos integrando esto con Home Assistant, con idea de crear automatizaciones y centralizar el gobierno.

Al final me animé a escribir este post, no es que sea el blog de temática impresoras 3D, pero como quizá sea común que muchos frikis las tengamos, y es interesante que podamos conocer este tipo de soluciones e integraciones entre ellas.

Empezaremos con Octoprint, que lo instalaremos en una Raspberry Pi, o bien si lo prefieres y eres más cómodo, puedes directamente bajarte la imagen de la tarjeta SD y listo. Este Octoprint nos permitirá manejar la impresora 3D de manera remota e inalámbrica, así como las tareas más habituales como es mandar algo a imprimir, ver cómo va, pararlo… Luego lo dicho, seguiremos montando nuestro propio servidor de The Spaghetti Detective, que como su nombre indica investigará y nos alertará en caso de ver espaguetis o ´si se mueve la pieza, en determinado, si la impresión falla, y todo ello mediante una webcam. Y al final del post lo dicho, integraremos Octoprint con Home Assistant para poder manejarlo desde ahí directamente y tengamos la posibilidad de hacer alguna automatización.

.

Instalando OctoPrint,

Lo dicho, o nos bajamos la imagen directamente y nos olvidamos de estos pasos, o si queremos, en nuestro Raspbian podremos instalarlo, al gusto del consumidor. Pasos para instalarlo manualmente:

sudo apt update
sudo apt install python-pip python-dev python-setuptools python-virtualenv git libyaml-dev build-essential
mkdir OctoPrint && cd OctoPrint
virtualenv venv
source venv/bin/activate
pip install pip --upgrade
pip install --no-cache-dir octoprint
sudo usermod -a -G tty pi
sudo usermod -a -G dialout pi
~/OctoPrint/venv/bin/octoprint serve

.

Y ya podremos abrir el navegador contra la dirección IP de la Raspberry Pi que tiene OctoPrint, tras un simple asistente inicial de bienvenida, donde entre otras opciones habremos configurado brevemente qué impresora tenenemos. Recordar conectar el cable USB entre la Rasbperry Pi y la placa de la impresora, tras ello, podremos conectar ya con la impresora.

Y darle un vistazo que la GUI es bastante simplona y es muy sencillo su uso.

Si os fijáis bien, estos pantallazos son de hace tiempo, donde incluso me daba una alerta pq el firmware que usaba mi Anet A8 era de esos peligrosos que podía prender fuego… A día de hoy eso ya está corregido con Marlin 🙂

.

Lo que tendremos que hacer, será instalar el Plugin de The Spaghetti Detective en OctoPrint, para ello vamos a “Settings” > “Plugin Manager” > “Get More…” y escribimos “The Spaghetti Detective”, nos aparecerá en el listado y le damos a “Install…”

.

Cuando finalice le damos “Restart now”, por ahora acabamos con OctoPrint, luego volvemos.

.

Instalar The Spaghetti Dectective

TSD requerirá al menos 2GB de RAM, por lo que quizá si tienes una Raspberri Pi anterior a la 4 no podrás hacer mucho, en mi caso personal la tengo corriendo bajo una máquina virtual. Estos son los pasos que necesitarás para tenerlo instalado, necesitaremos previamente instalar Docker y luego será tan sencillo como clonarnos el repositorio y levantar el contenedor con todo ready. Si quieres más info, su sitio oficial.

apt-get install docker docker-compose
git clone https://github.com/TheSpaghettiDetective/TheSpaghettiDetective.git
cd TheSpaghettiDetective
sudo docker-compose up -d

.

Una vez el contenedor de The Spaghetti Dectective se ha levantado, podemos con un navegador ir a la web de admin de Django: http://DIRECCION_IP:3334/admin

Por defecto, entraremos como root@example.com con contraseña supersecret

.

En la web de administración de Django, vamos a “Sites” y en “Domain Name” indicamos DIRECCION_IP_TSD:3334 y pulsamos en “Save”.

.

Ahora, si vamos al interfaz http://DIRECCION_IP_TSD:3334/ podremos añadir nuestra impresora desde la pestaña “Printers” > “Add Printer”.

.

Cumplimentamos el asistente, le damos un nombre a la impresora y qué hacer en caso de fallo, “Next”,

.

Nos indica que instalemos el Plugin de The Spaghetti Dectective en OctoPrint, cosa que ya dejamos hecha antes si lo recordáis. “Next”,

.

Ahora nos pide el Token para tener acceso a OctoPrint, eso de donde se saca? te lo dejo en el siguiente pantallazo.

.

Si vamos a los Settings de OctoPrint > “API” ahí lo tendrás. Si alguien está aburrido el código QR está modificado 😉

.

Por cierto, no olvidemos en los mismos Settings de OctoPrint configurar la dirección IP del servidor The Spaghetti Dectective. Y grabar los cambios.

.

Total, que entonces ya podríamos seguir con el asistente y esperar que se conecten…

.

¡Perfecto! Tenemos todo listo.

.

Podremos ver que TSD se conecta perfectamente a nuestro OctoPrint, y veremos la impresión en directo, donde veremos cómo va detectando en tiempo real si hay cualquier fallo… Además recuerda que puedes configurar desde aquí directamente para que te haga unos timelapses, ya verás que chulos quedan.

Por cierto, si queda alguna duda, la camara está conectada a la Raspberry Pi que corre OctoPrint, bien sea una webcam genérica por USB o sea el módulo de cámara propietario con el cable flexible.

Y no queda mucho más que hacer, con esto tendremos nuestras impresiones e impresoras seguras, si pasa algo y no estamos, nos enteraremos.

.

Integrando OctoPrint con Home Assistant,

Si queremos tener este interfaz, para poder conocer el estado de nuestra impresora 3D desde el propio Home Assistant, con la idea de seguir centralizando todos nuestros dispositivos inteligentes del hogar… pues lo tenemos muy fácil, como siempre, editamos nuestro configuration.yaml y añadiremos lo siguiente:

octoprint:
  host: DIRECCION_IP_OCTOPRINT
  api_key: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  name: Anet A8
  bed: true # true si nuestra impresora tiene cama que se calienta
  number_of_tools: 1 # Número de boquillas

camera:
  - platform: mjpeg
    name: OctoPi
    still_image_url: http://DIRECCION_IP_OCTOPRINT/webcam/?action=snapshot
    mjpeg_url: http://DIRECCION_IP_OCTOPRINT/webcam/?action=stream

.

Y con eso lo tenemos todo listo, reiniciamos Home Assistant y añadimos las entidades a una tarjeta, ¡fin!

Bueno, con esto último lo dejamos por hoy con este post, es un ejemplo de una automatización basándonos en el estado de nuestra impresora 3D, que como podemos ver, cuando finalice la impresión mandará un mensaje de Telegram y además nos lo notificará por los altavoces de casa 🙂

Como siempre, espero os haya sido de interés y agradeceros a todos los que dais esos Likes y Recomendaciones en redes sociales.

Últimas entradas de Héctor Herrero (ver todo)