Webradio - edmh

Einkaufswagen
Electronic Design Michael Hofmann
Direkt zum Seiteninhalt

Hauptmenü:

Webradio basteln

Die folgende Anleitung beschreibt, wie ich mein Webradio gebaut habe. Wenn Sie andere Bauteile verwenden, kann es sein, dass Sie Anpassungen vornehmen müssen. Wenn Sie das Webradio nachbauen wollen, sollten Sie sich ein wenig mit Elektronik und dem Raspberry Pi auskennen. Ich hoffe, dass meine Anleitung einfach und verständlich ist, allerdings gehe ich nicht auf alle Grundlagen ein.
Webradio basteln
Das Webradio ist entstanden, weil es in meiner Familie immer Ärger mit den Radiosendern gab. Jeder wollte einen anderen hören und meine Lieblingssender waren immer verstellt. Im Internet konnte ich kein Radio finden, welches meine Anforderungen erfüllt. Die Anforderungen sahen wie folgt aus:
- Einfach zu Bedienen
- Es soll Musik spielen wenn ein Knopf gedrückt wird
- Uhrzeit soll auch bei Dunkelheit lesbar sein
- Schönes Design, am liebsten aus Holz
- Preis sollte unter 150 EUR sein

Eigentlich keine anspruchsvollen Forderungen. Das denken sich wahrscheinlich auch viele Hersteller und bauen jede Menge Zusatzfunktionen ein, die kaum jemand nutzt. Im Prinzip wollte ich nur ein Internetradio welches auf Knopfdruck Musik spielt und mit einem Knopfdruck auch wieder aus ist.

In der folgenden Tabelle habe ich die elektronischen Teile aufgelistet, die für den Bau benötigt werden. Beim Bau des Gehäuses können Sie ihren Vorstellungen freien Lauf lassen. Die Taster und Anschlussstecker müssen über Drähte auf die Stiftleiste des Raspberrys gelegt werden. Sie können natürlich auch andere Lautsprecherklemmen und Taster verwenden. Das ist eben das Schöne am Basteln eines Webradios - Man hat die volle Freiheit.

ArtikelBeschreibungBezugsquelle
Raspberry Pi 3Linux-Rechner mit WLAN-SchnittstelleReichelt*
HifiBerry Amp+Class-D-Audio-Verstärker 25WReichelt*
Adafruit 7-Segment Anzeige4-stellige Ziffernanzeige mit I2CAmazon*
Netzteil 12 VSteckernetzteil 12 V / 36WReichelt*
Micro SD-KarteMicro SD-Karte 8, 16 oder 32 GBReichelt*
Hohlstecker-Buchse 2,1mmfür NetzteilanschlussReichelt*
Lautsprecherklemmenzum Anschluss der LautsprecherkabelReichelt*
TasterLeiterplattentasterReichelt*
Drehgeberfür die Einstellung der LautstärkeReichelt*
Buchsenleistefür Steckanschluss an RaspberryReichelt*
ProjektunterlagenMeine Unterlagen zum Webradio bastelnwebradio.zip

Die Hardware des Webradios

Wenn sie gerne mit Elektronik basteln, sollten Sie keine Probleme haben. Damit das Internetradio wie gewünscht funktioniert, sind nur wenige Anschlussleitungen erforderlich. Diese schließen Sie am besten über eine Buchsenleiste an, die danach in die Stiftleiste des HifiBerry Verstärkers gesteckt wird. Dadurch müssen Sie nicht direkt an der hochwertigen Elektronik löten und können die Steckverbindung im Reparaturfall einfach trennen. Ich habe versucht das Gehäuse so klein wie möglich zu gestalten. Allerdings gibt es dann schnell Platzprobleme und man muss kämpfen um die Bedienelemente und Kabel anschließen zu können. Wenn Sie ein eigenes Gehäuse bauen, achten Sie darauf, dass sie alle Teile gut verbinden können.

Schaltplan
Den Schaltplan können Sie sich auch hier als PDF herunterladen.
Pinbelegung des Raspberry Pi


Anschluss der Taster


Anschluss des Drehgebers


Anschluss der 7-Segment-Anzeige


Die fünf Taster und der Drehgeber werden über GPIO-Pins, die als Eingang konfiguriert werden, angeschlossen. Die 7-Segment-Anzeige wird über den I2C-Bus angesteuert. Beim Drehgeber sind noch zwei RC-Glieder für die Entprellung nötig.

Die Software des Webradios

