Cómo construir un Magic Mirror y no morir en el intento

Descubre la «magia» de construir tu propio «Magic Mirror» con tu Raspberry y disfrutar como un niño.

(Go to the English Version)

Buscando proyectos para trastear con mi primera Raspberry, llegué al mundo de los Magic Mirror. Desde entonces y después de algunos meses de aprendizaje y cientos de pruebas y ensayos, he culminado mi primer «Espejo Mágico» que, pese a estar muy contento con el resultado final, considero solo un primer prototipo previo a retos mayores a afrontar en el futuro.

En esencia, un Magic Mirror no es más que un espejo (¿mágico?) que, además de realizar su función -más o menos- como tal, permite mostrar información de muy diverso tipo con un amplio abanico de posibilidades de configuración. Aunque algo existía ya previamente, la popularidad de estos dispositivos, que responden a la filosofía DIY (Do it Yourself), se debe a Michael Teeuw y la enorme y activa comunidad de makers existente en torno al mundo del Magic Mirror.

La «magia» la producen una serie de dispositivos -con especial referencia a la insustituible Raspberry- que, hábilmente, camuflados tras el cristal permiten lograr el efecto deseado, combinados con un potente software de carácter modular que te permite experimentar con infinidad de funcionalidades.

No hace falta decir que pocas aportaciones originales hay en el «prototipo» que voy a comentar en este post (aunque alguna contribución propia quizá se pueda encontrar). En esencia, es una recopilación de información y trabajos de otras personas (especialmente en lo que a los módulos instalados se refiere) a los que agradezco enormemente que hayan puesto sus conocimientos y sabiduría a disposición del personal a través de la red. A todos los «makers» del mundo… ¡Muchas gracias!

En este tutorial, no me pararé con excesivo detalle en el proceso de construcción o configuración del espejo propiamente sino, en esencia, lo que pretendo transmitir son mis experiencias al respecto, así como el resultado final. En todo caso, siempre encontrarás a lo largo de este post una recopilación de los enlaces necesarios para comenzar tu «mágica andadura».

¡Let’s go babe!

¡Sube el volumen! Mi Magic Mirror terminado (de momento).

¿Qué necesitamos?

Pues además de ganas, para desarrollar un proyecto similar (o seguramente mejorado) al que se recoge en este tutorial, unas cuantas cosillas aunque nada difícil de conseguir ni tampoco especialmente caro:

  • Raspberry Pi con una instalación limpía de Raspbian. En mi caso utilicé una Raspberry 3B+ aunque me consta que se pueden utilizar otros modelos, incluidos la Zero y la flamante Raspberry Pi 4.
  • Tarjeta MicroSD de calidad. En mi caso, utilizo una SanDisk de 32 GB pero es factible utilizar de menor capacidad.
  • Televisión o monitor de ordenador del tamaño que desees en función del tipo de Magic Mirror que tengas pensado. (Yo utilice un monitor de desecho de 24 pulgadas -o eso creo- adquirido en una tienda de segunda mano por 5 €.).
  • Adaptador VGA-HDMI. En mi caso obligado puesto que mi vetusto monitor no contaba con la entrada HDMI necesaria para conectarlo a la Raspberry. En concreto me refiero a algo como la imagen y que, en mi caso, adquirí aquí.
Adaptador HDMI a VGA
  • Cable HDMI. Mientras más corto mejor por aquello de ahorrar espacio en la «trastienda».
  • Teclado y un ratón inhalambricos o usb. Necesarios solo para la configuración inicial de la Raspberry. Luego podrás prescindir de ellos.
  • Un marco reutilizable para construir la estructura que deberá soportar el espejo o la madera necesaria para ello. Después de varias pruebas, está segunda fue la opción que yo escogí.
  • Algún conocimiento de inglés. Como siempre ocurre en el mundo DIY, a medida que quieres profundizar en cualquier proyecto, las páginas en español se van quedando cortas y, más pronto que tarde, necesitarás consultar páginas en inglés. Aún así, no debes preocuparte en exceso puesto que en Internet encontrarás también información en español suficiente como para apañártelas. Así que si no controlas el idioma de Shakespeare, tampoco debe ser motivo para desanimarte. Además… ¡Siempre te queda el Google Translate!
  • Y la esencia del «invento», un espejo espía, también llamado espejo de doble vía, entre otras denominaciones, o si optas por una opción más casera y económica, un simple cristal y un vinilo efecto espejo para ir en plan «maker» ya total. También existen otras posibilidades como utilizar cristales reflectantes como los típicos que se colocan en las fachadas de algunos edificios, por ejemplo. En todo caso, como esta es sin duda la parte más complicada de todo el proyecto, le dedicaremos un apartado específico dentro de este post.

¿Y sí lo complicamos un poco?

