Ein Webradio basteln

Update 30.05.2020: getestet in Raspberry Pi OS (Version: May 2020)

Auf dieser Seite möchte ich meinen Webradio vorstellen, den ich mir gebastelt habe.
meine Vorstellungen sind hier sehr minimalistisch:
das Ganze ist untergebracht in einem alten Radio, die Bedienung über eine Android Smartphone App über die ich die Sender wählen und die Lautstärke einstellen kann, ohne Display, Tasten usw. am Gerät
und günstig soll das Ganze auch noch sein :-)

Natürlich können ausser webradio Sendern auch MP3s und Youtube Vides wiedergegeben werden!

Den Stromverbrauch hab ich auch mal gemessen: auf der 5V Seite bin ich hier bei ca. 160 mA im Betrieb, auf dem Netzteil steht was von 0,2 W im standby, in Summe dürften es um die 1 Watt sein… :-)

hier die Aussenansicht:

hier das Innenleben (die ursprüngliche Elektronik des Radios blieb erhalten, nur der Lautsprecher wurde anderweitig angeklemmt):


die Hardware

Zum einen habe ich hier einen Raspberry Pi Zero W verwendet, zum anderen ein kleines Verstärkermodul mit A/D Wandler für unter 7 Euro, der seine Daten über den I2S Bus vom Raspi bekommt.

Hier ein Bild vom Verstärkermodul:
https://cdn-learn.adafruit.com/assets/assets/000/032/613/medium800/adafruit_products_pinouts.jpg?1464025812

Die Anleitung vom Verstärkermodul gibts hier:
https://learn.adafruit.com/adafruit-max98357-i2s-class-d-mono-amp/pinouts

Zum Hardwareaufbau: am Raspberry Pi Zero W habe ich die GPIO Stiftleiste (Kosten unter 1 Euro) angelötet, den Verstäker habe ich auf eine Lochrasterplatine aufgelötet, die über eine Buchsenleiste (Kosten auch unter 1 Euro) auf den Raspberry Pi Zero W aufgesteckt wird.

Der Raspberry Pi Zero W ist direkt mit einem USB Kabel mit Micro USB Anschluss an einem USB Steckernetzeil angesteckt.
Als Lautsprecher nutze ich direkt den im Radio vorhandenen. (4 Ohm Impedanz)

Derzeit habe ich beim Starten eines Streams oder einer MP3 Wiedergabe teilweise noch ein Knackgeräusch, was für mich nicht so schlimm ist. Anfangs startete bei jedem “Knack” der Raspberry Pi neu. Die Ursache war meines Erachtens eine kurzfritige Unterpannung durch den “Knack”, die den Raspberry Pi zum Absturz brachte. Abhilfe schaffte hier ein Elko 2200 uF / 10 V auf meiner Zusatzplatine an den GPIO Pins 2 (5 V) und 6 (GND). In den Installtionshinweisen von Adafruit wird auf dieses Problem mit dem ALSA Sound eingegangen, der beschriebene Workaraound hat bei mir nichts gebracht. Deswegen lebe ich mit dem Knacken. :-)


Die Verkabelung des Verstärker Moduls mit dem RasPi

Modul MAX98357 ————————- Raspberry Pi
Vin ———————————————— Pin 2 (5 V)
GND ——————————————— Pin 6 (GND)
DIN (Data in) ——————————- Pin 40 (GPIO 21)
BCLK (Bit Clock) ————————- Pin 12 (GPIO 18)
LRC (Left, Right Clock) —————- Pin 35 (GPIO 19)

und ausserdem kommt noch ein Elko 2200 uF / 10 V wie oben beschrieben über Pin 2 und 6.


die Treiber Software für den Verstäker

hier einfach die Produktseite (Link auf dieser Seite oben) von Adafruit aufrufen, hier gibts eine genaue Installationsanleitung, die das Installieren des Treibers über ein bash-Script erklärt.

Hier die Kurzversion:
curl -sS https://raw.githubusercontent.com/adafruit/Raspberry-Pi-Installer-Scripts/master/i2samp.sh | bash startet die Installation.

Activate '/dev/zero' playback in background? [RECOMMENDED] [y/N] => y

die Installation verlangt einen Neustart, diesen machen

danach obigen Befehl erneut ausführen

Neustart, fertig!


die Music Player Software

sudo apt-get install mpd Installation MPD Server (Music Player Deamon)

cd /var/lib/mpd/ Wechsel ins Verzeichnis /var/lib/mpd/

sudo chmod 775 music Rechte für Verzeichnis music setzen

sudo chown :audio music Gruppe audio

sudo usermod -a -G audio pi Benutzer Pi der Gruppe audio hinzu

cd /var/lib/mpd/

sudo chmod 777 playlists

sudo service mpd restart Neustart des MPD Servers


die Bedienungs App fürs Smartphone

die Bedienung mache ich mit der kostenlosen Android Smartphone App MPDroid, Infos gibts hier: https://github.com/abarisain/dmix

Mit der App ist das Abspeichern neuer Radiosender, das Wählen der Radiosender und die Lautstärke Regelung möglich.

Achtung: die Verbindung mit dem mpd Server klappt nur, wenn die Berechtigungen auf die Ordner gesetzt sind!

Das Editieren der Senderliste geht auch über:
sudo nano "/var/lib/mpd/playlists/[Radio Streams].m3u"

Natürlich können auch MP3s auf die Speicherkarte abgelegt werden, die ebenfalls mit der App gespielt werden können.


weiterführende Befehle

zur Bedienung des MPD gibts auch eine andere Möglichkeit nämlich den Media Player Client, der über die Kommandozeile bedient wird:

sudo apt-get install mpc mpc (Music Player Client) installieren

hier ein paar Codeschnipsel:

mpc clear Playlist löschen

mpc load mpc-radio Playlist laden

mpc lsplaylists Playlist anzeigen

mpc play 1

mpc play 2

mpc play 3

mpc vol +5 Lautstärke einstellen

mpc vol -15

mpc vol 20

mpc vol 40

mpc vol 80

mpc pause

mpc play

mpc stop


Youtube für die Kommandozeile

Hier noch eine nette Anwendung: Youtube für die Kommandozeile :-)

sudo apt-get install python3-pip

sudo apt-get install mpv mplayer

sudo pip3 install mps-youtube

mpsyt Starten des Programmes