Im Folgenden beschreibe ich Ihnen Schritt für Schritt welche Tools und Softwarepakete sie für die Programmierung des Webradios benötigen und wie Sie diese installieren. Das Webradio läuft auf einem Raspberry Pi 3, der bereits über ein WLAN-Modul verfügt und so sehr einfach in Ihr Heimnetzwerk einzubinden ist. Bevor Sie sich an die Programmierung machen, sollten Sie das Webradio zusammen basteln, damit Sie die einzelnen Softwareteile direkt ausprobieren können. Sie müssen das Internetradio noch nicht in Ihr Gehäuse bauen, die Taster, der Drehgeber und die 7-Segment-Anzeige sollten aber mit der Hardware verbunden sein. Wenn Sie das Internetradio einfach nur nachbauen wollen, müssen Sie nichts programmieren und können die fertigen Skripte einfach herunterladen und zusammen basteln. Sollten Sie Änderungen vornehmen wollen, benötigen Sie geringe Kenntnisse in der Programmiersprache Python. Dazu finden Sie im Internet viele Beispiele und Tutorials für den Einstieg.

Image auf SD-Karte brennen
Auf dem Raspberry läuft Raspbian Jessie, welches Sie unter www.raspberrypi.org herunterladen können. Sie erhalten eine Image-Datei, die Sie auf die SD-Karte brennen (kopieren) müssen. Dazu können Sie z.B. das Tool Win32 Disk Imager verwenden. Um das Image zu brennen, stecken Sie die Micro-SD-Karte in den Kartenleser und wählen in dem Tool den entsprechenden Laufwerksbuchstaben aus. Hier ist es wichtig, wirklich den richtigen zu wählen, da sonst die Daten auf einem anderen Laufwerk gelöscht und überschrieben werden. Anschließend wählen Sie noch das Imagefile aus und klicken auf Write. Wenn das Image erfolgreich geschrieben wurde, können Sie die SD-Karte entnehmen und in den RaspberryPi stecken.

Inbetriebnahme des RaspberryPi
Stecken Sie die HifiBerry Soundkarte auf den Raspberry Pi und befestigen diese mit den beiliegenden Schrauben. Nachdem die SD-Karte im Raspberry Pi steckt, schließen Sie zusätzlich noch eine Tastatur und eine Maus über zwei USB-Ports an. Anschließend verbinden Sie noch den Pi mit einem Monitor über den HDMI-Port. Jetzt können Sie das 12 V Netzteil in die Hohlsteckerbuchse der Soundkarte stecken und der Raspberry beginnt zu booten. Bitte beachten Sie dass der Raspberry Pi über die HifiBerry-Karte über einen 5V-Regler versorgt wird. Wird eine Spannung von 12 V direkt an dem Raspberry Pi angeschlossen kann dieser zerstört werden. Normalerweise wird der Raspberry über eine Micro-USB-Buchse mit 5 V versorgt. Auf dem Monitor können Sie den Bootvorgang erkennen. Sobald der Desktop sichtbar ist, ist der Pi einsatzbereit und es können Programme gestartet werden. Für die erste Konfiguration sollten Sie den Pi über ein Netzwerkkabel mit Ihrem Router verbinden, da viele Daten aus dem Internet geladen werden müssen. Eine Verbindung über WLAN ist auch möglich, diese ist allerdings störanfälliger und langsamer. Wenn alles eingerichtet ist, können sie auf WLAN umschalten. Falls irgendwo das Passwort benötigt wird: Der Standardbenutzer heißt "pi" und das Passwort ist "raspberry". Dies kann natürlich später geändert werden.

Grundkonfiguration
Bevor Sie sich an die eigentliche Anwendung machen, sollten Sie noch wichtige Einstellungen vornehmen, damit das richtige Tastaturlayout und die Sprache eingestellt werden. Am Einfachsten geht dies über die grafische Benutzeroberfläche des Raspberrys.
Zuerst muss das Filesystem erweitert werden, damit die volle Kapazität der SD-Karte genutzt werden kann.
Menu -> Preferences -> Raspberry Pi Configuration
Im Tab System auf "Expand Filesystem klicken" mit OK bestätigen und den Raspberry Pi neu booten.
Nach dem Neustart gehen Sie wieder in die Raspberry Pi Configuration
Im Tab Interfaces enablen Sie: SSH, VNC, SPI, I2C und Serial
Im Tab Localisation setzen Sie ihre Sprache, Tastaturlayout und Zeitzone. Gehen Sie alle Punkte von oben nach unten durch und nehmen Sie die entsprechenden Einstellungen vor. Danach muss der Pi wieder neu gestartet werden.

