Raspberry – Une borne Airplay

2 250 affichages

Vous souhaitez diffuser de la musique à partir de votre iPad, iPhone, Mac ou iPod vers votre système audio quelqu’il soit ? Je dis ça, moi je dis rien, mais j’aime bien écouter de la musique dans ma douche… Des petites enceintes, un raspberry et hop… Se doucher en musique, c’est bien 🙂

Bien sûr, il existe un tas de dispositif connecté aujourd’hui pour pouvoir faire ça. Mais à quel prix ? Et puis franchement, c’est pas le pied de se dire qu’on a réalisé nous-même notre dispositif… surtout si ça fonctionne 😛

Je vous propose de réaliser une borne Airplay à moins de 80 euros avec ce seul petit ordinateur.

De quoi avons nous besoin



  • Un raspberry fonctionnel, bah oui, c’est la base,

  • Un système de son comme un home-Cinéma ou des petites enceintes,

  • Un iBidule comme un iPhone, iPad, iPod ou bien un mac, je crois même que sur windows on peut utiliser la diffusion Airplay.

C’est bon, ok, on y va


Avant toutes choses, on se connecte à notre raspberry, soi à distance en SSH ( voir mon premier tutoriel sur le Raspberry), soi directement dessus avec un clavier et une plage braille si c’est nécessaire.
On met à jour son système sudo apt-get update et sudo apt-get upgrade

On installe les dépendances qui vont nous permettre d’utiliser Shairport, l’application gratuite permettant d’utiliser le AirPlay audio.
sudo apt-get install avahi-utils build-essential chkconfig git libao-dev libavahi-client-dev libcrypt-openssl-rsa-perl libio-socket-inet6-perl libssl-dev libwww-perl pkg-config

On installe quelques dépendances permettant d’utiliser le matériel audio du Raspberry :
sudo apt-get install ca-certificates git-core binutils

On installe un premier complément
sudo cpan install Net::SDP
On répond « « Y » » à la question, et on laisse faire

Pour les deux prochaines installations, il va falloir compiler…. Mdrrrrrrrrr, mais non n’ayez crainte !!! Tout va bien se passer.
La compilation est un processus qui consiste à prendre les sources d’une application et de les transformer en exécutable.
On va utiliser une méthode qui consiste à cloner un répertoire sur un serveur distant, vers notre Raspberry.
git clone https://github.com/njh/perl-net-sdp.git perl-net-sdp

On rentre dans le nouveau répertoire :
cd perl-net-sdp

On exécute les trois prochaines commandes pour préparer l’installation
perl Build.PL
./Build
./Build test

Et hop on installe
sudo ./Build install

Voilà, notre environnement est prêt à recevoir Shairport. On sort du répertoire « perl-net-sdp » avec cd ..

Il nous faut désormais récupérer les sources de Shairport
git clone https://github.com/albertz/shairport.git shairport

On se rend dans le dossier de Shairport
cd shairport
On lance la compilation des sources
make

On installe les fichiers binaires que nous venons de compiler
sudo make install

On prépare le fichier qui nous permettra de lancer ou arrêter le service ShairPort en copiant un script dans le répertoire « /etc/init.d » où sont stocker les scripts de lancement d’applications.
sudo cp ./shairport.init.sample /etc/init.d/shairport

On applique des droits d’exécution
sudo chmod a+x /etc/init.d/shairport

On fait en sorte que Shairport se lance au démarrage du Raspberry
sudo update-rc.d shairport defaults

Notre système de diffusion audio est prêt. Mais si on pouvait nommer la borne AirPlay, ce ne serait pas trop fun quand-même ?
Pour ça, on va aller éditer le fichier/script avec la commande suivante :
sudo nano /etc/init.d/shairport

On repère la ligne
DAEMON_ARGS= »-w $PIDFILE -a $NAME »
et on remplace « $NAME » par « Framboise » par exemple…

On sauvegarde avec « CTRL+X », on répond « O » pour confirmer la sauvegarde, et on valide sur le nom de fichier par la touche « ENTER ».

On sort du répertoire
Cd ..

Vous le savez, le raspberry dispose de deux sorties audio, la première via la prise Jack 3,5, type prise casque. La seconde utilise la sortie HDMI. Personnellement, mon home-Cinéma possède une prise HDMI donc j’ai activé cette sortie. Branchez donc une solution de diffusion/amplification soi sur la prise Jack 3,5 ou sur la prise HDMI, et voici ci-dessous les deux commandes à taper pour basculer d’une sortie à l’autre.


  • Pour activer la prise Jack 3,5 : amixer cset numid=3 1

  • Pour activer la prise HDMI (activée par défaut) : amixer cset numid=3 2

