Internet-Radio mit dem ESP32 - UPDATE - AZ-Delivery

Update: The reader Andreas Schröder has changed the project a little and supplemented some functions. You can find the text and sketch at the end of the post.

Many radio stations can be heard as a MP3 stream over the Internet. Since the microcontroller ESP32 has WLAN skills on the one hand and, on the other hand, can convert the digital data stream into an analog signal with two built-in digital/analog converters, it offers itself as an ideal solution. In addition, a battery power supply, an audio amplifier, two speakers, a display for the transmitter display and an input device for the transmitter setting is required. The whole thing is rounded off with a housing from the 3D printer.

Required hardware

Number Component annotation

1

ESP32 Development Board

 

1

Audio amplifier 3W

 

1

speaker

 

2

Resistance 4.7 KOHM

 

2

Resistance 22 KOHM

 

1

Resistance 10 kohm

 

1

Elko 1000UF / 10V

 

1

3.7V battery 2000mAh

 

1

Loader

 

1

DC-DC Step Up Converter

 

1

LCD display with I2C interface

 

1

Distributor Encoder

 

1

Lochraster plate 50x70

 

2

Spring strips 19-pin

 

1

Park bar 3-pin

 

1

 Park bar 4-pin

 

1

Pin bar 5-pin

 

2

Turntons for 6mm axis

 

Several

Jumper cable female too female

 

1

Housing front part from the 3D printer

 

1

Housing back from the 3D printer

 

1

Lid for battery protection from the 3D printer

 

various

Fastening screws 2.2mm

 

 

circuit

 

Important!
If the Rotary Encoder is not used, the PIN 34 of the ESP32 must still be connected to the 10 co-cock resistance with 3.3V.

The ESP32 is built up on a 50x70 mm hole grid plate with the resistances and pen strips for the periphery.


The figure shows the assembly and wiring on the underside

wiring

First of all, the loader's battery connection is connected to the input of the DC-DC Step Up converter. Note the polarity! The battery is also soldered via a suitable connector with the battery input of the loader. Now the output voltage of the converter with the blue potentiometer should be set to approx. 5.2 V. To do this, either a battery must be connected or the loader's USB input must be connected to a USB network.

If the voltage is set, the output of the converter can be connected to the supply receipt of the audio amplifier. There are two soldering points on the back of the amplifier, the plus connection is switched over the switch of the volume potentiometer.

 amplifier underside

This connection is used to supply the ESP32 and the display so that the device can be switched off completely via the potentiometer.
Now the connections to the control board can be made on the hole grid plate. It is best to use jumper wires with two female plugs. You need a 3-pin connection from the audio output to the amplifier, a 4-pin to the display and a 5-pin to the Rotary Encoder.

Important NOTE!
The loudspeakers should not be attached or staked out when switched on, since inductive tension peaks could destroy the amplifier outputs.

If the housing presented in the blog post is used, battery, loader, DC/DC converter and the control board come to the baking tarpaulin. The speakers, the amplifier, the Rotary Encoder and the display come to the front tarpaulin. The lid is used to secure the battery.

 baking tarpaulinassembly

software

In order for the sketch to be compiled, the Arduino IDE must be prepared accordingly. By default, Arduino IDE supports a large number of boards with different microcontrollers, but not the ESP32. So that you can create and upload programs for these controllers, a software package for the support must therefore be installed.

First you have to communicate the Arduino IDE where you can find the additional data required. To do this, open the Preferences in the File menu. In the preset window there is the input field called "Additional board administrator URLS". If you click on the icon to the right of the input field, a window in which you can open the URL https://dl.espressif.com/dl/package_esp32_index.json for the ESP32 can enter. Version 2.0.0 or higher of the ESP32 package should not be used for this project, since these versions have problems related to the ESP8266audio library!

Now choose the board management in the Arduino IDE under tool → board.

A window opens in which all available packages are listed. In order to narrow down the list, you enter "ESP32" in the search field. Then you only get an entry in the list. Install the "ESP32" package.

ESP32 Lib
For the display you need a library that can be installed via the Arduino library management. This is the library "Liquidcrystal I2C".

Liquid Crystal Lib

Another library is required for the Rotary Encoder. Her name is "Aiesp32rotary Coder".

Rotary Encoder Lib 

The core of this project is the library "ESP8266audio".

 audio lib

This library enables various digital input currents to be read, decoding and reproducing them using various output channels. As an entrance, the program memory, the internal RAM can be used by an SD card, an HTTP stream or an ICY stream. The icy stream is typically used by internet radios.
WAV, MOD, MIDI, Flac, AAC and MP3 files can be decoded. MP3 is required for the web radio. The output can finally be made in memory, files or I2S. There is a special feature for the ESP32. The I2S Output can be output on the internal digital analog converter. An analog stereo signal is then available at the output pins of the DAW (PIN 25 and PIN 26). This feature is used in the present project.

If all libraries are installed, the sketch can be compiled and uploaded to the hardware.

The sketch

#include <Wifi.H> 
// Includes from ESP8266audio
#include "AudioFileesourceiSstream.h" // input stream
#include "AudioFileesourcebuffer.h"    // input buffer
#include "Audiogeneratormp3.h"        //decoder
#include "AudioOutPuti2s.h"           // output stream
// Library for LCD display
#include <Liquidcrystal_i2c.H>
// Library for Rotary Encoder
#include "AiesP32rotaryScoder.h"
// ESP32 Library to Save Preferences in Flash
#include <Preferences.H>

// WLAN Access Fill with your credentials
#define SSID "************"
#define PSK "*************"

// Used pins for Rotary Encoder
#define Rotary_encoder_a_pin 33
#define Rotary_encoder_b_pin 32
#define Rotary_encoder_Button_pin 34
#define Rotary_encoder_vcc_pin -1 /* 27 PUT -1 of Rotary Encoder VCC IS Connected Directly to 3.3V; Else you can use declared output pin for powering rotary encoder */

// Depending on Your Encoder - Try 1.2 OR 4 TO GET Expected Behavior
//#define rotary_encoder_steps 1
//#define rotary_encoder_steps 2
#define Rotary_encoder_steps 4

// Structure for Station List
type struct {
  char * url;  // stream url
  char * Surname; // station name
} station;

#define Ward 24 // Number of Stations in Tzhe List

