Web Radio réveil sur Raspberry
Agence web » Actualités du digital » Web Radio réveil sur Raspberry

Web Radio réveil sur Raspberry

Edit: nouvelle version disponible ici.
Dans le but de m’immerger un peu plus dans l’anglais et monter en compétence au niveau de la compréhension oral, j’aimerais bien me réveiller le matin avec des radios US. Seulement voila un radio réveil fonctionnant avec des web radios coûte en moyenne dans les 150€. Je vous propose de le faire pour le prix d’un raspberry pi. Matériel nécessaire:

  •  Un Raspberry Pi 
  • Une paire d’enceintes à relier sur le Raspberry.
  • (Optionnel) Un Smartphone Android

 

Prérequis sur le système du Rpi

La bonne heure

Pour afficher l’heure de votre Rpi tapez la commande

Si l’heure n’est pas correcte c’est surement que la zone n’est pas correctement réglée. Tapez alors

puis choisissez ‘Europe/Paris’.

Serveur Web

Un serveur web pour distribuer l’application écrite en HTML5 et PHP.

Pour vérifier que l’installation est ok on se rend à l’adresse du Rpi avec notre navigateur préféré. Pour moi ça sera IE6. Le serveur web apache doit vous afficher la page d’index par défaut comme l’image suivante. itwork

 

Règlage de l’audio

Par défaut sur le Rpi, le son sort par l’interface HDMI. Pour faire sortir le son par la sortie analogique afin de se servir d’enceintes on tape la commande suivante

Ou <n> est le numéro de la sortie. 0=auto, 1=analog, 2=hdmi.

Pour forcer la sortie analogique on va taper

Un simple de test de son pour vérifier.

Vous devez entendre un grésillement.

Vous pouvez régler le volume de sortie du Rpi via la commande

Par défaut le Rpi amplifie à 50%. La commande alsamixer vous propose un menu de réglage via les touches “flèche haut” et flèche bas” du clavier.

Le lecteur multimédia

L’application est basé sur un lecteur open-source nommé MPlayer. MPlayer est un lecteur multimédia pour linux. Il prend en charge la plupart des formats et gère également les flux audio se trouvant sur le net, ce qui nous intéresse dans notre cas.

mplayer est un programme en ligne de commande piloté par l’entrée standard.

Pour le tester, branchez une paire d’enceinte au Rpi et lancer la commande suivante

Mise à jour des privilèges de apache

L’idée est donc de piloter ce programme par l’interface web. Seulement, il y a un problème. Sur nunux, chaque programme possède son propre utilisateur pour être lancé. Ceci pour des raisons de sécurités. Il est normal que l’utilisateur du serveur web Apache(www-data) ne puise pas exécuter des commandes systèmes. Cet utilisateur n’a donc pas le droit de lancer le programme MPlayer. On va autoriser l’utilisateur www-data à exécuter certaines commandes systèmes nécessaires au programme. Pour cela on utilise sudo. Sudo permet à l’administrateur système d’accorder à certains utilisateurs (ou groupes d’utilisateurs) la possibilité de lancer une commande en tant qu’administrateur, ou comme autre utilisateur. Il peut être paramétré finement pour autoriser ou refuser l’exécution de tâches privilégiées. Nous allons grâce à lui données les droits particulier à nôtre utilisateur www-data suivants:

  • Lancer MPlayer
  • Savoir si MPlayer est lancé
  • Stopper MPlayer

Pour cela, on édite le fichier sudoer à l’aide de la commande

On ajoute la ligne suivante en fin de fichier

Installation de l’application Piclodio sur le Rpi

J’ai nommé l’application Piclodio pour Rapsberry Pi Clock Radio.  Le code est disponnible sur GitHub ici.

On récupere la derniere version de l’archive directement sur le Rpi

On extrait

On place le dossier dans le répertoire de apache

On donne les droits à l’utilisateur de apache (www-data) sur ce répertoire

L’application est installée.

Utilisation

Vous pouvez utiliser l’application via n’importe quel navigateur d’un terminal de votre réseau local. Il suffit de se rendre à l’adresse IP du Rpi et d’ajouter le nom du dossier de piclodio à la fin de l’url comme ceci

L’application,de part son interface, est plutôt destinée au terminaux mobiles de type smartphone mais elle fonctionne tout aussi bien sur un navigateur de PC.

 Ou trouver des URLs de web radio?

Je vous conseil le site http://tunein.com ou encore http://www.radio.fr. Une fois que vous avez trouvé une web radio vous n’avez qu’a récupérer l’url qui génére le flux audio pour la mettre dans Piclodio.

Sur Chrome:

  • clique droit sur la page
  • Procéder à l’inspection de l’élément
  • Onglet “Network
  • Trouver le script qui transfert le plus de données (celui qui à la plus grande bare jaune)
  • Copié la “Request URL” dans Piclodio

stream_audio_chrome

 

requestURL

Application Android Piclodio

C’est pas super de passer par le navigateur de son smartphone à chaque fois que l’on souhaite changer le réveil ou juste lancer la radio. Il faut lancer le navigateur puis rentrer l’url du raspberry ou aller la chercher dans ses favoris. Bref c’est trop long. Du coup j’ai fais une petite application Android qui va simplement faire un affichage de la page web du Rpi.

Le code est disponible  sur GitHub ici pour que les puristes barbus puissent vérifier que je n’ai pas placer à l’insu de mon plein gré une back door qui vend leurs données directement sur Ebay.

Sinon vous pouvez télécharger l’apk ici. Au lancement le programme vous demandera juste l’url de piclodio sur le Rpi.

settings_piclodiopiclodio_android