Pplware

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

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:

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 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.

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:

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

  1. Atualizar o firmware: sudo rpi-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

  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

 

Exit mobile version