// Station List Can Easily Be Modified to Support Other Stations
station wardlist[Ward] Progmem = {
{"http://icecast.ndr.de/ndr/ndr2/niedersachsen/mp3/128/stream.mp3","NDR2 Lower Saxony"},
{"http://icecast.ndr.de/ndr/ndr1niedersachsen/hannover/mp3/128/stream.mp3","NDR1 Hannover"},
{"http://wdr-1live-live.iceCast.wdr.de/wdr/1live/live/mp3/128/stream.mp3","WDR1"},
{"http://wdr-cosmo-live.iceCast.wdr.de/wdr/cosmo/live/mp3/128/stream.mp3","WDR Cosmo"},
{"http://radiohagen.cast.addradio.de/radiohagen/simulcast/high/stream.mp3","Radio Hagen"},
{"http://st01.sslstream.dlf.de/dlf/01/128/mp3/stream.mp3","Deutschlandfunk"},
{"http://dispatcher.rndfnk.com/br/br1/franken/mp3/low","Bayern1"},
{"http://dispatcher.rndfnk.com/br3/live/mp3/low","Bayern 3"},
{"http://dispatcher.rndfnk.com/hr/hr3/live/mp3/48/stream.mp3","Hessen3"},
{"http://stream.antentne.de/antne","Antenne Bayern"},
{"http://stream.1a-webradio.de/saw-deutsch/","Radio 1a German hits"},
{"http://stream.1a-weibradio.de/saw-rock/","Radio 1a Rock"},
{"http://streams.80s80s.de/ndw/mp3-192/streams.80S80S.de/","Neue Deutsche Welle"},
{"http://dispatcher.rndfnk.com/br/brklassik/live/mp3/low","Bavaria Classic"},
{"http://mdr-284280-1.Cast.mdr.de/MDR/284280/1/mp3/low/Stream.mp3","MDR"},
{"http://icecast.ndr.de/ndr/njoy/live/mp3/128/stream.mp3","N-Joy"},
{"http://dispatcher.rndfnk.com/rbb/rbb888/live/mp3/mid","RBB"},
{"http://dispatcher.rndfnk.com/rbb/antnebrandenburg/live/mp3/mid","Antenne Brandenburg"},
{"http://wdr3-live.iceCasttssl.wdr.de/wdr/wdr3/live/mp3/128/stream.mp3","WDR3"},
{"http://wdr2-aachenundregion.iceCasttssl.wdr.de/wdr2/aachenundregion/mp3/128/stream.mp3","WDR 2"},
{"http://rnrw.cast.addradio.de/rnrw-0182/deinschlager/low/Stream.mp3","NRW Schlagerradio"},
{"http://rnrw.cast.addradio.de/rnrw-0182/deinrock/low/stream.mp3","NRW Rockradio"},
{"http://rnrw.cast.addradio.de/rnrw-0182/dein90er/low/stream.mp3","NRW 90s"},
{"http://mp3.hitradiort1.c.nmdn.net/rt1rockwl/livestream.mp3","RT1 Rock"}};

// Buffer size for stream buffering
const intimately Preallocatebuffersize = 80*1024;
const intimately PreallocateCodecsize = 29192;         // MP3 Codec Max Mem Needed
// pointer to preallocated memory
void *Preallocatebuffer = ZERO;
void *PreallocateCodec = ZERO;

// Instance of Preferences
Preferences Pref;
// Instance for Rotary Encoder
AISP32Rotary code rotary = AISP32Rotary code(Rotary_encoder_a_pin, Rotary_encoder_b_pin, Rotary_encoder_Button_pin, Rotary_encoder_vcc_pin, Rotary_encoder_steps);
// Instance for LCD display
Liquidcrystal_i2c LCD(0x27,16,2);  // Set the lcd address to 0x27 for a 16 chars and 2 line display
// Instance for Audio Components
Audio *decoder = ZERO;
Audio filesourceistream *file = ZERO;
Audio filesource buffer *buff = ZERO;
Audiooutputi2s *out;

// Special character to Show a Speaker Icon for Current Station
uint8_t speaker[8]  = {0x3,0x5,0x19,0x11,0x19,0x5,0x3};
// global variables
uint8_t curing = 0;   // Index for current selected station in station list
uint8_t act = 0;   // Index for current station in station list used for streaming 
uint32_t liability = 0;  // Time of Last Selection Change

// Callback function wants to be called If Meta Data Were Found in Input Stream
void MDCallback(void *cbdata, const char *type, Bool isunicode, const char *string)
{
  const char *PTR = Reinterpret_Cast<const char *>(cbdata);
  (void) isunicode; // Punt this ball for Now
  // note that the type and string may be in progmem, so copy them to ram for printf
  char S1[32], s2[64];
  strncpy_p(S1, type, Sizeof(S1));
  S1[Sizeof(S1)-1]=0;
  strncpy_p(s2, string, Sizeof(s2));
  s2[Sizeof(s2)-1]=0;
  Serial.printf("Metadata (%s) '%s' = '%s' \ n", PTR, S1, s2);
  Serial.flush();
}

// stop playing the input stream release memory, delete instantences
void stop playing() {
  IF (decoder)  {
    decoder->Stop();
    delete decoder;
    decoder = ZERO;
  }
  IF (buff)  {
    buff->close();
    delete buff;
    buff = ZERO;
  }
  IF (file)  {
    file->close();
    delete file;
    file = ZERO;
  }
}

//start playing a stream from current active station
void startUrl() {
  stopPlaying();  //first close existing streams
  //open input file for selected url
  Serial.printf("Active station %s\n",stationlist[actStation].url);
  file = new AudioFileSourceICYStream(stationlist[actStation].url);
  //register callback for meta data
  file->RegisterMetadataCB(MDCallback, NULL); 
  //create a new buffer which uses the preallocated memory
  buff = new AudioFileSourceBuffer(file, preallocateBuffer, preallocateBufferSize);
  Serial.printf_P(PSTR("sourcebuffer created - Free mem=%d\n"), ESP.getFreeHeap());
  //create and start a new decoder
  decoder = (AudioGenerator*) new AudioGeneratorMP3(preallocateCodec, preallocateCodecSize);
  Serial.printf_P(PSTR("created decoder\n"));
  Serial.printf_P("Decoder start...\n");
  decoder->begin(buff, out);
}

//show name of current station on LCD display
//show the speaker symbol in front if current station = active station
void showStation() {
  lcd.clear();
  if (curStation == actStation) {
    lcd.home();
    lcd.print(char(1));
  }
  lcd.setCursor(2,0);
  String name = String(stationlist[curStation].name);
  if (name.length() < 15)
    lcd.print(name);
  else {
    uint8_t p = name.lastIndexOf(" ",15); //if name does not fit, split line on space
    lcd.print(name.substring(0,p));
    lcd.setCursor(0,1);
    lcd.print(name.substring(p+1,p+17));
  }
}

//handle events from rotary encoder
void rotary_loop()
{
  //dont do anything unless value changed
  if (rotaryEncoder.encoderChanged())
  {
    uint16_t v = rotaryEncoder.readEncoder();
    Serial.printf("Station: %i\n",v);
    //set new currtent station and show its name
    if (v < STATIONS) {
      curStation = v;
      showStation();
      lastchange = millis();
    }
  }
  //if no change happened within 10s set active station as current station
  if ((lastchange > 0) && ((millis()-lastchange) > 10000)){
    curStation = actStation;
    lastchange = 0;
    showStation();
  }
  //react on rotary encoder switch
  if (rotaryEncoder.isEncoderButtonClicked())
  {
    //set current station as active station and start streaming
    actStation = curStation;
    Serial.printf("Active station %s\n",stationlist[actStation].name);
    pref.putUShort("station",curStation);
    startUrl();
    //call show station to display the speaker symbol
    showStation();
  }
}

//interrupt handling for rotary encoder
void IRAM_ATTR readEncoderISR()
{
  rotaryEncoder.readEncoder_ISR();
}

