Projeto de Kiosk Interativo para a Beaglebone Black com Yocto - parte 2

projeto de kiosk interativo
Este post faz parte da série Projeto de Kiosk Interativo para a Beaglebone Black com Yocto. Leia também os outros posts da série:

Nesta segunda parte do projeto do kiosk interativo, veremos como construir a imagem do kiosk-manager.

 

O kiosk-manager é o responsável por configurar as páginas e propagandas que serão exibidas nos web-kiosks. Neste exemplo estamos usando um web-kiosk e um kiosk-manager, sendo ambos usando uma Beaglebone Black cada e presentes na mesma rede LAN onde os endereços IP foram atribuídos por um servidor DHCP.

 

Gerando a imagem do kiosk-manager

 

Após ter seguido os passos de montagem do ambiente de construção e geração da imagem do web-kiosk da primeira parte da série, vamos gerar a imagem do kiosk-manager com os seguintes comandos:

 

cd ~/yocto
. . kiosk-src/oe-init-build-env kiosk-build
bitbake core-image-kiosk-manager

 

 

Gravando a imagem do kiosk-manager

 

Iremos gravar um outro microSD com a imagem do kiosk-manager. Este procedimento é praticamente o mesmo utilizado no tutorial do Henrique sobre Beaglebone Black + Yocto.

 

Para a gravação da imagem no microSD card, o mesmo deve ser particionado e formatado de acordo o padrão aceito pela placa. Para isso foi criado um script, que pode ser obtido com os seguintes comandos:

 

cd ~/yocto/
git clone https://github.com/henriqueprossi/beaglebone-black.git bbb-sdcard-prepare

 

Insira um microSD card no computador PC ou notebook (sistema host) e descubra qual o device node criado pelo sistema operacional. Tente um dos seguintes comandos:

 

dmesg
sudo fdisk -l

 

Caso, por exemplo, o device node criado seja /dev/sdb, use os comandos:

 

cd bbb-sdcard-prepare
cd scripts
chmod +x format_sd_card.sh
sudo ./format_sd_card.sh /dev/sdb

 

Assim que o processo de particionamento e formatação terminar, duas partições no microSD card são criadas:

  • boot (FAT32);
  • rootfs (ext4).

 

Execute a “montagem” dessas duas partições no sistema de arquivos do sistema host. Caso esse faça uso da distribuição Ubuntu, basta remover e inserir novamente o dispositivo no seu conector. Dado que, por exemplo, os pontos de montagem criados sejam /media/boot e /media/rootfs, as imagens geradas anteriormente são copiadas da seguinte forma para o kiosk-manager:

 

cd ~/yocto/kiosk-build/tmp/deploy/images/beaglebone
cp MLO /media/boot
cp u-boot.img /media/boot
sudo tar xzf core-image-kiosk-manager-beaglebone.tar.gz -C /media/rootfs

 

 

Testando a imagem do kiosk-manager e web-kiosk

 

Remova o microSD do computador e insira-o na BBB, conecte-a a um roteador pelo cabo ethernet. Não se esqueça de conectar a outra BBB que fará o papel de web-kiosk no mesmo roteador, além de conectar também o cabo HDMI.

 

Para que o kiosk-manager possa configurar as páginas e propagandas que serão exibidas no web-kiosk, precisamos saber qual é seu IP. Para isso vamos conectar um cabo serial no web-kiosk e rodar o comando abaixo:

 

ifconfig

eth0      Link encap:Ethernet  HWaddr C8:A0:30:C4:61:4C  
          inet addr:192.168.0.101  Bcast:0.0.0.0  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1284 errors:0 dropped:0 overruns:0 frame:0
          TX packets:436 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:217748 (212.6 KiB)  TX bytes:50863 (49.6 KiB)
          Interrupt:56 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

 

Podemos ver que a interface de rede ethernet (eth0) está com o IP: 192.168.0.101.

 

Agora iremos conectar o cabo serial na BBB kiosk-manager e configurar as páginas que queremos que sejam exibidas no web-kiosk.

 

