In questo articolo vedremo come installare e configurare una Raspberry Pi al fine di realizzare una postazione denominata “Kiosk” (chiosco) tipica di quei contesti presso cui si rende necessario avere un monitor che esponga costantemente informazioni (blog, news, video, info meteo, dati di reparto, ecc.).

Raspberry Pi

Rasbperry Pi per definizione è una “single-board computer”, di fatto un computer a tutti gli effetti ma con specifiche caratteristiche che lo rendono ideale in contesti ove è necessario rispettare requisiti quali:

  • dimensioni ridotte
  • costi ridotti
  • bassi consumi energetici
  • affidabilità (linux based)
  • disco SSD stato solido

e dove non sono richieste elevate potenza di calcolo (gaming, video editing, rendering 3D…).

Giunta all’edizione 4 vanta di risorse quali processore Quadcore (ARM) 1.5GHz, porte usb3.0, wifi integrato, bluetooth, 4GB di RAM, ed una serie di pin input/output (GPIO) digitali/analogici per interagire con svariate periferiche (attuatori/sensori).

Gli utilizzi di Raspberry sono tra i più svariati e spaziano tra ambiti industriali/automazione a quelli di pura hobbistica.

Proprio per un connubio tra ridotti costi/dimensioni  e discrete performance si presta ad essere utilizzata per installazioni Kiosk.

Kiosk mode

La modalità kiosk mode (chiosco) è una caratteristica del browser Chrome (e Chromium) che permette di mostrare il browser (ed il suo contenuto) esteso a “tutto schermo”.

Nelle applicazioni kiosk mode tendenzialmente non si ha interazione con l’utente, che svolge quindi un ruolo passivo (sola visualizzazione) senza possibilità di utilizzare periferiche di input quali tastiera/mouse.

Nell’articolo verrà mostrato come preparare una Raspberry Pi partendo dallo scaricamento dell’immagine del sistema operativo, alla sua configurazione per avviare in automatico il browser in “kiosk mode”, per presentare una web application predefinita.

Immagine di sistema (Raspbian)

L’immagine di sistema da installare (Raspbian, porting di Debian Linux per Raspberry) è stata concepita per utilizzare il minor numero possibile di risorse di sistema ed è basata sulla versione lite di Raspbian.

Si tratta della versione “lite” modificata da Sme.UP, in quanto è stata modificato il menu di installazione e le relative implementazioni.

Va specificato che Rasperry utilizza come unico device di memoria di archiviazione (dati e sistema operativo) una microsd rimovibile (l’analogo hard drive di un normale computer) su cui verrà scritta (“flashata”) l’immagine del sistema operativo, mediante l’utilizzo di un pc.

Una volta scaricata l’immagine di sistema sul proprio pc sarà possibile flasharla (su microsd da inserire nella raspberry) mediante l’utilizzo del software (ad esempio) Etcher.

Una volta avviato Etcher ed inserita la microsd nel pc, il tool Etcher riconoscerà automaticamente le partizioni su cui andare a scrivere l’immagine:

Avvio e configurazione Raspberry

Terminata la scrittura (flash) dell’immagine del sistema operativo sulla microsd, quest’ultima va rimossa ed inserita nell’apposito alloggio microsd della Raspberry.

Una volta connesse tutte le periferiche (tastiera, mouse, monitor, alimentatore), l’avvio della raspberry mostrerà il menu seguente:

Configure network

Selezionando la prima voce di menu, si accede alla lista di funzioni di gestione network

 

Tramite la voce 1.1 si ha la possibilità di modificare l’hostname del dispositivo (questa modifica sarà visibile solo dopo un riavvio forzato della raspberry).

La voce 1.2 permette tramite l’utilizzo di un software di terze parti (tool wicd-curses) di configurare le interfacce di rete.

La voce 1.3 permette la configurazione manuale delle interfacce di rete. Essa prevede pochi passi riassumibili tramite questo diagramma:

 

Tramite l’opzione 1.3 per l’inserimento manuale dell’interfaccia wi-fi in questa versione è stato supportato IL SOLO protocollo di autenticazione WPA-PSK (ovvero WPA-Personal)

Di default l’interfaccia ethernet è sempre impostata su DHCP, permettendo così tramite il solo collegamento del cavo di avere un accesso a internet.

La voce 1.4 permette di testare se vi è connessione cercando di pingare “www.google.com” attraverso la porta 80, mentre attraverso la voce 1.5 è possibile resettare qualsiasi intervento effettuato sulle interfacce di rete tramite le voci di menu.

Configure scheduler

 

Questo menu permette, tramite crontab, di pianificare l’esecuzione di comandi ad orari precisi.

Tramite le opzioni 2.1 e 2.2 è possibile selezionare i comandi tipicamente più utili nelle operazioni pianificate e cioè il RIAVVIO e lo SPEGNIMENTO.

Selezionato il comando l’utente imposterà l’orario/frequenza di schedulazione (usando la tipica sintassi di crontab):

 

L’opzione 2.3 permette di settare sia la frequenza dell’esecuzione del lavoro, sia il tipo di comando da lanciare.

L’opzione2.4 mostra tutti i crontab inserit.

L’opzione 2.5 permette di eliminare quasiasi tipo di cron inserito.

URL for Kiosk-Mode

Tramite questa voce è possibile abilitare il kiosk-mode, ovvero abilitare la raspberry ad aprire un browser internet (chromium) su una URL fissa ad ogni suo avvio, utile ad esempio quando il dispositivo viene utilizzato per la visualizzazione di dashboard.

Una volta inserita la URL a cui la raspberry dovrà collegarsi, essa entra in modalità kiosk-mode e al successivo riavvio non verrà più visualizzato il menu ma il browser full-screen con la pagina indicata precedentemente.

Il menù rimane comunque accessibile tramite il comando “sudo menu” oppure cercandolo in: “/opt/smeup-menu/raspi-menu.sh”

Per chiudere la finestra del browser nella modalità kiosk-mode utilizzare i comandi da tastiera CTRL+ALT+BACKSPACE

Per riavviare il browser digitare nel terminale: “sudo restart-browser”

Per disattivare il kiosk-mode e far ritornare la raspberry al suo funzionamento normale sarà necessario effettuare un “Reset raspberry” tramite la voce di menu 6 che cancellerà ogni modifica effettuata tramite il menu.

 

Monitor Orientation

E’ possibile cambiare l’orientamento del monitor in base alle proprie esigenze:

 

Change user password

Tramite questo comando è possibile impostare una differente password per l’utente che accede al menu.

Update system

Tramite questo comando è possibile lanciare in automatico i comandi:

  • sudo apt update
  • sudo apt upgrade

che provvederanno ad aggiornare il sistema ai pacchetti più recenti.

Update menu

Questa voce permette di controllare se esiste una versione più aggiornata del menu ed in caso positivo di scaricarla ed installarla sul sistema corrente. Ad installazione avvenuta, l’utente in maniera del tutto trasparente verrà reindirizzato sul nuovo menu aggiornato.

Restore menu raspberry

Utile nel caso sia stato fatto un aggiornamento del menu ed esso non funzioni come desiderato, è possibile ripristinare l’ultima versione precedente all’aggiornamento.

Reset raspberry

Tramite questa voce verrà cancellata qualsiasi azione effettuata tramite il menu, dal network al cron al kiosk mode. Le impostazioni settate tramite il menu saranno ripristinate alle impostazioni di fabbrica.