//setup
void setup() {
  Serial.begin(115200);
  delay(1000);
  //reserve buffer für for decoder and stream
  preallocateBuffer = malloc(preallocateBufferSize);          // Stream-file-buffer
  preallocateCodec = malloc(preallocateCodecSize);            // Decoder- buffer
  if (!preallocateBuffer || !preallocateCodec)
  {
    Serial.printf_P(PSTR("FATAL ERROR:  Unable to preallocate %d bytes for app\n"), preallocateBufferSize+preallocateCodecSize);
    while(1){
      yield(); // Infinite halt
    }
  } 
  //start rotary encoder instance
  rotaryEncoder.begin();
  rotaryEncoder.setup(readEncoderISR);
  rotaryEncoder.setBoundaries(0, STATIONS, true); //minValue, maxValue, circleValues true|false (when max go to min and vice versa)
  rotaryEncoder.disableAcceleration();
  //init WiFi
  Serial.println("Connecting to WiFi");
  WiFi.disconnect();
  WiFi.softAPdisconnect(true);
  WiFi.mode(WIFI_STA);
  WiFi.begin(SSID, PSK);
  // Try forever
  while (WiFi.status() != WL_CONNECTED) {
    Serial.println("...Connecting to WiFi");
    delay(1000);
  }
  Serial.println("Connected");
  //create I2S output do use with decoder
  //the second parameter 1 means use the internal DAC
  out = new AudioOutputI2S(0,1);
  //init the LCD display
  lcd.init();
  lcd.backlight();
  lcd.createChar(1, speaker);
  //set current station to 0
  curStation = 0;
  //start preferences instance
  pref.begin("radio", false);
  // Set Current Station to Saved Value IF Available
  IF (Pref.Iskey("station")) curing = Pref.gut("station");
  IF (curing >= Ward) curing = 0;
  // Set Active Station to Current Station 
  // Show on display and start streaming
  act = curing;
  show station();
  starturl();
}

void loop() {
  // check if stream has ended Normally not on icy streams
  IF (decoder->Isrunning()) {
    IF (!decoder->loop()) {
      decoder->Stop();
    }
  } Else {
    Serial.printf("MP3 Done \ n");

    // Restart ESP when streaming is done or errored
    delay(10000);

    ESP.remaining start();
  }
  // Read events from Rotary Encoder
  rotary_loop();

} 

Sketch to download

Before compiling, the SSID and the password must be set for the WLAN. At the beginning of the sketch is a list of 24 German radio stations. You can edit or expand them as you like to hear your desired program. A maximum of 100 stations can be defined.

After uploading, the program can be started. The channel list can be scrolled with the Rotary Encoder. If you press the button of the Rotary Encoder, the station that has just been displayed is set as active. This selection is saved in the flash, so that after a power break, the program is started again with the selected transmitter. The station that has just been reproduced is displayed on the display by a preceding loudspeaker symbol.

Finished device

Have fun with the internet radio

Post as a PDF

Update from our reader Andreas Schröder

(thanks at this point)

With a cut black film on white housing, it looks really good.

Because this is not tingling and screwing up, I expanded the code to include the following:

1. An automatic AP mode with a lack of WLAN connection, which then queries the access data via web server.

2. In normal operation, the transmitter list can be maintained via a web front end. Would like to have provided the code, screenshots and the plotter file for the film here.

WIRELESS INTERNET ACCESS

The WLAN configuration is held in the internal flash memory. This can be configured using the web interface. The configuration process is as follows:

  • Charge the saved login data

  • Attempt to make connections (display shows "WLAN")

  • If that is not possible

    • Change to AP mode and create the WLAN "WebRadio"

    • Expect the data entry under http://192.168.4.1

    • Restart with new data

==> The whole thing is repeated until a connection is possible

 

 

Transmitter list

The list of stored transmitters can above http: // be adjusted.

 

Sketches download

 

Plotter file (silhouette format)

DisplaysEsp-32Projekte für anfängerStromversorgung

334 commentaires

Kurt Hohmann

Kurt Hohmann

Hallo Jörn,
WO hast du den Eintrag geändert?
Ich habe das gleiche Problem, sehe aber den Fehler nicht.
VG Kurt

Kurt Hohmann

Kurt Hohmann

