Beschreibung der Software-Entwicklung

Zuerst wurden die Anforderungen abgestimmt und geeignete Umsetzungsmaßnahmen im Team diskutiert.

Diese Anforderungen werden zu einem Teil durch die fertige Software Lösung PiMusicBox abgedeckt. Da es sich um eine geschlossene Komplettlösung handelt, die nicht anpassbar und intransparent ist, wird die Basis-Software Mopidy verwendet, auf der PiMusicBox basiert. Mopidy kann durch verfügbare Module stark erweitert und gut angepasst werden.

Kurzbeschreibung Software

Mopidy ist ein Musikserver basierend auf der Programmiersprache Python. Da Mopidy Open-Source ist, ist der Quellcode frei verfügbar. Mopidy kann durch Module erweitert werden und bietet in der Basisausführung einen Websserver und einen MPD-Server. Mopidy kann auf sämtlichen Linux-Distributionen installiert werden, mitunter auch auf Raspberry Pi OS, wodurch der Raspberry Pi sich ideal zur Umsetzung unseres Projektes eignet. Mopidy stellt eine ausführliche Dokumentation bereit, wodurch die Erweiterungen ohne Programmierkenntnisse in Python konfiguriert werden können.

Installation Raspberry Pi OS

Zur Installation von Raspberry Pi OS[1] auf der microSD-Karte wird balenaEtcher[2] verwendet. Nach dem Herunterladen von balenaEtcher, sowie der Raspberry Pi OS ISO-Installationsdatei von den offiziellen Webseiten, kann balenaEtcher zum Schreiben von ISO-Dateien auf SD-Karten oder USB-Sticks verwendet werden. Zur einfacheren Administration wird die Variante inkl. Desktop installiert.

[1] Raspberry Pi OS: https://www.raspberrypi.org/software/operating-systems/#raspberry-pi-desktop
[2] balenaEtcher: https://www.balena.io/etcher/

Image auf microSD-Karte spielen

Aktivierung SSH zur Administration

Zur Administration und Konfiguration wird SSH aktiviert. Um SSH bereits beim ersten Start vom Raspberry Pi zu aktivieren, wird eine leere Datei mit dem Namen “ssh” in der Boot-Partition der microSD angelegt. SSH kann auch über die Raspi-Config aktiviert werden. [3]

SSH-Datei in der Boot-Partition anlegen

[3] Aktivierung SSH: https://www.elektronik-kompendium.de/sites/raspberry-pi/1906281.htm

Anschließend wird die microSD-Karte in den Raspberry Pi eingelegt. Nach dem Start wird die per DHCP vergebene IP-Adresse des Raspberry Pis ermittelt. Die IP-Adresse kann über den Router herausgefunden werden. Nach Ermittlung der IP-Adresse kann eine Verbindung per SSH hergestellt werden.

Verbindung per SSH erfolgreich hergestellt

Installation xRDP

Damit auf die grafische Oberfläche des Raspberry Pis per Fernverwaltung (in dem Fall RDP) zugegriffen werden kann, wird xRDP installiert. [4]

sudo apt-get install xrdp

[4] Installation xRDP: https://www.elektronik-kompendium.de/sites/raspberry-pi/2109031.htm

Installation Mopidy [5]

Mopidy benötigt zum Zugriff auf dem Raspberry Pi einen eigenen Benutzer auf dem Betriebssystem. Dieser wird mit dem folgenden Befehl angelegt:

sudo adduser mopidy video

Anschließend werden die benötigten Repositories für Mopidy geladen, hier können dann nicht nur Mopidy selbst, sondern später auch die benötigten Standard-Extensions heruntergeladen werden.

wget -q -O - https://apt.mopidy.com/mopidy.gpg | sudo apt-key add -
sudo wget -q -O /etc/apt/sources.list.d/mopidy.list https://apt.mopidy.com/buster.list
sudo apt update
sudo apt install mopidy

[5] Installation Mopidy:
https://docs.mopidy.com/en/latest/installation/raspberrypi/
https://docs.mopidy.com/en/latest/installation/debian/

