MACROVIS

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
      • Europe – Berlin
    • 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
      • DE Germany
  • Advanced Options
    • Hostname
    • SSH
    • Update
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 ↑