Web radio esp32

Bien le bonjour à vous tous et toutes,

Bien que mon niveau en arduino et esp32 soit vraiment débutant j'ai voulu tenter de faire un petit montage esp32 dont voici les fonctions:
_Se connecter au wifi de la maison
_Chercher le flux de la radio FIP ( http://icecast.radiofrance.fr/fip-hifi.aac)
_Le décoder et le diffuser via un ampli filaire.
Par la suite j'aurai aimé rajouter:
_Un réglage du volume
_Plusieurs boutons qui permettent de changer de flux (car FIP à plusieurs radio thématiques)

Mon matériel:
_ESP32-DevKitC-32
Modèle de module: ESP32-WROOM-32

_Amplificateur MAX98357

_Ampli externe

Mon problème:
Je n'arrive pas du tout à comprendre quel code entrer.
J'ai tenté tout un tas de choses, il ne se passe pas grand chose.

Je suis vraiment débutant, mais j'aimerai vraiment arriver à faire ce projet car actuellement un pc est allumé toute la journée pour pouvoir capter cette radio (qui ne diffuse que sur le web).

J'ai suivi ce tuto:

ça ne fonctionne pas du tout, tout un tas d'erreur liées à "audio.h"

Merci à vous de m'avoir lu !

Bonjour moyenman

Essaies ça.
Je n'ai pas testé :wink:

Cordialement
jpbbricole

Bonjour @moyenman

Dans la page d'exemple que tu indiques je ne vois pas d'indication sur la librairie audio à utiliser, 'audio.h' se trouve dans diverses bibliothèques audio, toutes ne font pas l'affaire ici vu que l'ESP32 doit décoder le flux mp3, aac...... + utiliser l'I2S

Il y a 3 ans j'avais obtenu de bons résultats avec ce tutoriel

La bibliothèque à utiliser pour ce tuto est celle ci (vidéo 15.07)

décodage du flux par l'ESP-32 (OK avec ESP32-S2 dans mon cas contrairement à ce qui est indiqué)
ampli BF 3W monophonique , entrée I2S à circuit intégré MAX98357A

Bonjour @moyenman

Test Web radio OK , cette fois-ci avec une carte LOLIN S3 Mini (ESP32-S3 double coeur)

// TEST OK sur carte LOLIN S3 MIni, le 22/12/2024
//
// Source :  https://www.xtronical.com/i2sinternetradio/
// IDE Arduino 2.3.4
// Core  ESP32 d'Espressif en version 3.1.0  
// Bibliothèque : https://github.com/schreibfaul1/ESP32-audioI2S  ( en VERSION  3.0.12)
// Selectionner pour Partition Scheme  une option laissant au moins 2MB pour le code

#include "Arduino.h"
#include "WiFi.h"
#include "Audio.h"

// GPIOs utilisés ici pour l'ampli BF I2S  MAX98357A, autres choix possibles
#define I2S_DOUT      10  // DIN connection 
#define I2S_BCLK      11  // Bit clock 
#define I2S_LRC       12  // Left Right Clock

Audio audio;

String ssid =     "YYYYYYYYYYYYYYYY";
String password = "ZZZZZZZZZZZZZZZZ";


void setup() {
  Serial.begin(115200);
  WiFi.disconnect();
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid.c_str(), password.c_str());
  while (WiFi.status() != WL_CONNECTED) delay(1500);
  audio.setPinout(I2S_BCLK, I2S_LRC, I2S_DOUT);
  audio.setVolume(6); // 0...21

  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");
}


void loop()
{
  audio.loop();
}

// optional
void audio_info(const char *info) {
  Serial.print("info        "); Serial.println(info);
}
void audio_id3data(const char *info) { //id3 metadata
  Serial.print("id3data     "); Serial.println(info);
}
void audio_eof_mp3(const char *info) { //end of file
  Serial.print("eof_mp3     "); Serial.println(info);
}
void audio_showstation(const char *info) {
  Serial.print("station     "); Serial.println(info);
}
void audio_showstreaminfo(const char *info) {
  Serial.print("streaminfo  "); Serial.println(info);
}
void audio_showstreamtitle(const char *info) {
  Serial.print("streamtitle "); Serial.println(info);
}
void audio_bitrate(const char *info) {
  Serial.print("bitrate     "); Serial.println(info);
}
void audio_commercial(const char *info) { //duration in sec
  Serial.print("commercial  "); Serial.println(info);
}
void audio_icyurl(const char *info) { //homepage
  Serial.print("icyurl      "); Serial.println(info);
}
void audio_lasthost(const char *info) { //stream URL played
  Serial.print("lasthost    "); Serial.println(info);
}
void audio_eof_speech(const char *info) {
  Serial.print("eof_speech  "); Serial.println(info);
}

Signal WiFi faible -> son haché : la box est à une quinzaine de mètres + 3 cloisons sur le trajet

Après le test avec une carte Lolin S3 mini , le test avec une carte Lolin S2 Mini est également OK
pour ce dernier test les GPIO pour l'I2S étaient 9, 11 et 12

Infos apparaissant dans le moniteur série pour ces tests :

info        PSRAM found, inputBufferSize: 638965 bytes
info        buffers freed, free Heap: 61264 bytes
info        connect to: "icecast.radiofrance.fr" on port 80 path "/fipjazz-midfi.mp3"
info        Connection has been established in 20 ms, free Heap: 60588 bytes
info        chunked data transfer
bitrate     128000
station     fipjazz-midfi.mp3
info        MP3Decoder has been initialized, free Heap: 35592 bytes , free stack 6356 DWORDs
lasthost    http://icecast.radiofrance.fr/fipjazz-midfi.mp3
info        stream ready
info        syncword found at pos 0
info        MPEG-2.5, Layer I
info        Channels: 2
info        SampleRate: 48000
info        BitsPerSample: 16
info        BitRate: 128000

la bibliothèque ESP32-audioI2S est donc bien compatible avec les ESP32, ESP32-S2 et ESP32-S3

Pbs en vue en cas de présence de plusieurs bibliothèques invoquées avec la ligne #include Audio.h

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.