2014
Boite à musique avec un Raspberry PI
Voici une petite solution pour utiliser le Raspberry PI comme boite à musique. Personnellement je compte l’installer dans ma voiture :) Attention, diffuser sur les ondes radio est règlementé…
l’idée
Le Raspberry PI héberge la musique et un démon mpd permet de la diffuser vers l’autoradio grâce à pifm. Pour contrôler la lecture de la musique, il existe de nombreux clients pour mpd : Android (MPDroid), web, ligne de commande, … Le client doit communiquer avec le démon donc on met en place un hotspot WiFi sur le Raspberry PI sur lequel n’importe quel smarphone pourra se connecter.
le matériel
- un Raspberry PI
- un fil de quelques centimères pour l’antenne
- une clé USB WiFi qui supporte le mode AP
installation de raspbian
Téléchargement et création d’une carte SD avec Raspbian
wget -0 raspbian.img http://downloads.raspberrypi.org/raspbian_latest
dd bs=4M if=raspbian.img of=/dev/mmcblk0
configuration de l’adaptateur WiFi
J’utilise une clé USB WiFi à base de Intersil ISL3887 et du coup j’ai suivi le wiki Debian.
wget -O /lib/firmware/isl3887usb https://daemonizer.de/prism54/prism54-fw/fw-usb/2.13.25.0.lm87.arm --no-check-certificate
modprobe -r p54usb ; modprobe p54usb
configuration d’un hotspot WiFi
Installation des logiciels nécessaires :
sudo apt-get install hostapd udhcpd
udhcpd
On édite le fichier de configuration de udhcpd
, sudo vim /etc/udhcpd.conf
:
start 192.168.1.2
end 192.168.1.20
interface wlan0
remaining yes
opt dns 192.168.1.1
opt subnet 255.255.255.0
opt router 192.168.1.1
opt lease 86400 # 1 day DHCP lease
Il faut ausi l’activer explicitement dans /etc/default/udhcpd
en commantant la ligne DHCPD_ENABLED="no"
:
#DHCPD_ENABLED="no"
Le Raspberry PI doit avoir une adresse IP statique, onpeut ajouter dans /etc/network/interfaces
:
iface wlan0 inet static
address 192.168.1.1
netmask 255.255.255.0
On démarre le service et on l’active au démarrage :
sudo service udhcpd start
sudo update-rc.d udhcpd enable
hostapd
On créé un fichier de configuration pour le réseau WiFi à créer, sudo vim /etc/hostapd/music.conf
:
interface=wlan0
driver=nl80211
ssid=music
hw_mode=g
channel=6
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=secret_music_box
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
Dans /etc/default/hostapd
on précise la configuration à charger :
DAEMON_CONF="/etc/hostapd/music.conf"
On démarre le service et on l’active au démarrage :
sudo service hostapd start
sudo update-rc.d hostapd enable
installation de pifm
sudo mkdir /opt/pifm
sudo chown pi:pi /opt/pifm
cd /opt/pifm
wget http://omattos.com/pifm.tar.gz
tar zxvf pifm.tar.gz
pifm nécessite les droits root pour être exécuté. On configure sudo pour autoriser l’utilisateur MPD à exécuter pifm en root sans avoir besoin de mot passe.
Il faut ajouter par exemple la ligne suivante dans /etc/sudoers
:
mpd ALL=(ALL) NOPASSWD: /opt/pifm/pifm
installation de MPD
Installation du démon : sudo apt-get install mpd
.
Il faut configurer une sortie autio pour transmettre la musique vers [pifm] :
audio_output {
type "pipe"
name "FM 103.3"
command "sudo /opt/pifm/pifm - 103.3 44100 stereo"
format "44100:16:2"
}
On démarre le service et on l’active au démarrage :
sudo service mpd start
sudo update-rc.d mpd enable
Il est possible d’en définir plusieurs afin de pouvoir facilement changer la fréquence sur laquelle [pifm] transmet le son.
photos
aménagement dans le boitier du Raspberry PI
J’ai réutilisé le boitier du Raspberry PI. Afin de tout faire rentrer, j’ai ouvert la clé USB wifi. L’ensemble chauffant pas mal, j’ai préféré mettre un petit ventilateur dont le bruit est largement couvert par le bruit ambiant dans ma voiture.
intégration de la carte wifi dans le boitier
Histoire de gagner un peu de place, j’ai supprimé le port USB supérieur et j’ai soudé le cable USB de la clé wifi directement sous la carte du Raspberry PI.