Pi Musikplayer mit Autostart von Random Mp3 Datei von SD Karte

Registriere dich jetzt, um exklusive Vorteile zu genießen! Als registriertes Mitglied kannst du Inhalte herunterladen und profitierst von einem werbefreien Forum.
Mach mit und werde Teil unserer Community!
  • Hallo liebes Forum,


    ich bin gerade dabei mein Bad zu renovieren und habe dabei folgendes vor:


    Sobald das Licht eingeschaltet wird, soll ein Musikplayer starten und ein zufälliges Lied von einer SD Karte abspielen.

    Nachdem das Lied abgespielt ist, soll ein neuer zufälliger Titel abgespielt werden.

    Beim Ausschalten des Lichts ist dann der Strom wieder komplett vom Netzteil.

    Zur Verkabelung selbst habe ich bisher aber keine Frage.

    Hauptsächlich geht es mir um ein schlankes Betriebssystem, bzw. sonstige geeignete Software dafür.


    Da ich noch ein Rasbperry Pi3 zuhause habe, würde ich es gerne darüber lösen.

    An den HDMI Anschluss würde ich dann ein kleines Soundsystem anschließen.


    Es soll nach dem Einschalten keine endlos lange Zeit zum booten benötigen und möglichst ohne große Programmierkenntnisse umgesetzt werden können.

    Eine Verbindung mit einem Netzwerk wäre auch nicht nötig, da die gesamte Musik auf der SD Karte abgelegt werden kann.

    Kann mir jemand weiterhelfen mit was man so ein Vorhaben am elegantesten umsetzen kann?

    Über eure Hilfe dazu wäre ich sehr dankbar! :)

  • Hi TSP,


    Willkommen im Forum!

    Beim Ausschalten des Lichts ist dann der Strom wieder komplett vom Netzteil.

    Dann solltest Du mit einem sogenannten Overlay-Filesystem arbeiten, das Du in raspi-config aktivieren kannst. Das ist ein Filesystem, was für's Betriebssystem im Gegensatz zu einem echten read-only-Filesystem "ganz normal" aussieht. Schreibende Änderungen sind möglich, werden aber auf einer RAM-Disk gespiegelt, d.h. alle Änderungen an den Dateien sind nach einem Neustart wieder weg! Beim abrupten Wegnehmen der Stromversorgung bleibt dafür aber das Dateisystem auf der SD-Karte unbeschädigt.


    Bezüglich des Soundsystems empfehle ich für's Bad einen HifiBerry MiniAmp (2x3W Class-D-Verstärker) bzw. mache ich rotzfrech Werbung für mein RPi400extBrd, auf dem u.a. ein 2x2W-Class-AB-Verstärker drauf ist :)


    EDIT:
    Die Elektronik (RPi+Zubehör) muss so verbaut werden, dass die Luftfeuchtigkeit im Bad dem Zeug nichts anhaben kann. Die Lautsprecher müssen ebenfalls für Feuchträume ausgelegt sein!

  • Hi schlizbäda ,


    danke für die ausführliche Antwort!


    Ich bin leider bisher nicht so tief in diesem Thema drin.

    Ich hatte gehofft dass es dafür eventuell schon irgendwo fertige Systeme geben könnte die für so etwas gemacht sind.

    Welche Software wäre denn dann deine Empfehlung um das alles so schnell wie möglich nach Stromzufuhr zum laufen zu bringen?


    An der Hardware noch etwas zu investieren wäre für mich erst dann sinnvoll wenn ich das mit der Software hinbekommen habe.

  • An den HDMI Anschluss würde ich dann ein kleines Soundsystem anschließen.

    Ob das so einfach funktioniert, glaube ich nicht. Wenn kein HDMI Monitor erkannt wird, wird vermutlichl kein Audio an den fehlenden Monitor übertragen.


    "linux pi soundplayer" in die Suchmaschine Deines Vertrauens eingegeben hilft bei der Auswahl des Programmes.


    Das in #2 genannt Overlay Filesystem beschleunigt übrigens auch den Bootprozess.



    Servus !

    RTFM = Read The Factory Manual, oder so

  • Zur Software:


    * Betriebssystem: Etwas Leichtgewichtiges ohne Desktop, z.B. das aktuelle Raspberry Pi OS lite oder vielleicht DietPi?

    * Audiosoftware: MPD (Music Player Daemon, Projekthomepage) mit beliebigem Client, der Zufallswiedergabe ermöglicht.


    Um die Bootzeit zu reduzieren, kann man ggf. nicht benötigte Dienste deinstallieren. LAN oder WLAN würde ich aber beibehalten, um im Servicefall oder bei gewünschter Erweiterung der Musiksammlung per SSH auf den im Badezimmer verbauten RPi3 jederzeit zugreifen zu können.


    Als zusätzliche Inspiration empfehle ich Dir, Dich mit der MuPiBox von splitti79 zu befassen, denn die MuPiBox nutzt MPD und basiert auf DietPi. Auch wenn Du den Rest nicht benötigen wirst...


    Was mir noch zur Elektroinstallation einfällt, nur so als Idee:

    Es gibt doch diese Verzögerungsschaltungen für die Entlüftungsventilatoren von Dunkelbädern/Dunkel-WCs. Damit läuft der RPi beim Ausschalten des Lichts noch 1-2 Minuten nach und Lichtausschalten führt nicht sofort zum Ausschalten des RPi.

  • Es soll nach dem Einschalten keine endlos lange Zeit zum booten benötigen und möglichst ohne große Programmierkenntnisse umgesetzt werden können.

    Da wäre ein PI, bis auf vielleicht dem Pico, das vollkommen falsche System

    In deinem Fall würde ein Arduino oder ähnlicher Microcontroller vollkommen ausreichen.

    Und ein Sound-System im Bad ...

    Das wird bei der klimatischen Umgebung (hohe Luftfeuchtigkeit) nicht wirklich lange ein Sound-System sein.

    Computer ..... grrrrrr

  • Moinsen,


    Auf das PI als Basissystem mit eigenem BS und der Playersoftware würde ich unter den Umständen, dass der Strom unmittelbar wegfallen kann, vollständig verzichten.

    Dazu reicht ein einfacher µC wie das RasPi Pico in Verbindung mit einem MP3 Player der direkt von der SD Card lesen und playen kann. Wenn auf Stereo Sound verzichten kannst, dann reicht er interne Mono Verstärker, andernfalls noch einen kleinen Class D Verstärker oder was leistungsstärkeres.

    Für die Steuerung kannst du auf oder mit dem Power-On des µC einen MCP1726 5,0 Volt via GPIO ansteuern, der den Verstärker mit dem Programmstart zuschaltet. Über ein einfaches in der Aleitung zum MP3 Player beschriebenen RS232 Protokoll kannst du ganz deiner Leidenschaft des Musikgenusses fröhnen, und auch eine Random-Play laufen lassen. Vorteil sowohl vom Energieverbrauch, wie auch der Programmierung, das lässt sich sehr einfach und leicht auch mit µPython umsetzen. Nur damit du keine Schalt- und Knackgeräusche in deinen Lautsprechern hörst, würde ich erst vom µC aus den MP3 Plyer via des SHDN(Strich) Signals mit 5 Volt versorgen, und wenn dieser auf das RS232 Signal mit einem Ready reagiert den Verstärker, aber nur den kleinen mit einem MCP1827 versorgen. Damit mit der Vc für den Pico brauchst du dann noch einen MCP1725 der direkt über das Netzteil 6 Volt 3A gespeist wird. Mit einer Lochraster, oder selbst designten Platine passt das auf wenige Quadratzentimeter. Der Pico wie auch der Player kann als HAT ( Aufstecksystem ) direkt auf die Platine, ebenso der Stromversorgungsanschluß und die Spannungsregler. Wenn dir 2x3 Watt zureichen, kann dank des Rasters 2,54 mm auch diese Platine nur als Hat auf die Masterplatine aufgesteckt werden, wenn du diese mit einer entsprechenden PIN Leiste ( nach unten ) versiehst.

  • Wow vielen Dank euch allen für die zahlreichen Beiträge!

    Als zusätzliche Inspiration empfehle ich Dir, Dich mit der MuPiBox von splitti79 zu befassen, denn die MuPiBox nutzt MPD und basiert auf DietPi. Auch wenn Du den Rest nicht benötigen wirst...

    Damit werde ich mich mal genauer befassen.

    Zudem probiere ich nebenbei mal ob ich es mit einem von dir empfohlenen Betriebssystem und dem MPD hinbekomme.


    Ob das so einfach funktioniert, glaube ich nicht. Wenn kein HDMI Monitor erkannt wird, wird vermutlichl kein Audio an den fehlenden Monitor übertragen.

    Das hört sich erstmal nicht so gut an. Dachte zumindest dieser Punkt würde ohne Probleme klappen.. :(

    Muss ich mal testen wenn ich das System nach der Empfehlung von schlizbäda eingerichtet habe.



    Auf das PI als Basissystem mit eigenem BS und der Playersoftware würde ich unter den Umständen, dass der Strom unmittelbar wegfallen kann, vollständig verzichten.

    Da wäre ein PI, bis auf vielleicht dem Pico, das vollkommen falsche System

    In deinem Fall würde ein Arduino oder ähnlicher Microcontroller vollkommen ausreichen.

    Und ein Sound-System im Bad ...

    Das wird bei der klimatischen Umgebung (hohe Luftfeuchtigkeit) nicht wirklich lange ein Sound-System sein.

    Das habe ich jetzt auch schon häufiger gelesen. Mit Microcontrollern kenne ich mich leider noch viel weniger aus.


    Die Boxen sind für draußen und Feuchträume geeignet. Der Rest wird soweit wie möglich von Wasserdampf geschützt verbaut.



    Vielen vielen Dank euch allen für die investierte Zeit um einem Noob wie mir so ausführlich zu antworten!

  • Moinsen,


    im Prinzip ist es ganz einfach ;)
    Der µC wie der Pico mit seinem RP2040 Prozessor startet fast augenblicklich sobald dieser mit einer Versorgungsspannung ( 3,3 Volt oder 5 Volt ) versorgt wird. Damit wird das kleine Programm aus seinem Flash-Speicher gelesen. Dieses kann sowohl in C/C++, auch über die Arduino IDE, über MMBASIC wie auch µPython programmiert werden.
    Dazu brauchst du nur 2 Verbindungen ( GPIO die die nachgeordneten Spannungsregler ( 1726 = 1A für den MP3 Player und 1827 = 1,5 A für den 2x3 Watt Class-D Verstärker) gezielt an und anschalten können. Dazu musst du nur eine Verbindung über einen 720 Ohm zum SHDN(Strich ) Eingang der Spannungsregler herstellen. Damit werden die bei einem HIGH Signal eingeschaltet und die nachfolgende Hardware wird mit Strom versorgt.
    Für die Kommunikation mit dem MP3-Player- Modul musst du nur eine RX/TX Verbindung zum µController herstellen. Das sind nur 2 Dateneitungen, und wieder einen Vorwiderstand für den RX-Eingang am µC. Aus dem MP3 Player kannst du direkt raus zu dem Class D Verstärker gehen, und dort dann direkt deine Lautsprecher anschließen ( Innenwiderstand der Lautsprecher beachten !) .
    Mit einem handelsüblichen 6 Volt 3 Ampere Netzteil kannst du diese gesamte Schaltung versorgen. den Rest übernehmen die Spannungsregler. Normal wird der erste Ton bereits nach unter 1 Sekunde hörbar sein.
    Der Erste Spannungsregler 1725 = 500 mA wird SHDN direkt auf die Eingangsspannung des Netzteils geschaltet damit dieser sofort startet und das PICO mit Strom versorgt. Wenn das Pico hochgefahren ist schaltet das Programm den ersten GPIO auf HIGH und startet den zweiten Spannungsregler 1726 =1 A für den MP3 Player, diesen kannst du mit einer Try: Error Schleife abfragen, ob dieser auch schon betriebsbereit ist. Wenn das positiv angefragt wurde kannst du mit dem zweiten GPIO den dritten Spannungsregler zuschalten, der den Class D Verstärker mit Strom versorgt und via des RS232 Protokolls die Random-Wiedergabe starten. Dazu habe ich schon mal das Handbuch / MP3 DFPlayer Mini Modul DE.pdf des MP3 Players angehängt.
    Ob du die Ansteuerung in C oder einer anderen Programmiersprache machst bleibt dir überlassen.
    Außer einem USB- Mirco-USB Kabel brauchst du für die Programmierung des PICO keine weitere Hardware. Bei µPython kann zB Thonny nutzen, oder auch jede andere Programmier-IDE. Bei Arduino ist es etwas aufwendiger, weil du auch noch die Boardverwaltung anpassen musst, um überhaupt ein RP2040 Prozessor wie auf dem PICO Programmieren zu können.

    Ich selber habe so etwas ähnliches mit dem gleichen Komponenten bereits mehrfach umgesetzt, 2-3 Stunden Programmieren wenn gerade frisch einsteigt, und noch einmal die selbe Zeit, wenn man sich das auf einer Masterplatine aufbauen will, ohne eine wilde Platine-to-Platine Verkablung herbeizuführen. In den Datasheets zu den den Spannunsgregler / LDO findest du in den Kapiteln "Application Information" die Grundbeschaltungen dieser. Eigentlich eine Minimal übersichtlicher Aufwand.

    Das ganze kannst du komplett mit Ausnahme der Lautsprecher- und des Stromanschlusses einhausen. Hitze entsteht dort keine, so das du auch für keine besondere Kühlung der Komponenten sorgen musst.

    Franky