Retour aux projets
Programmation · 2025

Web Radio portable

Création d'une webradio connectée via ESP32/Arduino, pilotable à distance depuis une application mobile via le protocole MQTT pour la gestion des stations, du volume et de la spatialisation audio.

2025
Cameron FLORENCE
Programmation
Web Radio portable
Idée de départ

L'objectif de ce projet était de concevoir une webradio portable capable de diffuser en stéréo des stations de radio Internet encodées en MP3 ou AAC, écoutables via un casque ou des haut-parleurs.

L'idée centrale reposait sur la création d'un système entièrement contrôlable à distance depuis un smartphone. L'utilisateur devait pouvoir gérer facilement le choix des stations, ajuster le volume, régler la tonalité (basses, aigus) et modifier l'effet de spatialisation du son de manière fluide.

Technologies utilisées
Microcontrôleur Adafruit HUZZAH32 ESP32 Feather
Carte Adafruit Music Maker FeatherWing (CoDec VS1053)
IDE Arduino (C/C++)IDE Arduino (C/C++)
Protocole MQTTProtocole MQTT
Application Android IoT MQTT PanelApplication Android IoT MQTT Panel
Répartition des rôles
Groupe programmation
Création d'une Web Radio portable pilotable par smartphone
  • Yoann
  • Cameron
Déroulement du projet
1
Initialisation et contrôle audio — Utilisation d'un programme de base et de la bibliothèque Baldram pour configurer le volume, la tonalité et la spatialisation via le clavier.
2
Gestion réseau dynamique — Intégration de WiFiManager pour connecter l'ESP32 au réseau via un smartphone sans inscrire les identifiants en clair.
3
Lecture des flux audio — Utilisation de la bibliothèque ESP32_VS1053_Stream pour renseigner et lire les URL complètes des stations radio.
4
Communication IoT — Implémentation du protocole MQTT (PubSubClient) pour définir les topics de communication entre la carte et le téléphone.
5
Interface mobile — Création de l'interface de contrôle sur l'application IoT MQTT Panel pour piloter intégralement la webradio à distance.

Webradio
Webradio

Application mobile
Application webradio
Contraintes et solutions

Nous avons rencontré des problèmes de connexion avec la carte lors de l'intégration de WiFiManager, qui refusait de se connecter à un partage de connexion spécifique. La solution a été d'utiliser un autre partage de connexion mobile qui a fonctionné de manière stable pour le reste du projet. De plus, les changements de bibliothèques (notamment pour la gestion simplifiée des URL) ont nécessité de réadapter notre code pour que les réglages de tonalité et de spatialisation continuent de fonctionner correctement ensemble.

Résultats
Webradio portable totalement fonctionnelle
Application de contrôle mobile opérationnelle
Réglages audio (volume, tonalité, spatialisation) fonctionnels
Possibilité d'ajouter des URL de stations manuellement via le téléphone
Retour d'expérience

Ce projet m'a permis de consolider mes compétences en programmation sur Arduino, notamment avec l'utilisation du microcontrôleur ESP32 et de modules d'extension comme le CoDec VS1053. J'ai également pu mieux comprendre l'utilité, la légèreté et la mise en œuvre pratique du protocole de messagerie MQTT pour des projets liés à l'Internet des Objets (IoT).