En este segundo tutorial Octoprint, seguiremos descubriendo cosas que podemos hacer con Octoprint para que nuestra impresora 3D sea lo mas autónoma posible.

Tutorial Octoprint 2: Controlar encendido y luces LED

En el primer Tutorial de Octoprint ya hemos visto que desde la interfaz de OctoPrint, podemos controlar las impresiones pero lo que no podíamos hacer todavía es controlar la impresora en sí misma.

Primero vamos a hacer las conexiones físicas. La clave de todo es disponer de dos relés, o un relé doble. Un relé es un interruptor que se puede controlar mediante activación eléctrica, es decir, que podemos controlar desde nuestra Raspberry Pi. Necesitamos un relé capaz de soportar los 220V que necesita la impresora, ya que lo vamos a conectar antes de que llegue al transformador.

conexiones_rele_OctoPrint

En la foto podéis ver como se debe conectar los relés a la Raspberry Pi. El esquema de la Raspberry puede variar dependiendo del modelo. Os dejo el de mi Raspberry Pi 3, donde a VCC debemos conectar el pin de “5V Power”.

Esquema conexiones GPIO

En la otra parte conectaremos los cables que llegan del enchufe de la siguiente forma:

Conexiones_rele_anet

El color rojo significa positivo y el negro negativo. De la misma forma conectaremos las luces.

Un pequeño apunte sobre los reles. Habéis visto que hay tres puntos de conexión pero solo estamos usando dos en cada relé. Esto es porque, al igual que un interruptor, se puede conectar de forma que normalmente este el circuito abierto o cerrado. Nosotros en esta posición lo estamos conectando de forma abierta, para que tengamos que dar energía en la entrada para cerrar el circuito.

Control de los puertos GPIO de la Raspberry

Pasemos a la configuración de OctoPrint para usar esto. Primero instalaremos la librería necesaria para manipular los puertos GPIO de la Raspberry. Nos conectaremos a la RaspberryPi y teclearemos lo siguiente:

  • sudo apt-get install git-core
  • sudo apt-get update
  • sudo apt-get upgrade
  • git clone git://git.drogon.net/wiringPi
  • cd wiringPi
  • git pull origin
  • ./build

Con la librería instalada, ya podemos comprobar si las conexiones funcionan. Ponemos los pines como formato de salida:

  • gpio -g mode 23 out
  • gpio -g mode 17 out

Con write 1 encendemos:

  • gpio -g write 23 1
  • gpio -g write 17 1

Con write 0 apagamos:

  • gpio -g write 23 0
  • gpio -g write 17 0

Una vez comprobado que todo funciona, lo escribiremos en el fichero de configuración de OctoPrint:

  • cd /home/pi/.octoprint
  • sudo nano config.yaml

En el escribiremos lo siguiente:

Fichero config.yaml

En este punto de nuestro tutorial Octoprint, seguramente nos pida reiniciar y después deberíamos ver en la pestaña “System” las opciones que hemos añadido.

Extras. Funcionalidad añadida mediante plugins

Aquí ya entramos en terreno pantanoso dentro de nuestro Tutorial Octoprint porque los extras que gustan a unos, no gustan a otros. Además, con frecuencia salen plugins nuevos que dejan obsoletos otros. Pero, ¿Qué son los plugins? Pues son funcionalidad añadida y personalizable a un producto o servicio. A algunos os sonará la palabra de los buscadores como Chrome o Firefox donde podéis añadir, por ejemplo, un bloqueador de anuncios mediante un plugin.

A continuación, lo que tengo puesto y con lo que estoy funcionando yo hasta ahora. Sois libres de usar otros y si son mucho mejores que los míos os agradecería que me avisarais.

Como instalar plugins

Entramos en “Settings” y en la columna de la izquierda pinchamos en “Plugin Manager”. Le damos a “Get More…” y después a “… from the Plugin Repository”.

No-IP. Acceder desde cualquier parte a OctoPrint

Este extra merece un aparte, ya que no es un plugin y tiene una importancia capital en mí día a día.

El mayor problema de este Tutorial Octoprint y al que me enfrentaba cuando usaba la impresora era tener que estar vigilándola y tener que estar cerca por si algo fallaba. Una vez instalado OctoPrint se me solventaba el problema en parte, dado que podía conectarme remotamente a la impresora pero solo desde dentro de mi red local de internet. La solución va por partes:

Lograr acceso desde el exterior

Primero debemos poder acceder desde fuera de nuestra red local. ¿Cómo hacemos esto? Pues depende de la compañía de internet que tengáis y del router que poseáis. Se puede hacer de muchas maneras, yo he intentado conseguir la más segura a mi parecer, aunque seguro que hay algo que mejorar. Básicamente lo que he hecho es:

  • Dar una IP fija a mi Raspberry Pi. Es decir, dentro de la red local cada aparato conectado tiene una IP propia, que por seguridad y para no saturar la red con IP’s antiguas, son dinámicas. Es necesario dar una IP fija a nuestra Raspberry Pi para el siguiente paso.
  • Redirección de puertos. Al igual que nuestra Raspberry Pi, nuestro router forma parte de una red más grande aún (Si amigos, redes y redes, eso es Internet) por lo que tiene una IP dinámica dentro de dicha red (esto es importante para nuestro siguiente paso).

Dicha IP será a la que nos conectemos desde el exterior, ahora bien, como vamos a acceder al servidor web de la Raspberry Pi, seguramente nos vamos a intentar conectar al puerto 80, que es el puerto por defecto. Asique la siguiente tarea será la de dirigir las conexiones que lleguen a dicho puerto del router y dirigirlas hacia la IP estática de la Raspberry y el mismo puerto, que es donde corre el servidor web.

Ya que nos ponemos a redirigir los puertos, me parece mucho más seguro elegir un puerto del router que no se esté usando y que sea aleatorio y redirigirlo a la raspberry. Luego en el navegador ponemos IP_ROUTER:PUERTO y con eso accedemos.

NO-IP. Dando un nombre a nuestra IP

Por suerte y desgracia, la IP dinámica del router no podemos y no debemos hacerla estática. Podemos acceder ya a nuestra Raspberry Pi desde el exterior pero estamos en manos de que la IP dinámica del router cambie, así que un día puede que no podamos entrar con la IP que sepamos y debamos llegar a casa a consultar la nueva.

La solución llega con NO-IP, un DNS dinamico. Nos proporciona un nombre para la IP, enmascarandola y protegiendo que nadie la sepa. Tambien podemos configurar el router para que cada vez que cambie su IP, actualice la IP que guarda NO-IP mediante un servicio web. Lamento no poder ampliaros más la información sobre esto, pero es algo totalmente dependiente de vuestro router, por lo que debéis profundizar más en ello una vez sepáis el modelo del router. Con esto podremos acceder a nuestra impresora 3D cuando queramos y como queramos.

Enlaces complementarios

Una vez mas, quiero agradecer el articulo de lisergio sobre el cual yo he podido aprender y expandir mis conocimientos para este articulo.

Articulo de lisergio

Espero que este Tutorial Octoprint os haya ayudado y ahora podáis hacer cosas más chulas con vuestras impresoras. En el siguiente tutorial volveremos a la Anet A8 y veremos algunas piezas que podremos imprimir para mejorar el funcionamiento o la estética de esta maravillosa impresora barata.