Kiosko en Raspberry

Un "Kiosko", "Kiosco" o "Quiosco" es un ordenador o terminal informática situada en un espacio público que permite a los usuarios una cantidad controlada de interacción con dicha terminal. Un ejemplo común de Quiosco serían las pantallas que muestran información sobre los vuelos en los aeropuertos o las pantallas táctiles en los cines que te permiten comprar tickets a las películas, o las pantallas donde haces tus pedidos en los restaurantes de comida rápida.
Proceso de Instalación en RaspBerry
Entorno de trabajo utilizado:
- Raspberry Pi 4.
- Raspberry Pi OS (Debian 12, bookworm) 64-bits.
- Wayland.
- Chromium.
Prerrequisitos:
- Sistema operativo base instalado y funcionando correctamente.
- SSH configurado.
- Una pantalla para visualizar el quiosco.
Proceso:
- Accedemos a la Raspberry mediante SSH.
- Instalamos wtype, un software que nos permite simular actividad con el teclado.
- sudo apt install wtype
- Cambiamos la configuración de inicio de sesión para que el dispositivo haga "Autologin", es decir, inicie el usuario automáticamente.
- sudo raspi-config
- Para navegar el menú usamos las flechas del teclado y la tecla "Enter" para seleccionar la opción.
- System Options > Boot > Auto Login > Desktop Autologin: Desktop GUI, automatically logged in as '<usuario>' user.
- Pulsamos enter > "Finish" y reiniciamos cuando nos pregunte. Ahora iniciará automáticamente.
- sudo raspi-config
- Ahora, configuraremos la Raspberry para enseñar en modo quiosco lo que queremos y cómo lo queremos. Para esto editaremos el archivo .config/wayfire.ini. Este documento sirve para modificar la apariencia y comportamiento de Wayfire, el sistema que se usa para procesar el escritorio en Raspberry Pi OS.
- sudo nano .config/wayfire.ini
- Buscamos la sección [autostart], que debería verse como esto:
- En caso de que no estuviera, lo creamos.
[autostart]panel = wfrespawn wf-panel-pibackground = wfrespawn pcmanfm --desktop --profile LXDE-pixdg-autostart = lxsession-xdg-autostart
- En caso de que no estuviera, lo creamos.
- Agregamos las siguientes líneas:
chromium = chromium-browser <url que queremos mostrar> --kiosk --noerrdialogs --disable-infobars --no-first-run --ozone-platform=wayland --enable-features=OverlayScrollbar --start-maximizedswitchtab = bash ~/switchtab.shscreensaver = falsedpms = false- Podemos poner tantas urls como queramos mostrar, separadas por espacios y entre comillas en caso de que tuviesen espacios en blanco dentro de su definición.
- Definición de parámetros
- --kiosk: le indica a Chromium que funcionará en modo quisco.
- --noerrdialogs: evita que se muestren mensajes de error.
- --disable-infobars: quita la barra superior del navegador.
- --no-first-run: deshabilita el proceso de configuración inicial del navegador.
- --ozone-platform=wayland: establece una versión de Wayland compatible con la plataforma Ozone.
- --enable-features=OverlayScroolbar: activa la barra de desplazamiento solo cuando es necesario y en modo overlay.
- --start-maximized: inicia el navegador en pantalla completa.
- La línea "switchtab = bash ~/switchtab.sh" hace referencia a un script que definiremos a continuación y se encargará de cambiar entre pestañas cada 10 segundos.
- Definición de parámetros
- Podemos poner tantas urls como queramos mostrar, separadas por espacios y entre comillas en caso de que tuviesen espacios en blanco dentro de su definición.
- Creamos el script que se encarga de cambiar entre pestañas.
- nano ~/switchtab.sh
- Contenido:
!bin/bash
#Encuentra el PID de chromium chromium_pid=$(pgrep chromium | head -1) #Comprueba que chromium está activo while [ [ -z $chromium_pid ]]; do echo "Chromium browser is not running yet." sleep 5 chromium_pid=$(pgrep chromium | head -1) done echo "Chromium browser process ID: $chromium_pid" export XDG_RUNTIME_DIR=/run/user/1000
#Bucle para enviar actividad de teclado: while true; do
#Envía Ctrl+Tab usando`wtype` wtype -M ctrl -P Tab
#Envía Ctrl+Tab usando `wtype` wtype -m ctrl -p Tab sleep 10 done