Table des matières:
- Étape 1: Obtenez toutes les pièces
- Étape 2: carte ESP32
- Étape 3: décodeur MP3
- Étape 4: Affichage Nextion
- Étape 5: connexion de toutes les pièces
- Étape 6: Le code du projet
- Étape 7: Réflexions finales et améliorations
Vidéo: Radio Internet à l'aide d'un ESP32 : 7 étapes (avec photos)
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:07
Chers amis, bienvenue dans un autre Instructable ! Aujourd'hui, nous allons construire un appareil de radio Internet avec un grand écran de 3,5 pouces à l'aide d'une carte ESP32 peu coûteuse. Croyez-le ou non, nous pouvons maintenant construire une radio Internet en moins de 10 minutes et avec moins de 30$. Il y a beaucoup à couvrir alors, commençons!
Il y a quelques mois, j'ai terminé un projet de radio Arduino FM qui fonctionne très bien et est encore plus beau à mon avis. Si vous voulez voir comment j'ai construit ce projet, vous pouvez lire l'Instructable ici. Le problème est que, bien que cette radio ait l'air cool, elle n'est pas pratique car je vis dans une petite ville du sud de la Grèce et les grandes stations de radio grecques que je préfère écouter n'ont pas d'émetteurs par ici. Du coup, j'écoute mes radios préférées en ligne sur mon ordinateur portable ou ma tablette, ce qui n'est pas non plus si pratique. Alors, aujourd'hui, je vais construire un appareil de radio Internet afin de pouvoir écouter mes stations de radio préférées du monde entier !
Comme vous pouvez le voir, une première version du projet est prête sur une maquette. Allumons-le. Comme vous pouvez le voir, le projet se connecte à Internet, puis diffuse de la musique à partir de stations de radio prédéfinies.
J'ai syntonisé la station de radio Real FM d'Athènes et en utilisant ces boutons, nous pouvons changer la station de radio que nous écoutons. J'ai enregistré mes stations de radio préférées dans la mémoire de l'ESP32 afin de pouvoir y accéder facilement. Avec ce potentiomètre, je peux changer le volume du haut-parleur. J'affiche le nom de la station de radio que nous écoutons sur un grand écran de 3,5 pouces avec une interface utilisateur rétro. Le projet fonctionne très bien et il est très facile à construire.
Vous pouvez construire le même projet en moins de 10 minutes mais vous devez avoir une certaine expérience. S'il s'agit de votre premier projet, envisagez d'en construire un plus simple pour acquérir de l'expérience. Consultez mes Instructables pour des idées de projets simples et lorsque vous êtes plus à l'aise avec l'Arduino, l'électronique revient pour construire ce projet cool. Commençons maintenant à créer notre propre radio Internet.
MISE À JOUR 6/6/2019
Le problème du bruit a été résolu en ajoutant un transformateur d'isolement. Consultez le diagramme schématique mis à jour. Merci!
Étape 1: Obtenez toutes les pièces
Nous aurons besoin des pièces suivantes:
- ESP32 ▶
- Décodeur MP3
- Transformateur d'isolement ▶
- Amplificateur
- Enceinte 3W ▶
- Écran Nextion 3,5" ▶
- Boutons poussoirs
- Planche à pain ▶
- Fils ▶
Le coût total du projet est d'environ 40$ mais si vous n'utilisez pas d'écran, le coût du projet est d'environ 20$. Des trucs incroyables. Nous pouvons construire notre propre radio Internet avec seulement 20$!
Étape 2: carte ESP32
Le cœur du projet est bien entendu la puissante carte ESP32. Si vous ne la connaissez pas, la puce ESP32 est le successeur de la populaire puce ESP8266 que nous avons utilisée à plusieurs reprises dans le passé. L'ESP32 est une bête ! Il propose deux cœurs de traitement 32 bits qui fonctionnent à 160MHz, une énorme quantité de mémoire, le WiFi, le Bluetooth et bien d'autres fonctionnalités pour un coût d'environ 7$ ! Des trucs incroyables !
Veuillez regarder l'examen détaillé que j'ai préparé pour ce forum. J'ai joint la vidéo sur ce Instructable. Cela aidera à comprendre pourquoi cette puce changera notre façon de faire les choses pour toujours ! L'une des choses les plus excitantes à propos de l'ESP32 est que même s'il est si puissant, il offre un mode veille profonde qui ne nécessite que 10 s de courant. Cela fait de l'ESP32 la puce idéale pour les applications à faible consommation.
Dans ce projet, la carte ESP32 se connecte à Internet, puis elle reçoit des données MP3 de la station de radio que nous écoutons et envoie des commandes à l'écran.
Étape 3: décodeur MP3
Les données MP3 sont ensuite envoyées au module décodeur MP3 à l'aide de l'interface SPI. Ce module utilise le CI VS1053. Ce circuit intégré est un décodeur MP3 matériel dédié. Il obtient les données MP3 de l'ESP32 et les convertit très rapidement en un signal audio.
Le signal audio qu'il émet sur cette prise audio est faible et bruyant, nous devons donc l'éliminer du bruit et l'amplifier. (Si vous utilisez un casque, le signal n'a pas besoin d'être éliminé du bruit ou amplifié.) C'est pourquoi j'utilise un transformateur d'isolement pour éliminer l'audio du bruit et un amplificateur audio PAM8403 pour amplifier le signal audio, puis l'envoyer à un haut-parleur. J'ai également connecté deux boutons à l'ESP32 juste pour changer le flux MP3 dont nous obtenons des données et un écran Nextion pour afficher la station de radio que nous écoutons.
Étape 4: Affichage Nextion
J'ai choisi d'utiliser un écran Nextion pour ce projet car il est très facile à utiliser. Nous n'avons besoin de connecter qu'un seul fil pour le contrôler.
Les écrans Nextion sont un nouveau type d'écrans. Ils ont leur propre processeur ARM à l'arrière qui est chargé de piloter l'affichage et de créer l'interface utilisateur graphique. Ainsi, nous pouvons les utiliser avec n'importe quel microcontrôleur et obtenir des résultats spectaculaires. J'ai préparé une revue détaillée de cet écran Nextion qui explique en profondeur leur fonctionnement, leur utilisation et leurs inconvénients. Vous pouvez le lire ici ou regarder la vidéo ci-jointe.
Étape 5: connexion de toutes les pièces
Il ne nous reste plus qu'à connecter toutes les pièces entre elles selon ce schéma de principe. Vous pouvez trouver le schéma de principe ci-joint. La connexion est simple.
Il y a deux choses à noter cependant. Le module décodeur MP3 émet un signal stéréo mais je n'utilise qu'un seul canal audio dans ce projet. Afin d'obtenir le signal audio, j'ai connecté un câble audio à la prise audio du module et l'ai coupé pour révéler quatre fils à l'intérieur. J'ai connecté deux des fils. L'un d'eux est le GND et l'autre est le signal audio de l'un des deux canaux audio. Si vous le souhaitez, vous pouvez connecter les deux canaux au module amplificateur et piloter deux haut-parleurs.
Chaque canal audio doit passer par le transformateur d'isolement pour éliminer tout bruit présent avant de se connecter à l'amplificateur
Pour envoyer des données à l'écran, il suffit de connecter un fil à la broche TX0 de l'ESP32. Après avoir connecté les pièces, nous devons charger le code sur l'ESP32 et nous devons charger l'interface graphique sur l'écran Nextion.
Pour charger l'interface graphique sur l'écran Nextion, copiez le fichier InternetRadio.tft que je vais partager avec vous sur une carte SD vide. Insérez la carte SD dans la fente pour carte SD à l'arrière de l'écran. Ensuite, allumez l'écran et l'interface graphique sera chargée. Retirez ensuite la carte SD et rebranchez l'alimentation.
Après avoir chargé le code avec succès, démarrons le projet. Il affiche le texte « Connecting… » pendant quelques secondes à l'écran. Une fois connecté à Internet, le projet se connecte à une station de radio prédéfinie. Le matériel fonctionne comme prévu, mais voyons maintenant le côté logiciel du projet.
Étape 6: Le code du projet
Tout d'abord, permettez-moi de vous montrer quelque chose. Le code du projet est inférieur à 140 lignes de code. Pensez-y, nous pouvons construire une radio Internet avec un écran de 3,5 pouces avec 140 lignes de code, c'est incroyable. Nous pouvons réaliser tout cela en utilisant bien sûr diverses bibliothèques qui contiennent des milliers de lignes de code. C'est la puissance d'Arduino et de la communauté Open source. Cela facilite les choses pour les créateurs.
Dans ce projet, j'utilise la bibliothèque VS1053 pour la carte ESP32.
Dans un premier temps, nous devons définir le SSID et le mot de passe du réseau Wi-Fi. Ensuite, nous devons enregistrer quelques stations de radio ici. Nous avons besoin de l'URL de l'hôte, du chemin où se trouve le flux et du port que nous devons utiliser. Nous enregistrons toutes ces informations dans ces variables.
char ssid = "votreSSID"; // votre réseau SSID (nom) char pass = "votreWifiPassword"; // votre mot de passe réseau
// Quelques radios
char *host[4] = {"149.255.59.162", "radiostreaming.ert.gr", "realfm.live24.gr", "secure1.live24.gr"}; char *chemin[4] = {"/1", "/ert-kosmos", "/realfm", "/skai1003"}; port int[4] = {8062, 80, 80, 80};
J'ai inclus 4 stations de radio dans cet exemple.
Dans la fonction de configuration, nous attachons des interruptions aux boutons, nous initialisons le module décodeur MP3 et nous nous connectons au Wi-Fi.
void setup () {
Serial.begin(9600); retard (500); SPI.begin();
pinMode (bouton précédent, INPUT_PULLUP);
pinMode(nextButton, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(previousButton), previousButtonInterrupt, FALLING);
attachInterrupt(digitalPinToInterrupt(nextButton), nextButtonInterrupt, FALLING); initMP3Decoder(); connectToWIFI(); }
Dans la fonction de boucle, tout d'abord, nous vérifions si l'utilisateur a sélectionné une station de radio différente de celle dont nous obtenons des données. Si c'est le cas, nous nous connectons à la nouvelle station de radio, sinon nous obtenons des données du flux et les envoyons au module décodeur MP3.
void loop() { if(radioStation!=previousRadioStation) { station_connect(radioStation); précédenteRadioStation = radioStation; } if (client.available() > 0) { uint8_t bytesread = client.read(mp3buff, 32); player.playChunk(mp3buff, bytesread); } }
C'est tout! Lorsque l'utilisateur appuie sur un bouton, une interruption se produit et modifie la valeur d'une variable qui indique à quel flux se connecter.
void IRAM_ATTR previousButtonInterrupt() {
statique long non signé last_interrupt_time = 0;
interruption_time longue non signée = millis(); if (interrupt_time - last_interrupt_time > 200) { if(radioStation>0) radioStation--; sinon radioStation = 3; } last_interrupt_time = interrupt_time; }
Pour mettre à jour l'affichage, nous envoyons simplement quelques commandes au port série.
void drawRadioStationName(int id){ String command; switch (id) { case 0: command = "p1.pic=2"; Serial.print(commande); endNextionCommand(); Pause; //1940 UK Radio cas 1: commande = "p1.pic=3"; Serial.print(commande); endNextionCommand(); Pause; //KOSMOS GREEK cas 2: commande = "p1.pic=4"; Serial.print(commande); endNextionCommand(); Pause; //REAL FM GREC cas 3: commande = "p1.pic=5"; Serial.print(commande); endNextionCommand(); Pause; //SKAI 100.3 GREC } }
Jetons maintenant un coup d'œil à l'interface graphique Nextion Display. L'interface graphique Nextion se compose d'une image d'arrière-plan et d'une image qui affiche le nom de la station de radio. La carte ESP32 envoie des commandes pour changer le nom de la station de radio à partir des images intégrées. C'est très facile. Veuillez regarder le didacticiel d'affichage Nextion que j'ai préparé il y a quelque temps pour plus d'informations. Vous pouvez rapidement concevoir votre propre interface graphique si vous le souhaitez et y afficher plus de choses.
Comme toujours, vous pouvez trouver le code du projet joint dans ce Instructable.
Étape 7: Réflexions finales et améliorations
Ce projet est très simple. Je voulais un squelette de projet de radio Internet simple avec lequel travailler. Maintenant qu'une première version du projet est prête, nous pouvons y ajouter de nombreuses fonctionnalités pour l'améliorer. Tout d'abord, je dois concevoir un boîtier pour loger toute l'électronique.
Dans ce livre sur les plus belles radios jamais réalisées, il y a des radios très cool parmi lesquelles choisir comme boîtier pour ce projet. Je pense que je vais construire une enceinte autour de cette spectaculaire radio Art Déco. Qu'en pensez-vous, aimez-vous le look de cette radio ou préférez-vous quelque chose de plus moderne ? Avez-vous d'autres idées d'enceintes ? Aussi, aimez-vous ce projet de radio Internet et quelles fonctionnalités pensons-nous devoir y ajouter pour le rendre plus utile ? J'aimerais lire vos pensées et vos idées, alors n'hésitez pas à les publier dans la section commentaires ci-dessous.
Conseillé:
Comment faire fonctionner des servomoteurs à l'aide de Moto:bit avec Micro:bit : 7 étapes (avec photos)
Comment faire fonctionner des servomoteurs à l'aide de Moto:bit avec Micro:bit : Une façon d'étendre les fonctionnalités du micro:bit consiste à utiliser une carte appelée moto:bit de SparkFun Electronics (environ 15-20 $). Il a l'air compliqué et possède de nombreuses fonctionnalités, mais il n'est pas difficile de faire fonctionner des servomoteurs à partir de celui-ci. Moto:bit vous permet de
Contrôle mené partout dans le monde à l'aide d'Internet à l'aide d'Arduino : 4 étapes
Led de contrôle partout dans le monde à l'aide d'Internet à l'aide d'Arduino : Bonjour, je suis Rithik. Nous allons créer une led contrôlée par Internet à l'aide de votre téléphone. Nous allons utiliser des logiciels comme Arduino IDE et Blynk. C'est simple et si vous réussissez, vous pouvez contrôler autant de composants électroniques que vous le souhaitez
Horloge Internet : afficher la date et l'heure avec un OLED à l'aide de ESP8266 NodeMCU avec protocole NTP : 6 étapes
Horloge Internet : afficher la date et l'heure avec un OLED à l'aide de ESP8266 NodeMCU avec le protocole NTP : Salut les gars dans ces instructables, nous allons construire une horloge Internet qui obtiendra l'heure d'Internet afin que ce projet n'aura besoin d'aucun RTC pour fonctionner, il n'aura besoin que d'un connexion internet fonctionnelle Et pour ce projet vous avez besoin d'un esp8266 qui aura un
Neopixel Ws2812 Rainbow LED Glow avec M5stick-C - Exécution de Rainbow sur Neopixel Ws2812 à l'aide de M5stack M5stick C à l'aide d'Arduino IDE : 5 étapes
Neopixel Ws2812 Rainbow LED Glow avec M5stick-C | Exécution de Rainbow sur Neopixel Ws2812 en utilisant M5stack M5stick C en utilisant Arduino IDE un motif arc-en-ciel avec
Radio Internet/Radio Web avec Raspberry Pi 3 (sans tête) : 8 étapes
Radio Internet/Radio Web avec Raspberry Pi 3 (sans tête) : HI Voulez-vous votre propre hébergement de radio sur Internet, alors vous êtes au bon endroit. Je vais essayer de détailler le plus possible. J'ai essayé plusieurs façons, la plupart d'entre eux avaient besoin d'une carte son que j'étais réticent à acheter. mais a réussi à fi