Update / Upgrade
Bevor Sie mit der Installation von Softwarepaketen beginnen, sollten Sie das Betriebssystem auf den neusten Stand bringen. Öffnen Sie ein Terminal (oben in der Hauptmenüleiste unter LXTerminal) und geben Sie folgende Befehle ein:
sudo apt-get update
sudo apt-get upgrade
Danach dauert es eine ganze Weile, bis der Raspberry Pi alle Treiber und Tools aus dem Internet geladen und aktualisiert hat. Sollte es zu Fehlern kommen, versuchen Sie die Befehle erneut.
Jetzt wird noch die Firmware des Raspberrys aktualisiert.
sudo rpi-update
reboot

HifiBerry Amp+ installieren
Damit der HifiBerry Amp als Soundkarte verwendet werden kann, sind folgende Schritte notwendig:
In der Datei /boot/config.txt muss die Zeile dtparam=audio=on auskommentiert werden, damit der Onboard-Soundtreiber nicht geladen wird. An dessen Stelle wird der HifiBerry Amp+ verwendet. (Nano ist ein kleiner Texteditor, dem mit Strg+X beendet werden kann.)
sudo nano /boot/config.txt
dtparam=audio=on ändern in #dtparam=audio=on
Folgende Zeilen müssen noch hinzugefügt werden:
# Enable HiFi-Berry Amp+
dtoverlay=hifiberry-amp
Datei speichern.
Für die Konfiguration von ALSA (Advanced Linux Sound Architecture) müssen Sie das File /etc/asound.conf generieren und folgenden Inhalt eintragen:
sudo nano /etc/asound.conf
pcm.!default {
type hw card 0
}
 
ctl.!default {
type hw card 0
}
Datei speichern.
reboot
Wenn Sie die Soundkarte nun schon einmal testen wollen, müssen Sie z.B. mit Filezilla einen Testsong auf den RaspberryPi kopieren. Kopieren sie ein beliebiges Lied im mp3 Format (z.B. testsong.mp3) in das Verzeichnis /home/pi/Music. Sie müssen natürlich vorher Lautsprecher anschließen.
Kurze Anleitung für Filezilla:
Auf dem Raspberry ifconfig ausführen und IP-Adresse ermitteln.
In Filezilla unter Server die IP-Adresse eingeben. (z.B. 192.168.178.45)
Benutzername ist "pi" und Passwort "raspberry"
Beim Port geben Sie 22 für SFTP ein und klicken auf Verbinden. Sie sollten nun die Verzeichnisstruktur des Raspberry Pi's sehen und können Dateien kopieren.
Nachdem Sie das Lied kopiert haben, geben sie im Terminal folgenden Befehl ein:
omxplayer -o alsa ~/Music/testsong.mp3
Das Lied wird abgespielt und die Lautstärke kann über die Tasten + und - geändert werden. Mit Strg+C wird das Abspielen beendet.
Alternativ können Sie sich auch die installierten Soundkarten mit folgendem Befehl anzeigen lassen:
aplay -l
Hier sollte als Karte 0: sndrpihifiberry aufgeführt sein.

