Fabricar un mini Monitor sobre el Estado de la Impresora 3D

Vamos a crear un mini monitor de impresión (temperaturas, tiempo transcurrido, tiempo restante) con funciones adicionales para cuando no está imprimiendo (reloj y clima).

20181101_210557

Para empezar necesitaremos:

Una vez impreso el STL, lo cual pasaré por alto, cableamos el chiringuito tal que así:

Notese que el OLED está al revés, no soldéis por delante!

  • Descargamos e instalamos los Drivers para Weemos de aquí: https://wiki.wemos.cc/downloads
  • Entramos en Arduino – Archivo – Preferencias, y añadimos abajo, en «Gestor de URLs Adicionales de Tarjetas» lo siguiente: http://arduino.esp8266.com/stable/package_esp8266com_index.json
  • En Herramientas – Placa – Gestor de tarjetas escribimos «esp8266» e instalamos (yo utilicé la versión 2.4.1)
  • Ahora seleccionamos Herramientas – Placa – Weemos D1 R2 & Mini

Ahora a por las librerias, vamos a Programa – Incluir libreria – Gestor de librerias e instalamos las siguientes:

  • WiFiManager by tzapu (Usé la 0.14.0)
  • ArduinoJson by Benoir Blanchon (Usé la 5.13.3)
  • Buscamos 1306 y seleccionamos ESP8266 and ESP32 Oled Driver for SSD1306 display by Daniel Eichhorn (Usé la 4.0.0)

Antes de flashear necesitaremos las claves API de octoprint y de Clima

  • Abrimos printermonitor.ino de la carpeta descargada del código fuente y vamos a Settings.h
  • Entramos a octoprint – herramientas – API y copiamos esa clave a la linea
    • String OctoPrintApiKey = «metedaquilaclave»
  • Entramos a OpenWeatherMap, nos hacemos una cuenta gratuita y esperamos a que nos llegue un email con la clave API, la cual aparece en un recuadro amarillo tras este comando &APPID=, y copiamos la clave en la linea
    • String WeatherApiKey = «metedaquilaclave» (recordad, sin el &APPID=)
  • Por lo demás, fijaos en este cuadro para saber como configurarlo:

// OctoPrint Monitoring — Monitor your 3D printer OctoPrint Server
String OctoPrintApiKey = «MeteAquiTuClaveAPI»;
String OctoPrintHostName = «octopi»;
String OctoPrintServer = «MeteAquiTuIP»;
int OctoPrintPort = 80;
String OctoAuthUser = «UsuarioDeOctoprint»;
String OctoAuthPass = «ClaveDeOctoprint»;

// Weather Configuration
boolean DISPLAYWEATHER = true;
String WeatherApiKey = «MeteAquiTuClaveAPI»;
// Default City Location (use http://openweathermap.org/find to find city ID)
int CityIDs[] = { ClaveDeVuestraCiudad};
boolean IS_METRIC = true;

const int WEBSERVER_PORT = 80;
const boolean WEBSERVER_ENABLED = true;
char* www_username = «admin»;
char* www_password = «password»;
float UtcOffset = +1;// +1 para españa horario de invierno
boolean IS_24HOUR = true;
int minutesBetweenDataRefresh = 15;
boolean DISPLAYCLOCK = true;

Las claves para lo siguiente seran «admin» y «password» a menos que las modifiqueis ahi arriba.

(Añadiré fotos en breve de los dos siguientes pasos)

Conectamos todo, flasheamos y dejamos que se inicie un minuto o dos. Weemos habrá creado un punto WiFi al que nos tendremos que conectar con algún dispositivo, identificadlo y conectaos. Desde el explorador id a la IP de ese punto WiFi (en las propiedades del wifi sale, en mi caso 192.168.4.1) y veréis una interfaz para meter vuestro nombre y clave de WiFi, así Weemos se conectará a vuestro WiFi.

Tras guardar, Weemos creará una web para que podais configurar «al vuelo» cosas como la clave de octoprint, las API y demás.

Para los despistados que os compréis un OLED SPI sabed que todo tiene solución, la parte traerá os dirá como resoldar los puentes para pasar de SPI a I2C.

En mi caso, en el OLED venía como resoldar los puentes para pasar de SPI a I2C, solo tuve que desoldar el puente R3 y soldar en R1, R5 y R6.

Tras esto, Soldé los pines DC y CS a GND y dejé RES sin conectar.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *