Magic Mirror
Transforma um espelho num assistente pessoal.
Material utilizado:
- Moldura
- Espelho Acrílico ( SupremeTech 18 x 24 x 0,04 " Espelho Transparente Acrílico, 30% Transparente)
Mandei vir da Amazon. Tem que se ter cuidado com o seu manuseio pois é bastante frágil (risca
facilmente) e temos também de o fixar bem pois se fica solto mostra a imagem ovalizada. - Monitor. Comprei um de 19" no OLX
- Vidro de 2mm onde vai encostar o espelho (protege e ajuda a sua fixação)
- Sonoff mini (liga por 10m o MagicMirror quando alguém passa em frente a um sensor de
movimento) Tentei instalar o módulo MMM-PIR e náo consegui que ele funcionasse.
Instalação
1 - Hardware
Raspberry Pi 2, 3 e 4
2 - Deverá instalar a versão mais recente do Raspberry Pi OS (anteriormente chamado de Raspbian)
(não deverá instalar a versão Lite)
- Baixar a imagem da versão mais atual (imager_1.4.exe)
- Executar o ficheiro
- Escolher o sistema que quer instalar e o cartão (No meu caso instalei o Raspberry Pi OS (32-BIT)
e um cartão de 16 G
Remover do pc e introduzir o cartão no raspberry
3 - Embora existam instaladores automáticos, usei a instalação manual (recomendado)
Abrir o terminal e digitar:
curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
sudo apt install -y nodejs
git clone https://github.com/MichMich/MagicMirror
Entrar na directoria MagicMirror: cd MagicMirror/
Digitar: npm install
Fazer uma cópia do arquivo config.js.sample: cp config/config.js.sample config/config.js
Iniciar o Magic Mirror com: npm run start
4 - Rodar o monitor (opcional)
Precisamos de acrescentar a seguinte linha ao ficheiro /boot/config.txt: display_rotate=1
Para isso usamos o seguinte comando: sudo nano /boot/config.txt
Gravamos e reiniciamos o raspberry.
5 - Para iniciar o MagicMirror mais fácilmente e não ter que entrar sempre na directoria MagicMirror e
ter que digitar npm run start vamos instalar o PM2
sudo npm install -g pm2
pm2 startup
Precisamos de criar um script de shell simples. De preferência, colocamos este script fora da pasta
MagicMirror para ter certeza de que não haverá problemas se quisermos mais tarde fazer
atualizações
cd ~
nano mm.sh
grave e saia
Agora certifique-se de que o script de shell seja executável executando o seguinte comando:
chmod + x mm.sh
Para garantir que o MagicMirror reinicia após a reinicialização, você vai precisas de gravar o
estado atual de todos os scripts em execução via PM2. Para fazer isso, execute o seguinte
comando:
pm2 save
Com o MagicMirror rodando via PM2, temos algumas ferramentas úteis:
Reiniciar MagicMirror
pm2 start mm
Parar MagicMirror
pm2 stop mm
Mostrar os registos do MagicMirror
pm2 logs mm
Mostra as informações do processo MagicMirror
pm2 show mm
6 - Módulos
Existe um grande número de módulos disponíveis em:
https://github.com/MichMich/MagicMirror/wiki/3rd-party-modules
Vou referir aqui apenas os que no momento estou a utilizar e alguns aspectos da configuração
deles.
No ficheiro /home/pi/MagicMirror/config/config.js estão os módulos utilizados e as respectivas
configurações.
Nesse ficheiro podemos alterar a posição onde os módulos vão aparecer, a linguagem, o formato
de hora e as unidades métricas:
language: "pt",
timeFormat: 24,
units: "metric"
Tenho os seguintes módulos instalados:
- alert - Módulo padrão do MagicMirror - Não alterei nada
- clock - Módulo padrão do MagicMirror - Não alterei nada
- calendar - Módulo padrão do MagicMirror. Exibe eventos de um calendário público. Tem uma
série de opções de configuração. A única coisa que alterei foi o url que passou a ser : url:
webcal://calendarr.com/portugal/ics/
- compliments - Este módulo pode exibir as frases que entenderem. Além de outras configurações
(horas, velocidade, intervalo de tempo...), essas frases são colocadas em:
/home/pi/MagicMirror/modules/default/compliments/compliments.js
- Current Weather - Este módulo mostra as condições meteorológicas de um determinado local.
Vão precisar de location , locationID e appid. Esta informação conseguem-na no ficheiro
city.list.json.gz em: http://bulk.openweathermap.org/sample/
- MMM-GooglePhotos - Mostra de forma aleatoria fotos armazenadas por nós em álbuns do
Google Fotos (https://github.com/ChrisAcrobat/MMM-GooglePhotos). Se seguirmos à risca as
instruções que o autor da, vai surgir um problema que é a criação da pasta MMM-GooglePhotos
fora da pasta MagicMirror/modules. Para isso, executamos as linhas de comandos:
git clone https://github.com/eouia/MMM-GooglePhotos.git
cd MMM-GooglePhotos
npm install
já dentro da pasta MagicMirror/modules
- newsfeed - Módulo padrão do MagicMirror - Mostra no rodapé as últimas notícias baseadas em
RSS. É facil de encontrar diferentes notícias baseadas em RSS na internet. No meu caso tenho
as notícias de última hora (https://www.noticiasaominuto.com/rss/ultima-hora)
- MMM-Carousel - Para finalizar, tenho um módulo que me permite mostrar uma sequência de
ecrans. Seria bastante difícil, num só ecran mostrar um número grande de módulos. Este módulo
permite especificar o número de ecrans e a informação que cada um vai mostrar.
slides: {
main: ['calendar', 'compliments', 'currentweather', 'weatherforecast', 'newsfeed'],
"Slide 2": ['MMM-Reddit', 'newsfeed'],
"Slide 3": ['MMM-GooglePhotos', 'newsfeed'] }
Espero que esta informação possa ser útil a quem estiver interessado em construír um MagicMirror.
Tirei algumas fotos mas estão pouco definidas (tenho que aumentar o brilho do monitor). De qualquer forma vou pôr estas e depois quando der mais brilho e tirar outras com melhor qualidade, troco-as.