{"id":7611,"date":"2016-12-26T19:31:02","date_gmt":"2016-12-26T18:31:02","guid":{"rendered":"http:\/\/blog.wenzlaff.de\/?p=7611"},"modified":"2021-11-22T17:14:12","modified_gmt":"2021-11-22T16:14:12","slug":"mp3-und-wav-dateien-mit-einem-raspberry-pi-ueber-bluetooth-drahtlos-abspielen","status":"publish","type":"post","link":"http:\/\/blog.wenzlaff.de\/?p=7611","title":{"rendered":"MP3 und WAV Dateien mit einem Raspberry Pi \u00fcber Bluetooth (Drahtlos) abspielen"},"content":{"rendered":"<p>F\u00fcr meinen Raspberry Pi brauche ich nun eine Sprachausgabe da <a href=\"http:\/\/blog.wenzlaff.de\/?p=7575\" target=\"_blank\" rel=\"noopener\">Karotz gestorben<\/a> ist. Ich habe noch einen < 5 Euro Bluetooth Speaker aus der China-Bucht liegen. So ein Teil:\n\n<a href=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2016\/12\/speaker-e1482773653128.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2016\/12\/speaker-e1482773653128.jpg\" alt=\"\" width=\"480\" height=\"640\" class=\"aligncenter size-full wp-image-7612\" srcset=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2016\/12\/speaker-e1482773653128.jpg 480w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2016\/12\/speaker-e1482773653128-225x300.jpg 225w\" sizes=\"auto, (max-width: 480px) 100vw, 480px\" \/><\/a><\/p>\n<p>Denn wollte ich nun drahtlos anbinden.<\/p>\n<p>Dazu verwende ich f\u00fcr den Raspberry Pi den folgenden Bluethooth USB-Adapter, denn ich schon mal mit <a href=\"http:\/\/blog.wenzlaff.de\/?p=2692\" target=\"_blank\" rel=\"noopener\">Fhem angebunden<\/a> hatte.<\/p>\n<p><a href=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2016\/12\/belkin-usb-blue-e1482773825328.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2016\/12\/belkin-usb-blue-e1482776932877.jpg\" alt=\"\" width=\"480\" height=\"201\" class=\"aligncenter size-full wp-image-7613\" srcset=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2016\/12\/belkin-usb-blue-e1482776932877.jpg 480w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2016\/12\/belkin-usb-blue-e1482776932877-300x126.jpg 300w\" sizes=\"auto, (max-width: 480px) 100vw, 480px\" \/><\/a><\/p>\n<p>Das ist schnell gemacht! <!--more--><\/p>\n<pre class=\"lang:default decode:true \" >\r\n# Zuerst das System updaten\r\nsudo apt-get update\r\nsudo apt-get upgrade\r\n# etwas Softwre f\u00fcr Bluetooth usw. installieren\r\nsudo apt-get install pi-bluetooth blueman pulseaudio pavucontrol pulseaudio-module-bluetooth mpg321 bluez\r\n# den Bluethooth USB-Adapter in den USB-Port stecken und ein \r\nreboot\r\n# dann m\u00fcsste der Bluethooth USB-Adapter in der Liste erscheinen wenn man\r\nlsusb\r\n# eingibt, bei mir\r\n# Bus 001 Device 004: ID 050d:0012 Belkin Components F8T012 Bluetooth Adapter\r\n# ok, der Adapter wird erkannt, ist er auch aktive, das Testen wir mit\r\n\/etc\/init.d\/bluetooth status\r\n# ok Ausgabe\r\n# \u25cf bluetooth.service - Bluetooth service\r\n#   Loaded: loaded (\/lib\/systemd\/system\/bluetooth.service; enabled)\r\n#   Active: active (running) since Mon 2016-12-26 17:50:12 CET; 48min ago\r\n#     Docs: man:bluetoothd(8)\r\n# Main PID: 331 (bluetoothd)\r\n#   Status: \"Running\"\r\n#   CGroup: \/system.slice\/bluetooth.service\r\n#           \u2514\u2500331 \/usr\/lib\/bluetooth\/bluetoothd\r\n#\r\n# Wenn der Lautsprecher im Koppelmodus ist, dann Testen evl. mehrfach versuchen, bis der Lautsprecher gelistet wird\r\nhcitool scan\r\n# man bekommt in der Liste die Adresse, jetzt kann man noch testen ob sie erreichbar ist mit\r\nsudo l2ping -c 1 37:00:00:00:8E:C4\r\n# da muss dann soetwas zur\u00fcck kommen\r\n# Ping: 37:00:00:00:8E:C4 from 00:00:3A:69:11:7D (data size 44) ...\r\n# 44 bytes from 37:00:00:00:8E:C4 id 0 time 178.73ms\r\n# 1 sent, 1 received, 0% loss\r\n#\r\n# Jetzt koppeln wir den Speaker mit dem Programm\r\nbluetoothctl\r\n# dort auf der Kommandozeile geben wir diese Befehle ein\r\nscan on\r\n# Das Programm listet nun alle erkannten Ger\u00e4te in Funkreichweite auf. Dieser Vorgang kann geraume Zeit dauern, einzelne Ger\u00e4te werden dabei immer wieder aktualisiert\r\n# ausschalten geht mit\r\nscan off\r\n# dann einen sogenannten Bluetooth-Agenten starten\r\nagent on \r\n# den Lautsprechern nun pairen\r\npair 37:00:00:00:8E:C4\r\n# es muss  pairing successful ausgegeben werden\r\n# dann das Ger\u00e4t vertrauen\r\ntrust 37:00:00:00:8E:C4\r\n# und verbinden\r\nconnect 37:00:00:00:8E:C4\r\n# wenn das alles geklappt hat, mit info checken:\r\ninfo 37:00:00:00:8E:C4\r\n# Ausgabe dann z.B.\r\n# [bluetooth]# info 37:00:00:00:8E:C4\r\n# Device 37:00:00:00:8E:C4\r\n# \tName: BT-SPEAKER\r\n# \tAlias: BT-SPEAKER\r\n# \tClass: 0x242404\r\n# \tIcon: audio-card\r\n# \tPaired: yes\r\n# \tTrusted: yes\r\n# \tBlocked: no\r\n# \tConnected: yes\r\n# \tLegacyPairing: yes\r\n# \tUUID: Headset                   (00001108-0000-1000-8000-00805f9b34fb)\r\n# \tUUID: Audio Sink                (0000110b-0000-1000-8000-00805f9b34fb)\r\n# \tUUID: A\/V Remote Control        (0000110e-0000-1000-8000-00805f9b34fb)\r\n# \tUUID: Handsfree                 (0000111e-0000-1000-8000-00805f9b34fb)\r\n# Evl. muss das man immer wieder auf das zu konfigurierenden Bluetooth-Ger\u00e4ten auf den Pairing-Knopf dr\u00fccken, damit das Ger\u00e4t so der Umwelt signalisiert, dass es bereits # zum Verbindungsaufbau ist. Es blinkt die LED.\r\n#\r\n# nun holen wir uns eine mp3 Testdatei mit:\r\nwget http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2016\/12\/hallo-thomas-wie-geht-es-dir.mp3\r\n# zum abspielen der mp3 Dateinen nun das pulseaudio starten mit\r\npulseaudio --start\r\n# und die MP3 Datei abspielen mit\r\nmpg321 hallo-thomas-wie-geht-es-dir.mp3\r\n# als Ergebnis wir die Datei abgespielt und der Text ausgegeben:\r\n# High Performance MPEG 1.0\/2.0\/2.5 Audio Player for Layer 1, 2, and 3.\r\n# Version 0.3.2-1 (2012\/03\/25). Written and copyrights by Joe Drew,\r\n# now maintained by Nanakos Chrysostomos and others.\r\n# Uses code from various people. See 'README' for more!\r\n# THIS SOFTWARE COMES WITH ABSOLUTELY NO WARRANTY! USE AT YOUR OWN RISK!\r\n\r\n# Playing MPEG stream from hallo-thomas-wie-geht-es-dir.mp3 ...\r\n# MPEG 2.0 layer III, 48 kbit\/s, 22050 Hz mono\r\n# \r\n#  [0:01] Decoding of hallo-thomas-wie-geht-es-dir.mp3 finished.\r\n#\r\n# Wave Dateien k\u00f6nnen so abspielen\r\naplay beispiel.wav\r\n<\/pre>\n<p>Hier gibt es die MP3 Testdatei zum Anh\u00f6ren: <audio class=\"wp-audio-shortcode\" id=\"audio-7611-1\" preload=\"none\" style=\"width: 100%;\" controls=\"controls\"><source type=\"audio\/mpeg\" src=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2016\/12\/hallo-thomas-wie-geht-es-dir.mp3?_=1\" \/><a href=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2016\/12\/hallo-thomas-wie-geht-es-dir.mp3\">http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2016\/12\/hallo-thomas-wie-geht-es-dir.mp3<\/a><\/audio><\/p>\n<p>Hier mal das Ergebnis als Video:<\/p>\n<p><iframe loading=\"lazy\" width=\"560\" height=\"315\" src=\"https:\/\/www.youtube.com\/embed\/ot87IU89Nqo?rel=0\" frameborder=\"0\" allowfullscreen><\/iframe><\/p>\n<p>So, das l\u00e4uft erst einmal. Wenn das Ger\u00e4t nun ausgeschaltet wird muss es wieder manuell neue verbunden werden mit:<\/p>\n<pre class=\"lang:default decode:true \" >\r\nbluetoothctl\r\nconnect 37:00:00:00:8E:C4\r\n<\/pre>\n<p>Am n\u00e4chsten Tag klappte das Abspielen nicht mehr. Dann mal geschaut und<\/p>\n<pre class=\"lang:default decode:true \" >\r\n# Pulseaudio neu gesartet\r\npulseaudio --start\r\n# geschaut ob noch connected ist mit\r\nbluetoothctl\r\ninfo 37:00:00:00:8E:C4\r\n# geschaut welche Ger\u00e4te vorhanden sind\r\npactl list sinks short\r\n# liefert zwei Ger\u00e4te\r\n# 0\talsa_output.0.analog-stereo\tmodule-alsa-card.c\ts16le 2ch 44100Hz\tSUSPENDED\r\n# 2\tbluez_sink.37_00_00_00_8E_C4\tmodule-bluez5-device.c\ts16le 2ch 44100Hz\tSUSPENDED\r\n# dann das 0 als Default gesetzt, und es tut wieder\r\npactl set-default-sink 0\r\n# oder\r\npactl set-default-sink bluez_sink.37_00_00_00_8E_C4\r\n<\/pre>\n<p>Das wollen wir nun automatisieren. Dazu die folgende <strong>start-connect.sh<\/strong> Datei angelegt:<\/p>\n<pre class=\"lang:default decode:true \" >\r\n#\/sh\/bin\r\nbluetoothctl &lt;&lt; EOF\r\nconnect 37:00:00:00:8E:C4\r\nEOF\r\necho \"Automatisch Connected\"\r\n<\/pre>\n<p>Noch ausf\u00fchrbar gemacht mit<\/p>\n<pre class=\"lang:default decode:true \" >\r\nchmod +x start-connect.sh\r\n<\/pre>\n<p>Dann noch eine Testdatei <strong>start-lautsprecher-mp3-testausgabe.sh<\/strong> erstellt:<\/p>\n<pre class=\"lang:default decode:true \" >\r\n#\/sh\/bin\r\n\r\nmpg321 hallo-thomas-wie-geht-es-dir.mp3\r\n<\/pre>\n<p>Noch ausf\u00fchrbar gemacht mit<\/p>\n<pre class=\"lang:default decode:true \" >\r\nchmod +x start-lautsprecher-mp3-testausgabe.sh\r\n<\/pre>\n<p>Jetzt braucht nach einem ausschalten des Lautsprechers nur ein<\/p>\n<pre class=\"lang:default decode:true \" >\r\n.\/start-connect.sh\r\n# und zum testen ein \r\n.\/start-lautsprecher-mp3-testausgabe.sh\r\n# ausgef\u00fchrt werden.\r\n<\/pre>\n<p>So, wenn die Lautst\u00e4rke ver\u00e4ndert werden soll, geht das mit:<\/p>\n<pre class=\"lang:default decode:true \" >\r\n# schauen unter welcher Nr. der Lautsprecher l\u00e4uft mit\r\npactl list sinks short\r\n# wenn unter 2, dann f\u00fcr volle Pulle\r\npactl set-sink-volume 2 100%\r\n<\/pre>\n<p>So dann wurde nach dem ausloggen aus der Terminal Session jedesmal die Verbindung getrennt. Deshalb den User in die <strong>bluetooth<\/strong> Gruppe hinzuf\u00fcgen mit<\/p>\n<pre class=\"lang:default decode:true \" >\r\nsudo usermod -G bluetooth -a pi\r\n# checken ob es geklappt hat\r\ncat \/etc\/group | grep bluetooth\r\n# muss mit pi enden\r\n# bluetooth:x:113:pi\r\n# dann noch ein reboot\r\nsudo reboot\r\n# dann l\u00e4uft es nach einem connect weiter\r\n# wohl doch noch nicht\r\n# in \r\n# \/etc\/rc.local noch ein\r\necho -e \"connect AA:BB:CC:DD:EE:FF \\nquit\" | bluetoothctl \r\n# eingef\u00fcgt, und nach einem\r\nsudo reboot\r\n# den connect gestartet mit (evl. liegt es auch an dem & das hilft?)\r\n.\/start-connect.sh &\r\n# dann l\u00e4uft es jetzt schon mal ein paar Minuten\r\n# dann den User noch in die Gruppe erg\u00e4nzt\r\nsudo adduser pi pulse-access\r\n# und reboot \r\nsudo reboot\r\n# mal sehen wie lange es nun tut 24h tut es jetzt jedenfalls schon mal...\r\n<\/pre>\n<p>So diese Scripte k\u00f6nnen nun \u00fcber OpenHab aufgerufen werden. Dazu aber mehr in 2017 &#8230;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>F\u00fcr meinen Raspberry Pi brauche ich nun eine Sprachausgabe da Karotz gestorben ist. Ich habe noch einen < 5 Euro Bluetooth Speaker aus der China-Bucht liegen. So ein Teil: Denn wollte ich nun drahtlos anbinden. Dazu verwende ich f\u00fcr den Raspberry Pi den folgenden Bluethooth USB-Adapter, denn ich schon mal mit Fhem angebunden hatte. Das &hellip; \n\n<p class=\"link-more\"><a href=\"http:\/\/blog.wenzlaff.de\/?p=7611\" class=\"more-link\"><span class=\"screen-reader-text\">\u201eMP3 und WAV Dateien mit einem Raspberry Pi \u00fcber Bluetooth (Drahtlos) abspielen\u201c <\/span>weiterlesen<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3,220,2173,1023],"tags":[721,1937,2709,2708,442,2710],"class_list":["post-7611","post","type-post","status-publish","format-standard","hentry","category-allgemein","category-anleitung","category-debian","category-raspberry-pi","tag-bluetooth","tag-drahtlos","tag-lautsprecher","tag-speaker","tag-usb","tag-verbinden"],"_links":{"self":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts\/7611","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=7611"}],"version-history":[{"count":0,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts\/7611\/revisions"}],"wp:attachment":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=7611"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=7611"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=7611"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}