Radio mit ESP32




[embedpress]https://arduinoblog.de/radio-mit-esp32[/embedpress]

Ziel des Projekts

Ein ESP32 soll zusam­men mit einem mp3-Deco­der als Inter­net­ra­dio funk­tio­nie­ren. Mit Tas­tern oder mit einer Fern­be­die­nung kann der Sen­der gewech­selt und der Ton lei­ser oder lau­ter ein­ge­stellt wer­den.

Die Tas­ter haben jeweils meh­re­re Funk­tio­nen:

  • Tas­ter für die Sen­der­wahl (gelb)
    ein Klick: nächs­ter Sen­der
    Dop­pel­klick: vor­he­ri­ger Sen­der
    lan­ger Druck: ers­ter Sen­der der Lis­te star­ten
  • Tas­ter für die Laut­stär­ke­re­ge­lung (rot)
    ein Klick: Laut­stär­ke +5
    Dop­pel­klick: Laut­stär­ke -5
    lan­ger Druck: Ton aus­schal­ten
    erneu­ter lan­ger Druck: Ton ein­schal­ten

Die Tas­ten der Fern­be­die­nung:

  • Pfeil nach rechts: nächs­ter Sen­der
  • Pfeil nach links: vor­he­ri­ger Sen­der
  • Pfeil nach unten: lei­ser
  • Pfeil nach oben: lau­ter
  • #: Ton aus, erneu­te Betä­ti­gung: Ton an

Auf dem LCD wird der Sen­der, die Laut­stär­ke und ein Teil der vom Sen­der über­mit­tel­ten Infor­ma­tio­nen dar­ge­stellt.

Benötigte Bauteile

  • mp3-Deco­der VS1053
  • ⇒4-zei­li­ges LCD mit I²C-Schnitt­stel­le
  • Lei­tungs­dräh­te
  • zwei (ver­schie­den­far­bi­ge) Tas­ter
  • oder ⇒Keyes Fern­be­die­nung

Der Schaltplan

Mit zwei Tastern

Mit Fernbedienung

Konfiguration des Mikrocontrollers

Das Programm

Benötigte Bibliotheken

Biblio­thek  🔗ESP_VS1053_Library

Biblio­thek  🔗ESP32_VS1053_Stream

Bei­de Biblio­the­ken müs­sen als zip-Datei her­un­ter gela­den und mit
Sketch -> zip-Biblio­thek hin­zu­fü­gen
instal­liert wer­den.

Für die Tas­ter

Für die Fern­be­die­nung

Der Programmcode

Wenn du die Sen­der­lis­te erwei­tern willst, musst du die Stream-Adres­se des neu­en Sen­ders an belie­bi­ger Posi­ti­on im Array Sen­der hin­zu­fü­gen. Die Lis­te mit den Beschrei­bun­gen musst du mit dem Namen des neu­en Sen­ders erwei­tern.

Mit zwei Tastern

Mit Fernbedienung

Beim Kom­pi­lie­ren kommt es zu zwei Warn­mel­dun­gen für die Platt­form ESP32, das Pro­gramm kann aber ohne Pro­ble­me hoch­ge­la­den wer­den.

Wenn du die­se Mel­dun­gen ver­mei­den willst, musst du in der Datei /Arduino/libraries/IRremote/src/IRremote.hpp in den Zei­len 152 und 245 ein // vor die Zei­le set­zen. So sehen die Zei­len nach der Ände­rung aus:

152: // #warning INFO: For ESP32, RP2040, mbed and particle boards SEND_PWM_BY_TIMER is enabled by default, since we have the resources
245: // #warning INFO: No definition for LED_BUILTIN found -> default LED feedback is disabled.

Erfahrungen im Betrieb

  • je nach Aus­las­tung der Ser­ver kann es zu sel­te­nen kurz­zei­ti­gen Unter­bre­chun­gen des Streams kom­men, zumeist sta­bi­li­siert sich das Signal im Lau­fe der Zeit
  • Alle Sen­der bie­ten ihre Streams auch in einer SSL-Vari­an­te an. Im Pro­gramm ver­wen­de ich die Ver­si­on ohne SSL.
    Du kannst bei­de Vari­an­ten tes­ten, grund­sätz­lich wür­de ich die SSL-Vari­an­te bevor­zu­gen, die aber lei­der nicht immer stö­rungs­frei lau­fen.
  • in sel­te­nen Fäl­len kommt es auch zum Abbruch des Streams, der Stream wird aber sofort neu gestar­tet
  • beim Start kann mög­li­cher­wei­se der Codec des Streams nicht ermit­telt wer­den (Codec STOPPED)
    das Pro­gramm muss neu gestar­tet wer­den

Sen­der in der SSL-Vari­an­te

  "https://wdr-1live-live.icecastssl.wdr.de/wdr/1live/live/mp3/128/stream.mp3",  // 1Live mit SSL
  "https://wdr-wdr2-bergischesland.icecastssl.wdr.de/wdr/wdr2/bergischesland/mp3/128/stream.mp3", // WDR2
  "https://wdr-wdr4-live.icecastssl.wdr.de/wdr/wdr4/live/mp3/128/stream.mp3", // WDR4
  "https://liveradio.swr.de/sw282p3/swr3/play.mp3", // SWR3
  "https://dispatcher.rndfnk.com/swr/swr4/ko/mp3/128/stream.mp3", // SWR4
  "https://avw.mdr.de/streams/284321-1_mp3_high.m3u", // MDR JUMP Rock channel
  "https://dispatcher.rndfnk.com/hr/hr1/rheinmain/high", // HR1
  "https://www.ndr.de/resources/metadaten/audio/m3u/ndr2_hh.m3u", // NDR Hamburg
  "https://dispatcher.rndfnk.com/rbb/rbb888/live/mp3/mid", // RBB 88,8
  "https://liveradio.sr.de/sr/sr3/mp3/128/stream.mp3", // SR 3
  "https://st01.sslstream.dlf.de/dlf/01/128/mp3/stream.mp3?aggregator=web", // Deutschlandfunk
  "https://stream.lokalradio.nrw/444z6rq", // Radio Berg
  "https://antennebrandenburg.de/livemp3", // Antenne Brandenburg
  "https://stream.antenne.de/antenne/stream/mp3", // Antenne Bayern live
  "https://stream.antenne.de/antenne-bayern-70er-rock/stream/mp3", // Antenne Bayern 70er Rock
  "https://stream.antenne.de/classic-rock-live/stream/mp3", // Antenne Bayern Classic Rock
  "https://stream.antenne.de/antenne-bayern-80er-rock/stream/mp3", // Antenne Bayern 80er Rock
  "https://classicrock.radioarabella.de/arabella-classicrock.mp3", // Radio Arabella
  "https://www.charivari.de/webradio/r8082.m3u", // Radio Charivari München

Quellen


Ähnliche Projekte


Letzte Aktualisierung: Feb. 5, 2026 @ 18:49

Inhalt