Lo anterior sería lo básico y más que suficiente para montar tu Magic Mirror en condiciones pero ¿qué maker que se precie se conforma con lo justo? ¡Uf! una vez comiences y si eres una persona curiosa, probablemente querrás experimentar con otras funciones y dotar a tu nuevo espejo de infinidad de «trucos mágicos» que te servirán para quedar como un campeón cuando vayan tus amigos y amigas a tu casa y les quieras dar la tabarra con tu espejito. Así que, vamos a ver algunas cosillas que le he incorporado a mi proyecto:

  • Interruptor inalámbrico SONOFF (u otra marca, obviamente) para poder controlar el apagado y encendido de la pantalla de forma sencilla. Como muchos otros dispositivos SONOFF, este interruptor funciona con la App EweLink (también disponible para IOs) además de integrarse perfectamente con Alexa y Google Home. Ello te permitirá programar el apagado y encendido del monitor (por aquello del Planeta y tal) o, simplemente, hacerlo funcionar con el comando de voz que le asignes en tu asistente. ¡Más «magia» para nuestro proyecto! En mi caso, además de instalarlo dentro de la estructura, lo tengo funcionando integrado con Alexa. Concretamente, este es el dispositivo que yo utilicé.
Interruptor Inhalámbrico Sonoff
  • Disco duro externo para almacenamiento. Pues así de simple. A mi proyecto le he añadido un simple disco duro externo extraído de un viejo portátil y que guardaba en un cajón desde hacía años. Obviamente, está conectado a la Raspberry y oculto tras el espejo. Esencialmente lo utilizó para almacenar mi música que oigo a través de los dispositivos Alexa de mi casa mediante la Skill My Media for Alexa a la que le dedicaré algún post más adelante. Más allá de esto y de realizar copias de seguridad periódicas de la propia configuración del Magic Mirror, no le doy otra función. Esencialmente es una forma de optimizar recursos y de, sobre todo, utilizar el espacio trasero del Magic Mirror para «esconder» algún cacharrillo que si no estaría por ahí ocupando espacio.
  • Sensores varios conectados mediante la GPIO de la Raspi. Obviamente, si el cerebro de todo el invento es una Raspberry, no es difícil intuir que tu Magic Mirror podrá mejorarse con sensores de todo tipo conectados a la GPIO que permitan mostrar o implementar funcionalidades que enriquezcan notablemente el proyecto. En mi caso y a la espera de nuevos pedidos, tengo instalados dos sensores interactuando con el software del espejo:
    • Sensor temperatura y humedad interior DHT22 funcionando con el módulo MMM-LocalTemperature aunque hay otros módulos también orientados a la inclusión de este tipo de sensores en nuestro proyecto (tranquilos que más adelante hablaremos con detalle del tema de los módulos, esenciales para que el «invento» funcione).
    • Y la que, modestamente, considero la «joya de la corona» de mi proyecto… el Sensor PAJ7620u2 (Grove Gesture) funcionando con el módulo MMM-GroveGesture. En mi caso, lo adquirí aquí. Algo caro (18,89 €) pero, lo puedo asegurar, merece la pena aparte de por venir ya soldado y preparado para «conectar», por las muchas posibilidades de interacción que ofrece para el control de tu Magic Mirror. En todo caso, existen otras alternativas más económicas que quizás te puedan funcionar a poco que controles algo de código y, quizás, soldadura. Por ejemplo, yo lo intenté previamente con este sensor aunque lo tuve que dejar por imposible y, finalmente, encargar el indicado. Si no te apañas bien soldando microchip, te sugiero que ni lo intentes. En el apartado dedicado a los módulos de terceros hablaré más detenidamente del sensor PAJ7620u2 y sus posibilidades.
Sensor temperatura y humedad DHT22
Sensor Grove Gesture PAJ7620u2

Construyendo el marco

Vista del Magic Mirror terminado

Detalle del marco y parte del interior

Tras todo lo anterior, es hora de ponernos manos a la obra. Dando por hecho que ya cuentas con todos los materiales necesarios (tranquilo que del cristal ya hablaremos, más adelante) y que, sobre todo, tienes clara la idea de lo que quieres hacer, toca demostrar que realmente eres un verdadero maker y no un simple friki que pasa sus tristes horas libres delante de la pantalla del ordenador. Es hora de ponerse serios, sacar las herramientas y ponernos a fabricar o reciclar la estructura (marco) que soportará todo el invento.

