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/
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]
[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.
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.
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.
Der Mopidy-Webserver ist nun installiert.
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.
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:
Nach dem Abspeichern der Datei und dem Neustart des Mopidy-Dienstes wird die gespeicherte Musik in der Weboberfläche angezeigt.
[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.
Nach dem Neustart der Mopidy-Dienste kann die Spotify-Integration getestet werden.
[9] Installation Spotify-Integration: https://mopidy.com/ext/spotify/