Table des matières:

Radio Internet à l'aide d'un ESP32 : 7 étapes (avec photos)
Radio Internet à l'aide d'un ESP32 : 7 étapes (avec photos)

Vidéo: Radio Internet à l'aide d'un ESP32 : 7 étapes (avec photos)

Vidéo: Radio Internet à l'aide d'un ESP32 : 7 étapes (avec photos)
Vidéo: Tout savoir sur le WiFi avec l'ESP32 (avec et sans WiFiManager) [ESP32 #2] 2024, Septembre
Anonim
Image
Image
Radio Internet à l'aide d'un ESP32
Radio Internet à l'aide d'un ESP32
Radio Internet à l'aide d'un ESP32
Radio Internet à l'aide d'un ESP32

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

Obtenez toutes les pièces
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

Image
Image
Carte ESP32
Carte ESP32
Carte ESP32
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

Décodeur MP3
Décodeur MP3
Décodeur MP3
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

Image
Image
Connecter toutes les pièces
Connecter toutes les pièces

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

Connecter toutes les pièces
Connecter toutes les pièces
Connecter toutes les pièces
Connecter 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

Le code du projet
Le code du projet
Le code du projet
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

Réflexions finales et améliorations
Réflexions finales et améliorations
Réflexions finales et améliorations
Réflexions finales et améliorations
Réflexions finales et améliorations
Réflexions finales et améliorations
Réflexions finales et améliorations
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é: