Router que dice una frase aleatoria con LEDE

 

A continuación explicaremos la manera de hacer que el router diga una frase aleatoria. Estas frases se almacenarán en un fichero. Podremos meter frases bonitas, chistes, proverbios, lo que nos plazca.

Lo que haré es hacer que el router diga una frase al pulsar un botón. Ya que a veces los botones del router con Openwrt no funcionan bien, lo haremos con LEDE. En caso de que no funcionen los botones con tu router puedes usar triggerhappy y añadirle un teclado o un ratón.

En nuestro caso estamos utilizando un router HG556A versión A. Con LEDE 17.02.1 sí funcionan. A fecha de hoy LEDE no funciona bien en HG556A versión C.

Paso 1 – Instalar los paquetes necesarios:

Accederemos por ssh al router e introducimos lo siguiente para que nos reconozca la tarjeta de sonido.

opkg update
opkg install kmod-usb-core kmod-usb-ohci kmod-usb-uhci kmod-usb2 kmod-usb-audio

A continuación instalaremos los paquetes necesarios para generar y reproducir las frases:

opkg install svox madplay alsa-utils

Los siguientes paquete sirven para desordenar las líneas de un fichero y para poder editar ficheros:

opkg install coreutils-shuf nano

Paso 2 – Creando el script:

Vamos a crear el archivo llamado frases que podrá ejecutarse desde cualquier parte del sistema al alojarlo dentro de /usr/bin.

touch /usr/bin/frases   # Creamos el archivo.
chmod +x /usr/bin/frases # le damos permisos de ejecución.
nano /usr/bin/frases  # Abrimos el archivo para editar.

Dentro introducimos lo siguiente:

#!/bin/sh
 #Guarda en cadena una línea aleatoria del archivo /root/frases.txt
 cadena=$(shuf -n 1 /root/frases.txt)

# Genera un archivo .wav en el directorio temporal de la frase
 # con idioma español (es-ES).
 pico2wave -l "es-ES" -w /tmp/text.wav "$cadena"

# Reproduce el archivo por la tarjeta
 aplay -f S16_LE -D plughw:0,0 /tmp/text.wav > /dev/null

Le damos a guardar.

Paso 3 – Creación del archivo de frases.

Crearemos un archivo llamado frases.txt y dentro meteremos las frases que queremos que reproduzca:

nano /root/frases.txt

Meteremos unas frases. Añade las que quieras:

No hay ninguna cosa seria que no pueda decirse con una sonrisa.
La sonrisa es el idioma universal de los hombres inteligentes.
Cualquier tecnología suficientemente avanzada es indistinguible de la magia.

y guardamos.

Paso 4 – Prueba del script.

Con la tarjeta de sonido introducida y unos altavoces o unos auriculares conectados, ejecutamos el script:

frases

Paso 5 – Asignándole una tecla del router para que ejecute el script.

Vamos a seguir de referencia lo que indica la web de Openwrt sobre asignación de funciones a los botones.

En nuestro caso vamos a utilizar el botón de WIFI.

Creamos el siguiente directorio:

mkdir -p /etc/hotplug.d/button

Abrimos con nano el archivo que contendrá la acción:

nano /etc/hotplug.d/button/buttons

Dentro meteremos lo siguiente:

#!/bin/sh
# Si se ha presionado un botón
if [ "$ACTION" = "pressed" ]; then
# En caso de que sea el botón de WIFI (wlan)
   if [ "$BUTTON" = "wlan" ]; then  
# Ejecuta el script frases
    /usr/bin/frases
  fi
fi

Guardamos.

Sólo queda probar si funciona.

 

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *