Inhalt
Einleitung ↑
In dieser Anleitung geht es um die Einrichtung ein Webradios mit einem Raspberry Pi Zero, einer pHAT DAC-Soundkarte und der Bedienung via Handy/Browser.
Mit Hilfe dieses Dokuments ist eine 1:1 Nachbildung möglich, nicht zu detailliert wie
diese, für tiefere Details den Links in den Quellen folgen.
Viel Spass!
Installation ↑
Ich nutze auf dem Mac
ApplePi Baker v1.9.4 und das aktuellste
Image von
https://www.raspberrypi.org/.
Anders als beim normalen Pi benötigt der Zero eine
MicroSD-Karte mit Adapter. Ist das Image ausgewählt kann jetzt die Karte beschrieben werden, dann auswerfen und in den Pi Zero stecken.
Setup ↑
Für das weitere Setup wird ein
Adapter HDMI auf Mini-HDMI-Karte,
Micro-USB auf USB und das gewohnte
Micro-USB-Netzteil benötigt.
Zuerst wird eine Tastatur angeschlossen und wir logen uns mit den Default-Daten ein:
Benutzer: pi
Passwort: raspberry
Als Standard ist das englische Tastaturlayout eingestellt und somit Y und Z vertauscht, beim Passwort beachten!
Über
sudo raspi-config
starten wir das Setup des Pi und ändern folgende Optionen (der letzte Update-Schritt kann natürlich erst mit Netzwerkverbindung erfolgreich durchgeführt werden).
- Expand Filesystem
- Change User Password
- Internationalisation Options
- Change Locale
- de_DE.UTF-8 UTF-8 - de_DE.UTF-8
- Change Timezone
- Change Keyboard Layout
- Generische PC-Tastatur mit 105 Tasten (Intl) – Andere – Deutsch – Deutsch – Der Standard für die Tastenbelegung – Keine Compose-Taste
- Change Wi-fi Country
- Advanced Options
Dann schließen wir die Grundkonfiguration mit
[Finish]
ab und booten den Pi neu.
WLAN einrichten ↑
Wir editieren nun die
/etc/network/interfaces
mittels
sudo nano /etc/network/interfaces
Meine Anpassungen sehen wie folgt aus:
# interfaces(5) file used by ifup(8) and ifdown(8)
# Please note that this file is written to be used with dhcpcd
# For static IP, consult /etc/dhcpcd.conf and 'man dhcpcd.conf'
# Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d
auto lo
iface lo inet loopback
iface eth0 inet dhcp
auto wlan0
allow-hotplug wlan0
iface wlan0 inet static
wpa-ssid "WLAN-ID"
wpa-psk "WLAN PASSWORT"
address 192.168.2.40
netmask 255.255.255.0
gateway 192.168.2.1
iface default inet dhcp
wireless-power off
Mit Strg+O und Strg+X abspeichern und beenden.
Nun kann die Tastatur aus dem USB-Adapter entfernt und ein
WLAN-USB-Dongle angeschlossen werden.
Nach erneutem Boot ist jetzt ein Zugriff via SSH im Terminal möglich und der Monitor kann abgeklemmt werden.
ssh pi@192.168.2.40
Damit alle Pakete auf dem aktuellsten Stand sind, lassen wir diese noch aktualisieren:
sudo aptitude update
sudo aptitude upgrade
FTP Server↑
Installieren von
ProFTPD mittels:
sudo aptitude install proftpd
die Abfrage nach
Servermodus bestätigen.
Nun öffnen wir die Konfigurationsdatei mit
sudo nano /etc/proftpd/proftpd.conf
und editieren folgende Zeilen an den Schluss, um virtuelle User erstellen zu können:
DefaultRoot ~
AuthOrder mod_auth_file.c mod_auth_unix.c
AuthUserFile /etc/proftpd/ftpd.passwd
AuthPAM off
RequireValidShell off
Mit Strg+O und Strg+X abspeichern und beenden.
Es wird im Home-Verzeichnis ein neuer Ordner erstellt:
mkdir /home/pi/webradio
und die Rechte angepasst:
sudo chmod g+s /home/pi/webradio
sudo chmod 775 /home/pi/webradio
Dann wechseln wir in das Paketverzeichnis und erstellen unseren virtuellen User mittels
cd /etc/proftpd/
sudo ftpasswd --passwd --name pi --uid 33 --gid 33 --home /home/pi/webradio --shell /bin/false
Die Passworteingabe bestätigen wir zwei mal mit unserem Wunschpasswort
pHAT DAC einrichten↑
Ist die GPIO-Leiste am Pi und die Buchsenleiste am pHAT DAC angelötet kann diese ineinander gesteckt und das
Installationsskript ausgeführt werden:
curl -sS get.pimoroni.com/phatdac | bash
Der Pi bootet nun neu, danach kann die Soundausgabe mit
speaker-test -l2 -c2 -t wav
geprüft werden.
MPD und MPC↑
Nun werden
MPD und
MPC, unsere Musikclients installiert.
sudo aptitude install mpd mpc
Danach verschieben wir unsere Konfigurationsdatei von MPD und erstellen diese anschließend neu
sudo mv /etc/mpd.conf /etc/mpd.conf.orig
sudo nano /etc/mpd.conf
In die leere Konfigurationsdatei fügen wir nun ein:
music_directory "/var/lib/mpd/music"
playlist_directory "/var/lib/mpd/playlists"
db_file "/var/lib/mpd/tag_cache"
pid_file "/var/run/mpd/pid"
sticker_file "/var/lib/mpd/sticker.sql"
user "mpd"
input {
plugin "curl"
}
audio_output {
type "alsa"
name "onboard"
}
mixer_type "software"
audio_buffer_size "4096"
filesystem_charset "UTF-8"
id3v1_encoding "UTF-8"
Mit Strg+O und Strg+X abspeichern und beenden.
Der Dienst wird nun neu gestartet:
sudo service mpd restart
Und wir erstellen unsere Playlist mit
sudo nano /var/lib/mpd/playlists/sender.m3u
in die fügen wir die Beispiel-URLs ein:
#1
http://streams.bcs-systems.de/slp/live/leipzig/mp3/web
#2
http://streams.radiopsr.de/psr-live/mp3-128/mediaplayer
#3
http://139.18.27.192:8000/mephisto976_livestream.mp3
#4
http://c22033-ls.i.core.cdn.streamfarm.net/UjIe753Ui9922033/22033mdr/live/app2128740352/w2128904195$
#5
http://c22033-ls.i.core.cdn.streamfarm.net/T3R6XGogC9922033/22033mdr/live/app2128740352/w2128904194$
#6
http://stream.dradio.de/7/530/142684/v1/gnl.akacast.akamaistream.net/dradio_mp3_dkultur_m
#7
http://stream.dradio.de/7/249/142684/v1/gnl.akacast.akamaistream.net/dradio_mp3_dlf_m
#8
http://1live.akacast.akamaistream.net/7/706/119434/v1/gnl.akacast.akamaistream.net/1live
#9
http://swr-mp3-m-swr3.akacast.akamaistream.net/7/720/137136/v1/gnl.akacast.akamaistream.net/swr-mp3$
#10
http://rbb-mp3-radioeins-m.akacast.akamaistream.net/7/854/292097/v1/gnl.akacast.akamaistream.net/rb$
#11
http://stream.laut.fm/deutschrap-deluxe
#12
http://stream.jam.fm/jamfm-live/mp3-128/konsole
#13
http://laut.fm/deutschrap
#14
http://hestia2.cdnstream.com/1301_128
#15
http://live.m2stream.fr/m2sunshine-128.mp3
#16
http://50.7.98.106:8447
#17
http://starfm6.explodio.net:8104
#18
http://laut.fm/rockradio
Mit Strg+O und Strg+X abspeichern und beenden.
Autostart bearbeiten↑
Damit beim Start des Pi direkt ein Wunschsender abgespielt wird und unsere nachfolgenden Webserver-Daten kopiert werden, müssen wir uns via FTP verbinden und den Inhalt von
PiRadio_webradio.zip nach
/home/pi/webradio
kopieren.
Danach folgt die eigentliche Bearbeitung des Autostarts mit
sudo nano /etc/rc.local
die unteren 4 sudo-Zeilen wurden ergänzt:
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
# Print the IP address
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
printf "My IP address is %s\n" "$_IP"
fi
sudo cp /home/pi/webradio/* /var/www/html/
sudo mpc load sender
sudo mpc volume 40
sudo mpc play 1
exit 0
Damit startet bei jedem Boot das Kopieren der via FTP kopierten Apache-Files, die Initialisierung der Senderliste, die Lautstärkeregelung auf 40% und der Sender 1 aus der Playlist.
Mit Strg+O und Strg+X abspeichern und beenden.
Apache installieren ↑
Damit die Ansteuerung des Webradios komfortabel via Handy (im gleichen WLAN-Netz) erfolgen kann, installieren wir einen lokalen PHP-Server:
sudo aptitude install apache2 php5 libapache2-mod-php5
Nach erneutem Boot löschen wir die von Apache angelegt Startdatei:
sudo rm /var/www/html/index.html
Eigener Aufbau ↑
Ich nutze für den Pi einen
Adafruit Mono 2.5W Class D Audio Amplifier - PAM8302 zusammen mit folgendem
Visaton FRS 8 8 Lautsprecher.
Die Verkabelung ist in dieser
Anleitung gut zu sehen.
Mit Hilfe des Apacheservers lässt sich unser Webradio nun via Browser oder Smartphone bedienen:
Quellen ↑