MAX98357A wifi radio aansluitschema en voorbeeldcode voor ESP32
Benodigdheden:
- ESP32 Devkit V1 microcontroller
- MAX98357A DAC met versterker
- Speakertje
- Female-Female jumper wires 10cm
Aansluiten en programmeren:
- Verbind de LRC-pin met pin D26 op de ESP32
- Verbind de BCLK-pin met pin D27 op de ESP32
- Verbind de DIN-pin met pin D25 op de ESP32
- Verbind de GND-pin met de GND (ground) op de ESP32
- Verbind de VIN-pin met de VIN (power) op de ESP32
- Kopieer de Arduino-code naar de Arduino IDE
- Zoek in de Arduino-code regelnummer 9 en verander de tekst "HIER UW SSID" naar uw wifi-naam
- Zoek in de Arduino-code regelnummer 10 en vervang de tekst "Hier uw wifi wachtwoord" met uw wifi-wachtwoord
- Kies de radio die u wilt beluisteren door de "//" voor de gewenste radio te verwijderen. Laat de "//" staan voor de radio's die u niet wilt beluisteren
- Upload de aangepaste code naar uw ESP32.
Als alles correct is uitgevoerd, zou uw ESP32 nu moeten functioneren en verbinding moeten maken met uw wifi-netwerk en zou het audio van de gekozen radio moeten worden afgespeeld.
Aansluitschema
code
Download hier de code
uitleg van de code
#include "WiFi.h"
: Hier wordt de WiFi-bibliotheek toegevoegd aan de code, waardoor de ESP32 wifi-functionaliteit kan gebruiken.#include "Audio.h"
: Hier wordt de Audio-bibliotheek toegevoegd aan de code, waarmee audio-afspeelfuncties worden mogelijk gemaakt. Indien u niet beschikt over deze bibliotheek dat kunt u deze hier downloaden: https://github.com/schreibfaul1/ESP32-audioI2S/blob/master/src/Audio.h#define I2S_DOUT 25
: Hier wordt een pin gedefinieerd voor de audiouitvoer (DIN-pin) en aan pin 25 toegewezen.#define I2S_BCLK 27
: Hier wordt een pin gedefinieerd voor de Bit Clock (BCLK) en aan pin 27 toegewezen.#define I2S_LRC 26
: Hier wordt een pin gedefinieerd voor Left/Right Clock (LRC) en aan pin 26 toegewezen.Audio audio;
: Hier wordt een object "audio" van de klasse "Audio" aangemaakt, waarmee audiofuncties kunnen worden aangestuurd.String ssid = "Hier uw SSID";
: Hier wordt een variabele "ssid" gedefinieerd en geïnitialiseerd met de naam van het wifi-netwerk (SSID) waarmee de ESP32 moet verbinden.String password = "Hier uw wifi wachtwoord";
: Hier wordt een variabele "password" gedefinieerd en geïnitialiseerd met het wifi-wachtwoord waarmee de ESP32 moet verbinden.void setup()
: De setup-functie, die slechts eenmaal wordt uitgevoerd bij het opstarten van de ESP32.WiFi.disconnect();
: Hiermee wordt de ESP32 eerst losgekoppeld van elk eerder verbonden wifi-netwerk.WiFi.mode(WIFI_STA);
: Hiermee wordt de ESP32 in de WiFi-clientmodus gezet, zodat deze als client kan verbinden met een bestaand wifi-netwerk.WiFi.begin(ssid.c_str(), password.c_str());
: Dit is de functie om verbinding te maken met het wifi-netwerk. Het gebruikt de "ssid" en "password" variabelen die we eerder hebben ingesteld.while (WiFi.status() != WL_CONNECTED) delay(1500);
: Deze regel wacht in een lus totdat de ESP32 succesvol verbonden is met het wifi-netwerk. Dit zorgt ervoor dat de code pas doorgaat naar de volgende regel als de verbinding tot stand is gebracht.audio.setPinout(I2S_BCLK, I2S_LRC, I2S_DOUT);
: Hiermee worden de pinnen voor audio-uitvoer ingesteld.audio.setVolume(100);
: Hiermee wordt het volume van de audio ingesteld op 100 (maximaal volume).De regels van 17 tot 25 zijn commentaarregels die verschillende URL's bevatten van verschillende radiozenders waaruit je kunt kiezen om te beluisteren. Op dit moment zijn ze allemaal uitgeschakeld omdat ze zijn voorzien van "//". Als je een bepaalde radiozender wilt beluisteren, verwijder dan de "//" voor de betreffende regel.
void loop()
: De loop-functie, die continu wordt uitgevoerd zodra de ESP32 is opgestart.audio.loop();
: Hiermee wordt de audiobibliotheek bijgewerkt en verwerkt eventuele audiogegevens die beschikbaar zijn om af te spelen.