Raspberry Pi Internet Radio

Philips D-1835 Internet Radio

Ein tolles Projekt für verregnete Tage: Ein Internet Radio auf Basis eines Raspberry Pi. Bei mir liegt schon länger ein altes, ungenutztes Philips D-1835 Analogradio von 1986 herum, dem ich gern neues Leben einhauchen möchte. Und so geht’s!

Das wird benötigt:

(Affiliate-Links)

Es muss nicht unbedingt ein Raspberry Pi 3 verwendet werden, dieser bietet sich aber an, weil er bereits WLAN integriert hat. Bei älteren Modellen wird zusätzlich ein WLAN-Stick benötigt. Es kann auch ein Raspberry Pi Zero W verwendet werden, der ebenfalls WLAN integriert hat.  Die angegeben Preise sind die, die man bezahlt, wenn man die Teile einzeln bei deutschen Händlern kauft. Teile wir den Verstärker oder die Kabel bestelle ich in der Regel in größeren Mengen für weniger Geld über eBay aus China. Das geht aber nur, wenn man ein paar Wochen auf die Teile warten kann.

Die nötigen Schritte:

1) Raspbian installieren

Als Betriebssystem für den Raspberry Pi empfehle ich Raspbian. Meine Installationsanleitung findest du hier.

2) Lautsprecher an Verstärker anschließen

Im zweiten Schritt verbinden wir den PAM8403-Verstärker mit dem Lautsprecher. So sind die Anschlusse des PAM8403 besetzt:

PAM8403 Anschlüsse
PAM8403 Anschlüsse

Da es sich um einen Stereoverstärker handelt, wir aber nur einen Lautsprecher haben, wird nur ein Ausgang besetzt. Ich habe mich für den rechten Kanal entschieden. Den Plus- und Minuspol verbinden wir mit den GPIO-Kabeln mit dem Lautsprecher. Wenn der Lautsprecher bereits angelötete Kabel hat, können diese auch direkt am Verstärker angelötet werden. Die Pole sollten zwar nicht falsch herum angeschlossen werden, dabei kann aber nichts kaputt gehen. Sollte der Ton später komisch klingt, einfach die Polung vertauschen. Hat man zwei Lautsprecher, kann der zweite natürlich an den freien Kanal angeschlossen werden.

3) Verstärker am Raspberry Pi anschließen

Das Klinkekabel schneiden wir einfach irgendwo durch, sodass wir am einen Ende einen Stecker haben, den wir in den Audio-Anschluss des Raspberry Pi stecken können, und ein zweites Ende mit den Kabelenden. Je nachdem, ob es ein Stereo- oder Monokabel ist, hat das Klinkekabel drei oder nur zwei Adern. Die weiße Ader ist die Masse, die an den Anschluss GND des Verstärkers angeschlossen wird. Die signalführenden Adern sind rot und grün und müssen an die beiden Input-Anschlüsse.

Jetzt braucht der Verstärker noch Strom. Dazu müssen die beiden mittleren Anschlüsse an eine Stromquelle mit 3,6V – 5,5V angeschlossen werden. Der Raspberry Pi bietet die passende Stromquelle an den Pins 2 und 6. Mit zwei GPIO-Kabeln lässt sich hier einfach eine Verbindung herstellen.

4) Python-Script

Da nun die Hardware verbunden ist, fehlt nur noch ein Script, mit dem das Internetradio gestartet werden kann. Gern teile ich mein Python-Script, das einen beliebigen Internet-Stream abspielt. Dazu müsst ihr nur vorher folgende Befehle ausführen, um VLC zu installieren:

sudo apt-get install vlc
pip install python-vlc

Hier das Python-Script:

import vlc
import time
url = 'http://streams.radiobob.de/bob-live/mp3-192/mediaplayer'
instance = vlc.Instance('--input-repeat=-1', '--fullscreen')
player=instance.media_player_new()
media=instance.media_new(url)
media.get_mrl()
player.set_media(media)
player.play()

Dieses einfach speichern als radio.py und dann ausführen:

python radio.py

5) Musik hören mit dem Internet Radio

Viel Spaß beim Musik hören mit dem neuen Raspberry Pi Internet Radio!

12 Gedanken zu „Raspberry Pi Internet Radio

  1. Hallo Jonas, das sieht ja beeindruckend einfach aus. Habe ich gleich probiert, aber python meldet invalid syntax bei Zeile 7 :
    media player.set_media(media)

    was ist falsch?

  2. Wie kriegst du das Skript dazu, direkt beim Hochfahren zu starten?

    Ich kämpfe (mit Raspbian Buster) noch damit, dass VLC sich weigert, als Root ausgeführt zu werden…

  3. Das Skript scheint nicht mehr zu funktionieren:

    $ python radio.py
    Traceback (most recent call last):
    File „radio.py“, line 4, in
    instance = vlc.Instance(‚–input-repeat=-1‘, ‚–fullscreen‘)
    File „/home/pi/.local/lib/python2.7/site-packages/vlc.py“, line 1883, in __new__
    return libvlc_new(len(args), args)
    File „/home/pi/.local/lib/python2.7/site-packages/vlc.py“, line 4683, in libvlc_new
    ctypes.c_void_p, ctypes.c_int, ListPOINTER(ctypes.c_char_p))
    File „/home/pi/.local/lib/python2.7/site-packages/vlc.py“, line 292, in _Cfunction
    raise NameError(’no function %r‘ % (name,))
    NameError: no function ‚libvlc_new‘

    alles nach Anweisung gemacht, aber klappt leider nicht 🙁

  4. An Stelle des Python-Scripts ginge doch einfach:

    cvlc „http://streams.radiobob.de/bob-live/mp3-192/mediaplayer“

    Ich habe vor cvlc-Aufruf allerdings noch ein „sleep 120“ eingefügt; anscheinend braucht mein USB-Audio-Adapter nach dem Booten ein oder zwei Minuten Bedenkzeit…

  5. Hallo Jonas,

    vielen Dank für deinen Post, ich versuche mich gerade an einem ähnlichen Projekt. 🙂

    Viele Radiosender bieten Ihre Streams im m3u-Format an, wie z.B. hr3: http://metafiles.gl-systemhaus.de/hr/hr3_2.m3u

    Hast du eine Ahnung wie ich mit Python und vlc diesen Livestream abspielen kann?

    Über einen Tipp würde ich mich sehr freuen.

    Vielen Dank und viele Grüße

    1. Spannend, das habe ich bisher noch nicht gesehen. Du könntest es wie von Klaus beschrieben mal mit cvlc „https://wdrhf.akamaized.net/hls/live/2027963/1livediggi/master.m3u8“ probieren.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.