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"
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
// 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