Hallo Werner (März 21, 2025 at 12:59pm)
Ich vermute einen Syntaxfehler beim Ändern der Senderliste.
Klammern gesetzt, Komma beachtet oder die Anzahl der Sendereinträge nicht geändert?
#define STATIONS 24 //gibt an, dass 24 Sender in der Liste sind.
Jeder Eintrag hat
{“http://Adresse“,“Anzeigename“},

Wenn du dich da verzählt hast, geht es schief.
VG Kurt

Andy

Andy

Thanks @Alfred

I reinstalled the ESPAsyncWebServer provider that you used:
- ESPAsyncWebServer 3.1.0 By lacamera

All good now. It builds and runs OK.
@Ronald are you using the 3.1.0 library by lacamera?
There was an earlier message about deleting the SD and WIFI folders
@ben – maybe similar problems for you?

I included all the library versions that I was using in a previous message (except for the 3.1.0 ESPAsyncWebServer – at that point, mine was using v3.7.4 by ESP32Async rather than lacamera)

Hope this gives you some clues.

Alfred

Alfred

@ThomasErne.
“ESP geht auf stop” hast du geschrieben…. Hm. Tut mir leid… Das ist einfach zu wenig
Info von deinem Problem.
VG Alfred

Alfred

Alfred

Werner, was hast du denn geändert???? Kannst auch dorthin deine Fragen stellen, geht schneller.... intern10online.de
VG Alfred

Werner

Werner

Am Anfang funktionierte alles super.
Dann änderte ich die Sendenliste. Dann begann das Problem. jetzt kommt immer diese Fehlermeldung.
rst:0xc (SW_CPU_RESET),boot:0×13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0×00,q_drv:0×00,d_drv:0×00,cs0_drv:0×00,hd_drv:0×00,wp_drv:0×00
mode:DIO, clock div:1
load:0×3fff0018,len:4
load:0×3fff001c,len:1216
ho 0 tail 12 room 4
load:0×40078000,len:10944
load:0×40080400,len:6388
entry 0×400806b4
Connecting to WiFi
…Connecting to WiFi
…Connecting to WiFi
…Connecting to WiFi
Connected
Gespeicherte Station 23 von 25
Active station http://mp3.hitradiort1.c.nmdn.net/rt1rockwl/livestream.mp3
sourcebuffer created – Free mem=162324
created decoder
Decoder start…
MP3 done
ets Jul 29 2019 12:21:46
Kann mir jemand helfen?

Thomas ERNE

Thomas ERNE

Hallo

Der ESP geht auf stop – Kann mir da jemand weiterhelfen ?
Mit freundlichen Grüßen Thomas

Alfred

Alfred

Hallo Rudolf,,,,
danke für deine Rezension. Schön, dass alles jetzt funktioniert…

VG Alfred

Rudolf Beck

Rudolf Beck

Letzter Nachtrag:
Bei Streamadressen der Sender /Play.mp3 ergänzen und anstelle https nur http.
Beispiel SWR3:
statt https://liveradio.swr.de/sw282p3/swr3/
geht mit http://liveradio.swr.de/sw282p3/swr3/play.mp3.
Nochmals vielen Dank für die Hilfen, vor allem hervorzuheben Alfred, ohne den ich bereits aufgegeben hätte.
Gruß Rudi

Rudolf Beck

Rudolf Beck

So, ich habe nun auch den Fehler mit dem Rotary gefunden. Ein Kabel war abgegangen, neu verlötet und jetzt funktioniert die Senderplatzauswahl.
Einzig mit den Sendern kämpfe ich noch, finde außer NDR2 bisher keine weiteren abspielbaren Sender…

Rudolf Beck

Rudolf Beck

So, jetzt spielt das Radio dank intensiver Hilfe von Alfred.
Allerdings nur NDR2 auf Platz 1 und 2.
Über Rotary lässt sich nichts ändern, nur über Senderliste mittels IP-Adresse.
Hat mir jemand Webadresse von ein paar weiteren Sendern, die funktionieren?
Und eventuell Ideen, warum Rotary nicht funktioniert?
Danke im voraus
Rudi

Rudolf Beck

Rudolf Beck

Hallo zusammen,
erst einmal vielen Dank an Alfred, mit seiner Hilfe konnte ich als Anfänger einige Schritte weiterkommen. Ich war mir lange nicht sicher, ob das Kompilieren erfolgreich war und funktionierte. Einfacher Trick: Versorgt ESP über USB mit Spannung, dann müsste das WLAN Webradio auftauchen. Dann eigene WLAN-Name und Passwort eingeben und über seriellen Monitor mit Bausrate 115200 beobachten, was der ESP macht.
So kam ich drauf, dass mi ESP alles ok war, aber eine Versorgungsleitung auf Platine nicht verbunden war. Dieses korrigiert und Radio hat gespielt.
Als ich Sender gewechselt habe hat sich das Radio dann leider aufgehängt.
Jetzt suche ich nach Lösung für den nächstem Fehler.

Alfred

Alfred

Hi,,,in die Runde….
all Habe mal ein bischen rumexperimentiert: - Ich nutze diesen Sketch aus dem Update: ESPwebRadio-20250211T114304Z-001.zip Diese läuft ohne Probleme durch den Compiler. Arduino-IDE 1.8.19 ESP32 Version 1.0.6 ESP8266Audio 1.9.5 LiquidCrystalI2C 1.1.2 AiEsp32RotaryEncoder 1.4.0 ESP8266Audio 1.9.5 Mit anderen Versionen gab es Fehlerausschriften. Die restlichen, erforderlichen Bibliotheken habe ich wie oben im Blog installiert. Das SketchBook sollte eben auch im Ordner ...\Dokumente\Arduino liegen. z.B.: C:\Users\Alfred\Documents\Arduino Da die Aktualisierung hier sehr lang dauert, könnt ihr auch eine PN an mich senden. intern10online.de
Könnte auch vom oben genannten Sketch eine *.bin Datei zur Verfügung stellen. Die kann dann direkt geflasht werden.
VG

Jörn

Jörn

@Alfred
Danke für die Antwort. Leider ist die Zeitverzögerung aufgrund der Moderation hier sehr groß. Der Elko war korrekt verbaut.
Aber ich konnte das Problem inzwischen lösen, es war ein Softwareproblem: In der Funktion MDCallback hatte die Zeile
`char s132, s264;`
den Fehler ausgelöst und initialisieren der Arrays mit
`char s132 = {0} , s264 = {0};`
hat geholfen. War also ein Speicherzugriffsfehler. Trotzdem seltsam, dass der Code offenbar bei anderen durchlief, aber jetzt tönt auch mein Webradio :)
Gruß Jörn

Andy

Andy

Hi all,
Does anyone have a reference list of the library versions that successfully compiled Andreas Schroeder’s sketch?
I get the same error as others
senderconfig:29:50: error: call of overloaded ‘getParam(int)’ is ambiguous
I presume the build has opted for the wrong alternative package at some point but what are the correct ones.
This is my list at the end of the compile:-
Using library Preferences at version 1.0 in folder: C:\Users\user\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.6\libraries\Preferences
Using library ESP8266Audio at version 2.0.0 in folder: C:\Users\user\Documents\Arduino\libraries\ESP8266Audio
Using library HTTPClient at version 1.2 in folder: C:\Users\user\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.6\libraries\HTTPClient
Using library WiFi at version 1.0 in folder: C:\Users\user\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.6\libraries\WiFi
Using library LiquidCrystal_I2C at version 1.1.2 in folder: C:\Users\user\Documents\Arduino\libraries\LiquidCrystal_I2C
Using library Wire at version 1.0.1 in folder: C:\Users\user\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.6\libraries\Wire
Using library Ai_Esp32_Rotary_Encoder at version 1.7 in folder: C:\Users\user\Documents\Arduino\libraries\Ai_Esp32_Rotary_Encoder
Using library ESP_Async_WebServer at version 3.7.1 in folder: C:\Users\user\Documents\Arduino\libraries\ESP_Async_WebServer
Using library FS at version 1.0 in folder: C:\Users\user\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.6\libraries\FS
Using library Async_TCP at version 3.3.5 in folder: C:\Users\user\Documents\Arduino\libraries\Async_TCP
Using library SPIFFS at version 1.0 in folder: C:\Users\user\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.6\libraries\SPIFFS
Using library SD at version 1.0.5 in folder: C:\Users\user\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.6\libraries\SD
Using library SPI at version 1.0 in folder: C:\Users\user\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.6\libraries\SPI

These were the 3 errors reported…
senderconfig:29:50: error: call of overloaded ‘getParam(int)’ is ambiguous
senderconfig:53:47: error: invalid conversion from ‘const AsyncWebParameter*’ to ‘AsyncWebParameter*’ [-fpermissive]
wlanconfig:135:47: error: invalid conversion from ‘const AsyncWebParameter*’ to ‘AsyncWebParameter*’ [-fpermissive]

Thanks
Andy

Ronald Kattner

Ronald Kattner

Hallo,
ich komme nicht weiter.
Ich nutze Arduino 1.8.19, ESP32 1.0.6, habe alle Bibliotheken wie hier beschrieben eingebunden. ich bekomme beim Kompilieren folgende Fehlermeldung:

In file included from C:\Internetradio\ESPwebRadio\senderconfig.ino:2:0:
C:\IDEPortable\arduino-1.8.19-windows\arduino-1.8.19\portable\sketchbook\libraries\ESPAsyncWebServer-3.1.0\src/ESPAsyncWebServer.h:33:22: fatal error: AsyncTCP.h: No such file or directory
compilation terminated.
Mehrere Bibliotheken wurden für “WiFiClient.h” gefunden
Benutzt: C:\IDEPortable\arduino-1.8.19-windows\arduino-1.8.19\portable\packages\esp32\hardware\esp32\1.0.6\libraries\WiFi
Nicht benutzt: C:\IDEPortable\arduino-1.8.19-windows\arduino-1.8.19\libraries\WiFi
exit status 1
Fehler beim Kompilieren für das Board ESP32 Dev Module

