Web radio ESP32S - VS1053

Bonjour,
Je cherche à écouter simplement la "Web radio" RTL avec un esp32s et un module VS1053.
J'ai lu des sujets sur le forum et je viens de commander un PCM5102 et 2 MAX98357 mais pour ne pas regretter l'achat de mon VS1053 j'essaye quand même d'en tirer quelque chose...
Sur les exemples que l'on trouve sur internet, la connexion au flux d'une radio se fait en simplifiant grossièrement avec ce code :

SPI.begin();

  player.begin();
  player.switchToMp3Mode();
  player.setVolume(volume);




if (!client.connected()) {
        Serial.println("Reconnecting...");
        if (client.connect(host, httpPort)) {
            client.print(String("GET ") + path + " HTTP/1.1\r\n" +
                         "Host: " + host + "\r\n" +
                         "Connection: close\r\n\r\n");
        }
    }

    if (client.available() > 0) {
        // The buffer size 64 seems to be optimal. At 32 and 128 the sound might be brassy.
        uint8_t bytesread = client.read(mp3buff, 64);
        player.playChunk(mp3buff, bytesread);
    }
  • j'ai trouvé un flux MP3 pour RTL :


Je comprends qu'il faut 3 paramètres pour se connecter je pense que :

Voici les connexions de mon esp32s à mon VS 1053 :

  • Broche 5V du VS1053 : Broche VIN (5V) de l'ESP32
  • Broche DGND du VS1053 : Broche GND de l'ESP32
  • Broche MISO du VS1053 : Broche D19 de l'ESP32
  • Broche MOSI du VS1053 : Broche D23 de l'ESP32
  • Broche SCK du VS1053 : Broche D18 de l'ESP32
  • Broche DREQ du VS1053 : Broche D4 de l'ESP32
  • Broche XRST du VS1053 : Broche EN de l'ESP32
  • Broche XCS du VS1053 : Broche D5 de l'ESP32
  • Broche XDCS du VS1053 : Broche RX2 - D16 de l'ESP32

Merci par avance pour ceux qui voudront bien m'aider.

Peut-être des infos sur ce site :

Un exemple

//  http://ice1.somafm.com/u80s-128-mp3
const char *host = "ice1.somafm.com";
const char *path = "/u80s-128-mp3"; //this is the part you need to change
int httpPort = 80;

Je dirais :

Merci lesept,
Effectivement, ça semble logique mais malheureusement ça ne fonctionne pas.
Par contre pour cette radio suisse c'est bon :
host : lyon1ere.ice.infomaniak.ch
path : /lyon1ere-high.mp3
httpPort 80

Je ne comprends pas.

Bonjour

/rtl-1-44-64?listen=webCwsBCggNCQgLDQUGBAcGBg

Ce lien du flux webradio a l'air codé (base 64 ? autre codage ?)

il faudrait trouver pour cette radio un lien 'normal' comportant 'en clair' un fichier avec son extension .mp3
ou modifier le code Arduino pour lui faire envoyer la requête 'atypique' attendue par le fournisseur de flux de RTL

Merci al1fch,

Effectivement je n'arrive à faire fonctionner que les liens qui ont un path avec une extension .mp3
France info par exemple avec : http://icecast.radiofrance.fr/franceinfo-lofi.mp3
Mais sur toutes les stations radios, le son est vraiment très mauvais...
Peut-être y a t'il une possibilité au niveau de la programmation pour l'améliorer ?

Bonsoir,
En fait ça marche beaucoup mieux avec des oreillettes filaires ou une petite enceinte JBL avec connexion filaire également, plus un réglage des volumes sonores (VS1053 et ou enceinte).

Bonjour,

Pour écouter RTL ou autre station radio (NRJ...) avec un ESP32 + VS1053 il faut :
1/ connexions :

  • Broche 5V du VS1053 : Broche VIN (5V) de l'ESP32
  • Broche DGND du VS1053 : Broche GND de l'ESP32
  • Broche MISO du VS1053 : Broche D19 de l'ESP32
  • Broche MOSI du VS1053 : Broche D23 de l'ESP32
  • Broche SCK du VS1053 : Broche D18 de l'ESP32
  • Broche DREQ du VS1053 : Broche D4 de l'ESP32
  • Broche XRST du VS1053 : Broche EN de l'ESP32
  • Broche XCS du VS1053 : Broche D5 de l'ESP32
  • Broche XDCS du VS1053 : Broche RX2 - D16 de l'ESP32

Librairie :
https://github.com/schreibfaul1/ESP32-vs1053_ext

Code :

#include "Arduino.h"
#include "WiFi.h"
#include "SPI.h"
#include "vs1053_ext.h"

// Digital I/O used
//#define SD_CS          5
#define SPI_MOSI      23
#define SPI_MISO      19
#define SPI_SCK       18
#define VS1053_CS     5
#define VS1053_DCS     16
#define VS1053_DREQ   4

String ssid =     "ssss";
String password = "aaa";

int volume=100;

VS1053 mp3(VS1053_CS, VS1053_DCS, VS1053_DREQ);

//The setup function is called once at startup of the sketch
void setup() {
    //pinMode(SD_CS, OUTPUT);      digitalWrite(SD_CS, HIGH);
    Serial.begin(115200);
    SPI.begin(SPI_SCK, SPI_MISO, SPI_MOSI);
    //SD.begin(SD_CS);
    WiFi.disconnect();
    WiFi.mode(WIFI_STA);
    WiFi.begin(ssid.c_str(), password.c_str());
    while (WiFi.status() != WL_CONNECTED) delay(1500);
    mp3.begin();
    mp3.setVolume(volume);
    
    mp3.connecttohost("http://scdn.nrjaudio.fm/adwz2/fr/30001/mp3_128.mp3?origine=fluxradios"); // Transfer Encoding: chunked
    
}

// The loop function is called in an endless loop
void loop()
{
    mp3.loop();
}


Il suffit de copier le lien mp3 sur :
https://fluxradios.blogspot.com

et de le coller dans le code ici :

mp3.connecttohost("http://scdn.nrjaudio.fm/adwz2/fr/30001/mp3_128.mp3?origine=fluxradios"); 

Voilà rien de bien compliqué avec une bonne qualité sonore.

Pour dolicewaysn et tous ceux qui sont intéressés par une WebRadio à base d'ESP32 et VS 1053.
Il ne reste plus qu'à écrire le code pour changer de station et augmenter le volume.

Bonne journée.

Quelque chose qui pourrait t'intéresser, la personne dont tu utilises la librairie a aussi développé une application associée.

Bonjour

Le VS1053 (modules) est vraiment un composant intéressant, il n'est pas trés utilisé et occulté souvent par le dfplayer.
Mais il offre pas mal de possibilités supplémentaires.

Possibilités pas toujours simples/pratiques à mettre en œuvre

Merci pour ces infos fdufnews et Artouste.
Bonne journée.

Bonjour,
J'ai réalisé une Webradio à partir d'un ESP32 et d'un module audio VS1053.
Après avoir résolu des soucis de connexion dûs à la définition correcte du port, Je déplore une succession de crachotements courts à une fréquence d'environ 4Hz, localisés alternativement à gauche, au centre puis à droite...
J'ai testé essentiellement avec France Musique avec ce flux : http://icecast.radiofrance.fr/francemusiqueconcertsradiofrance-midfi.mp3... port 80.
Sur RFM pas de crachotements, mais des coupures fréquentes avec un buffer fixé à 32 ou 64 ou 128 (pas d'influence).
Quelqu'un a t'il une idée sur ces comportements ?