Radio mit ESP32

Lesezeit: 8 Minuten


Ziel des Projekts

Ein ESP32 soll zusam­men mit einem mp3-Decoder als Inter­ne­tra­dio funk­tion­ieren. Mit Tastern oder mit ein­er Fernbe­di­enung kann der Sender gewech­selt und der Ton leis­er oder lauter eingestellt wer­den.

Die Taster haben jew­eils mehrere Funk­tio­nen:

  • Taster für die Sender­wahl (gelb)
    ein Klick: näch­ster Sender
    Dop­pelk­lick: vorheriger Sender
    langer Druck: erster Sender der Liste starten
  • Taster für die Laut­stärk­eregelung (rot)
    ein Klick: Laut­stärke +5
    Dop­pelk­lick: Laut­stärke ‑5
    langer Druck: Ton auss­chal­ten
    erneuter langer Druck: Ton ein­schal­ten

Die Tas­ten der Fernbe­di­enung:

  • Pfeil nach rechts: näch­ster Sender
  • Pfeil nach links: vorheriger Sender
  • Pfeil nach unten: leis­er
  • Pfeil nach oben: lauter
  • #: Ton aus, erneute Betä­ti­gung: Ton an

Auf dem LCD wird der Sender, die Laut­stärke und ein Teil der vom Sender über­mit­tel­ten Infor­ma­tio­nen dargestellt.

Benötigte Bauteile

Der Schaltplan

Mit zwei Tastern

Mit Fernbedienung

Konfiguration des Mikrocontrollers

Das Programm

Benötigte Bibliotheken

Bib­lio­thek ESP_VS1053_Library

Bib­lio­thek ESP32_VS1053_Stream

Bei­de Bib­lio­theken müssen als zip-Datei herunter geladen und mit
Sketch -> zip-Bib­lio­thek hinzufü­gen
instal­liert wer­den.

Für die Taster

Für die Fernbe­di­enung

Der Programmcode

Wenn du die Senderliste erweit­ern willst, musst du die Stream-Adresse des neuen Senders an beliebiger Posi­tion im Array Sender hinzufü­gen. Die Liste mit den Beschrei­bun­gen musst du mit dem Namen des neuen Senders erweit­ern.

Mit zwei Tastern

Mit Fernbedienung

Beim Kom­pilieren kommt es zu zwei Warn­mel­dun­gen für die Plat­tform ESP32, das Pro­gramm kann aber ohne Prob­leme hochge­laden wer­den.

Wenn du diese Mel­dun­gen ver­mei­den willst, musst du in der Datei /Arduino/libraries/IRremote/src/IRremote.hpp in den Zeilen 152 und 245 ein // vor die Zeile set­zen. So sehen die Zeilen nach der Änderung aus:

Erfahrungen im Betrieb

  • je nach Aus­las­tung der Serv­er kann es zu sel­te­nen kurzzeit­i­gen Unter­brechun­gen des Streams kom­men, zumeist sta­bil­isiert sich das Sig­nal im Laufe der Zeit
  • Alle Sender bieten ihre Streams auch in ein­er SSL-Vari­ante an. Im Pro­gramm ver­wende ich die Ver­sion ohne SSL.
    Du kannst bei­de Vari­anten testen, grund­sät­zlich würde ich die SSL-Vari­ante bevorzu­gen, die aber lei­der nicht immer störungs­frei laufen.
  • in sel­te­nen Fällen kommt es auch zum Abbruch des Streams, der Stream wird aber sofort neu ges­tartet
  • beim Start kann möglicher­weise der Codec des Streams nicht ermit­telt wer­den (Codec STOPPED)
    das Pro­gramm muss neu ges­tartet wer­den

Sender in der SSL-Vari­ante

Quellen


Verwandte Anleitung


Letzte Aktualisierung: Nov. 5, 2025 @ 17:15