FHEM Forum

Verschiedenes => Bastelecke => Thema gestartet von: kaihs am 25 Februar 2017, 01:17:53

Titel: Eigenbau MP3 Funkgong mit DFPlayer Mini
Beitrag von: kaihs am 25 Februar 2017, 01:17:53
Es gibt ein günstiges MP3 Modul Namens "FN-M16P Embedded MP3 Audio Module" (http://www.flyrontech.com/eproducts/84.html) (Datenblatt) (http://www.flyrontech.com/edownload/6.html). Oft wird es unter dem Namen DFPlayer Mini angeboten.
Dieses ist in China für unter 2€ zu bekommen und hat u. a. folgende Eigenschaften:
Es gibt auch negative Punkte:
Ich habe dafür ein Modul geschrieben, mit dem der Player vollständig gesteuert werden kann. Außerdem unterstützt es dabei das Speichermedium mit mp3 Dateien zu füllen und diese einfach abzuspielen.
Anwendungsfall ist hauptsächlich Sprachausgabe von vorgefertigten Sprachkonserven.
Durch eine Anbindung an das Text2Speech Modul unterstützt das Modul bei der Erzeugung dieser Sprachkonserven.

Getestet habe ich die Anbindung

Die ersten beiden Möglichkeiten sind sehr einfach, Beispiele:

define dfp_usb DFPlayerMini /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A9ED9FNB-if00-port0@9600



define dfp_easy DFPlayerMini 192.168.2.28:23


Die Anbindung an MySensors ist etwas komplizierter:

Weitere Dokumentation findet sich in der commandref des Moduls.
Das Kopieren der mp3 Dateien mit Hilfe dieses Moduls wird aktuell wohl nur auf einem Unix System funktionieren, weil ein bash-Script erzeugt wird das dem Text2Speech Modul als MPlayer Kommando untergeschoben wird.

Das Modul und der Sketch sind noch im Alpha-Stadium und könnten weitere Tests brauchen.

Fragen beantworte ich hier natürlich gerne.

Edit 12.3.2017:

Aktualisierte Version des Moduls.
- Bugfixes
- Bessere Einbindung von Text2Speech, braucht die aktuellste Version von 98_Text2Speech
- neue Sets tts, uploadTTScache
Titel: Antw:Eigenbau MP3 Funkgong mit DFPlayer Mini
Beitrag von: ArduPino am 01 März 2017, 17:51:55
Kann man eigentlich auch per nanoCul einen Code senden und diesen per Arduino/Attiny mit 433 Empfänger empfangen? Damit wäre eine Funksteuerung des MP3 Players möglich.

Gesendet von meinem Wileyfox Swift mit Tapatalk

Titel: Antw:Eigenbau MP3 Funkgong mit DFPlayer Mini
Beitrag von: kaihs am 01 März 2017, 21:07:11
Die Funksteuerung ist jetzt schon möglich.

Entweder per WLAN mit einem ESP8266 und ESPEasy Firmware oder mit MySensors.
MySensors kann man auf 2,4GHz, 868 und 433MHz nutzen, je nachdem welches Funkmodul man einsetzt. Den passenden Sketch habe ich ja auch veröffentlicht.

Prinzipiell unterstützt mein Modul auch jede andere Art von Übertragung, dafür ist das Attribut sendCmd und das set response gedacht.
MySensors habe ich so angebunden, siehe das Beispiel im 1. Post.

Theoretisch kann auch ein nanoCUL verwendet werden. Was dann noch fehlt ist ein passendes Übertragungsprotokoll mit Unterstützung in der culfw das 10 Bytes Nutzdaten übertragen kann und sich um die Adressierung, Acknowledge, Fehlerkorrektur, Signierung, Verschlüsselung kümmert.
Die 10 Bytes könnte man noch auf die wirklich wichtigen 4 Bytes verkürzen, siehe Datenblatt Kapitel 3.1.

Wahrscheinlich könnte man das IT-Protokoll nutzen, wenn man ein passendes Programm auf Empfängerseite hat das die übertragenen Daten wieder in das Format konvertiert was der DFPlayer versteht.
Besser wäre noch AskSin (Homematic), dafür gibt es ja verschiedene Opensource Implementierungen und das bietet viele der oben angesprochenen Protokolleigenschaften.
Ich habe mich selbst noch nicht tief genug damit beschäftigt.

Hast du für Arduino/Attiny mit 433 Empfänger ein bestimmtes Protokoll im Sinn? Dann kann ich dich evtl. bei der Umsetzung unterstützen.

Oder eben MySensors (http://www.mysensors.org), das bietet alle oben genannten Punkte und war für mich sehr einfach zu implementieren.   
Titel: Antw:Eigenbau MP3 Funkgong mit DFPlayer Mini
Beitrag von: ArduPino am 02 März 2017, 10:18:31
Mit MySensor hatte ich mich ganz am Anfang mal beschäftigt, habe damit aber nichts erreichen können. Dann hat hier jemand Eigenbau Sensoren veröffentlicht und habe darum einen nanoCul gebaut.
Muss ich mir mal ansehen.

Gesendet von meinem Wileyfox Swift mit Tapatalk

Titel: Antw:Eigenbau MP3 Funkgong mit DFPlayer Mini
Beitrag von: eppi am 05 März 2017, 16:51:42
Danke für das Modul! Ich habe es heute nachgebaut mit


Die MP3 files habe ich auf die Speicherkarte kopiert in einem Verzeichnis namens "mp3". Das abspielen funktioniert problemlos!
Was ich nicht verstehe ist das Attribut uploadpath. Kann mir jemand dies erklären?

Danke nochmals! Ich nutze das Teil als Signalgeber. Jetzt bastle ich das ganze in ein Gehäuse...
Gruss Dani
Titel: Antw:Eigenbau MP3 Funkgong mit DFPlayer Mini
Beitrag von: kaihs am 05 März 2017, 19:26:39
Zitat von: eppi am 05 März 2017, 16:51:42
Danke für das Modul! Ich habe es heute nachgebaut mit

Schön, dass es jemand außer mit noch brauchen kann.

Zitat
Was ich nicht verstehe ist das Attribut uploadpath. Kann mir jemand dies erklären?

Das Modul unterstützt auch dabei das Speichermedium (i.A. eine Micro-SD Karte) passend für den Player zu befüllen.
Dazu muss die SD-Karte auf dem FHEM-Rechner gemounted werden.
D.h. Karte aus dem Player entnehmen, in einen geeigneten Cardreader stecken und mit dem Rechner verbinden.
Wie die Karte dann in dem FHEM-Rechner sichtbar gemacht werden kann hängt vom Betriebssystem ab, unter Linux geht das mit dem Kommando mount.
Danach ist die SD-Karte in einem bestimmten Verzeichnis ansprechbar.

Genau dieses Verzeichnis muss bei uploadPath eingetragen werden.
Anschließend können dann z. B. mit

set <dfp> readFiles

die Dateien auf der SD-Karte die vom Player ansprechbar sind eingelesen werden.
Diese werden dann als Reading angelegt.
Das kann dann z. B. so aussehen:

Internals:
   DEF        /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A9ED9FNB-if00-port0
   DevState   initialized
   DeviceName /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A9ED9FNB-if00-port0@9600
   FD         4
   LAST_RECV_TS 1487982260.61949
   LAST_SEND_TS 1488737616.53276
   NAME       dfp_usb
   NOTIFYDEV  global,tts
   NR         113
   NTFY_ORDER 50-dfp_usb
   PARTIAL
   STATE      opened
   TYPE       DFPlayerMini
   storage
   PLAYQUEUE:
   QUEUE:
   Readings:
     2017-02-21 20:06:46   File_99/001     _null
     2017-02-21 20:06:46   File_99/002     _ein
     2017-02-21 20:06:46   File_99/003     _zwei
     2017-02-21 20:06:46   File_99/004     _drei
     2017-02-21 20:06:46   File_99/005     _vier
     2017-02-21 20:06:46   File_99/006     _fünf
     2017-02-21 20:06:46   File_99/007     _sechs
     2017-02-21 20:06:46   File_99/008     _sieben
     2017-02-21 20:06:46   File_99/009     _acht
     2017-02-21 20:06:46   File_99/010     _neun
     2017-02-21 20:06:46   File_99/011     _zehn
     2017-02-21 20:06:46   File_99/012     _elf
     2017-02-21 20:06:46   File_99/013     _zwölf
     2017-02-21 20:06:46   File_99/014     _zwanzig
     2017-02-21 20:06:46   File_99/015     _dreissig
     2017-02-21 20:06:46   File_99/016     _vierzig
     2017-02-21 20:06:46   File_99/017     _fünfzig
     2017-02-21 20:06:46   File_99/018     _sechzig
     2017-02-21 20:06:46   File_99/019     _siebzig
     2017-02-21 20:06:46   File_99/020     _achtzig
     2017-02-21 20:06:46   File_99/021     _neunzig
     2017-02-21 20:06:46   File_99/022     _hundert
     2017-02-21 20:06:46   File_99/023     _sechzehn
     2017-02-21 20:06:46   File_99/024     _siebzehn
     2017-02-21 20:06:46   File_99/025     _und
     2017-02-21 20:06:46   File_99/026     _hundert
     2017-02-21 20:06:46   File_99/027     _tausend
     2017-02-21 20:06:46   File_99/028     _million
     2017-02-21 20:06:46   File_99/029     _millionen
     2017-02-21 20:06:46   File_99/030     _komma
     2017-02-21 20:06:46   File_99/031     _minus
     2017-02-24 22:58:16   currentTrackSD  5
     2017-02-22 21:00:15   equalizerMode   Jazz
     2017-02-22 21:00:42   noFolders       4
     2017-03-05 19:12:36   state           opened
     2017-02-24 22:36:09   storage         SD
     2017-02-24 22:57:45   volume          9
   TTSQUEUE:
   Helper:
     BUFFER      ����
     LAST_RESPONSE @
   Keepalive:
     ok         0
     retry      1
Attributes:
   TTSDev     tts
   cmdIcon    prev:rc_PREVIOUS play:rc_PLAY next:rc_NEXT pause:rc_PAUSE stop:rc_STOP
   requestAck 0
   room       Player
   uploadPath /run/media/kai/VELOMAP_D
   verbose    5
   webCmd     volumeStraight:prev:play:next:pause:stop


Alle Readings die mit File anfangen entsprechen einer Datei.
Diese Readings kann man dann beim play Kommando nutzen um die Datei abzuspielen, und zwar sowohl über den Namens des Readings als auch über den Readingswert.

set <dfp> play File_99/030

und

set <dfp> play _komma


spielen beide die Datei 030 im Order 99 ab.
Das geht für alle vom Player unterstützten Order (., MP3, ADVERT, 00, ..., 99).
Es wird jeweils das passende Player Kommando automatisch ermittelt, da es für die Order unterschiedliche Kommandos gibt, siehe Datenblatt.

Es ist auch möglich (für Sprachausgabe) passende MP3 Dateien auf die SD-Karte zu kopieren.
Dafür sind die Kommandos uploadTTS, uploadNumbers und uploadTTScache gedacht.
Den Teil überarbeite ich aber gerade, da das mit der neuesten Version des Text2Speech Moduls einfacher geworden ist.


Titel: Antw:Eigenbau MP3 Funkgong mit DFPlayer Mini
Beitrag von: eppi am 06 März 2017, 05:31:42
Danke vielmals für die ausführliche Beschreibung! Jetzt ist mir klar, für was das steht. Ich werde es heute Abend versuchen und berichten, falls etwas nicht klappen sollte.
Nochmals Danke und viele Grüsse Dani
Titel: Antw:Eigenbau MP3 Funkgong mit DFPlayer Mini
Beitrag von: kaihs am 12 März 2017, 00:40:37
Im ersten Post gibt es eine aktualisierte Version des Moduls.

Der DFPlayerMini lässt sich übrigens auch direkt per USB mit einem PC verbinden und man hat dann Zugriff auf die SD-Karte.
Dazu muss man die Anschlüsse USB-, USB+, GND mit einem USB-Kabel/-Buchse verbinden.

Solange die USB Verbindung besteht kann allerdings der DFP nichts mehr von der SD-Karte abspielen.

Titel: Antw:Eigenbau MP3 Funkgong mit DFPlayer Mini
Beitrag von: eppi am 13 März 2017, 19:11:22
Du gibst ja richtig Gas  :D Danke vielmals für das Update!
Ich habe noch eine Frage: Ich habe mir einen Mini-Lautsprecher gekauft, 8 Ohm, 2.5W. Obwohl ich die Lautstärke auf 30 gestellt habe, ist er ziemlich leise. Hast du einen Tipp, wie man es lauter machen kann oder eine Mini-Lautsprecher Empfehlung?

Danke und viele Grüsse Dani
Titel: Antw:Eigenbau MP3 Funkgong mit DFPlayer Mini
Beitrag von: kaihs am 13 März 2017, 20:00:11
Ich habe verschiedene Lautsprecher ausprobiert, alle von Pollin.
Die Lautstärke wird durch den Typ maßgeblich bestimmt.

Kleinlautsprecher, 8 Ω, 29 mm (http://www.pollin.de/shop/dt/OTU5OTUzOTk-/Unterhaltungselektronik/Lautsprecher/Lautsprecher_Chassis/Kleinlautsprecher_8_29_mm.html)
Sehr leise, nur bei voller Lautstärke halbwegs zu hören

Mini-Lautsprecherbox (http://www.pollin.de/shop/dt/MzMwOTUzOTk-/Unterhaltungselektronik/Lautsprecher/Lautsprecherboxen/Mini_Lautsprecherbox.html)
Um einiges lauter und besser verständlich. Verzerrt bei höchster Lautstärkeeinstellung

Lautsprecherbox mit 2 Mini-Lautsprechern, 10 W (http://www.pollin.de/shop/dt/MjI5ODUzOTk-/Unterhaltungselektronik/Lautsprecher/Lautsprecherboxen/Lautsprecherbox_mit_2_Mini_Lautsprechern_10_W.html)
Bester Klang, allerdings auch ziemlich groß.

Bester Kompromiss ist für mich der zweite.


Titel: Antw:Eigenbau MP3 Funkgong mit DFPlayer Mini
Beitrag von: szoller am 14 März 2017, 08:18:55
Finde das Ganze nun sehr interessant, was mir aber nicht ganz klar ist, ist wie ich das Ganze in's W-LAN bekomme.
Da fallen ja sicherlich Lötarbeiten an, oder? Wenn ja, bin ich leider raus  ::)
Titel: Antw:Eigenbau MP3 Funkgong mit DFPlayer Mini
Beitrag von: RaspiLED am 14 März 2017, 09:01:42
Hey, hey, das hier ist fhem. Nicht so schnell aufgeben. Dafür gibt es einen Thread Löthilfe:
https://forum.fhem.de/index.php/topic,44057.msg359268.html#msg359268
Gruß Arnd

Diverse RasperryPi mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, Bravia, WifiLight ...

Titel: Antw:Eigenbau MP3 Funkgong mit DFPlayer Mini
Beitrag von: kaihs am 14 März 2017, 20:57:42
Zitat von: szoller am 14 März 2017, 08:18:55
Finde das Ganze nun sehr interessant, was mir aber nicht ganz klar ist, ist wie ich das Ganze in's W-LAN bekomme.
Da fallen ja sicherlich Lötarbeiten an, oder? Wenn ja, bin ich leider raus  ::)

Zumindest für einen Prototypen muss man nicht löten, das kann man auch zusammenstecken.
Hier mal das Bild (https://www.dropbox.com/s/071zlwhzkrsntyx/IMG_20170314_203513.jpg?dl=0) von der MySensors-Variante. Ein Arduino Uno mit einem Prototype-Shield.

Auf diesem Bild (https://www.dropbox.com/s/bihdcoekgt2y3bs/IMG_20170314_203613.jpg?dl=0) ist oben die direkte Anbindung per USB2Seriell Wandler und unten die WLAN Variante mit einem Wemos D1. Darauf kann man auch das Prototype-Shield setzen.

Auf den Bildern sieht man auch die Lautsprecher die ich im Einsatz habe.

Titel: Antw:Eigenbau MP3 Funkgong mit DFPlayer Mini
Beitrag von: kaihs am 27 März 2017, 20:57:50
Ich habe das Modul jetzt in svn eingecheckt, es wird also ab morgen per update ausgeliefert.

Aktuell arbeite ich an Version der Hardware die mit Batterien funktioniert, momentan auf Basis von MySensors.
Mit fehlt noch der passende MOSFET, um den DFPlayer zum Energiesparen abzuschalten.
Titel: Antw:Eigenbau MP3 Funkgong mit DFPlayer Mini
Beitrag von: eppi am 28 März 2017, 06:43:29
Zitat von: kaihs am 27 März 2017, 20:57:50
Ich habe das Modul jetzt in svn eingecheckt, es wird also ab morgen per update ausgeliefert.

Aktuell arbeite ich an Version der Hardware die mit Batterien funktioniert, momentan auf Basis von MySensors.
Mit fehlt noch der passende MOSFET, um den DFPlayer zum Energiesparen abzuschalten.
Cool, Danke!
Titel: Antw:Eigenbau MP3 Funkgong mit DFPlayer Mini
Beitrag von: kaihs am 22 April 2017, 23:35:08
Ich habe jetzt eine erste batteriebetriebene Version (mit zusätzlicher Signal-LED) fertig.
Mehr dazu findet man hier (https://www.openhardware.io/view/373).
Titel: Antw:Eigenbau MP3 Funkgong mit DFPlayer Mini
Beitrag von: RalfR am 02 November 2017, 15:04:34
Hi,

kannst du mir sagen wo ich die von dir verwendete MYSLog.h  für den Arduino (MySensors) finde.

Vielen Dank
Ralf
Titel: Antw:Eigenbau MP3 Funkgong mit DFPlayer Mini
Beitrag von: kaihs am 02 November 2017, 18:38:00
Ich weiß nicht mehr woher ich die habe, daher hier im Anhang.
Titel: Antw:Eigenbau MP3 Funkgong mit DFPlayer Mini
Beitrag von: RalfR am 02 November 2017, 19:41:02
Danke, sobald die Bauteile da sind werde ich es testen.

Gruss
Ralf
Titel: Antw:Eigenbau MP3 Funkgong mit DFPlayer Mini
Beitrag von: raiderxxl am 05 Februar 2018, 14:24:53
Hi,

heute auch mal getestet mit nem Nodemcu und EspEasy.
Verbringung wird aufgebaut und ich kann den Player bedienen.
Aber nach 4-10 Sekunden wird die Verbindung getrennt und ich muss ständig reopen drücken.
Ist das normal? wie sehen deine ESP Serial Server Einstellungen aus?


Grüße

Pascal
Titel: Antw:Eigenbau MP3 Funkgong mit DFPlayer Mini
Beitrag von: raiderxxl am 16 Februar 2018, 13:04:41
Hallo noch jemand hier der das Modul unterstützt?

;D
2018.02.16 13:20:34 3: dfp_easy device opened
2018.02.16 13:20:36 5: dfp_easy SW: 7eff063f000000febcef
2018.02.16 13:20:36 5: current cmd waitForAck 0
2018.02.16 13:20:36 3: dfp_easy/init: get storage, retry = 0
2018.02.16 13:20:36 5: dfp_easy SW: 7eff063f000000febcef
2018.02.16 13:20:36 5: current cmd waitForAck 0
2018.02.16 13:20:46 3: dfp_easy/init: get storage, retry = 1
2018.02.16 13:20:46 5: dfp_easy SW: 7eff063f000000febcef
2018.02.16 13:20:46 5: current cmd waitForAck 0
2018.02.16 13:20:47 5: dfp_easy SW: 7eff063f000000febcef
2018.02.16 13:20:47 5: current cmd waitForAck 0
2018.02.16 13:20:56 3: dfp_easy/init: get storage, retry = 2
2018.02.16 13:20:56 5: dfp_easy SW: 7eff063f000000febcef
2018.02.16 13:20:57 5: current cmd waitForAck 0
2018.02.16 13:21:07 3: dfp_easy/init: get storage, retry = 3
2018.02.16 13:21:07 2: dfp_easy/init retry count reached. Closed
2018.02.16 13:21:07 2: dfp_easy closed


Ich Habe immer noch das Problem das ich die verbindung verliere...
Grüße

Pascal
Titel: Antw:Eigenbau MP3 Funkgong mit DFPlayer Mini
Beitrag von: eppi am 16 Februar 2018, 19:06:22
Zitat von: raiderxxl am 16 Februar 2018, 13:04:41
Ich Habe immer noch das Problem das ich die verbindung verliere...
Hallo
Deine Einstellungen sind nicht korrekt des Serial Servers. Data bits müssen 8 sein, nicht 0.
Versuchs mal, bei mir läuft es so!
Gruss Eppi
Titel: Antw:Eigenbau MP3 Funkgong mit DFPlayer Mini
Beitrag von: raiderxxl am 17 Februar 2018, 12:20:57
Danke für die info... funktioniert aber auch nicht conect ist da aber nach 3-7 Sekunden wieder disconnect...
*Edit*

Habe jetzt ESPEasy_R147_RC8 installiert schein so das es jetzt funktioniert. ESPEasy_v2.0 wird dann wohl noch nicht unterstützt...

Vielleicht kommt ja noch ein Update vom Modulentwickler.... (schade das er sich noch nicht gemeldet hat)

Grüße

Pascal



Titel: Antw:Eigenbau MP3 Funkgong mit DFPlayer Mini
Beitrag von: MAC66666 am 04 März 2018, 19:19:31
Hi,
zufällig über diesen Thread gestolpert. Ich habe auch zwei DF Player und ein paar Wemos D1 mini hier liegen. Finde ich ja interessant.

Allerdings gibt es inzwischen (zumindest in der Testing Branche) von ESPEasy 2 direkt eine Unterstützung für den DF Player. Da würde doch ggf. ein Umweg über ser2net entfallen können? Oder meint Ihr, dass das vieleicht als ESPEasy Device zu träge für TTS ist?