
Temos um Raspberry e um desafio de fazer um sistema de senhas de atendimento que rode em qualquer plataforma.
Então instalamos node, um boilerplate do electron, uma interface gráfica e o YeAPF para fornecer um webservice acessível por um consumidor qualquer com uma tela tipo quiosque.
Instalando as coisas.
Estamos partindo do suposto que seu raspbian está já configurado com o mínimo de recursos possíveis (leia-se: sem GUI nem nada extra)
Instalando node
Primeiro usamos ssh para entrar no Raspberry e poder instalar de lá o node assim:
cd ~/ mkdir tmp-node cd tmp-node wget https://nodejs.org/dist/v8.2.1/node-v8.2.1-linux-armv7l.tar.xz tar xfv node-v8.2.1-linux-armv7l.tar.xz cd node-v8.2.1-linux-armv7l sudo cp -R * /usr/local/
Instalando electron
Depois usando o mesmo terminal, instalamos o ElectronJS assim:
sudo npm install -g electron --unsafe-perm=true --allow-root
Instalando a interface gráfica
Como bom filho de peixe, esta truta aqui não tem interface gráfica. Então tivemos que instalar uma interface gráfica para alguém consiga enxergar alguma coisa e não apenas imaginar.
sudo apt-get update -y sudo apt-get install --no-install-recommends -y xserver-xorg xinit sudo apt-get install -y xfce4 xfce4-terminal #vamos precisar desta livraria sudo apt install libgconf2-4
Brincando com ElectronJS
Agora podemos clonar o electron-quick-start e começar a brincar com ele (Se está em MAC, Linux, Windows é a mesma coisa).
Só que isto deve ser feito do console do próprio RaspBerry para evitar uma alma angustiada.
cd ˜/ git clone https://github.com/electron/electron-quick-start quiosque cd quiosque npm install export DISPLAY=:0 npm start
Feito isso, queremos que nosso aplicativo rode em modo Quiosque (se é que essa é a melhor tradução de
Kiosk) para tanto, vamos modificar o main.js
Então na função createWindow() vamos a acrescentar a seguinte linha logo após do mainWindow.loadFile(‘index.html’)
echo "Meu primeiro teste" > /dev/usb/lp0
echo 'Meu primeiro Teste' > /dev/usb/lp0
stat /dev/usb/lp1
Com isso, o aplicativo deve passar a rodar em tela cheia.
Configurando a inicialização do dispositivo
Configurando o Raspbian para fazer login automático
Agora precisamos modificar o /etc/lightdm/lightdm.conf para que o Raspberry não pare na tela de login. Ele deve ficar assim:
[Seat:*] pam-service=lightdm pam-autologin-service=lightdm-autologin autologin-user=pi autologin-user-timeout=0 session-wrapper=/etc/X11/Xsession greeter-session=lightdm-greeter
No meu caso o usuário é pi mesmo, por isso que está pi.
Faça um reboot para ver se está tudo ok
Caso não funcione, pode ser que precise adicionar o usuário ao auto-login assim:
groupadd -r autologin gpasswd -a pi autologin
Rodando nosso programa no login
Vamos precisar de um pequeno programa que inicie nosso programa. Isto facilitará as coisas para monitorar o programa por exemplo, ou para rodarmos outras coisas que não são do npm.
O chamaremos quiosque.sh e o colocaremos na pasta principal do usuário pi. Ou seja, ~pi/quiosque.sh (ou /home/pi/quiosque.sh que é a mesma coisa) com o seguinte conteúdo:
#!/bin/bash logger Iniciando Quiosque cd ~pi/quiosque && npm start logger Finalizando Quiosque
Com isso, toda vez que chamar-mos ~pi/quiosque.sh, ele vai indicar que entrou em funcionamento e assim que ele finalizar (normalmente ou não) também o fará.
Podemos ver isso no /var/log/messages usando o tail
Criamos um arquivo em /home/pi/Desktop/ chamado quiosque.desktop com o seguinte conteúdo:
[Desktop Entry] Name=meu-aplicativo Comment=Quiosque Exec=cd ~/quiosque && npm start TryExec=cd ~/quiosque && npm start Type=Application
E mudamos os direitos dele para poder ser executado
chmod +x /home/pi/Desktop/quiosque.desktop
Com isso, poderemos clicar duas vezes no atalho que deve ter aparecido no Desktop.
Finalmente, fazemos com que esse arquivo desktop seja chamado toda vez que fizermos login:
cd ~/.config/autostart/ ln -s ~/Desktop/quiosque.desktop .
Com isso, ao reiniciar o raspberry, o aplicativo deve aparecer em tela cheia.
Obvio que qualquer purista vai dizer que precisamos substituir o desktop. Mas isso já é farinha de outro saco. Para desenvolvimento, teste e demonstração está muito mais do que bom
Nosso desenvolvimento seguirá neste post mostrando como acessar o hardware diretamente
Você precisa fazer login para comentar.