von den EspAsyncwebserver gibt es nur die Version 3.1.0.
Kann mir bitte jemand sagen, wo der Fehler liegt, ich bin am Verzweifeln.
Danke

Ben

Ben

@Rudolf
Hallo,
ich habe das selbe Problem wie du.
Habt ihr eine Lösung gefunden?
Würde mich sehr über eine Antwort freuen.

Alfred

Alfred

Hi, also das Forum ist hier nicht optimal….
- Meine Programmcodezeilen im letzten Post von mir, werden hier nicht korrekt dargestellt.
- Sendet deshalb eine PN an intern10@online.de…. wenn jmd die Zeilen möchte.

LG Alfred …bBh…

Alfred

Alfred

Hi, in die Runde…..
Erfahrungsbericht:
- Sollte ein Sender nicht empfangen werden können, ist es schwierig mit dem Rotary-Knopf einen anderen Sender einzustellen. Da hilft nur Online über den Browser einen anderen Platz zu wählen.
Bei mir sind es die Sender auf den Plätzen 5 , 8 , 10 und 11… Werde dort andere eintragen.
- Auch prellt der RotaryDreher manchmal. Ist aber nicht so schlimm.
- Um die IP-Adresse des WLAN-Radios ohne die Konsole(Arduino-IDE) herauszufinden, habe ich die folgenden Zeilen in im Programmteil “wlanconfig” eingefügt.

if (tryCount < MAXWLANTRY) { Serial.print(F("IP-Adresse per DHCP ist ")); Serial.println(WiFi.localIP()); // ab hier eingefügt , ab Zeile 95 bei mir im Programm wlanconfig // ANFANG Anzeige der IP Adresse am Display nach Bootvorgang lcd.clear(); lcd.setCursor(0,0); lcd.print(“IP-Adresse”); lcd.setCursor(0,1); // Cursor setzen Zeile 2 Position 1 lcd.print(WiFi.localIP()); // aktuelle IP-Adresse ausgeben delay(1000); lcd.clear(); // ENDE der eingefügten Zeilen // // Für den Automatik-Test if (TESTMODUS) { preferences.putString(“password”, “XXX”); } return(true); // when connection ok, stop here and return positive

- Nach jedem Bootvorgang wird ca. 1Sek die IP angezeigt.
Ansonsten läuft das Teil prima.
Könnte für euch Gehäuse drucken und auch ESPs flashen…..
LG Alfred

Alfred

Alfred

@Rudolf.
Hi,lösche die Librarys:
C:\Users\Admin\Downloads\arduino-1.8.19-windows\arduino-1.8.19\libraries\WiFi
C:\Users\Admin\Downloads\arduino-1.8.19-windows\arduino-1.8.19\libraries\SD
Die Arduino-Ide sollte auch vom WIN-Programmordner gestartet werden.

C:\Programm(x86)\Arduino\arduino.exe (Installationsordner)
In einem Installationsunterordner liegen dann auch schon viele Librarys.
LG….Viel Erfolg.
s.auch Post @Thoralf 12.12.24

Rudolf Beck

Rudolf Beck

Hallo Experten,
Jetzt bräuchte ich doch Eure fachmännische Hilfe.
Alles zusammengebaut und verdrahtet, aber es kommt nur ein Balken in der oberen Reihe des LCD.
Das Kompilieren des Sketches mit den Unterordnern
ESPwebRadio, audio, lcdisplay, rotary, senderconf.h, senderconfig, senderlist, wlanconf.h, wlanconfig funktioniert irgendwie nicht.
Habe Arduino V1.8.19, und darin ESP32 V1.0.6, LiquidCrystal I2C V1.1.2, AiEsp32RotaryEncoder V1.4.0 und ESP8266Audio V1.9.5 eingebunden.
Arduino: 1.8.19 (Windows 10), Board: “ESP32 Dev Module, Disabled, Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS), 240MHz (WiFi/BT), QIO, 80MHz, 4MB (32Mb), 115200, None”
Folgende Fehlermeldungen kommen:
WARNUNG: Bibliothek LiquidCrystal_I2C behauptet auf avr Architektur(en) ausgeführt werden zu können und ist möglicherweise inkompatibel mit Ihrem derzeitigen Board, welches auf esp32 Architektur(en) ausgeführt wird.
C:\Internetradio\Dateien Andreas Schröder\ESPwebRadio\ESPwebRadio.ino:62:74: warning: ISO C++ forbids converting a string constant to ‘char*’ [-Wwrite-strings] (kommt nacheinander 48 Mal)
audio:8:11: error: redefinition of ‘const int preallocateBufferSize’
C:\Internetradio\Dateien Andreas Schröder\ESPwebRadio\ESPwebRadio.ino:65:11: note: ‘const int preallocateBufferSize’ previously defined here
audio:9:11: error: redefinition of ‘const int preallocateCodecSize’
C:\Internetradio\Dateien Andreas Schröder\ESPwebRadio\ESPwebRadio.ino:66:11: note: ‘const int preallocateCodecSize’ previously defined here
audio:11:7: error: redefinition of ‘void* preallocateBuffer’
C:\Internetradio\Dateien Andreas Schröder\ESPwebRadio\ESPwebRadio.ino:68:7: note: ‘void* preallocateBuffer’ previously defined here
audio:12:7: error: redefinition of ‘void* preallocateCodec’
C:\Internetradio\Dateien Andreas Schröder\ESPwebRadio\ESPwebRadio.ino:69:7: note: ‘void* preallocateCodec’ previously defined here
audio:15:17: error: redefinition of ‘AudioGenerator* decoder’
C:\Internetradio\Dateien Andreas Schröder\ESPwebRadio\ESPwebRadio.ino:78:17: note: ‘AudioGenerator* decoder’ previously defined here
audio:16:27: error: redefinition of ‘AudioFileSourceICYStream* file’
C:\Internetradio\Dateien Andreas Schröder\ESPwebRadio\ESPwebRadio.ino:79:27: note: ‘AudioFileSourceICYStream* file’ previously defined here
audio:17:24: error: redefinition of ‘AudioFileSourceBuffer* buff’
C:\Internetradio\Dateien Andreas Schröder\ESPwebRadio\ESPwebRadio.ino:80:24: note: ‘AudioFileSourceBuffer* buff’ previously defined here
audio:18:17: error: redefinition of ‘AudioOutputI2S* out’
C:\Internetradio\Dateien Andreas Schröder\ESPwebRadio\ESPwebRadio.ino:81:17: note: ‘AudioOutputI2S* out’ previously declared here
C:\Internetradio\Dateien Andreas Schröder\ESPwebRadio\audio.ino: In function ‘void MDCallback(void*, const char*, bool, const char*)’:
audio:21:6: error: redefinition of ‘void MDCallback(void*, const char*, bool, const char*)’
C:\Internetradio\Dateien Andreas Schröder\ESPwebRadio\ESPwebRadio.ino:91:6: note: ‘void MDCallback(void*, const char*, bool, const char*)’ previously defined here
C:\Internetradio\Dateien Andreas Schröder\ESPwebRadio\audio.ino: In function ‘void stopPlaying()’:
audio:36:6: error: redefinition of ‘void stopPlaying()’
C:\Internetradio\Dateien Andreas Schröder\ESPwebRadio\ESPwebRadio.ino:106:6: note: ‘void stopPlaying()’ previously defined here
C:\Internetradio\Dateien Andreas Schröder\ESPwebRadio\audio.ino: In function ‘void startUrl()’:
audio:55:6: error: redefinition of ‘void startUrl()’
C:\Internetradio\Dateien Andreas Schröder\ESPwebRadio\ESPwebRadio.ino:125:6: note: ‘void startUrl()’ previously defined here
C:\Internetradio\Dateien Andreas Schröder\ESPwebRadio\lcdisplay.ino: At global scope:
lcdisplay:5:22: error: redefinition of ‘LiquidCrystal_I2C lcd’
C:\Internetradio\Dateien Andreas Schröder\ESPwebRadio\ESPwebRadio.ino:76:19: note: ‘LiquidCrystal_I2C lcd’ previously declared here
lcdisplay:8:18: error: redefinition of ‘uint8_t speaker 8’
C:\Internetradio\Dateien Andreas Schröder\ESPwebRadio\ESPwebRadio.ino:84:9: note: ‘uint8_t speaker 8’ previously defined here
C:\Internetradio\Dateien Andreas Schröder\ESPwebRadio\lcdisplay.ino: In function ‘void showStation()’:
lcdisplay:12:6: error: redefinition of ‘void showStation()’
C:\Internetradio\Dateien Andreas Schröder\ESPwebRadio\ESPwebRadio.ino:144:6: note: ‘void showStation()’ previously defined here
C:\Internetradio\Dateien Andreas Schröder\ESPwebRadio\rotary.ino: At global scope:
rotary:16:22: error: redefinition of ‘AiEsp32RotaryEncoder rotaryEncoder’
C:\Internetradio\Dateien Andreas Schröder\ESPwebRadio\ESPwebRadio.ino:74:22: note: ‘AiEsp32RotaryEncoder rotaryEncoder’ previously declared here
C:\Internetradio\Dateien Andreas Schröder\ESPwebRadio\rotary.ino: In function ‘void rotary_loop()’:
rotary:20:6: error: redefinition of ‘void rotary_loop()’
C:\Internetradio\Dateien Andreas Schröder\ESPwebRadio\ESPwebRadio.ino:163:6: note: ‘void rotary_loop()’ previously defined here
C:\Internetradio\Dateien Andreas Schröder\ESPwebRadio\rotary.ino: In function ‘void readEncoderISR()’:
rotary:54:16: error: redefinition of ‘void readEncoderISR()’
C:\Internetradio\Dateien Andreas Schröder\ESPwebRadio\ESPwebRadio.ino:197:16: note: ‘void readEncoderISR()’ previously defined here
C:\Internetradio\Dateien Andreas Schröder\ESPwebRadio\senderlist.ino: In function ‘void setup_senderList()’:
senderlist:5:3: error: ‘sender’ was not declared in this scope
Mehrere Bibliotheken wurden für “SD.h” gefunden
Benutzt: C:\Users\Admin\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.6\libraries\SD
Nicht benutzt: C:\Users\Admin\Downloads\arduino-1.8.19-windows\arduino-1.8.19\libraries\SD
Mehrere Bibliotheken wurden für “WiFi.h” gefunden
Benutzt: C:\Users\Admin\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.6\libraries\WiFi
Nicht benutzt: C:\Users\Admin\Downloads\arduino-1.8.19-windows\arduino-1.8.19\libraries\WiFi
exit status 1
redefinition of ‘const int preallocateBufferSize’
Und damit endet das Kompilieren ☹.
Hat jemand eine Idee, was falsch ist bzw. was ich machen kann?