O script responsável por essa configuração é o "manage_kiosk.sh" que está localizado em "/usr/bin/manage_kiosk.sh" e contém a seguinte implementação:

 

#!/bin/sh

client=192.168.1.101

changescript=/usr/bin/change_midori_url.sh


REMOTE_ADS="
100;http://alteredqualia.com/canvasmol/#Penicillin
120;http://peterned.home.xs4all.nl/3d/
120;http://andrew-hoyer.com/experiments/walking/
120;http://ie.microsoft.com/testdrive/performance/fishbowl/
120;http://fff.cmiscm.com
"

LOCAL_VIDEOS="
134;file:///var/local/ads/html5video/video-yp1.html
134;file:///var/local/ads/html5video/multi-video.html
170;file:///var/local/ads/html5video/video-yp2.html
140;file:///var/local/ads/html5video/video-seagaul.html
63;file:///var/local/ads/html5video/video-bunny.html
193;file:///var/local/ads/html5video/video-linux1.html
62;file:///var/local/ads/www.shinydemos.com/hipster-dog/index.html
"

LOCAL_INTERACTIVE_ADS="
62;file:///var/local/ads/www.shinydemos.com/beach/index.html
32;file:///var/local/ads/www.shinydemos.com/inbox-attack/index.html
32;file:///var/local/ads/www.shinydemos.com/rock-piano/index.html
"

ADS=${REMOTE_ADS}
ADS=${LOCAL_VIDEOS}
#ADS=${LOCAL_INTERACTIVE_ADS}

for ad in ${ADS}
do
  duration=`echo ${ad} | cut -d\; -f1 `
  url=`echo ${ad} | sed "s/^[0-9]*;//"`
  echo ${client} ${duration}Seconds ${url}
  ssh -x [email protected]${client} ${changescript} ${url}
  sleep ${duration}
done

 

Vamos alterar o IP do web-kiosk na linha 3 e adicionar um comentário na linha 33 para que ele comande o web-kiosk a exibir páginas da internet.

 

De acordo com o nosso exemplo, o arquivo "manage_kiosk.sh" deverá ficar assim:

 

#!/bin/sh

client=192.168.0.101

changescript=/usr/bin/change_midori_url.sh


REMOTE_ADS="
100;http://alteredqualia.com/canvasmol/#Penicillin
120;http://peterned.home.xs4all.nl/3d/
120;http://andrew-hoyer.com/experiments/walking/
120;http://ie.microsoft.com/testdrive/performance/fishbowl/
120;http://fff.cmiscm.com
"

LOCAL_VIDEOS="
134;file:///var/local/ads/html5video/video-yp1.html
134;file:///var/local/ads/html5video/multi-video.html
170;file:///var/local/ads/html5video/video-yp2.html
140;file:///var/local/ads/html5video/video-seagaul.html
63;file:///var/local/ads/html5video/video-bunny.html
193;file:///var/local/ads/html5video/video-linux1.html
62;file:///var/local/ads/www.shinydemos.com/hipster-dog/index.html
"

LOCAL_INTERACTIVE_ADS="
62;file:///var/local/ads/www.shinydemos.com/beach/index.html
32;file:///var/local/ads/www.shinydemos.com/inbox-attack/index.html
32;file:///var/local/ads/www.shinydemos.com/rock-piano/index.html
"

ADS=${REMOTE_ADS}
#ADS=${LOCAL_VIDEOS}
#ADS=${LOCAL_INTERACTIVE_ADS}

for ad in ${ADS}
do
  duration=`echo ${ad} | cut -d\; -f1 `
  url=`echo ${ad} | sed "s/^[0-9]*;//"`
  echo ${client} ${duration}Seconds ${url}
  ssh -x [email protected]${client} ${changescript} ${url}
  sleep ${duration}
done

 

Note que a frente de cada URL há um número. Esse número representa o tempo em segundos que a página ficará sendo mostrada. Se quiser, você pode alterar esses valores, bem como as URLs.

 

Para comandarmos o web-kiosk basta executarmos o comando:

 

manage_kiosk.sh

 