Pour finir, on redémarre le Raspberry avec sudo reboot

On attend une 30taine de secondes que la bête redémarre, et on peut lancer iTunes, l’application Musique ou toutes autres applications qui nous offrent la possibilité de diffuser en AirPlay, on valide sur le bouton qui permet de changer de destination Audio, et……..

Ohohohohohohoh surprise !!!! On voit « Framboise » ou le nom de votre borne airplay !!!
C’est bon ça !

N’oubliez pas d’allumer votre home-cinéma ou vos enceintes, vous n’avez plus qu’à valider sur l’icône « Framboise » et lancer la lecture d’une musique…

A bientôt pour un autre tutoriel Raspberry

13 réponses sur “Raspberry – Une borne Airplay”

  1. Salut manu et merci pour ce tuo génial, beau travail. pour apprendre les lignes de commande à taper tu as trouvé ça sur le net? parce que pour connaître tout ça bon courage lol.
    En tout cas bravo j’adore merci

    1. Salut Chris,
      Je n’ai suivi aucune formation.
      Juste du temps à fouiller le net, tester, faire des conneries et après ça rentre.
      As-tu testé de mettre en place cette borne Airplay ?

      1. salut manu, super tout ça je dis respect lol. Non je n’ai pas encore eus le temps de tester tout ça mais je garde bien tes tutos au chaud ça va servir c’est sur. Encore merci pour ces articles beau travail.

    1. Salut,
      Non, avec Shairport, il n’est pas possible de faire de diffusion vidéo.
      Pour ça il y a AirServer, mais il est payant si je ne m’abuse.
      Après, tu peux installer d’autres distributions spécialisées sur ton raspberry, qui sont conçues pour faire du multimédia. Par contre, je n’ai jamais testé et je sais donc pas si tu peux faire du airvideo.

    1. Bonjour, avec si peu d’informations, je ne vais pas vraiment pouvoir vous aider ! Il va falloir m’en dire un peu plus… Par exemple, quelles sont les tests que vous avez effectué. Avez-vous bien relancer le service.

      1. J’ai eu le même pb que thymon.
        mais je regardais dans le logo airplay…
        j’ai regarder dans la gestion du volume et tout était la comme par magie.
        Tutoriel au top j’en avais essayé 1 autre avant sans succet.
        MERCI…je vais m’empresser de regarder les autres projets
        Je vais abuser si vous pouvez me donner une piste sur ce un projet
        ***
        J’ai un abonnement spotify premium et mon rasberry est serveur spotify (on peut mixer spotify et mon itune grâce à votre tuto…trop content) mais je voudrais avec les entres GPIOs piloter spotify et le volume de la sortie casque.
        **
        Bonne journée

        1. Salut,
          Etant aveugle, je n’ai malheureusement pas trop de faciliter pour utiliser les ports GPIO.
          J’ai eu une piste pour connecter tout ça donc je ferai probablement un tutoriel lorsque je maîtriserai la technique.
          En revanche, ce qui est tout à fait facile à réaliser, c’est un petit script PHP accessible via l’adresse ip pointant vers le Raspberry Pi.
          Je n’ai pas de compte Spotify, mais j’utilise le Airplay de puis mon iPhone et je lance un flux radio via un script php, dans lequel je peux activer à la voler soi la sortie jack soi la sortie HDMI.
          Je peux lancer et arrêter le flux toujours via ce même script.
          Alors, si Spotify est contrôlable en ligne de commande, je pense qu’on doit pouvoir créer un script php pour exécuter ces commandes.

          1. Bonjour
            Le script PHP semble une très bonne idées.
            Si je veux agir sur le volume ou l’arret du raspberry ou autre j’ai juste à faire une page web ouverte sur mon mini écran tactile 3.5 pouce et dans un 2 eme temps doubler la commande virtuel php par une info GPIO avec les boutons physiques.
            Si ya un pilotage possible de spotify c’est surement via des commandes php.
            J’ai un serveur raspotify du coup le lien est fait pour l’identification ?
            Un petit tuto sur une page simple PHP qui pilote le raspberry serais au top. Pour ma part souvent c’est l’amorce du programme et la mise en place des définitions de bibliotheque ou variable qui pèche.

  2. Salut,
    Je pencherais plutôt par un pilotage en ligne de commande Linux classique.
    Grâce à PHP, tu peux permettre l’exécution de n’importes quelle ligne de commande. Donc les possibilités sont illimitées.
    Je ferai donc prochainement un petit tutoriel dans ce sens.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *


Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.