Webradio - arnaudrco/exemples GitHub Wiki

8 dépôts github : exemples-de-montages festisol CROUS-micro-python piano visio anumby jouets developpement-voiture raspberry-pico Blog ateliers numériques Repair Café d'Orsay

Des anciennes enceintes de PC recyclées en une radio internet ; le caisson de basse est en bas ; installation réussie !

Que faire d'une vieille enceinte d'ordinateur ? Recyclez la pour en faire une radio internet pour moins de 5€ ! C'est économique en plus !

CODE

prototype avec un s3 "super mini"

version prise audio "jack"

J'ai ajouté le fichier d'initialisation platformio. Pour avoir un modèle plus solide, je conseille de souder directement "esp" et "jack" ensemble ; fil bleu a ajouter pour avoir la masse ( GND sur esp et broche AGND sur jack ) et c'est tout. La compilation est extrêmement rapide avec PlatformIO.

CODE

prototype avec un s3 "zero"

  • I2S_DOUT sur esp32s3 broche 2
  • I2S_BCLK 3
  • I2S_LRC 4

version HP

CODE

Recevoir la radio par internet

La réception de la bande FM est mauvaise ? Vous voulez une "webradio" qui n’existe pas sur DAB+ ? La réalisation est possible pour quelques euros

comment-ecouter-radio-france. Sur un navigateur web, entrez

https://icecast.radiofrance.fr/monpetitfranceinter-midfi.mp3

Les appareils de type radio K7 n'ont pas toujours de prise audion externe jack . Un petit France Inter peut en cacher un autre ! Version sans prise jack installée dans une ancienne enceinte

Vous ne voulez pas d'écran ? un modèle rudimentaire (esp32 sans mémoire ram supplémentaire dans la rubrique en fin de page "comprendre") utilise une adresse internet pour changer la station ou le volume

accès au réseau

mettre à jour le SSID dans le fichier WebRadio_ESP32_2432S028R_P.ino

SSID = "SFR_ED28" # Enter your WiFi name PASSWORD = "xxx" # Enter your WiFi password

auto connexion

Je n'ai pas les mots de passe ? Augustin veut un appareil ; il existe une bibliothèque magique "WiFiManager" pour réaliser une auto connexion

CODE

et voila, le papa d'Augustin peut rentrer le mot de passe de sa box

Comprendre le fonctionnement

que faire si cela ne marche pas ? Comment fonctionne chacun des éléments ?

afficheurs

J'ai préparé une rubrique afficheurs avec un module arduino ou esp et des programmes de test bien pratiques ; lorsque c'est possible, un montage sans soudure sur une plaque : je branche et je teste aussitôt sur des "bancs de test"

correction pour le convertisseur PCM

Certains convertisseurs ne fonctionnent pas du premier coup ; il faut souder les ponts ( cercle rouge ) ; j'ai testé avec la radio par internet avec un ancien esp8266 ou un esp32

logiciel

plusieurs environnements sont disponibles ; ma préférence va dans l'orde

  • arduino version 2 : malheureusement pour des raisons commerciales il a du mal à reconnaître les cartes "espressif"

pensez à ajouter les cartes esp ; j'ai pris

  https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
  https://github.com/handledexception/platform-espressif32/blob/esp32-s3-devkitc-1-n16r8v/boards/esp32-s3-devkitc-1-n16r8v.json
  https://espressif.github.io/arduino-esp32/package_esp32_index.json
  http://arduino.esp8266.com/stable/package_esp8266com_index.json
  • arduino version 1 : attention aux versions des bibliothèques compilation rapide
  • IDE espressif : il faut prendre garde au numéro de version ( 1.44 seule marche pour le projet de drone ) ; idéale pour produits esp
  • PlatformIO : moins intuitive, le type de carte doit être ecrit explicitement dans un fichier PlatformIO.ini

voir Afficheur-meteo un exemple de programme

visalisation I2S par oscilloscope

Le bus I2S a un fonctionnement

Pour notre application I2S audio rythmé par une horloge (signal "clock" SCK de synchronisation ) pour transmettre des mots ( WS) composé de bits ( most significant bit MSB ou least significant LSB )

Tout le monde n'a pas d'analyseur numérique à 3 voies ; avec un oscilloscope plus simple à 2 entrées, je visualise Lrc (courbe jaune) et Din (bleu)

De même avec Lrc (courbe jaune) et Bck (bleu)

Comment reconnaitre les sorties avec la fréquence ? le signal "Bck" est celui à la fréquence le plus élevée (700 KHz à 1.5 MHz), le signal "Din" la plus basse (20 KHz )

radio simple

J'ai pris un module esp32S2 avec de la mémoire PSRAM

https://github.com/arnaudrco/exemples/tree/main/jack3

https://github.com/arnaudrco/CROUS-micro-python/wiki/esp32-S2-ou-S3

changer de station

Le code doit être modifié ; la commande est "connecttohost" avec l'adresse URL ; pour mettre FIP pour avoir du jazz :

audio.connecttohost("http://icecast.radiofrance.fr/fipjazz-midfi.mp3"); //audio.connecttohost("http://icecast.radiofrance.fr/fipworld-midfi.mp3"); //audio.connecttohost("http://icecast.radiofrance.fr/fip-midfi.mp3"); //audio.connecttohost("http://icecast.radiofrance.fr/franceinfo-midfi.mp3"); //audio.connecttohost("http://tsfjazz.ice.infomaniak.ch/tsfjazz-high.mp3");

Lite d'adresse URL

Stations France Inter, Mon Petit France Inter, franceinfo...

https://stream.radiofrance.fr/franceinter/franceinter.m3u8
https://stream.radiofrance.fr/franceinterlamusiqueinter/franceinterlamusiqueinter.m3u8?
https://stream.radiofrance.fr/monpetitfranceinter/monpetitfranceinter.m3u8
https://stream.radiofrance.fr/franceinfo/franceinfo.m3u8?
https://stream.radiofrance.fr/franceculture/franceculture.m3u8?
https://stream.radiofrance.fr/fbchansonfrancaise/fbchansonfrancaise.m3u8?

choix du débit

Lire https://fluxradios.blogspot.com/2014/07/flux-url-france-inter.html

posez des questions

pas facile de comprendre les applications "API" ; j'envoie une question (requete) et le site me répond ; c'est très bien expliqué pour radiofrance

Les stations de radio sont "rangées" par marque. Il est possible de récupérer l'ensemble de ces marques avec la requête suivante :

{ brands { id title baseline description websiteUrl playerUrl liveStream } }

pour les curieux https://developers.radiofrance.fr/doc

radiofrance donne même un tuto https://developers.radiofrance.fr/doc/tutorial-by-example/list-brands

pour les curieux, je fais pareil pour la météo

https://github.com/arnaudrco/exemples/wiki/Afficheur-meteo

Autres pages

  1. Webradio-avec-affichage
  2. Webradio-esp8266
  3. PlatformIO
  4. Développements de code CROUS en micro python
  5. Développements de code anumby
  6. développement IA en python

Proto