Publié le 30 juillet 2016 - par

Une interface web pour un émetteur FM avec le Raspberry Pi

FM_spectre_250pxIl y a quelque temps je vous proposais un analyseur de spectre à base de Raspberry Pi. Hugo (13 ans !) s’est attelé à l’autre extrémité de la chaine en développant une interface Web pour piloter un Raspberry Pi transformé en émetteur FM.
Quand Hugo m’a proposé cet article je l’ai trouvé intéressant, mais quand j’ai appris son âge je me suis dit qu’il fallait le publier 🙂

 

Attention !
Bien entendu comme indiqué dans cet article et ce texte de loi :  cette émission (qui risque de perturber les récepteurs voisins et d’empêcher les auditeurs du voisinage d’écouter leur station préférée) ne pourra être que de très courte durée et uniquement pour tester cette possibilité offerte par notre framboise314. Les normes d’émission dans la bande FM et la réglementation sont très strictes et il faut absolument éviter de vous mettre hors la loi. Les fréquences sont définies par le CSA et la bande FM est quasiment saturée. Lisez cet article de loi avant de vous lancer…

Une interface Web pour un émetteur FM

Objectif

Diffuser le son de vidéos Youtube sur la bande FM, en utilisant un Raspberry Pi.

L’émetteur FM

C’est fm_transmitter qui a été choisi par Hugo comme base de son projet. fm_transmitter utilise la sortie horloge pour créer une radio à modulation de fréquence et repose sur une idée originale publiée il y a quelques années. Ce programme n’utilise pas le contrôleur DMA pour distribuer les échantillons à la sortie (générateur d’horloge). La qualité sonore obtenue est moins bonne que celle que fournit le projet PiFM et seule la transmission en mono est disponible (mais il accepte des fichiers stéréo). Par contre cette version est utilisable sur tout type de carte Raspberry Pi.

La recherche YouTube

Pour la recherche sur YouTube, Hugo a retenu la solution de Gudla Rakesh  qui propose une interface permettant de rechercher et sélectionner une vidéo sur YouTube. Cette interface a été modifiée et adaptée pour fonctionner avec son projet de webUI.

Par exemple si vous tapez framboise314 dans la page web proposée par Gudla, vous obtenez ceci :

recherche_youtubeC’est cette interface modifiée par Hugo pour l’adapter à son projet que vous retrouverez.

L’interface webui

interface_freq_600pxComme toute bonne interface Web, pour s’en servir il faut saisir http://adresse_IP_RasPi  dans la barre d’adresse d’un navigateur et on arrive sur la page d’accueil.  Si vous voulez diffuser une musique disponible sur YouTube cliquez sur … YouTube. L’interface de la page de recherche s’ouvre et il suffit de rechercher une vidéo et de cliquer dessus pour démarrer la diffusion.

youtube_600px

interface_stopL’antenne se connecte sur le GPIO 4 (PIN 7).

Le panneau STOP Broadcast sert à arrêter l’émission de la musique ou du son.

Par défaut, la fréquence d’émission est fixée à 87,5 MHz. Vous pouvez modifier la fréquence de diffusion en fonction de la zone dans laquelle vous vous situez. L’antenne se connecte sur le GPIO 4 (PIN 7).

Installer l’interface

Pour installer l’interface, il faut exécuter la commande

curl https://raw.githubusercontent.com/moriceh/pifm-youtube-webui/master/Install.sh > Install.sh && sudo sh Install.sh

N’utilisez pas wget car le script ne fonctionnera pas, pour une raison encore inconnue à ce jour par Hugo… Si vous avez des idées…:)

Les fichiers de la partie Linux

pi_en_action_600px

L’émetteur FM réalisé par Hugo.

install.sh –> script d’installation
fm_transmitter.zip –> Il contient https://github.com/markondej/fm_transmitter et les scripts qui permettent de jouer les sons (yt.sh)

Les fichiers de la partie Web

index.html –> Page d’accueil (lancer la recherche YouTube et stopper l’émission).
fm.php –> Page qui éxécute le script /opt/fm_webui/yt.sh avec l’URL de la vidéo donnée.
killall.php –> Page qui tue le processus « fm_transmitter » pour arrêter l’émission du signal quand on clique sur le panneau stop et qui renvoie ensuite sur la page d’accueil
bg.gif –> fond des pages de l’interface.
youtube.png –> Logo Youtube.
stop.png –> Image du panneau stop.

 

Qui est Hugo ?
Hugo, l’auteur de cet article est un collégien de 13 ans passionné d’informatique. Ce qu’il aime ?  Monter des PC, créer des logiciels ou des sites Web. Il aime aussi Linux et quand il a découvert le Raspberry PI (il y a 2 ans), il était fou de joie !

Mise à jour du 2 Août 2016 : Webradios

Les WebRadios sont maintenant accessibles depuis l’interface :

webradio1_600pxIl suffit de cliquer sur l’icône WebRadio

webradio2_600pxPour accéder à une fenêtre dans laquelle vous pouvez copier l’URL de la Webradio qui vous intéresse.

Vous pouvez par exemple rechercher le flux sur http://fluxradios.blogspot.fr/p/flux-radios-francaise.html

Conclusion

Lorsque vous lirez cet article, il est possible que l’interface diffère un peu de ce qui est décrit dans cet article car le projet évolue rapidement 🙂

Hugo continue d’améliorer son interface et si vous avez des suggestions ou des commentaires, vous pouvez les lui laisser dans les commentaires ci-dessous.

Il m’a semblé intéressant de publier cet article pour montrer que le Raspberry Pi joue auprès des jeunes générations le rôle que les plus anciens d’entre-nous ont découvert avec les Amstrad, Commodore et autres ZX81…

Des articles écrits par des auteurs dont l’âge va de 13 ans à 70 ans : c’est sur framboise314 et… c’est très bien 🙂

Sources

Le Raspberry Pi comme émetteur FM expérimental

 

Share Button

À propos François MOCQ

Électronicien d'origine, devenu informaticien, et passionné de nouvelles technologies, formateur en maintenance informatique puis en Réseau et Télécommunications. Dès son arrivée sur le marché, le potentiel offert par Raspberry Pi m’a enthousiasmé j'ai rapidement créé un blog dédié à ce nano-ordinateur (www.framboise314.fr) pour partager cette passion. .

19 réflexions au sujet de « Une interface web pour un émetteur FM avec le Raspberry Pi »

      1. milcam48

        salut mon pseudo est milcam48,
        Et comme toi je suis passioné d’informatique, je bricole sur mon ordi sous ubuntu 16.04
        j’ai un raspberry 1 ou 2 (je ne sais plus)
        et je voudrais diffuser un flux http venant de VLC
        et sinon ton programme est pas mal tu pourais le compiler en .deb
        c’est tres facile et les depandance seront mieus gerer tu pouras mème metre un script post-install (script qui s’execute apret l’instalation)
        le tuto est sur openclassroom
        https://openclassrooms.com/courses/creer-un-paquet-deb
        tu peux me repondre a mon e-mail milcam48@gmail.com

        Répondre
  1. xhark

    Sympa la petite interface de recherche YT ! De mon côté j’avais mis une simple cosse pour faire office d’antenne et ne pas parasiter la FM, car une petite antenne avec fil suffit déjà pour avoir une portée « importante »

    Répondre
    1. François MOCQ Auteur de l’article

      pareil j avais utilisé un bout de fil de quelques cm (le genre de fil avec un connecteur qu’on utilise sur les breadboards)
      c est pour ça que j ai insisté sur la réglementation.
      Si tu es au fin fond de la Nièvre ou du Larzac ça ne pose pas trop de problème par contre en milieu urbain on a vite fait d’em…bêter des centaines de personnes 🙁 d’autant qu’il n’y a aucun filtrage en sortie et qu’en plus d’émettre sur la fréquence prévue, on « arrose » pas mal sur les fréquences voisines

      Répondre
  2. Aurélien

    Oui j’ai essayé plusieurs fois mais toujours le même résultats mais je peut y accéder en tapant manuellement le lien pour me diriger sur la page de recherche YouTube

    Répondre
  3. kelyan

    Bonjour tout le monde,j’ai trouver le problème de Hugo pour le wget pour installer son interface web automatiquement

    En fait il fallait enlever: > Install.sh
    et de le remettre comme ça: wget https://raw.githubusercontent.com/moriceh/pifm-youtube-webui/master/Install.sh && sudo sh Install.sh

    Voila j’espère que sa vous plait

    PS:

    wget et curl sont la même chose mais il faut changer quelques mot

    Hugo t’est un garçon super,j’ai vu tout tes codes et la je me suis « incroyable!!!,un enfant de 13 ans peut créer toute ces lignes de codes »
    juste une question:est-ce que tu as été aider?

    Répondre
    1. Hugo

      La seule chose pour laquelle je me suis fait aider c’est le exec() en php car il fallait introduire les parametres des zones de textes et je n’y arrivais pas ^^

      Répondre
  4. kelyan

    il faudrait que tu reface ton logiciel car la sa marche qu’une fois sur deux,je n’arrive pas à écouter toute les musiques de youtube,alors soit c un problème d’émetteur soit c ton logiciel de youtube qui merde

    Répondre

Laisser un commentaire

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

Complétez ce captcha SVP * Time limit is exhausted. Please reload CAPTCHA.