Na primeira vez que esse comando for executado o ssh pedirá a confirmação que se deseja conectar ao dispositivo e isso não ocorrerá mais nas próximas vezes.

 

 

O que vem por aí

 

Na terceira e última parte da série veremos como customizar a imagem e inserir novos pacotes.

 

 

Saiba mais

 

Embedded Linux Build Systems

Cozinhando com o Yocto Project

Desvendando Yocto Project – Primeiros passos

BeagleBone Black + Yocto

Beaglebone Black + Yocto Daisy (Versão 1.6)

Lançada Nova Versão 1.7 (dizzy) do Yocto Project

Raspberrypi + Yocto

Desenvolvendo um Kiosk Interativo para a Beaglebone Black com Yocto – parte 1

Desenvolvendo um Kiosk Interativo para a Beaglebone Black com Yocto – parte 2

Desenvolvendo um Kiosk Interativo para a Beaglebone Black com Yocto – parte 3

Beaglebone Black + Qt Embedded + Yocto – parte 1

Beaglebone Black + Qt Embedded + Yocto – parte 2

Beaglebone Black + Qt5 + Yocto - parte 1

Beaglebone Black + Qt5 + Yocto - parte 2

Raspberry pi + Qt5 + Yocto - parte 1

Raspberry pi + Qt5 + Yocto - parte 2

  

Outros artigos da série

<< Projeto de Kiosk Interativo para a Beaglebone Black com Yocto - parte 1Projeto de Kiosk Interativo para a Beaglebone Black com Yocto - parte 3 >>
Este post faz da série Projeto de Kiosk Interativo para a Beaglebone Black com Yocto. Leia também os outros posts da série:
NEWSLETTER

Receba os melhores conteúdos sobre sistemas eletrônicos embarcados, dicas, tutoriais e promoções.

Obrigado! Sua inscrição foi um sucesso.

Ops, algo deu errado. Por favor tente novamente.

Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.

Diego Sueiro
Formado em Engenharia de Controle e Automação pela UNIFEI e CEO do Embarcados, atualmente trabalho na Inglaterra com Desenvolvimento de Sistemas Linux Embarcado Real Time. Sou consultor e desenvolvedor de software para Sistemas Embarcados com vasta experiência em projetos com processadores de 8bits a 32bits, sistemas bare metal, RTOS, Linux Embarcado e Android Embarcado. Um apaixonado por Pink Floyd e Empreendedorismo.

11
Deixe um comentário

avatar
 
11 Comment threads
0 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
0 Comment authors
Beaglebone Black + Qt5 + YoctoRaspberry Pi + Yocto - Embarcados - Sua fonte de informações sobre Sistemas EmbarcadosDesvendando Yocto Project - Primeiros passosYocto ProjectEmbedded Linux Build Systems - Embarcados - Sua fonte de informações sobre Sistemas Embarcados Recent comment authors
  Notificações  
recentes antigos mais votados
Notificar
trackback

[…] Desenvolvendo um Kiosk Interativo para a Beaglebone Black com Yocto – parte 2 […]

trackback

[…] Desenvolvendo um Kiosk Interativo para a Beaglebone Black com Yocto – parte 2 […]

trackback

[…] […]

trackback

[…] Desenvolvendo um Kiosk Interativo para a Beaglebone Black com Yocto – parte 2 […]

trackback

[…] Desenvolvendo um Kiosk Interativo para a Beaglebone Black com Yocto – parte 2 […]

trackback

[…] Desenvolvendo um Kiosk Interativo para a Beaglebone Black com Yocto – parte 2 […]

trackback

[…] Desenvolvendo um Kiosk Interativo para a Beaglebone Black com Yocto – parte 2 […]

trackback

[...] na primeira e segunda partes da série como gerar, gravar e testar as imagens do web-kiosk e kiosk-manager na Beaglebone [...]

trackback

[...] segunda parte desta série veremos como gerar a imagem do kiosk-manager e como configurar os atores para [...]

trackback

[...] Desenvolvendo um Kiosk Interativo para a Beaglebone Black com Yocto – parte 2 [...]