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 🙂

 [stextbox id= »warning » caption= »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…[/stextbox]

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.

 [stextbox id= »info » caption= »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 ![/stextbox]

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

 

À 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. Auteur de plusieurs livres sur le Raspberry Pi publiés aux Editions ENI.

29 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
  5. jean

    Bien alors apres quelques test
    que ce soit video youtube ou radio j’ai un clac clac clac clac et pas de zik
    raspbian jessy fraichement installé
    et le script installé avec curl

    toutes les procédures ont bien eté respectées.

    J’ai teste le script de pifm seul ca marche donc je vois pas trop dou vient ele problème

    Répondre
    1. Hugo

      Perso, j’ai fait ce projet avec un RasPI 2, j’ai ensuite pu tester avec un PI 3, mais celui-ci ne fonctionne pas correctement, le son se coupe au bout d’un moment peu importe le logiciel d’émission FM utilisé :/

      Répondre
  6. Osman Condori

    Excelente proyecto, estoy comenzando hacer un proyecto orientados a radios comunitarias, me gustaria tomar su idea y hacer una radio fm de mayor potencia para tener un alcance de unos 10 kilometros, mi pregunta es si tiene algun tipo de licencia para poder usar parte de su codigo, mi correo es osman@elinsi.com . Saludos.

    Répondre
  7. Ludovic

    Bonjour, désolé de vous déranger, j’ai essayé le tuto et malheureusement ça ne fonctionne pas sur mon Pi 3.
    Pouvez vous me donner toute la procédure merci.
    Super Travail, moi j’adore.
    Félicitations

    Répondre
    1. Hugo

      Bonjour,
      Le projet n’a pas été modifié depuis plusieurs années…
      Je peux tout de même tenter de vous aider, qu’est-ce qui ne fonctionne pas ?

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

      Bonjour Ludovic
      comme vous l’avez vu cet article date de 2016
      depuis le système Raspbian a bien évolué et sans doute ce logiciel aussi
      Vous avez toute la procédure dans l’article on ne peut pas faire plus
      Et quand vous dites « ça ne fonctionne pas sur mon Pi 3 » il n’y a aucune info qui permette de vous aider.
      Qu’est ce qui se passe? y a t il un message d’erreur etc. sans info on ne peut pas comprendre ce qui ne fonctionne pas
      essayez de contacter l’auteur du logiciel Hugo lui seul peut vous aider.
      tout est ici https://github.com/moriceh/pifm-youtube-webui
      cdt
      françois

      Répondre
  8. Romain V

    Bonjour Hugo,
    Je ne sais pas si vous suivez toujours votre projet.
    Mais il semblerait que ce dernier ne soit plus fonctionnel sur la partie YOUTUBE.
    Lorsque je saisi, par exemple « framboise314 » et que je valide dans la barre de recherche, rien ne se passe.
    En regardant dans la console de dev de mon navigateur, il semblerait que le problème vienne de l’utilisation de « https://www.googleapis.com/youtube/v3/search?p ».
    Pourriez vous m’aider à ce sujet?

    Répondre
    1. Hugo

      Bonjour,
      Je ne suis plus ce projet depuis plusieurs années maintenant, mais vous pourriez tenter de remplacer la partie recherche YouTube, qui provenait originellement de https://github.com/gudlarakesh/youtube

      Aussi, le serveur youtube-mp3 qui était utilisé dans ce projet ne fonctionne plus depuis longtemps maintenant, mais libre à vous de refaire tout cela de de nous en faire part !
      Bonne soirée
      Hugo

      Répondre
      1. Romain V

        Bonsoir,
        Je vous remercie pour cette réponse rapide et claire.
        Malheureusement, je n’ai pas les compétences nécessaires mais peut être qu’un jour, une autre personne plus callée trouvera mon commentaire et surtout votre réponse et publiera une réponse à ce sujet, avec une petite procédure.
        Bonne continuation à vous et encore merci pour votre projet.

        Répondre

Laisser un commentaire

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

Complétez ce captcha SVP *

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