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

projeto de kiosk interativo

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;https://alteredqualia.com/canvasmol/#Penicillin
120;https://peterned.home.xs4all.nl/3d/
120;https://andrew-hoyer.com/experiments/walking/
120;https://ie.microsoft.com/testdrive/performance/fishbowl/
120;https://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 root@${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;https://alteredqualia.com/canvasmol/#Penicillin
120;https://peterned.home.xs4all.nl/3d/
120;https://andrew-hoyer.com/experiments/walking/
120;https://ie.microsoft.com/testdrive/performance/fishbowl/
120;https://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 root@${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

Projeto de Kiosk Interativo para a Beaglebone Black com Yocto

Projeto de Kiosk Interativo para a Beaglebone Black com Yocto – parte 1 Projeto de Kiosk Interativo para a Beaglebone Black com Yocto – parte 3
Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.
Comentários:
Notificações
Notificar
11 Comentários
recentes
antigos mais votados
Inline Feedbacks
View all comments
Home » Hardware » Placas de desenvolvimento » Projeto de Kiosk Interativo para a Beaglebone Black com Yocto – parte 2

EM DESTAQUE

WEBINARS

VEJA TAMBÉM

JUNTE-SE HOJE À COMUNIDADE EMBARCADOS

Talvez você goste: