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)
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ã.
Com o x-ato cortei duas tiras finas de fita-cola de dupla face para poder colar o acrílico preparado anteriormente no ecrã.
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:
- Atualizar a distribuição:
sudo apt-get update && sudo apt-get upgrade -y
- Atualizar o firmware:
sudo rpi-update
- Instalar os requisitos:
sudo apt-get -y install xorg x11-xserver-utils chromium-browser git libgtk-3-0
- Apagar os ficheiros temporários de instalação:
sudo apt-get clean
- Instalar o MagicMirror²:
curl -sL https://raw.githubusercontent.com/MichMich/MagicMirror/master/installers/raspberry.sh | bash
- 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:
- 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.
- Alterar a linha “allowed_users=console” para “allowed_users=anybody” do ficheiro /etc/X11/Xwrapper.config
- 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:
- Para obtermos as respectivas informações através da API é necessário registar no site: https://home.openweathermap.org
- Substituir o campo “YOUR_OPENWEATHER_API_KEY” pela chave disponível em: https://home.openweathermap.org/api_keys
- É 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
- 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:
- 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:
- 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:
- 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