Alfred

Alfred

@Rudolf
Hi, was gibt denn die Compilerkonsole aus, wenn Du den Sketch NUR kompilierst?… Das wäre erstmal ein Ansatz. Es dürfen keine Fehler angezeigt werden, außer die Warnung von der LCD-Bibliothek.
LG Alfred

Alfred

Alfred

@Jörn:
Hi, ich kann nur vermuten: Die Programmierung ist warscheinlich iO abgelaufen. Aber die Versorgungsspannungen oder auch die Siebung der Versorgungsspannung ist nicht optimal.
Messe die 5 Volt Pins nach und auch die 3,3V Pins! Ist auch ein Elko mit verbaut worden?
Manchmal haben auch die Elkos eine Macke, großer Leckstrom… dann pumpt die Spannung.
Der ESP zieht auch ein bissel Strom, dass muss der Elko ausgleichen, vor allem in der Startphase.
LG

cadet

cadet

Vorab, mittlerweile funktioniert mein Aufbau, zumindest im Moment noch, komplett einwandfrei.
Aber, auch ich hatte anfangs den mehrfach beschriebenen “panic” Loop Fehler. Leider habe ich vor dem letzten Upload gleich zwei Dinge geändert, (statt besser eins nach dem anderen):
1. @Reiner: Auskommentieren der “Serial.printf(”METADATA ‘%s’ = ‘%s’\n", ptr, s1, s2);" Zeile im Code. Toll, dass es solche User-Kommentare gibt. Danke.
2. Boot- und Reset- Button am Controller gedrückt, beim Start des Uploads.

Des Weiteren hatte ich vorher schon den “WiFi-Manager” eingebunden, um SSID und Passwort am Smartphone für unterschiedliche WLANS konfigurieren zu können. Das hat mit dem “PANIC”-Problem natürlich nichts zu tun und es sollte mit dem Original WiFi Code oder dem Access Point Code von Reiner ganz sicher genauso funktionieren.

Was mich allerdings anfangs sehr verwirrt hatte, das war die Tatsache dass der mir von AZ-Delivery gelieferte Rotary-Encoder anders aussah und anders angeschlossen werden musste, als im Bild “Schaltung” des Blogs. Dort ist nur ein Anschluss an 5V, an der Unterseite des Encoders dargestellt.
Die Abbildungen zum realen Hardware-Aufbau passten jedoch wieder zu meinem Encoder mit den 5 Pins: CLK,DT,SW,+,GND.
Den Platinen-Aufbau finde ich jetzt im nachhinein, wo alles funktioniert, ganz toll, Respekt, da Kabelverbindungen zur Peripherie keine einzige Kabelvertauschung erforderlich machte. Ich bin absoluter Anfänger und habe den Controller zur Stromversorgung im Moment noch ohne Batterie-Anschluss am USB Port meines Laptops hängen. Als nächstes werde ich das Gehäuse auf meinem Saturn8K ausdrucken und mit dem Batterieanschluss dann fertig stellen.
Ich kann das Projekt deshalb wirklich nur jedem Anfänger empfehlen. Übrigens habe auch ich mich sehr schnell dafür entschieden PlatformIO auf VSCODE statt der Arduino IDE zu verwenden. Und wenn ICH (73) das kann, dann kann das ganz sicher JEDER :-).
Nochmal danke an den “Erfinder” und alle die ihre Kommentare hier hinterlassen haben, und weiter so, – macht Spaß. ;-).