Existen infinidad de post en Internet que explican, paso a paso, como proceder al respecto, bien si quieres construir tu flamante marco desde cero o bien si optas por reciclar alguno que tengas a mano. Yo opté por la primera de las opciones, empleando para la tarea un buen puñado de listones de madera (de bastante buena calidad, por cierto) de un viejo somier que tenía arrinconado en el trastero. Las posibilidades son infinitas al respecto, tanto como tu imaginación. Lo que si es muy importante es que antes de ponerte a cortar tablas como un loco, tengas claro lo que quieres hacer, bien en tu cabeza, bien plasmado en algún boceto. Además, debes tener en cuenta que el marco que va alojar el Magic Mirror debe de tener algo de «fondo» para poder contener los dispositivos necesarios, también deberás considerar que las medidas del mismo dependerán en gran medida de las medidas del monitor o televisor que tengas previsto utilizar. Puedes optar porque el espejo se ajuste a esas medidas y que la información ocupe toda la superficie del cristal o bien, como ocurre en mi caso, puedes optar por un cristal y marco más grande que la propia pantalla que vayas a utilizar de forma que la información se muestre solo en una parte del Magic Mirror, quedando el resto como un simple espejo.

No me voy a detener expresamente en los detalles de la construcción del marco puesto que no soy experto en carpintería (ni en nada, me temo) y porque, como ya te indicaba, existen infinidad de muy buenos «tutos» para ello. Como muestra (encontrarás muchos más en Internet), aquí te dejo algunos de ellos que me sirvieron de inspiración para construir el marco de mi espejo:

  • Magic Mirror – The casing: En inglés. El propio Michael Teeuw nos orienta sobre la construcción del marco.
  • Building MirrorMirror: En inglés. Un tutorial completo sobre todo el proceso y también, por supuesto, para la construcción del marco. El marco de mi espejo sigue en gran medida lo aquí explicado.
  • Building the Frame: En inglés. Foro de la Comunidad Magic Mirror sobre la cuestión del marco.
  • Magic Mirror utilizando un marco IKEA RIBBA: En Inglés. Dentro de las posibilidades, también puedes reciclar algún marco que ya tengas por ahí o que adquieras para la ocasión.

Ya tengo el marco controlado… Vamos a por la pantalla

En este punto, deberíamos pensar en preparar nuestro monitor o televisor. Para ello es recomendable despojarlo (con cuidado) de la carcasa de plástico a fin de ahorrar espacio y evitar que la pantalla tenga demasiada profundidad dado que ello condicionaría el «fondo» que le vayamos a dar al marco donde colocaremos nuestro espejo. Al realizar esta operación, ten cuidado con no cargarte los controles para manejar el brillo y demás del monitor (si es lo que vas a utilizar) puesto que posteriormente te serán necesarios para controlar estos aspectos del mismo.

La pantalla «encajada» en el Magic Mirror

Aunque en Internet podrás encontrar algunos intentos al respecto, si pretendes reciclar la pantalla de una vieja tablet, portátil o, incluso, móvil (proyectos hay para todos los gustos) debes tener en cuenta que quizás no sea tan buena idea. Estos dispositivos, en principio al menos, puede que quizás cuenten con salida de vídeo (VGA, HDMI u otro tipo) pero en su inmensa mayoría, no cuentan con entrada que es lo que realmente necesitaremos para «proyectar» nuestro Magic Mirror desde la Raspberry en la pantalla escogida. En todo caso, si eres de los makers «voluntariosos» y un amante acérrimo del reciclaje, lo puedes intentar pero debes saber que, con toda probabilidad, necesitarás adquirir una «controladora de vídeo» adecuada para el modelo de tu dispositivo a fin de poder transmitir la imagen desde la Raspi hasta tu flamante y reciclada pantalla. Buscando en Internet encontrarás la información necesaria para ello. Todo un reto que, desde luego, yo preferí ahorrarme, por supuesto.

El problema del cristal

Y digo problema porque, sin duda, es la parte más delicada de todo el proyecto y no lo digo porque se pueda romper (que también aunque espero que no seas tan «manazas») sino por la dificultad existente para conseguir un espejo de doble vía, además de por el notable precio que suelen tener los mismos. En todo caso, siempre nos quedan alternativas viables para conseguir que nuestro proyecto «cristalice» y evitar quedarnos en el camino.

En esencia, lo que necesitamos (bien comprado, bien «fabricado») es un espejo que por una parte haga, más o menos, su función (sería la cara que, obviamente, colocaríamos hacia afuera en nuestro Magic Mirror) y que por la otra permita que pase la luz de la pantalla que vayamos a utilizar. El resto de la superficie trasera del espejo que no esté ocupada con el monitor o TV, deberemos «opacarla» totalmente a fin de evitar que se filtre ninguna luz a través del cristal, más allá de la que proyecta nuestra pantalla con la información que deseemos mostrar. Para este cometido, yo simplemente utilicé algo tan sencillo como cartulina negra y cinta aislante mate de electricidad.