Einrichtung Mopidy als Dienst

Mopidy ist nun installiert und kann direkt ausgeführt werden. Die Anwendung soll allerdings nicht selbst ausgeführt werden, sondern im Hintergrund als Dienst ab dem Start des Raspberry Pi laufen.

Über den Linux Dienstemanager “systemd” kann Mopidy als Dienst aktiviert werden. Anschließend wird der Dienst gestartet und geprüft, ob der Dienst läuft.

Aktivierung Mopidy als Dienst

Konfiguration Mopidy
Für Mopidy gibt es eine Konfigurationsdatei, die über den Nano-Editor angepasst werden kann.

 sudo nano /etc/mopidy/mopidy.conf 

Zum Testen und zum Zugriff auf die Musik wird zuerst der Mopidy-Webserver aktiviert.

Aktivierung Webserver

Der Mopidy-Webserver ist nun installiert.

Testverbindung Webserver

Zum Zugriff wird nun noch das ansprechende Design “Iris” für die Weboberfläche eingestellt, das dem Spotify-Design ähnelt. [6] Die Weboberfläche ist zudem für die mobile Nutzung optimiert und daher geeignet für die mobile Steuerung der Musik über das Smartphone.

sudo python3 -m pip install Mopidy-Iris

[6] Design “iris”: https://mopidy.com/ext/iris/

Hochladen von lokalen Dateien (per SMB)

Lokale Musik kann nun bereits über unseren JukeboxPi aus bestimmten Ordnern abgespielt werden. Um Musik hochladen zu können soll eine SMB-Freigabe eingesetzt werden. [7] Hierzu wird zuerst ein neuer Ordner unter “/home/shares/Music/” erstellt.

sudo mkdir /home/shares/
sudo mkdir /home/shares/Music

Anschließend wird ein SMB-Server sowie Client auf dem JukeboxPi installiert.

sudo apt-get install samba samba-common smbclient

Nach der Installation kann über eine Konfigurationsdatei mit dem Nano-Editor die SMB-Freigabe eingestellt werden.

sudo nano /etc/samba/smb.conf

In der Konfigurationsdatei wurde folgender Eintrag hinzugefügt.

Eintrag in SMB-Konfiguration

Nach einem Neustart des SMB-Dienstes ist der freigegebene Ordner bereits von einem anderen Gerät erreichbar. Die Anmeldung ist mit dem Standard-Anmeldedaten des Pi-Benutzers möglich.

[7] Aktivierung SMB: https://www.elektronik-kompendium.de/sites/raspberry-pi/2007071.htm

Das File-Modul von Mopidy wird aktiviert und der erstellte Ordner angegeben. Hierzu wird erneut die Konfigurationsdatei von Mopidy angepasst.

 sudo nano /etc/mopidy/mopidy.conf 

Folgende Zeilen werden zur Kommando-Zeile hinzugefügt:

Eintrag Mopidy-File Konfiguration

Nach dem Abspeichern der Datei und dem Neustart des Mopidy-Dienstes wird die gespeicherte Musik in der Weboberfläche angezeigt.

Test-Zugriff /home/shares durch Mopidy

[8] Installation Files: https://docs.mopidy.com/en/latest/ext/file/

Installation Spotify Integration

Mit dem Modul Mopidy-Spotify kann ein Spotify-Account in Mopidy integriert werden. [9] Hierzu wird zunächst das Modul installiert:

sudo apt install mopidy-spotify

Anschließend benötigt Mopidy einen API-Zugriff auf den Spotify-Account, der verwendet wird. Die generierte Client-ID, Client-Secret sowie die Zugangsdaten müssen nun innerhalb der Mopidy-Konfiguration eingetragen werden.

Aktivierung Mopidy-Spotify (einige Einträge sind geschwärzt)

Nach dem Neustart der Mopidy-Dienste kann die Spotify-Integration getestet werden.

[9] Installation Spotify-Integration: https://mopidy.com/ext/spotify/