AIvoices/firmware-cpp/test/wifi_manager_test.cpp
2025-04-08 14:05:27 +01:00

139 lines
No EOL
3.3 KiB
C++

#include <Arduino.h>
/*
Simple Internet Radio Demo
esp32-i2s-simple-radio.ino
Simple ESP32 I2S radio
Uses MAX98357 I2S Amplifier Module
Uses ESP32-audioI2S Library - https://github.com/schreibfaul1/ESP32-audioI2S
**ADD THIS**
lib_deps =
https://github.com/tzapu/WiFiManager.git
DroneBot Workshop 2022
https://dronebotworkshop.com
*/
// Include required libraries
#include <WiFiManager.h> // Include the WiFiManager library
#include "Audio.h"
// Define I2S connections
#define I2S_LRC D0
#define I2S_BCLK D1
#define I2S_DOUT D2
#define I2S_SD_OUT D3
// #define I2S_LRC 18
// #define I2S_BCLK 21
// #define I2S_DOUT 17
// Create audio object
Audio audio;
void setup()
{
// Start Serial Monitor
Serial.begin(115200);
// Set SD_PIN as output and initialize to HIGH (unmuted)
pinMode(I2S_SD_OUT, OUTPUT);
digitalWrite(I2S_SD_OUT, HIGH);
// Initialize WiFiManager
WiFiManager wifiManager;
// Uncomment for testing to reset saved settings
// wifiManager.resetSettings();
// Automatically connect using saved credentials,
// or start the captive portal to enter new credentials
if (!wifiManager.autoConnect("ESP32RadioAP"))
{
Serial.println("Failed to connect and hit timeout");
ESP.restart(); // Optionally, restart or handle the failure
}
// If you get here, you have connected to the Wi-Fi
Serial.println("Connected to Wi-Fi!");
// Connect MAX98357 I2S Amplifier Module
audio.setPinout(I2S_BCLK, I2S_LRC, I2S_DOUT);
// Set thevolume (0-100)
audio.setVolume(90);
// Connect to an Internet radio station (select one as desired)
// audio.connecttohost("http://vis.media-ice.musicradio.com/CapitalMP3");
// audio.connecttohost("mediaserv30.live-nect MAX98357 I2S Amplifier Module
// audio.connecttohost("www.surfmusic.de/m3u/100-5-das-hitradio,4529.m3u");
// audio.connecttohost("stream.1a-webradio.de/deutsch/mp3-128/vtuner-1a");
// audio.connecttohost("www.antenne.de/webradio/antenne.m3u");
audio.connecttohost("0n-80s.radionetz.de:8000/0n-70s.mp3");
}
void loop()
{
// Run audio player
audio.loop();
}
// Audio status functions
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);
}