Al respecto y de forma resumida, son varias las opciones existentes para solventar el tema del cristal:

  • Espejo espía o de doble vía: Esta, sin ningún lugar a dudas, sería la mejor opción en cuanto a resultados (y también la más cara con diferencia). Sin embargo, el problema fundamental reside, además de en el precio, en que no es nada fácil encontrar este tipo de material al menos en España. Probablemente, tu primer impulso sea acercarte a la cristalería del barrio y preguntarle al paisano de turno sobre la cuestión. No está de más hacerlo pero, con mucha probabilidad, el amigo te mirará con cara extraña y no será capaz de solventarte el problema. Ello no significa, por supuesto, que no puedan existir cristalerías patrias que suministren este tipo de productos pero, desde luego no es tarea fácil. Respecto a la opción de adquirirlo por Internet, tampoco es cuestión sencilla, al menos desde Canarias que es donde resido, puesto que, por ejemplo, Amazon -donde he visto que se ofertan- no envía (como otros tantos) este tipo de materiales al archipiélago. Por lo que he averiguado al respecto, existe la posibilidad de encargar online tu espejo espía a algún proveedor extrajero. Por ejemplo, allá por Alemania (creo) hay un tipo que se encarga de gestionarte tu pedido y remitírtelo a tu domicilio, eso sí, a un precio realmente notable. Me consta que algún compañero interesado en este mundillo ha optado por esta vía, con muy buen resultado. Por si te interesara, aquí encontrarás información al respecto si es que el amigo sigue en el «negocio». Igualmente, aquí te dejo una lista de proveedores en la que, como podrás comprobar, no figura ninguno de España.
  • Cristales «efecto espejo» para ventanas y fachadas: Muy utilizados en arquitectura, son fáciles de encontrar en cristalerías grandes. Los hay de diverso tipo, calidades y marcas y, en general, ofrecen un resultado óptimo aunque tienden a mostrar un reflejo notablemente oscurecido (pura cuestión de ciencia física en la que no nos detendremos). Por contra, cuentan a su favor con su moderado coste y la facilidad para encontrarlos. Acércate a una buena cristalería y pregunta si estás interesado en esta opción.
  • Vinilo efecto espejo: Finalmente, la opción más asequible aunque, probablemente, la que peores resultados ofrezca en cuanto a calidad del reflejo ofrecido por nuestro Magic Mirror, es utilizar un vinilo «efecto espejo» para adherirlo al cristal (en este caso, un cristal normal) que utilicemos para nuestro «invento». Esta, finalmente, es la alternativa por la que opte en la construcción de mi Magic Mirror. Te adelanto que si bien es la opción más asequible y viable, deberás armarte de paciencia porque la instalación del vinilo no es nada sencilla (a menos que no te importe que tu espejo se vea lleno de burbujas y rayones de todo tipo, claro). En mi caso, opté por la compra online de este producto que, sin duda, es uno de lo de mejor calidad que puedes encontrar en el mercado. En todo caso, te recomiendo encarecidamente que compres más metros de los que en principio piensas que vas a necesitar puesto que es probable que una buena parte la desperdicies haciendo pruebas hasta obtener el resultado deseado (un espejo más o menos en condiciones). En el anterior enlace también encontrarás este vídeo (en español) que te explica como realizar la delicada operación de colocación del vinilo. Aunque en el vídeo parece muy fácil, te aseguro por experiencia que no lo es.

Para ir finalizando este apartado, recomendarte que bien adquieras un espejo de doble vía o bien un simple cristal transparente para incorporarle un vinilo, el mismo deberá tener un grosor mínimo de 4 mm o más a fin de que soporte correctamente la presión de los dispositivos a colocar detrás del mismo al tiempo que evitar peligrosas roturas a la hora de manejarlo. Cierto es que a mayor grosor, más oscuro será el efecto «espejo» conseguido pero la seguridad ante todo.

También, me consta, que hay gente que ha sustituido el cristal por metacrilato u otros materiales. Hago referencia a ello pero no entro en detalles dado que no llegué a experimentar al respecto.

Configurando nuestro Magic Mirror

Toca el momento de entrar en la parte del Software, tanto de la Raspberry como del Magic Mirror propiamente. Evidentemente, podríamos haber comenzado nuestro proyecto (y quizás sería lo más recomendable) por esta parte más de “código” y “consola” y no por los aspectos más “manuales” abordados anteriormente pero, en cualquier caso, esto ya es cuestión de gustos y de lo que tengas a mano. En definitiva, si tienes la madera pues puedes comenzar por el marco y si lo que tienes es una Raspberry olvidada, cogiendo polvo en algún cajón, pues empieza por aquí. La cuestión es comenzar e irte ilusionando con el proyecto sin necesidad de esperar a contar con todos los elementos necesarios para su desarrollo.

Poniendo «en marcha» nuestra Raspberry

Como comentaba anteriormente, en mi caso he utilizado una Raspberry 3B+ con Raspbian pero puedes utilizar otros modelos de Raspi sin problemas. Información para ello encontrarás sobradamente en Internet.

Raspberry PI 3B+