Rudolf Beck

Rudolf Beck

Hallo,
Habe Spannung auf 5,2 V eingestellt und alles verdrahtet.
Beim Einschalten kommen nur einzeilige weiße Blöcke.
Vermute da hat irgendwas mit der Programmierung nicht geklappt.
Wie mache ich weiter?
Freue mich über jeden Tip…

Jörn

Jörn

Hallo,
ich habe folgendes Problem: Nach Einschalten der Spannung höre ich für einen Sekundenbruchteil das Programm vom Sender. Dann Knacken und Brummen und der ESP startet neu. Immer wieder. In der kurzen Zeit kann ich die Sender auch mit dem Drehgeber verstellen. Es scheint also zumindest alles richtig verdrahtet zu sein.
Im seriellen Monitor sehe ich, dass Wifi Verbindung klappt
und dann aber:

sourcebuffer created – Free mem=128428
created decoder
Decoder start…
Guru Meditation Error: Core 1 panic’ed (LoadProhibited). Exception was unhandled.

und es geht von vorne los

Kann jemand helfen? Ich habe ein anderes ESP Board versucht, aber gleiches Verhalten.
Viele Grüße
Jörn

Alfred

Alfred

Hallo Rodolf,
den ESP nicht auflöten…. versorge DIr ein paar Steckerleisten welche Du auflötest. Die Boards immer steckbar einsetzen.
Den Sketch kannst Du auch OHNE die Peripherie auf das Board laden. Wenn Du die Konsole im Arduino-IDE startest, kannst Du alles Verfolgen was das Board nach dem Upload macht.
Stelle natürlich auch die richtige Baud-Rate an der Konsole ein, sonst siehst Du nix… :-)

Viel Erfolg….. Alfred

Alfred

Alfred

Hallo in die Runde… erstmal vielen Dank an alle Entwickler, welche dieses Projekt WEBRADIO erstellt haben.
Nach einigen Hürden spielt das Ding seine Lieder ganz gut ab.
Tips: – prüft alle Lötstellen auf den Platinen (es gibt einige KALTE Lötstellen !!!)
– zum Hochladen des Sketches habe ich die ADUINO-IDE 1.8.19 genutzt
– die ESP32 – Version ist die 1.0.6
– ESPAsynWebServer 3.1.0 von lacamera

Einige Hürden gab es auch beim Hochladen vom PC aus. Es sollten unbedingt USB-Kabel
genutzt werden, welche NICHT zu lang sind und die auch die 5Volt bis zum Board bringen.
Sonst klappt der UpLoad nicht.
Sollte der ESP32 nicht von allein in den Flash-Modus gehen, dann drückt während des
Kompiliervorgangs die Boot-Taste und kurz die Reset-Taste. Danach beide Tasten loslassen.
Dann viel Spaß beim Zusammenbau…… :-)

Rudolf Beck

Rudolf Beck

Hallo zusammen,
ich habe eine grundlegende Frage, da ich bisher nur mit Arduino etwas gespielt habe.
wie bringe ich den Sketch auf den ESP32?Verbinde ich einfach die Platine mit dem USB meines Laptops und dann Arduino mit den entsprechenden Einstellungen? Oder soll/muss ich die Pheripherie (Einschalter mit Verstärker, LCD, Drehgeber, Spannungsversorgung etc.) vor Verbingung über USB anschließen?
Wenn ich das richtig verstanden habe, soll ich den Mikrocontroller zuerst programmieren und dann einsetzen. Da ich keinen passsenden Sockel habe würd eich den ESP32 direkt auf die Lochrasterplatine löten. Wenn ich dann später am Sketch etwas ändern muss, kann ich dann einfach Stromversorgung vom Internetradio entfernen und ESP32 über USB mit Laptop verbinden?

Robin

Robin

Habe noch selbst gemachte PLatinen:

unter Discord →
robinegs

Holger Spitz

Holger Spitz

Hallo, bei mir kommt auch die Fehlermeldung
call of overloaded ‘getParam(int)’ is ambiguous
beim compilieren.
Hat jemand einen Rat für mich?

Ingo

Ingo

Liest Marcel hier noch mit? (Im Github-Repository habe ich keine Kontaktadresse gefunden.)

Ich bin nicht so der begnadete Löter und Deine fertige Platine lässt weniger Spielraum für Fehler ;-) Hast Du davon noch ein Exemplar abzugeben?

Danke!

Ingo

Ingo

Moin!
Ich habe eine Frage zu den Federleisten, bei denen kein Link angegeben ist. Kann ich diese verwenden und auf 19 Pins abschneiden/sägen?

https://www.az-delivery.de/products/40-pin-buchsenleiste

Danke!

Ernst27

Ernst27

Esp32 Radio!
Das Projekt ist bei mir elektrisch vollendet.
Schwierigkeiten habe ich mit den Kommentaren gelöst. Jetzt meine Frage an die Community: "Gibt es eine 3D Druckdatei für ein Gehäuse?. Hat jemand einen Vorschlag dazu. Ich würde mich freuen, wenn auch hier Dateien zur Verfügung gestellt würden. LG Ernst

Jürgen Dorn

Jürgen Dorn

Ich versuche das Internet Radio mit dem ESP32Wroom aufzubauen an welchen Pin wird der Rotary Encoder angesclossen? Komme nicht weiter!!

Walter dl2sew

Walter dl2sew

@Thoralf
Die Warnung mit dem LiquidCrystal_I2C darf ignoriert werden.
Wenn exakt die beschriebenen Bibliotheken verwendet werden, sollte das kompilieren auch funktionieren.
@Chris
Die Widerstände sind Spannungsteiler zur Pegelanpassung für die NF-Verstärker (sind unkritisch) und der Elko dient zur “Spannungsstabilisierung”(Siebung).

Electro eBooks

Electro eBooks

ESP32 eBooks
https://electroebooks.com/esp32

PeKo

PeKo

Kann man auch irgendwoher den Titel und Interpreten anzeigen lassen?
Ich habe es auf ein 128×64 OLED umgestellt und habe noch Platz auf dem Display

Krister Svärd

Krister Svärd

@Thoralf. I have the exact same error as you. Any progress in finding a solution?

Chris

Chris

Hallo Zusammen,
ich komme eher aus der Programmierecke, daher eine Einstiegsfrage:
Ich würde gerne verstehen, wieso bzw. zu welchem Zweck dienen die Wiederstände bzw. der ELKO. Wie würden diese dimensioniert.
Vielen Dank
Chris

Thoralf

Thoralf

Hallo zusammen. Ich habe jetzt auch alles probiert, compile error. Bitte helft mir.
Arduino: 1.8.19 (Mac OS X), Board: “ESP32 Dev Module, Disabled, Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS), 240MHz (WiFi/BT), QIO, 80MHz, 4MB (32Mb), 115200, None”