VLC-Player installieren
Der VLC-Player ist ein sehr beliebter Player, der auf vielen Plattformen läuft und nahezu alles ohne zu Mucken abspielt. Dieser wird nun installiert.
sudo apt-get install vlc
Nach der Installation, kann man den Player mit
vlc
starten.
Nun kann man einen Internetradio-Stream aus dem Internet abspielen. Bevor Sie das Abspielen starten, sollten Sie den Lautstärkeregler auf ca. 10% stellen. Danach gehen Sie im Menü auf Medien -> Netzwerkstream öffnen ... und geben die Adresse eines Internetradio-Streams ein. (z.B. http://streams.br.de/bayern3_2.m3u)
VLC Netzwerkstream öffnen VLC Netzwerkstream öffnen
Sie können die Lautstärke auch mit dem alsamixer reduzieren. Rufen Sie dazu den Befehl alsamixer im Terminal auf und stellen den Regler Master auf ca. 75 und drücken ESC zum Beenden.
Alsamixer
Als nächstes wird der VLC-Player noch entsprechend konfiguriert, damit man ihn über Taster und einen externen Browser oder eine App fernsteuern kann. Dazu gehen Sie im Menü auf Werkzeuge -> Einstellungen. Links unten finden Sie einen Punkt "Einstellungen zeigen". Dort klicken Sie auf Alle. Klicken Sie auf den Punkt Interface -> Hauptinterfaces und aktivieren Sie Telnet, Web und Lua-Interpreter.
VLC Einstellungen VLC Einstellungen
Anschließend müssen Sie noch ein Passwort für Lua-HTTP und Lua -Telnet vergeben. Dies stellen sie im Unterpunkt von Hauptinterfaces unter Lua ein. Geben Sie hier für Lua-Telnet das Standardpasswort "admin" ein und bei Lua-HTTP "raspberry". Sie können die Passwörter später ändern, allerdings erfordert dies auch eine Anpassung in den Python-Skripten.
VLC Einstellungen
Damit auch nach einem Neustart die richtige Soundkarte verwendet wird, müssen Sie noch eine Einstellung vornehmen. In den Einstellungen (Einstellungen zeigen -> Alle) gehen Sie auf den Punkt Audio -> Ausgabemodule -> ALSA. Hier finden Sie eine Dropdownliste für das Audio-Ausgabegerät. Sie müssen "snd_rpi_hifiberry_amp, Direct hardware device without any conversions" auswählen.
Danach speichern Sie die Einstellungen über den Button Speichern.
VLC Einstellungen
Die Einrichtung des VLC-Players ist nun erst einmal abgeschlossen und Sie können sich an die Einrichtung der Python-Libraries machen.

Sie finden unter https://github.com/DerMitch/py-vlcclient eine Library zum steuern des VLC-Players. Diese muss mit folgenden Befehlen installiert werden:
mkdir Pythondownloads
cd Pythondownloads
git clone https://github.com/DerMitch/py-vlcclient.git
cd py-vlcclient
sudo python setup.py install

7-Segment-Anzeige einrichten
Zuerst werden zwei Tools für das I2C-Interface installiert. Tutorials finden Sie auch unter https://learn.adafruit.com/
sudo apt-get install python-smbus
sudo apt-get install i2c-tools
Es kann sein, dass Sie bereits die aktuellste Version haben und nichts aktualisiert wird. Anschließend müssen in der Datei /etc/modules zwei Zeilen ergänzt werden.
sudo nano /etc/modules
Die folgenden beiden Zeilen müssen eingetragen werden, falls noch nicht vorhanden:
i2c-bcm2708
i2c-dev
Datei speichern.
Danach wird die Datei /boot/config.txt editiert.
sudo nano /boot/config.txt
Hier ergänzen Sie die beiden folgenden Zeilen:
dtparam=i2c1=on
dtparam=i2c_arm=on
Vermutlich ist die zweite Zeile bereits in dem File vorhanden. Ist dies der Fall, können sie die andere Zeile direkt darüber eintragen und anschließen die Datei speichern.
Nun werden noch die Python-Treiber installiert. Die Sourcen dazu finden Sie unter https://github.com/adafruit/Adafruit_Python_LED_Backpack
Wechseln sie in das Verzeichnis Pythondownloads, welches Sie im vorherigen Abschnitt erstellt haben und laden Sie die Sourcen von github herunter.
cd Pythondownloads
git clone https://github.com/adafruit/Adafruit_Python_LED_Backpack
cd Adafruit_Python_LED_Backpack
sudo python setup.py install
reboot
Nach dem Neustart können Sie die 7-Segment-Anzeige testen.
cd ~/Pythondownloads/Adafruit_Python_LED_Backpack/examples
python sevensegment_test.py
Nun sollten Sie auf dem 7-Segment-Display verschiedene Anzeigen sehen. Das Beispiel können Sie mit Ctrl+C beenden. Sie haben nun die 7-Segment-Anzeige erfolgreich eingerichtet.

Python-Skript Webradio starten
Kopieren sie das Skript webradio.py in das Homeverzeichnis (z.B. mit Filezilla). Bevor Sie es starten, sollten sie einmal einen Blick darauf werfen und verstehen wie es funktioniert. Lesen Sie dazu die Kommentare hinter den Befehlszeilen um ein grobes Verständnis zu bekommen. Hier müssen Sie später auch ihre eigenen Streams und Playlisten eintragen. Im Skript wird ein Startjingle abgespielt. Dies ist eine normale MP3-Datei und wird zur Begrüßung gespielt, damit man weiß, dass das Webradio nun einsatzbereit ist. Kopieren Sie einen beliebigen Song in das Verzeichnis "/home/pi/Music/" und ändern den Namen im Skript oder benennen die Datei in startsound.mp3 um.
python webradio.py
Wenn Sie möchten, dass ihre Playlist in zufälliger Reihenfolge abgespielt werden, klicken Sie im VLC-Player auf den Button "Zufällig" im unteren Bereich der Bedienelemente.
Da Sie wahrscheinlich keine Tastatur und keine Maus an dem Internetradio anschließen werden, sollten Sie nun noch den Autostart einrichten, damit das Programm automatisch startet, wenn das Webradio einmal vom Strom getrennt war. Den Autostart kann man z.B. über eine Desktop-Datei einrichten. Dazu geht man wie folgt vor:
cd ~/.config/autostart
sudo nano webradioAutostart.desktop
In der Datei wird folgendes eingetragen:
[Desktop Entry]
Name=Autostart-Webradio
Type=Application
Exec=python /home/pi/webradio.py &
Datei speichern und Raspberry neu starten, um alles zu testen.

Tipps und Tricks
Das Webradio läuft nun und es ist Ihnen freigestellt es nach Ihren Vorstellungen und Wünschen abzuändern. Im Folgenden gebe ich Ihnen noch ein paar Tipps für den leichteren Start.

Webinterface des VLC-Players starten
Rufen Sie in einem Browser in Ihrem Heimnetzwerk die Adresse IhreIpAdresse:8080 (Bsp: 192.168.178.45:8080) auf und geben nur das Passwort "raspberry" ein, bzw. das Passwort, welches Sie unter Lua-HTTP festgelegt haben. Den Benutzernamen lassen sie leer.
Es gibt auch eine Vielzahl an Apps für Ihr Smartphone oder Tablet mit dem Sie den VLC-Player steuern können.

Playlist erstellen
Erstellen Sie im Verzeichnis ~/Music einen Ordner mit dem Namen Playlists und kopieren Sie dort alle Lieder hinein, die sie in der Playlist haben wollen. (z.B. mit Filezilla). Auf dem Raspberry Pi gehen Sie auf den Menüpunkt Medien -> Mehrere Dateien öffnen und klicken auf Hinzufügen. Wechseln Sie in den Ordner Playlists und wählen Sie alle Songs für die Playlist aus und klicken Sie auf Öffnen. Nach dem Klick auf den Button Wiedergabe wird das Abspielen gestartet. Jetzt gehen Sie im Menü Medien auf Wiedergabeliste in Datei speichern vergeben einen Namen (z.B. Favourites), wählen als Format M3U-Wiedergabeliste und klicken auf Speichern. Wenn Sie diese Namen verwenden, funktioniert auch direkt das Python-Skript. Ansonsten müssen Sie eine kleine Anpassung vornehmen.

Adressen von Internet-Radiosendern
Auf der Seite https://wiki.ubuntuusers.de/Internetradio/Stationen/ finden Sie eine gute Übersicht von vielen Radiosendern, die sie einfach nur an die entsprechende Stelle im Pythonskript kopieren müssen.

Zum Abschluss wünsche ich Ihnen viel Spaß beim Basteln ihres eigenen Webradios und hoffe, dass Ihnen meine Anleitung geholfen hat. Falls Ihnen ein Fehler auffällt, oder Sie einen Verbesserungsvorschlag haben, können Sie mir gerne eine Nachricht über das Kontaktformular zukommen lassen.

Anzeige
Anzeige HifiBerry 25 W Audio-Verstärker
Anzeige
Anzeige Raspberry Pi 3 mit WLAN und Bluetooth

Das Gehäuse meines Webradios wurde aus Holz gebastelt

Hier möchte ich Ihnen noch ein paar Bilder zeigen, wie ich mein Webradio gebastelt habe.



Es ist aus Buche-Leimholz schichtweise aufgebaut. Die einzelnen Holzteile habe ich aus einem Regalbrett (im Baumarkt erhältlich) mit der Stichsäge ausgesägt. Alle Einzelteile sind zusammen geleimt. Nur die Rückwand ist abnehmbar
und wird mit zwei Schrauben befestigt. Nach dem Verleimen habe ich alles glatt geschliffen und mit Holzöl geölt.



Eigene Holztaster für das Webradio basteln
Die Taster sind günstige Mikrotaster über die ich einen Holzknopf gesetzt habe. Nach innen wird der Knopf durch den Taster gehalten und nach außen durch eine Unterlegscheibe, die an den Knopf geklebt ist. Das Loch für den Taster ist etwas kleiner als die Unterlegscheibe.



*Affiliatelink

HOME | KONTAKT | IMPRESSUM | DATENSCHUTZ | FAQ
* = Affiliatelink

Zurück zum Seiteninhalt | Zurück zum Hauptmenü