Doy por hecho que tienes algún conocimiento sobre como “echar a andar” tu Raspberry pero ante la duda lo mejor es tirar de la gente que realmente sabe de estas cosas y seguir sus pasos y recomendaciones, punto por punto. En este sentido y como poco podría yo añadir a lo que otros ya han escrito como mucho más conocimiento de causa, aquí te dejo los enlaces necesarios para que puedas configurar adecuadamente tu miniordenador:

Es importante considerar que aunque en los enlaces anteriores podrás encontrar otras alternativas, es recomendable que instales el sistema operativo “oficial” de Raspberry (Raspbian) a fin de poder desarrollar nuestro proyecto de Magic Mirror. Para que no haya dudas al respecto, en este enlace encontrarás los archivos necesarios. Tenlo en cuenta si, como es habitual, utilizas Noobs (una herramienta de instalación rápida con diferentes sistemas operativos a escoger) a la hora de configurar tu Raspberry.

Finalmente y como comprobarás rápidamente, es precisamente en este momento cuando vas a necesitar echar mano del teclado y ratón que mencionamos entre lo “necesario”, al comienzo de este tutorial, para poder configurar tu Raspberry.

Señalar que dado que la Raspberry va a estar oculta tras el espejo junto con otros dispositivos que, obviamente, generarán calor, es importante garantizar su adecuada ventilación para evitar “calentones” innecesarios. Bastará con garantizar algunos agujeros de ventilación en el marco y dotar a nuestro micrordenador de los típicos disipadores de temperatura y algún pequeño ventilador.

Instalando y configurando el Magic Mirror

¡Y llegó el gran momento! Por fin vamos a comenzar con la instalación del software necesario para que nuestro Magic Mirror cobre vida.

Una vez tengamos configurado adecuadamente Raspbian en nuestra Raspberry, es el momento de instalar los paquetes necesarios para nuestro Magic Mirror. Lo más recomendable, como siempre, es acudir a la fuente original y seguir, paso a paso, las instrucciones indicadas. Al respecto, aquí te dejo los enlaces necesarios donde encontrarás toda la información para proceder correctamente:

Configurando los módulos de nuestro Magic Mirror

Una de las características, en mi opinión, más interesantes del Magic Mirror es su carácter modular. Es decir, una vez instalado el paquete básico que ya viene con unos módulos por defecto, se abre un inmenso abanico de posibilidades para instalar infinidad de módulos de terceros desarrollados por la activa comunidad existente en torno a este tipo de proyectos.

La mayoría de los módulos (no siempre) indican como realizar la instalación que siempre suele ser similar. En esencia, consiste en clonar vía consola el repositorio que corresponda al módulo escogido dentro del directorio “/home/pi/MagicMirror/modules/” que, si todo ha ido bien, deberías encontrar en la ruta indicada. Además, es posible que en algún caso se te solicite instalar determinadas dependencias, todo ello a través de tu terminal. Una vez realizado este proceso, deberás editar el archivo “config.js” que encontrarás en la ruta “/home/pi/MagicMirror/config/” para incluir en el mismo la configuración básica del módulo así como escoger entre las diferentes opciones de que te proponga el autor/a del mismo.

Sin duda, la configuración del archivo “config.js” puede ser la parte más tediosa y delicada del asunto puesto que ya entramos en terreno de “códigos” lo cual para alguien como yo, poco ducho en la materia, obviamente es lo más complicado. Si controlas sobre estos temas y estás acostumbrado a trastear con distribuciones linux, será pan comido, y si, como es mi caso, no es así, pues ármate de paciencia y, sobre todo, no olvides realizar siempre una copia de seguridad del archivo “config.js” antes de introducir ninguna modificación en el mismo.

De todas formas, no es difícil “cogerle el truco”, especialmente si sigues los ejemplos de configuración básica inicial que encontrarás en la propia documentación de instalación del software. Es muy importante que prestes mucha atención a la sintaxis del archivo “config.js” porque cualquier pequeño error puede impedir que tu Magic Mirror cargue correctamente. En todo caso, si después de cualquier cambio en la configuración, el espejo no arranca adecuadamente, fíjate en la línea de error que te mostrará la consola para poder solucionarlo.

Igualmente, si te lo exige la configuración del módulo (no es lo habitual) o si simplemente deseas experimentar al respecto, también podrás realizar modificaciones en la configuración de estilos a través de del archivo genérico de configuración “custom.css” que deberías encontrar en “/home/pi/MagicMirror/css/” así como de los diferentes “nombrearchivo.css” de cada módulo que encontrarás en sus correspondientes directorios. Sea como sea, vaya por delante mi recomendación de manejar estos archivos con “prudencia” y siempre realizar copias de seguridad antes de meterte a “trastear” con los códigos. ¡Avisado quedas!

Instalando módulos de terceros

