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