WARNUNG: Bibliothek LiquidCrystal_I2C behauptet auf avr Architektur(en) ausgeführt werden zu können und ist möglicherweise inkompatibel mit Ihrem derzeitigen Board, welches auf esp32 Architektur(en) ausgeführt wird.
/Users/thoralf/Downloads/ESPWebRadio 2/ESPwebRadio/senderconfig.ino: In lambda function:
senderconfig:44:50: error: call of overloaded ‘getParam(int)’ is ambiguous
AsyncWebParameter* p2 = request→getParam(0);
^
In file included from /Users/thoralf/Downloads/ESPWebRadio 2/ESPwebRadio/senderconfig.ino:2:0:
/Users/thoralf/Documents/Arduino/libraries/ESP_Async_WebServer/src/ESPAsyncWebServer.h:403:30: note: candidate: const AsyncWebParameter* AsyncWebServerRequest::getParam(const char*, bool, bool) const
const AsyncWebParameter* getParam(const char* name, bool post = false, bool file = false) const;
^
/Users/thoralf/Documents/Arduino/libraries/ESP_Async_WebServer/src/ESPAsyncWebServer.h:405:30: note: candidate: const AsyncWebParameter* AsyncWebServerRequest::getParam(const String&, bool, bool) const
const AsyncWebParameter* getParam(const String& name, bool post = false, bool file = false) const { return getParam(name.c_str(), post, file); };
^
/Users/thoralf/Documents/Arduino/libraries/ESP_Async_WebServer/src/ESPAsyncWebServer.h:416:30: note: candidate: const AsyncWebParameter* AsyncWebServerRequest::getParam(size_t) const
const AsyncWebParameter* getParam(size_t num) const;
^
senderconfig:60:47: error: invalid conversion from ‘const AsyncWebParameter*’ to ‘AsyncWebParameter*’ [-fpermissive]
AsyncWebParameter* p = request→getParam(i); // read parameter
^
/Users/thoralf/Downloads/ESPWebRadio 2/ESPwebRadio/wlanconfig.ino: In lambda function:
wlanconfig:137:47: error: invalid conversion from ‘const AsyncWebParameter*’ to ‘AsyncWebParameter*’ [-fpermissive]
AsyncWebParameter* p = request→getParam(i);
^
Mehrere Bibliotheken wurden für “WiFi.h” gefunden
Benutzt: /Users/thoralf/Library/Arduino15/packages/esp32/hardware/esp32/1.0.6/libraries/WiFi
Nicht benutzt: /Applications/ArduinoV1.app/Contents/Java/libraries/WiFi
Mehrere Bibliotheken wurden für “SD.h” gefunden
Benutzt: /Users/thoralf/Library/Arduino15/packages/esp32/hardware/esp32/1.0.6/libraries/SD
Nicht benutzt: /Applications/ArduinoV1.app/Contents/Java/libraries/SD
Nicht benutzt: /Users/thoralf/Documents/Arduino/libraries/SD
exit status 1
call of overloaded ‘getParam(int)’ is ambiguous

YuFi

YuFi

Uii… Aus diesem Beitrag wird man weder schlau, noch glücklich!! Am End haufen zeit sinnlos verballert!! mit den codes aus hier geht nicht wirklich iwas…. aber was ich auf jeden korrigieren kann… mit dem bib vor version 2.0 geht gar nichts… hatte zwar n kompilier und hochlade erlebniss mit den beuesten bibs.. aber richtige verbindung geschweigedenn lala aus dem ding kam nicht..,..spart euch eure lebzeit.. ist viel mehr n verkaufs ding vom az-wohl…

Lars Häuser

Lars Häuser

Hallo zusammen, ich habe das Radio inzwischen den halb fertig. Mit den Arduino Bits war es etwas nervig, aber letztlich hat alles geklappt. Das Platinenlayout ist schwer entzifferbar, aber auch das hat geklappt.

@Andreas Schröder: Haben Sie das 3d Case zufällig mit Autodesk Fusion erstellt und könnten die Fusionen-Dateien zum Bearbeiten zur Verfügung stellen? Denn ich verwende einen anderen Akkutyp und muss das Gehäuse noch etwas umbauen.

Ich nutze aktuell einen einzigen 18650. Dieser reicht aber nicht für genug Strom, um den ESP zu starten. Ich muss es erst kurz an den Strom hängen zum Starten und dann kann ich das Kabel ziehen und alles funktioniert. Daher müssen jetzt zwei rein. Dann sollte es hoffentlich klappen.

Danke und VG
Lars Häuser

Udo

Udo

Hallo!
Ich habe ein Problem das Internet-Radio ans Laufen zu bringen.
Sämtliche Bibliotheken habe ich mehrmals neu installiert. Aufbau mehrmals kontrolliert.
Erhalte bei jedem Hochladen die Meldung: Fehler beim Kompilieren für das Bord ESP32 Dev Module.
Ich weiß mir keinen Rat mehr!
Sollte eigentlich ein “Anfänger-Projekt” ein.

Benno

Benno

Hallo,
ich habe das Problem inzwischen gelöst. Beim Abspeichern muss man die Erweiterung in der IP Adresse löschen.
Bei mir zB “/?play=4” http://192.168.179.7/?play=4.

ronny

ronny

ich habe das Problem das ich die ESPAsyncWebServer.h benötige. Welche Bibliothek muss noch installiert werden? Ich habe einige Bibliotheken probiert aber es kommen immer Fehler.

Benno

Benno

Hallo,
ich habe, dank der vielen Tipps im Blog, das Radio zum laufen gebracht. Leider gelingt es mir nicht die Senderliste dauerhaft zu ändern. Bei jedem Neustart kommt wieder die ursprüngliche Liste.
Viele Grüße
Benno

Richard Derganc

Richard Derganc

Hello. I have difficulties with code. ESP32 start and made a connection to my wifi and after that when the decoder starts there is an error and ESP restarts itself. It is Guru Medidation Error: Core 1 panic’ed….
Can someone help me or at least direct me to the solution?
Thanks in advance,
Richard

Dre van den Elshout

Dre van den Elshout

@Wolf Geldmacher Ich habe versucht, Ihren aktualisierten Code von https://owncloud.womaro.ch/owncloud/index.php/s/gjR4LMZMaRWYWbt herunterzuladen

Allerdings funktioniert der Link bei mir nicht. Wurden die Daten an einen anderen Ort verschoben?

Thomas Dorn

Thomas Dorn

Ok , keine Ahnung warum aber das Ding funktioniert jetzt ( nur für Moderator , den letzten Post nicht veröffentlichen ). Heute neu eingesteckt und funktioniert …
Was ich noch hinzugefügt habe ist ein Timer für das Backlight .
Wenn es das für jemand interessant ist kann ich das gerne posten .

MFG
Th. Dorn

Laisser un commentaire

Tous les commentaires sont modérés avant d'être publiés

Articles de blog recommandés

  1. ESP32 jetzt über den Boardverwalter installieren - AZ-Delivery
  2. Internet-Radio mit dem ESP32 - UPDATE - AZ-Delivery
  3. Arduino IDE - Programmieren für Einsteiger - Teil 1 - AZ-Delivery
  4. ESP32 - das Multitalent - AZ-Delivery