#include "Arduino.h" #include "Audio.h" #include "ETH.h" #define ETHERNET_IF #ifdef CONFIG_IDF_TARGET_ESP32 #define I2S_DOUT 25 #define I2S_BCLK 27 #define I2S_LRC 26 #define ETH_PHY_TYPE ETH_PHY_TLK110 #define ETH_PHY_MDC 23 #define ETH_PHY_MDIO 18 #define ETH_PHY_POWER -1 #define ETH_CLK_MODE ETH_CLOCK_GPIO0_IN #endif #ifdef CONFIG_IDF_TARGET_ESP32P4 #define I2S_DOUT 22 #define I2S_BCLK 20 #define I2S_LRC 21 #define ETH_PHY_TYPE ETH_PHY_TLK110 #define ETH_PHY_MDC 31 #define ETH_PHY_MDIO 52 #define ETH_PHY_POWER 51 #define ETH_CLK_MODE EMAC_CLK_EXT_IN #endif Audio audio; static bool eth_connected = false; void onEvent(arduino_event_id_t event) { switch (event) { case ARDUINO_EVENT_ETH_START: Serial.println("ETH Started"); // The hostname must be set after the interface is started, but needs // to be set before DHCP, so set it from the event handler thread. ETH.setHostname("esp32-ethernet"); break; case ARDUINO_EVENT_ETH_CONNECTED: Serial.println("ETH Connected"); break; case ARDUINO_EVENT_ETH_GOT_IP: Serial.println("ETH Got IP"); Serial.println(ETH); eth_connected = true; break; case ARDUINO_EVENT_ETH_LOST_IP: Serial.println("ETH Lost IP"); eth_connected = false; break; case ARDUINO_EVENT_ETH_DISCONNECTED: Serial.println("ETH Disconnected"); eth_connected = false; break; case ARDUINO_EVENT_ETH_STOP: Serial.println("ETH Stopped"); eth_connected = false; break; default: break; } } void setup() { Serial.begin(115200); Serial.print("A\n\n"); Serial.println("----------------------------------"); Serial.printf("ESP32 Chip: %s\n", ESP.getChipModel()); Serial.printf("Arduino Version: %d.%d.%d\n", ESP_ARDUINO_VERSION_MAJOR, ESP_ARDUINO_VERSION_MINOR, ESP_ARDUINO_VERSION_PATCH); Serial.printf("ESP-IDF Version: %d.%d.%d\n", ESP_IDF_VERSION_MAJOR, ESP_IDF_VERSION_MINOR, ESP_IDF_VERSION_PATCH); Serial.printf("ARDUINO_LOOP_STACK_SIZE %d words (32 bit)\n", CONFIG_ARDUINO_LOOP_STACK_SIZE); Serial.println("----------------------------------"); Serial.print("\n\n"); Network.onEvent(onEvent); ETH.begin(); while (!eth_connected) delay(100); Serial.println("ETH Connected"); audio.setPinout(I2S_BCLK, I2S_LRC, I2S_DOUT); audio.setVolume(21); // default 0...21 audio.connecttohost("http://stream.antennethueringen.de/live/aac-64/stream.antennethueringen.de/"); // aac pinMode(53, OUTPUT); digitalWrite(53, HIGH); } void loop() { audio.loop(); vTaskDelay(1); } // optional void audio_info(const char *info){ Serial.print("info "); Serial.println(info); }