Faça o seu “Magic Mirror” com o Raspberry Pi

6 Comentários

Um “Magic Mirror” é um espelho que para além de nos refletir, permite também mostrar várias informações que nos podem auxiliar no dia-a-dia como agenda, notícias, trânsito, estado do tempo, entre muitas outras disponibilizadas pela comunidade “Magic Mirror”.

Mãos à obra!


Material

Para este projeto foram utilizados os seguintes componentes:

Software:

Hardware:

  • Monitor TFT/LCD, sendo que neste caso foi aproveitado um ecrã LG Flatron L1730SF de 17″.
  • Kit Raspberry Pi (Via Pplware)
  • Cartão de memória de pelo menos 4Gb de capacidade.
  • Acrílico transparente com dimensões 50×50 cm e 2 mm de espessura (Via loja de ferramentas)
  • Película espelho de uma via “One Way Solar Reflective Mirror Sticker”. Mesmo sendo mais barata, não é a melhor alternativa pois a película chegou toda amachucada e é de difícil instalação comparado com um “Acrylic See-Through Mirror”, ou seja o acrílico já com a película aplicada. (Via Internet)
  • X-Ato
  • Fita cola de dupla face
  • Kit Chaves de parafusos
  • Opcional:
    • Adaptador HDMI/VGA apenas é necessário caso o ecrã não tenha entrada HDMI. (Via Internet)

Magic Mirror Material

Construção:

Para começar foi necessário abrir o monitor com as chaves de parafusos adequadas e medir o ecrã do mesmo. Para este ecrã de 17” as medidas são de 36 cm de altura e 29,5 cm de comprimento.
Utilizando estes dados, foi necessário cortar o acrílico e a película à medida. Uma vez que o corte do acrílico é gratuito na loja onde foi adquirido, não recomendo cortar em casa com uma serra de corte, pois irá rachar o mesmo. Para o corte da película, foi necessário deitar o ecrã sobre a mesma e cortar com o X-ato à volta do ecrã.

Magic Mirror Medições
Com o acrílico e a película já cortados, foi necessário retirar as películas protetoras do acrílico e da película espelho e efetuar a aplicação da película espelho com o ecrã.
Este processo foi efetuado com cuidado e de forma a evitar a criação de bolhas de ar, assim como deixar pequenas partículas de pó debaixo da película.
No final identifiquei bastantes bolhas de ar, as quais retirei cirurgicamente perfurando as mesmas com um alfinete fino. Como podem verificar o resultado não foi o melhor pois a película não chegou nas melhores condições tendo sofrido bastante no transporte. No entanto e tendo em conta o propósito, apliquei na mesma.

Magic Mirror Película

Com o x-ato cortei duas tiras finas de fita-cola de dupla face para poder colar o acrílico preparado anteriormente no ecrã.

Magic Mirror Fita Cola

Como o ecrã montado, podemos voltar a montar o monitor na sua capa exterior terminando assim esta fase de construção.

 

Software:

Para este propósito decidi utilizar como base uma distribuição do sistema operativo linux, simples e leve como o Raspbian Strech Lite.

Em primeiro lugar é necessário efetuar o download do mesmo disponível no site oficial. Após o download da distribuição temos que a colocar no cartão utilizando o método indicado no artigo, alterando apenas o ficheiro da mesma.

Depois de estar concluído o processo anterior, vamos então passar à configuração do sistema operativo, instalação e personalização do MagicMirror².

Configuração:

  1. Atualizar a distribuição: sudo apt-get update && sudo apt-get upgrade -y

Magic Mirror Raspbian update

  1. Atualizar o firmware: sudo rpi-update

Magic Mirror Raspberry pi Update

  1. Instalar os requisitos:sudo apt-get -y install xorg x11-xserver-utils chromium-browser git libgtk-3-0
  2. Apagar os ficheiros temporários de instalação:
    sudo apt-get clean
  3. Instalar o MagicMirror²:curl -sL https://raw.githubusercontent.com/MichMich/MagicMirror/master/installers/raspberry.sh | bash

Magic Mirror Software

  1. Após a correta instalação do MagicMirror² teremos que parar a execução do mesmo através do comando: pm2 stop MagicMirror

Personalização do Sistema Operativo:

  1. Abrir o ficheiro /etc/rc.local e adicionar as linhas antes da linha “exit 0”:
    iwconfig wlan0 power off
    su -s /bin/bash -c "startx -- -nocursor" pi&

    Estas linhas vão desactivar a gestão de energia do controlador Wireless para evitar erros de sincronização e vai permitir o arranque do ambiente de trabalho com o utilizador pi e sem o cursor do rato, respectivamente.

  2. Alterar a linha “allowed_users=console” para “allowed_users=anybody” do ficheiro /etc/X11/Xwrapper.config
  3. Abrir o ficheiro /home/pi/.xinitrc e acrescentar as seguintes linhas:
    export DISPLAY=:0.0
    xset s off
    xset s noblank
    xset -dpms
    cd /home/pi/MagicMirror
    node serveronly &
    chromium-browser --noerrdialogs --kiosk --incognito http://localhost:8080

    Estas linhas vão permitir ao MagicMirror² arrancar logo após o arranque do sistema, sem a protecção de ecrã activa e o controlo de energia do ecrã.

Personalização do “Magic Mirror”:

Graças à comunidade do MagicMirror² estão disponíveis muitos mais módulos para se poder adicionar, no entanto vamos configurar os que estão disponíveis originalmente.
Todas as configurações para estes módulos estão disponíveis no ficheiro “/home/pi/MagicMirror/config/config.js” sendo necessário alterá-lo.

Informação meteorológica:

  1. Para obtermos as respectivas informações através da API é necessário registar no site: https://home.openweathermap.org
  2. Substituir o campo “YOUR_OPENWEATHER_API_KEY” pela chave disponível em: https://home.openweathermap.org/api_keys
  3. É necessário também alterar a identificação e nome da localização, que podem consultar em: http://www.openweathermap.org/help/city_list.txt
  4. A configuração deverá ficar parecida com o exemplo seguinte:
    config: {
    location: "Lisbon",
    locationID: "2267057",  //ID from http://www.openweathermap.org/help/city_list.txt
    appid: "YOUR_OPENWEATHER_API_KEY" //from https://home.openweathermap.org/api_keys
    }

Calendário:

  1. Para adicionar o calendário basta trocar o caminho do campo url com o endereço de um calendário no formato ics, conforme o exemplo seguinte actualizado com os feriados Portugueses e um caminho de exemplo para o calendário do Google:
    calendars: [
    		{
    			symbol: "calendar-check-o ",
    			url: "webcal://calendarr.com/portugal/ics/"
    		},
    		{
    			symbol: "calendar-check-o ",
    			url: "https://calendar.google.com/calendar/ical/MY_INFO.ics"
    		}
    	]
    

Notícias:

  1. Para adicionar uma fonte de notícias basta trocar o caminho do campo url com o endereço de uma fonte no formato xml, conforme o exemplo seguinte actualizado com as notícias do Pplware:
    feeds: [
    		{
    			title: "New York Times",
    			url: "http://www.nytimes.com/services/xml/rss/nyt/HomePage.xml",
    		},
    		{
                    	title: "Pplware",
                            url: "https://pplware.sapo.pt/feed/"
                    }
    	]
    

CSS:

  1. De forma a optimizar o espaço disponível do ecrã foi necessário alterar o ficheiro “/home/pi/MagicMirror/css/custom.css” com as linhas seguintes:
    body {
            margin:0px;
            position:unset;
     }
    
    .region.bottom {
            bottom:3%;
    }
    
    .region.right{
            right:3%;
    }
    

    Esta imagem indica o problema que estava a ter e a solução após a alteração do ficheiro CSS

    Magic Mirror CSS

 

Comentários

6

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

  1. Avatar de Paulo Jorge
    Paulo Jorge

    Muito bom este projecto!
    Já pensei em faze-lo mas o tempo é pouco, a ver vamos se agora com este tutorial meto mãos à obra.

  2. Avatar de Roberto Leal
    Roberto Leal

    Hi.
    Antes de mais. Excelente artigo. Já andava a pensar numa coisa dessas desque que vi o projecto pela primeira a vez.
    Onde se pode comprar em Portugal “Acrylic See-Through Mirror”?”

    1. Avatar de Bruno Antunes
      Bruno Antunes

      ebay… é barato

  3. Avatar de Mistura
    Mistura

    eu para projeto final de curso fiz um parecido.. desenvolvi uma aplicação android do “espelho”, comprei umas madeiras montei uma moldura, com um espelho vidrado* (one side mirror) fiz o “espelho” ..

    a parte mais dificil foi mesmo fazer a moldura e arranjar um android para raspberry pi sem as ativações e com GAPPS

    *Existem vários tipos de vidro espelhado, o que interessa neste caso é o branco! porque o vidro preto para refratar a luz branca.

    1. Avatar de Wígny
      Wígny

      O que essa sua aplicação Android fazia especificamente?

  4. Avatar de Mariana Serra
    Mariana Serra

    Boa tarde, eu comprei um acrylic see through mirror, mas não estou a conseguir utiliza-lo… não reflete as informações que estão no monitor,apenas reflete nos reflete a nós.. Será que alguém me pode ajudar?