Montage audio sans fil pour 100€ à base de Raspberry
Un truc excellent avec le Raspberry c’est qu’on peut à peut près tout faire et pour pas cher.
J’ai donc eu envie de réaliser un petit montage audio type enceintes sans fil encastrées dans ma cuisine. Un truc pareil coûte dans le commerce pas loin de 300€. Et si on veut un truc ultra performant et toute-options on peut facilement doubler.
Ici cela ne m’a coûté qu’une centaine d’euros et je pense que j’aurais pu optimiser un peu plus.(Je me suis en effet un peu emballé pour la taille des enceintes)
Il existe de nombreux système de serveur son sur raspberry. J’ai pour ma part opté pour Mopidy. c’est un serveur très léger et simple d’installation.
PREALABLES
Vous aurez besoin de :
COMPETENCES ET MATERIEL
- Savoir souder ou connaitre quelqu’un qui sait (le conseil pas cher 😉 ).
- Avoir un compte spotify premium (A défaut vous pourrez tout de même écouter votre musique locale).
- Avoir une machine linux capable d’accepter votre carte sd et quelques rudiments très basiques en Linux si vous souhaiter configurer en « Headless »
- Raspberry pi Zero W (environ 10€)
- carte sd 8Go pour le systeme (environ 10€)
- Alimentation 5V/2A micro usb (environ 5€)
- carte Hifiberry DAC+ zero (environ 10€)
- set de 42 pin mâles à souder (environ 2€)
- Boitier Pi Zero W (environ 10€) (optionnel mais conseillé)
- Ampli type auto/moto : pour ma part un Lepy 808. pas du son de fou mais très largement suffisant pour une cuisine de 25m2 tout électroménager en fonction (environ 15€)
- Câble RCA de bonne qualité (environ 10€)
- Rouleau de câble audio (environ 10€)
- 2 enceintes encastrables (dans mon cas 2X 120W : environ 20€) (Attention à l’impédance entre l’ampli et les enceintes)
Total : environ 100€ la pièce à équiper
Voici grosso-modo à quoi ressemble mon bricolage. Tout ça est à l’intérieur d’un mur. (Désolé pour la qualité médiocre des photos)
PRINCIPE
Il va s’agir d’installer et configurer un serveur de son sur le raspberry à l’aide de Mopidy. Le son sera alors dirigé du raspberry vers l’ampli. On aura également une interfaces web locale (pour une petite idée : voir image principale de l’article), synchronisée avec votre compte spotify et votre musique locale afin de gérer et jouer vos playlits.
Le système sera « joignable » en wifi via son ip locale. Par conséquent 1 ip correspondra à 1 raspberry et à 1 pièce de la maison. On pourra donc équiper les autres pièces de la même manière si on le souhaite.
pour les branchement je vous laisse le soin de tirer les câbles vous même hein 😉
INSTALLATION
Tout d’abord il va falloir installer le système sur la carte sd.
Sachant que notre pi-zero sera dédié au son pas besoin d’un système complexe.
Téléchargez l’image système de raspbian-lite sur le site officiel et copiez la sur la carte sd via dcfldd (dd) ou win32diskimager si vous êtes sur windows.
Ensuite si vous avez de quoi brancher un écran et un clavier/souris sur votre raspberry branchez le et passez directement à la configuration du système. Dans le cas contraire, suivez alors les étapes de la configuration headless du Pi-zéro W.
Configuration du Raspberry
Nous allons désormais pouvoir configurer le raspberry et installer mopidy.
Exécutez cette commande et modifiez les points suivants :
sudo raspi-config
- changer mot de passe utilisateur
- étendre le système à tout l’espace de la carte SD
- changer le hostname
- changez l’heure du système
Ne redémarrez pas tout de suite, sortez de raspi-config et faites alors les deux commandes suivantes :
apt-get update
atp-get upgrade
Maintenant, redémarrez.
Installation du serveur Mopidy
1/ installer mopidy
Récuperez les clé gpg puis ajoutez les sources et enfin installez en exécutant les commandes suivantes :
wget -q -O - https://apt.mopidy.com/mopidy.gpg | sudo apt-key add -
sudo wget -q -O /etc/apt/sources.list.d/mopidy.list https://apt.mopidy.com/jessie.list
sudo apt-get update
sudo apt-get install mopidy
2/ installer les extensions
La plupart sont déjà présentes. Pour plus d’info visitez le site officiel (en anglais). Il vous faudra ici au moins installer l’extension Spotify pour synchroniser votre compte.
sudo apt-get install mopidy-spotify
3/configurer /etc/mopidy/mopidy.conf
La configuration de base de mopidy se trouve donc dans le fichier /etc/mopidy/mopidy.conf. Ce fichier fonctionne sous forme de sections à activer et à paramétrer. On trouve assez facilement des exemples de configuration sur la toile.
Globalement donc, ne changez pas grand chose. Voici cependant ma config pour les sections les plus basiques.
- si vous voulez utiliser des clients mpd :
[mpd]
enabled = true
hostname = 0.0.0.0
port = 6600
password =
max_connections = 20
connection_timeout = 60
zeroconf = Mopidy MPD server on $hostname
#command_blacklist =
# listall
# listallinfo
#default_playlist_scheme = m3u
- Si vous souhaitez utiliser des frontend http (c’est notre cas ici) :
[http]
enabled = true
hostname = 0.0.0.0
port = 6680
static_dir =
zeroconf = Mopidy HTTP server on $hostname
- pour ajouter votre musique locale :
[local]
enabled = true
library = json
media_dir = /chemin/ver/votre/musique
scan_timeout = 1000
scan_flush_threshold = 100
scan_follow_symlinks = false
excluded_file_extensions =
# .directory
.html
.jpeg
.jpg
.log
.nfo
.png
.txt
[websettings]
enabled = true
musicbox = false
config_file = /etc/mopidy/mopidy.conf
- configuration de spotify
enabled = true
username = nom_d’ulisateur_spotify
password = mot_de_passe_spotify
bitrate = 320
volume_normalization = true
private_session = false
timeout = 10
allow_network = true
allow_playlists = true
allow_cache = true
search_album_count = 20
search_artist_count = 10
search_track_count = 50
toplist_countries =
4/ Faire tourner mopidy comme un service (démarrage auto)
C’est intéressant de faire tourner mopidy de cette manière. Ainsi nous n’avons plus à nous préoccuper de l’activer à chaque redémarrage du système.
Exécutez donc cette commande :
sudo systemctl enable mopidy
Puis exécutez celle-ci (qui va effectuer la vérification de votre configuration)
sudo mopidyctl config
5/ Découverte des playlists locale
Ceci va scanner l’ensemble des fichiers son de votre machine (ou réseau si vous avez mis en place un partage samba) en se réferrant à la configuration que vous avez renseigné dans la section [local] du fichier de configuration. Exécutez donc cette commande :
sudo mopidyctl local-scan
(Cela peut-être assez long si vous avez beaucoup de morceaux)
6/ Autoriser l’utilisateur mopidy
Vérifiez les autorisations de l’utilisateur mopidy. En effet Mopidy créer un nouvel utilisateur nommé mopidy qui doit avoir certains droits nécessaires.
sudo cat /etc/group | grep audio
Si mopidy ne fait pas partie du groupe, alors ajoutez le ainsi :
sudo adduser mopidy audio
7/ Installez le frontend de votre choix (pour ma part Iris)
Vous aurez préalablement besoin de l’outil d’installation « pip » et de ses dépendances. Installez-le donc ainsi :
sudo apt-get install python-pip python-dev build-essential
Puis installez l’interface voulue (voir le site officiel de mopidy pour faire votre choix). Dans mon cas j’ai choisi Iris que je trouve complet.
sudo pip install Mopidy-Iris
8/ Accedez à vos playlist
Enfin, saisissez dans votre navigateur l’adresse suivante http://ip_du_pi_zero:6680/. Vous arrivez alors sur l’interface de choix du client frontend. Dans notre cas c’est donc Iris. nous pourrions en fait y accéder directement en renseignant http://ip_du_pi_zero:6680/iris.
9/ Ajouter des streams Radio
Pour écouter vos radio favorites, il va falloir modifier un peu le fichier /etc/mopidy/mopidy.conf.
- Décommentez tout ce qui concerne [mopidy-stream] et [m3u] sans rien modifier.
- Créez une playlist au format .m3u8 dans /var/lib/mopidy/.local/share/mopidy/m3u avec vos liens de stream radio
Ci-dessous une de mes playlist nommée « 01-Mes-Radios.m3u8 » (le 01 devant le nom de fichier va faire que la playlist apparaîtra en premier dans l’onglet playlist de l’interface web mopidy-iris : pratique ! )
#EXTM3U
#EXTINF:-1,France Inter
http://direct.franceinter.fr/live/franceinter-midfi.mp3
#EXTINF:-1,France Info http://direct.franceinfo.fr/live/franceinfo-midfi.mp3
#EXTINF:-1,France Culture http://direct.franceculture.fr/live/franceculture-midfi.mp3
#EXTINF:-1,France Musique http://direct.francemusique.fr/live/francemusique-midfi.mp3
#EXTINF:-1,Nova http://novazz.ice.infomaniak.ch/novazz-128.mp3
#EXTINF:-1,JetFm http://80.82.229.202/jetfm.mp3
ET VOILA !
Vous l’aurez donc compris si je décide d’équiper toute ma maison de ce système, j’aurais alors une ip différente par pièces. Avec des petits marque-pages bien nommés vers les ip/pièces en questions me voici donc en possession d’un multi-room assez simple et pratique pour lancer la musique dans la pièce de mon choix !
Il ne reste plus, pour parfaitement chiader le truc, qu’à trouver un moyen pour synchroniser le son de plusieurs pièces à la fois, voir à récupérer le son d’une pièce pour envoyer dans une autre. J’attend de m’équiper dans plusieurs pièces pour me pencher là dessus. Cela nécessitera peut-être de changer tout le principe. Si vous avez des idées, je suis preneur. 😉