Airplay con el Raspberry Pi

Luego de que la cámara de video ha grabado sin problema muchas imágenes, utilizando Motion, con una webcam conectada al Raspberry Pi, y dado que mi esposa se ha vuelto fan del TuneIn Radio en su iPhone, se me ocurrió la brillante idea de instalar el paquete Shairport, para que el Raspi reproduzca el audio en nuestro minicomponente desde el teléfono, usando WiFi.

La instalación es bastante sencilla. Primero es necesario actualizar todos los paquetes del Raspbian instalado, con los siguientes comandos.

sudo su

aptitude update

aptitude upgrade

Con esto garantizamos que todo se encuentre al día, para poder continuar. Luego de esto, instalamos los prerequisitos para el paquete Shairport, con el siguiente comando:

aptitude install git libao-dev libssl-dev libcrypt-openssl-rsa-perl libio-socket-inet6-perl libwww-perl avahi-utils

Además, es necesario (al menos en mi caso) instalar la librería SDP para Perl. Esto lo hacemos con los siguientes comandos:

aptitude install libmodule-build-perl
git clone https://github.com/njh/perl-net-sdp.git perl-net-sdp
cd perl-net-sdp
perl Build.PL
./Build
./Build test
./Build install

 

Y con todo esto instalado, procedemos a descargar y compilar Shairport, con los siguientes comandos:

cd
git clone https://github.com/hendrikw82/shairport.git shairport
make

Si no tenemos ningún error, en la compilación, podremos probarlo, iniciando la aplicación desde la consola, con el comando

./shairport.pl -a ShairPi

Ahora pueden tomar su equipo favorito de la marca de la manzana (iPhone, iPod, iPad) o cualquier equipo compatible con Airplay, y verificar el funcionamiento. En este caso, deberá mostrar un dispositivo Airport con nombre ShairPi el momento de redireccionar el audio.

Si todo funciona correctamente, procedemos con Ctrl+C a cerrar la aplicación, e instalarla como servicio, para que se inicie automáticamente al arrancar nuestro Pi. Esto lo realizamos con los siguientes comandos:

make install
cp shairport.init.sample /etc/init.d/shairport
cd /etc/init.d
chmod a+x shairport
update-rc.d shairport defaults

Adicionalmente, es necesario editar el archivo DAEMON_ARGS, en la línea DAEMON_ARGS=”-w $PIDFILE para que quede de esta manera:

DAEMON_ARGS=”-w $PIDFILE -a ShairPi

donde ShairPi puede ser reemplazado por el nombre que quieran ponerle a su Airplay. Luego iniciamos el servicio con el comando:

./shairport start

Y tendremos el servicio levantado cada vez que iniciemos nuestro RasPi.

El Airplay funciona bastante bien. Simplemente existen momentos, especialmente cuando se pausa y reinicia muy seguido la reproducción desde el teléfono, que el módulo de WiFi instalado en el Raspberry se desconecta. Quizás con una conexión con cable no tengan ese inconveniente.

Pruebenlo y me cuentan.


Comments

2 respuestas a «Airplay con el Raspberry Pi»

  1. Avatar de Noelia
    Noelia

    Buenos!!!!! después de leer varios post tuyos, por los cuales te felicito son fantásticos, te escribo para ver si me puedes ayudar con mi problema. Paso a explicarlo:
    Tengo una raspberry pi a la cual conecto un sensor de temperatura y humedad, me recoge los datos y por python los envía a googledocs. Mi problema llega cuando intento mandarlo desde python a una base de datos, utilizo la librería MySQLdb, para después desde php acceder a esa bd y así poder utilizar los datos. No se si es la mas correcta o si ahí algún método mejor.

    Por favor si pudieras guiarme un poco en el camino te lo agradecería. Responderme a mi email. Mil gracias de antemano por las molestias. Un saludo

  2. Avatar de admin
    admin

    Hola Noelia! gracias por tu comentario

    El procedimiento de lo que deseas realizar es el correcto. Primero tendrías que crear la base de datos mysql, crear la tabla para almacenar los datos y luego desde el python, ejecutar un query para que se almacenen dichos datos en la db. Cada cuanto tiempo piensas muestrear y almacenar los datos de temparatura?

    Si necesitas ayuda, puedes enviarme un email a patricio.reinoso.mendoza@gmail.com o en twitter @patolin_01

Deja una respuesta