Quizás, la parte más “divertida” de todo el proyecto. Existen infinidad de módulos desarrollados por la comunidad que son los que realmente, una vez instalados los “default modules”, van a darle vida y personalidad a tu Magic Mirror.

Recuerda que los “default modules” con los que contarás en la instalación inicial, también aceptan modificaciones de configuración. Por si te sirve de idea y entre otras modificaciones que he introducido en los módulos por defecto, en mi caso, los mensajes del módulo “Compliments” están adaptados a la previsión del tiempo así como a la hora del día. Es decir, aparte de algunos genéricos, los consejos ofrecidos dependerán de la climatología y del momento del día. Igualmente, el modulo “Calendar” en mi caso lo utilizo para conocer la previsión de las mareas de la Playa de mi ciudad así como la hora de salida y puesta del Sol. Por su parte, el módulo NewFeeds lo tengo “duplicado”, mostrándose en uno noticias de mi zona y en otro noticias internacionales.

Entrando propiamente en los “modulos de terceros”, en esencia, existen dos repositorios fundamentales para buscar y probar módulos de terceros. Ambos los encontrarás en GitHub. Aquí tienes los enlaces:

  • 3rd Party Modules. El listado de módulos por excelencia, ordenados por temáticas. La mayoría están “operativos” pero también es frecuente encontrar algunos “abandonados”. Todo es cuestión de ir probando.
  • Legacy Modules. Listado de módulos ordenados alfabéticamente. En ocasiones encontrarás, básicamente, los mismos o versiones previas de los ya existentes en el listado anterior. También aquí podrás encontrar módulos interesantes y totalmente operativos.

Modulos de terceros instalados en mi proyecto

Durante estos meses dedicados a la construcción del Magic Mirror he probado infinidad de módulos (no todos los existentes, ni mucho menos, por supuesto) hasta al final quedarme con la selección que relacionaré a continuación. Por supuesto, esto es absolutamente arbitrario y los módulos a instalar dependerán exclusivamente de tus necesidades, gustos y preferencias. Todos los módulos indicados, los encontrarás en los enlaces anteriores, especialmente en el primero de ellos (3rd Party Modules.).

Dado que, como indico, esta es una cuestión muy personal, me limitaré simplemente a mencionar los módulos que tengo actualmente instalados (nunca se sabe lo que pasará mañana) y comentaré algún aspecto que pueda considerar de interés sobre los mismos:

  • MMM-pages. Fundamental si piensas instalar muchos módulos. Te permite organizar los mismos en diferentes páginas. Existen otras alternativas interesantes para conseguir algo parecido como puede ser MMM-Carousel que te permite “alternar” entre módulos.
  • MMM-UVIndex. Módulo que me informa sobre la intensidad de los Rayos UVA en mi localidad.
  • MMM-AirQuality. Me indica la calidad del aire en mi localidad.
  • MMM-Tools. Imprescindible para conocer como va tu “Raspi”. Uso CPU, RAM, temperatura y demás…
  • MMM-Buller. La solución que utilizo (muy útil para mi) para visualizar mis tareas de Google Task en el espejo.
  • MMM-CalendarExt2. Algo complicado de configurar pero muy versátil. Una alternativa muy completa al calendario por defecto.
  • MMM-DarkSkyForecast. Uno de los tantos módulos sobre el tiempo que hay disponibles. Muy atractivo visualmente y fácil de configurar.
  • MMM-TouchPlayerBasic. Un reproductor de música tan sencillo como poco útil. En esencia, una curiosidad.
  • MMM-network-signal. Pues eso mismo.
  • MMM-GoogleFit. Un módulo muy curioso aunque algo limitado que te permite visualizar tu actividad sincronizado con Google Fit.
  • MMM-GoogleFit2. Lo mismo pero para una segunda persona.
  • MMM-BackgroundSlideshow. Permite colocar una serie de imágenes de fondo (ocupando toda la pantalla) y rotar automáticamente entre las mismas.
  • MMM-SimpleLogo. Pues eso. Una forma fácil de colocar alguna imagen concreta en cualquier espacio.
  • MMM-NewsFeedTicker. Un módulo muy “chulo” aunque mejorable. Puedes configurar fuentes de noticias que irán pasando en un franja (lo típicos de los informativos).
  • MMM-Widget. Te permite insertar en tu Magic Mirror cualquier tipo de Widget. En mi caso, tengo insertados tres dedicados a mi equipo de fútbol predilecto.
  • MMM-LocalTemperature. Vinculado con el sensor DHT22 que comentábamos con anterioridad. Me permite conocer la temperatura y humedad interior.
  • MMM-TelegramBot. Muy interesante. Te permite cierto control sobre tu Magic Mirror a través, obviamente, de Telegram.
  • MMM-Cursor. Un simple cursor de ratón útil cuando el espejito se pone rebelde o quieres realizar alguna operación sencilla. Obviamente, tienes que contar con un ratón inhalámbrico conectado a tu Magic Mirror.
  • MMM-GroveGestures. También algo ya comentamos en la anterior entrega. Vinculado con el sensor Sensor PAJ7620u2 (Grove Gesture) permite controlar el espejo mediante gestos. Sin duda, una alternativa muy interesante sobre cuyas posibilidades ya has podido visualizar una pequeña demostración en este vídeo ya publicado en este mismo tutorial. Dado el interés que entiendo puede despertar este módulo, le dedicaremos un apartado especial más adelante.
  • MMM-page-indicator. Nos indica, mediante un circulito situado en la parte inferior de cada página, el número de páginas de tu Magic Mirror y en cual estás. No tiene más función.
  • MMM-ImageSlideshow. Permite insertar una imagen de forma simple. Lo utilizo para un pequeño “menú” recordatorio de los gestos que utilizo y que tengo fijado en la parte inferior de todas las páginas.
  • MMM-MotionDetector. Entre otras funciones, te puede servir para programar el encendido y apagado de la pantalla en función del movimiento detectado por una cámara. Aunque funcionaba perfectamente, en estos momentos lo he desactivado y he retirado la cámara del Magic Mirror por simples razones de seguridad. La cuestión del encendido y apagado de la pantalla lo he solucionado finalmente con el interruptor inhalámbrico SONOFF ya mencionado en la anterior entrega y con el MMM-GroveGestures que ofrece una opción al respecto mediante gestos.
  • MMM-GooglePhotos. Obviamente, un módulo que te permite visualizar tus álbumes de fotos de Google Photos. Funciona sin problemas aunque en estos momentos lo tengo desactivado dado que tengo la impresión de que consume excesivos recursos y me ralentiza todo el sistema por no decir que directamente lo “tumba”.

¿En qué áreas de la pantalla coloco mis modulos?

Pues no es una cuestión menor esta, especialmente cuando comiences a acumular módulos y más módulos y el espacio “disponible” se vaya acabando. Como ya he indicado, existen soluciones si tu intención es llenar el Magic de módulos pero también es relevante conocer las distintas “áreas” o “regiones” donde puedes ubicar la información a mostrar por tus módulos. La mayoría de ellos te indicarán cual es la mejor área para ubicarlos aunque, en muchas ocasiones, solo sera una recomendación opcional (no en algunos módulos que “solo” te funcionarán correctamente en la ubicación que su autor/a te indique). Para todo ello a mi me resultó de mucha utilidad esta sencilla explicación gráfica sobre las diferentes áreas útiles de tu Magic Mirror a la hora de organizar los módulos:

Y aquí la explicación de los códigos de colores anteriores:

  • top_bar and bottom_bar are light gray.
  • top_left and bottom_left are red.
  • top_center and bottom_center are blue
  • top_right and bottom_right are green
  • upper_third is yellow
  • middle_center is cyan
  • lower_third is magenta

Y como de “bien nacidos es ser agradecidos”, aquí les dejo enlace original de donde obtuve la información anterior.

Algo más sobre el MMM-GroveGestures

Buscando un sistema para interactuar con mi Magic Mirror, más allá del control por voz que no me motivaba especialmente al haber ya experimentado mucho con los dispositivos Alexa y Google Home y no resultarme especialmente novedoso, me topé con el módulo MMM_GroveGestures. Mediante el mismo y contando con el ya mencionado sensor PAJ7620u2 (Grove Gesture) conectado a nuestra Raspberry a través, obviamente, de los pines adecuados de la GPIO, es posible controlar tu Magic Mirror mediante gestos desde una distancia máxima (aproximadamente) de unos 20 cm. Ofrece por defecto nueve gestos diferentes (UP, DOWN, LEFT, RIGHT, FORWARD, BACKWARD, CLOCKWISE, ANTI-CLOCKWISE Y WAVE) pero, además, permite realizar combinaciones de dos, tres o más movimientos con ellos lo cual multiplica exponencialmente las posibilidades. Lógicamente, si creas muchas “combinaciones de gestos”, además de poner a prueba tu memoria, también incrementarás las posibilidades de error a la hora de ejecutar los mismos ya que la sensibilidad del sensor es bastante notable.

Este sistema te posibilitará no solo enviar notificaciones a tu Magic Mirror y a aquellos módulos que acepten tal funcionalidad sino también y esto me parece muy relevante, ejecutar comandos con tu Raspberry como si estuvieras trabajando con la consola.

Por ejemplo, en mi caso tengo una serie de gestos vinculados al programa “mpg123” lo que me permite escuchar música desde el disco duro externo integrado en el espejo (una Playlist previamente configurada para ser concretos) así como subir y bajar el volumen, entre otras funciones. Aunque evidentemente resultaría fácil integrar unos simples altavoces en el Magic, en este momento y hasta que encuentre los adecuados, utilizo un altavoz externo conectado por bluetooth o cable, según esté de humor.

Como ya he comentado y entre otras posibilidades, también podrás utilizar el sensor para activar tu pantalla o, pasado el tiempo que especifiques sin recibir ningún gesto, conseguir que se apague automáticamente. En definitiva, múltiples opciones que te animo a explorar.

Montaje final del Magic Mirror

Obviamente, en algún momento, tendremos que realizar el “montaje” de todo el invento. Es decir, colocar nuestra Raspberry, pantalla y demás elementos dentro de la estructura que hayamos fabricado para nuestro Magic Mirror. Dado que las posibilidades al respecto son infinitas y dependerá en gran medida de nuestras preferencias y objetivos, me limito a compartir algunas imágenes de las “tripas” de mi Magic Mirror que espero sean de utilidad para proceder al montaje final del mismo:

¿Y hay más?

Pues sí. Hay mucho más pero, de momento, hasta aquí he llegado y creo que tampoco seguiré profundizando mucho más en la cuestión dado que estoy relativamente satisfecho con el resultado final de mi proyecto, aunque esté feo que yo lo diga.

Solo como apunte, y a modo ejemplo de otras posibilidades existentes, no me olvido de la implementación del proyecto con control por voz (tanto con Alexa como Google Home), para lo cual existen numerosas opciones de módulos, o algo que a mi me parece incluso más interesante al tiempo que complejo, como es el reconocimiento facial y las posibilidades de respuesta personalizada del Magic Mirror que ello ofrece. En los enlaces a los módulos de terceros encontrarás también propuestas al respecto.

¿Qué será lo próximo?

Como decía casi al principio del post, cuando empiezas es realmente difícil parar con este tipo de proyectos dada la cantidad de posibilidades que ofrece. Aunque ya he dado el Magic Mirror “oficialmente” por terminado, no es menos cierto que estoy pendiente de recibir un sensor PIR y un interruptor giratorio KY-040 por aquello de seguir “experimentando” aunque, sinceramente, no se si me quedarán pines libres en la GPIO para seguir conectando chismes a la Raspberry.

Y ahora… ¡A disfrutar!

Anuncio publicitario

16 comentarios en “Cómo construir un Magic Mirror y no morir en el intento

  1. Ramon

    Muy didáctico este post ! Ojalá lo hubiera tenido cuando monté mi MagicMirror hace algunos años. Cierto, lo más dificultoso para mi fué lo del cristal. En una tienda un amable vendedor me dejó varias muestras y pude probar en casa con las condiciones de luz de mi salón, etc cual me convenia más. A mi espejo le tengo puesto lo «básico» (temperatura, noticias del dia, calendario) y estoy mirando para añadir alguna cosa más (reconocimiento facial o lo de reconocer los gestos, funcionalidad que desconocía). Muchas gracias por compartir tanta información !

    Me gusta

    Responder
    1. Fernando Pellicer Melo Autor

      Muchas gracias por tu valoración y disculpa el enorme retraso en contestarte y publicar tu comentario debido a que el trabajo no me ha dado descanso en los últimos tiempos. Abrazo y mucha suerte con esas mejoras a tu Magic Mirror que seguro te quedarán de fábula!!

      Me gusta

      Responder
  2. Anónimo

    ¡Hola Fernando!
    Me estoy iniciando en este mundillo y leyendo tu post me ha surgido una duda. ¿Cual es finalmente el cristal que has empleado?
    ¡Muchas gracias por un post con tanto detalle!

    Me gusta

    Responder
    1. Fernando Pellicer Melo Autor

      Hola! Finalmente me incliné por un cristal normal al que le añadí vinilo efecto espejo que indico en el post, fundamentalmente por la absoluta imposibilidad de encontrar espejos de doble vía donde resido. La instalación tiene su cierta dificultad (hay que cogerle el truco) y el resultado no es perfecto pero hace su función. Cuándo tenga tiempo pretendo intentarlo con la opción de cristal «efecto espejo» para ventanas a ver que tal aunque entiendo que oscurece bastante. Me alegro que te haya resultado de interés el post. Un saludo!

      Me gusta

      Responder
  3. Pingback: How to build a Magic Mirror and not die trying | OkupaTIC

  4. Pingback: Crean un Magic Mirror táctil y con reconocimiento facial » Raspberry para novatos

  5. Pingback: How to build a Magic Mirror and not die trying – OkupaTIC

  6. Pingback: AnyDesk, una buena opción para controlar remotamente tu ordenador – OkupaTIC

  7. Pingback: Como construir un Magic Mirror y no morir en el intento (Parte II) – OkupaTIC

  8. Pingback: Como construir un Magic Mirror y no morir en el intento (Parte II) – OkupaTIC

¡Deja tu comentario!

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s