Talaan ng mga Nilalaman:

Maglaro ng Bluetooth sa Sonos Gamit ang Raspberry Pi: 25 Hakbang
Maglaro ng Bluetooth sa Sonos Gamit ang Raspberry Pi: 25 Hakbang

Video: Maglaro ng Bluetooth sa Sonos Gamit ang Raspberry Pi: 25 Hakbang

Video: Maglaro ng Bluetooth sa Sonos Gamit ang Raspberry Pi: 25 Hakbang
Video: THE WALKING DEAD SEASON 2 COMPLETE GAME 2024, Hulyo
Anonim
Image
Image
Maglaro ng Bluetooth sa Sonos Gamit ang Raspberry Pi
Maglaro ng Bluetooth sa Sonos Gamit ang Raspberry Pi

Nagsulat ako dati ng isang itinuturo na naglalarawan kung paano magdagdag ng isang aux o analog line-in sa Sonos gamit ang isang Raspberry Pi. Tinanong ng isang mambabasa kung posible na mag-stream ng audio ng Bluetooth mula sa kanyang telepono patungong Sonos. Madaling gawin ito gamit ang isang Bluetooth dongle na naka-plug sa line-in ng mas mahal na Sonos Play: 5 o Sonos CONNECT; gayunpaman, nawala sa iyo ang katapatan sa pag-convert ng bluetooth (digital) sa analog pagkatapos ay bumalik sa digital at kung nagmamay-ari ka lamang ng isa sa mga hindi gaanong magastos na nagsasalita ng Sonos kung gayon hindi ito isang pagpipilian. Inilalarawan ng itinuturo na ito kung paano mag-set up ng isang Raspberry Pi upang mag-stream ng audio ng bluetooth sa anumang tagapagsalita ng Sonos.

TANDAAN: Tandaan na magpapadala kami ng audio ng bluetooth sa Raspberry Pi at i-convert ito sa isang mp3 stream bago ipadala ito sa Sonos upang magkaroon ng pagkaantala ng ilang segundo. Kung ginagamit mo ito upang manuod ng isang video, ang audio ay hindi mai-sync.

Hakbang 1:

Ano ang kakailanganin mo:

Ang Raspberry PI 3 Model B (mayroong isang mas bago, mas mabilis na Model B + na magagamit ngunit natigil ako sa regular na Model B dahil nabasa ko ang ilang mga problema sa pag-lock ng B + at pati na rin ang mga wifi at bluetooth radio ng B + ay may metal na sumisilaw sa kanilang paligid upang magawa sumusunod sa kanila ang FCC kapag na-install sa loob ng isa pang aparato ngunit nais ko ang maximum na saklaw ng bluetooth at natatakot akong hadlangan ito ng kalasag)

Isang desktop o laptop computer na may isang microSD card reader

Monitor o TV na may input ng HDMI (para sa paunang pag-set up lamang)

USB o bluetooth keyboard at mouse (para sa paunang pag-set up lamang)

Plastic Raspberry Pi Case (Gumagamit ako ng isang plastic case para sa proyektong ito upang ma-maximize ang saklaw ng bluetooth)

Kingston 8 GB microSDHC Class 4 Flash Memory Card

5V Power Supply

Hakbang 2:

Larawan
Larawan
Larawan
Larawan

Mag-navigate sa https://www.raspberrypi.org/downloads/raspbian/ sa iyong regular na computer at i-download ang "RASPBIAN STRETCH WITH DESKTOP".

Pumunta rin sa https://etcher.io/ at i-download ang Etcher at i-install ito.

TANDAAN: Sa aking nakaraang itinuro inilarawan ko kung paano mag-download ng NOOBS upang mai-install ang Raspbian; gayunpaman, ang pamamaraang ito ay medyo mabilis. Alinmang paraan ay mabuti.

Hakbang 3:

Larawan
Larawan
Larawan
Larawan

Patakbuhin ang Etcher at i-click ang Piliin ang imahe at mag-browse sa zip file. Mag-click sa Select drive at mag-browse sa microSD card pagkatapos ay mag-click sa Flash!

Hakbang 4:

Larawan
Larawan
Larawan
Larawan
Larawan
Larawan
Larawan
Larawan

TANDAAN: Ang ilan sa mga susunod na hakbang na ito ay katulad ng dati kong itinuturo kaya't laktawan kung mayroon ka nang root password, naka-set up na static IP at VNC.

Ipasok ang microSD card sa puwang ng SD card sa ilalim ng Raspberry Pi. Ikonekta ang isang HDMI cable mula sa Raspberry Pi sa iyong monitor o TV. Ikonekta ang USB keyboard, mouse at sa wakas ang Micro USB power cable. Matapos itong mag-boots ay lilitaw ang desktop ng Raspbian. Dadalhin ka nito sa maraming mga setting ngunit inirerekumenda kong HINDI suriin ang mga update. I-click ang Laktawan. Patuloy akong nakakakuha ng isang error na "blueman.bluez.errors. DBusFailedError: Hindi magagamit ang Protocol" kapag sinusubukang ipares ang Bluetooth pagkatapos na mai-install ang lahat ng mga update kaya kinailangan kong simulang muli.

TIP: Kung hindi mo nais ang oras ng militar RIGHT-click sa orasan at piliin ang Mga Setting ng Digital Clock at palitan ang Format ng Clock mula sa% R hanggang% r

Hakbang 5:

Larawan
Larawan
Larawan
Larawan
Larawan
Larawan

Susunod na paganahin namin ang built-in na server ng VNC. Ginagawa nitong mas madali ang mga bagay na maaari mo lamang kopyahin at i-paste ang mga utos sa pamamagitan ng VNC kaysa sa pag-type sa kanila. Piliin ang Menu ng GUI> Mga Kagustuhan> Pag-configure ng Raspberry Pi> Mga Interface. I-click ang Pinagana sa tabi ng VNC at pagkatapos ay OK. Pagkatapos ng ilang segundo ay lilitaw ang isang icon ng VNC sa taskbar. I-click ito at pagkatapos ang icon ng menu sa kanang tuktok (kahon na may 3 pahalang na linya) at pagkatapos ang Opsyon. Sa mga pagpipilian sa Security itakda ang Encryption sa "Prefer off" at Pagpapatotoo bilang "VNC password" pagkatapos ay i-click ang Ilapat. Ang isang kahon ng password ay pop up. Ipasok ang "raspberry" (nang walang mga quote) para sa password sa bawat kahon at i-click ang OK.

Hakbang 6:

Larawan
Larawan
Larawan
Larawan
Larawan
Larawan

Bago pa tayo magpatuloy kailangan naming magtalaga ng isang static na IP address. Kung ang IP address ng iyong Pi ay random na nakatalaga ng server ng DHCP ng iyong router, kung gayon ang IP address ay maaaring magbago mamaya at hindi ka makakonekta sa pamamagitan ng VNC (o Sonos para sa bagay na iyon). I-right click ang icon ng mga koneksyon sa network sa taskbar (ang maliit na pataas at pababang icon ng arrow) at piliin ang "Mga setting ng Wireless at Wired Network". LEFT-click sa kanang itaas na kahon at piliin ang "eth0" upang i-configure ang koneksyon ng ethernet o "wlan0" para sa wireless. Payo ko sa pagtatalaga ng isang static IP sa isa lamang o iba pa. Nagkaproblema ako noong una kong na-set up ang aking Pi kung saan itinalaga ko ang parehong static IP address sa parehong mga koneksyon at naka-lock ang wireless ng aking Pi at hindi ko ito maibalik nang maayos kung kaya't kailangan kong simulan ang buong pag-install ng OS. Gayunpaman, ipasok ang IP address na gusto mo sa patlang ng IP address at ipasok ang IP address ng iyong router sa parehong patlang ng Router at DNS Servers. I-click ang Ilapat at Isara.

TANDAAN: Maaaring mas madaling magtalaga ng isang static IP address gamit ang tampok na pagpapareserba ng DHCP IP ng iyong router kung mayroon ito. Maaaring kailanganin mo ang MAC address ng Pi o maaari lamang itong ipakita sa isang listahan ng mga konektadong aparato sa pahina ng admin ng iyong router. Kung kailangan mo ng MAC address pagkatapos mag-type sa utos na "ifconfig eth0" sa window ng terminal para sa ethernet o "ifconfig wlan0" para sa WiFi. Nakatutuwang sapat, ang WiFi MAC address ay lalabas sa linya na nagsisimula sa "ether"

Hakbang 7:

Larawan
Larawan
Larawan
Larawan
Larawan
Larawan

Susunod na kailangan naming itakda ang default na resolusyon ng screen. Ito ay maaaring mukhang nakakalokong nakikita kung paano kami nakakonekta sa isang monitor ngunit sa paglaon kapag nakakonekta ka sa pamamagitan ng VNC nang walang naka-attach na monitor (walang ulo, tulad ng sinabi nila) babalik ito sa resolusyon ng 640x480 na default ng Pi na kung saan ay isang napakaliit na screen upang magtrabaho kasama! Piliin ang Menu ng GUI> Mga Kagustuhan> Pag-configure ng Raspberry Pi> Itakda ang Resolusyon. Itakda ito sa 1280x720 o mas mataas at i-click ang OK at Oo upang mag-reboot.

Hakbang 8:

Larawan
Larawan
Larawan
Larawan
Larawan
Larawan

Maaaring gusto mong palitan ang pangalan ng iyong Pi lalo na kung mayroon kang higit sa isa sa iyong network. Pinalitan ko ang pangalan ng "BluetoothPi" upang madali itong makilala. Hihilingin sa iyo na i-reboot pagkatapos ng pagpapalitan ng pangalan.

Hakbang 9:

Larawan
Larawan
Larawan
Larawan
Larawan
Larawan
Larawan
Larawan

Sa puntong ito maaari mong simulang gamitin ang VNC upang makontrol ang Pi. Buksan muli ang control panel ng VNC sa Raspbian desktop at hanapin ang IP address sa ilalim ng "Pagkakonekta". Mag-install at magpatakbo ng isang manonood ng VNC sa iyong regular na computer at gamitin ang IP address na iyon upang kumonekta at ipasok ang "raspberry" (nang walang mga quote) bilang password. Gumamit ako ng TightVNC para sa Windows. Matapos mong kumonekta maaari mong i-save ang koneksyon ng VNC ng Pi bilang isang shortcut sa iyong desktop upang mabilis na kumonekta sa hinaharap na bypass ang logon screen. Makakatanggap ka ng isang babala tungkol sa pag-save ng password sa loob ng shortcut. Upang makopya at mai-paste sa window ng terminal ng Pi, piliin o i-highlight ang teksto o mga utos sa iyong regular na computer, pindutin ang Ctrl-C (literal na pindutin ang Ctrl at C key sa iyong keyboard nang sabay) o i-right click at piliin ang "Kopyahin ", pagkatapos ay buhayin ang window ng manonood ng Pi ng VNC at mag-KARAPATAN-click sa loob ng window ng terminal mismo sa cursor at piliin ang I-paste.

Hakbang 10:

Larawan
Larawan
Larawan
Larawan

Susunod na mag-i-install kami ng dalawang mga programa, ang Darkice at Icecast2. Ang Darkice ang mag-e-encode ng aming mapagkukunang audio ng bluetooth sa isang mp3 stream at ang Icecast2 ang ihahatid sa Sonos bilang isang Shoutcast stream. Kopyahin at i-paste ang bawat isa sa mga linyang ito sa window ng terminal nang paisa-isa na sinusundan ng Enter key sa bawat oras:

wget

mv darkice_1.0.1-999 ~ mp3 + 1_armhf.deb? raw = true darkice_1.0.1-999 ~ mp3 + 1_armhf.deb

sudo apt-get install libmp3lame0 libtwolame0

sudo dpkg -i darkice_1.0.1-999 ~ mp3 + 1_armhf.deb

Hakbang 11:

Larawan
Larawan
Larawan
Larawan
Larawan
Larawan
Larawan
Larawan

Ngayon upang mai-install ang Icecast2. I-type ang "sudo apt-get install icecast2" na sinusundan ng enter. Matapos itong mai-install ang isang window ay pop up na nagtatanong kung nais mong i-configure ang Icecast2. Pindutin ang kaliwang arrow key at ipasok upang piliin ang Oo. Sa pangalawang screen pindutin ang pababang arrow key at ipasok upang piliin ang OK upang magamit ang default na hostname na "localhost". Sa susunod na tatlong mga screen pindutin ang pababang arrow at ipasok ang key upang sumang-ayon na gamitin ang "hackme" bilang default na mapagkukunan, relay at password sa pangangasiwa. Kahit na sumasang-ayon kami sa lahat ng mga default na setting, ang mga hakbang na ito ay dapat na nakumpleto upang maisaaktibo ang Icecast2 server.

sudo apt-get install icecast2

Hakbang 12:

Larawan
Larawan
Larawan
Larawan
Larawan
Larawan

Susunod na kailangan naming patakbuhin ang GUI file manager bilang root user. Upang magawa ito, piliin ang GUI Menu> Run. I-type ang "sudo pcmanfm" at pindutin ang enter. Bubuksan nito ang file manager (ang katumbas ng file explorer para sa amin na mga gumagamit ng Windows) sa direktoryo sa bahay (/ home / pi) at makikita mo ang natirang file ng pag-install ng darkice na dati naming na-download. PAG-right click sa isang walang laman na puwang at piliin ang Lumikha Bago at pagkatapos ay Empty File. Pangalanan ito ng "darkice.cfg" at i-click ang OK. Pagkatapos TAMA-click ang bagong nilikha na file at piliing buksan ito sa Leafpad (ang katumbas ng Windows notepad). Kopyahin ang mga linya sa ibaba at i-paste ang mga ito sa Leafpad pagkatapos ay i-click ang File at I-save. Mapapansin mo ang linya na "kalidad" ay na-comment na may isang # sa harap nito. Ginagamit lamang ito kung itinakda mo ang "bitrateMode = vbr" (variable bitrate). Hindi ka maaaring magkaroon ng isang itinakdang halaga ng kalidad kapag gumagamit ng cbr (pare-pareho ang bitrate) o ang stream ay mag-utal at lumaktaw. Sa kabaligtaran, kung magpasya kang gumamit ng vbr pagkatapos ay kailangan mong magbigay ng puna sa linya na "bitrate = 160" at huwag paganahin ang linya na "kalidad".

TANDAAN: Ang pinakamataas na kalidad ng mp3 bitrate na maaari mong makuha ay 320 kbps; gayunpaman, kapwa ang mga WiFi at Bluetooth radio sa Raspberry Pi ay nasa parehong chip kaya kung i-max out mo ang bandwidth ng pareho, maaaring mag-stutter o mag-freeze ang Bluetooth audio. Papalitan namin ang isang setting sa paglaon na malunasan ito subalit nililimitahan nito ang bandwidth ng WiFi nang kaunti kaya't binawasan ko ang audio bitrate para sa proyektong ito sa 160 kbps dahil balak kong panatilihin ito sa WiFi nang eksklusibo. Kung gumagamit ka ng ethernet hindi ito isang isyu at maaari mong ligtas na itakda ang bitrate sa 320 kbps.

[pangkalahatan] tagal = 0 # tagal sa s, 0 magpakailanman bufferSecs = 1 # buffer, sa mga segundo muling kumonekta = oo # muling kumonekta kung naka-disconnect

[input]

aparato = telepono # pangalan ng sample ng aparato ng blueberRate = 44100 # sample rate 11025, 22050 o 44100 bitsPerSample = 16 # bits channel = 2 # 2 = stereo

[icecast2-0]

bitrateMode = cbr # pare-pareho ang rate ng bit ('cbr' pare-pareho, average na 'abr') #quality = 1.0 # 1.0 ang pinakamahusay na kalidad (gamitin lamang sa vbr) format = mp3 # format. Piliin ang 'vorbis' para sa OGG Vorbis bitrate = 160 # bitrate server = localhost # o IP port = 8000 # port para sa IceCast2 access password = hackme # source password para sa server ng IceCast2 mountPoint = rapi.mp3 # mount point sa IceCast2 server.mp3 o.ogg pangalan = BluetoothPi

Hakbang 13:

Larawan
Larawan
Larawan
Larawan
Larawan
Larawan
Larawan
Larawan

Susunod na kailangan namin sundin ang parehong mga hakbang tulad ng dati upang lumikha ng isang walang laman na file na tinatawag na "darkice.sh". Ang isang.sh file ay katumbas ng isang.bat o batch file para sa DOS o Windows. Buksan gamit ang Leafpad, kopyahin at i-paste ang mga linya sa ibaba at i-save. Kung sinundan mo ang dati kong itinuturo mapapansin mo ang linya na nagsisimula Si Darkice ay mukhang kakaiba. Kinailangan kong mai-embed ang code sa isang loop dahil tuwing nawala sa Darkice ang signal ng audio ng Bluetooth ay hihinto ito sa pagtakbo at hindi ito awtomatikong i-restart kahit na mai-restart ang audio. Napagsiksik ko ang problemang ito at habang may mga kumplikadong paraan upang awtomatikong magpatakbo ng isang iskrip tuwing nakakonekta ang isang bluetooth device, titigil minsan si Darkice tuwing nawala ang signal ng audio kahit na nakakonekta pa rin ang aparato ng Bluetooth (hal. Kung isara mo ang YouTube app sa iyong telepono) kaya ito ang pinakamadali at pinaka maaasahang paraan upang matiyak na tumatakbo ang Darkice tuwing naroroon ang Bluetooth audio. Kung tumatakbo na si Darkice, hindi papansinin ang utos.

#! / bin / basharily:; gawin ang sudo / usr / bin / darkice -c /home/pi/darkice.cfg; pagtulog 5; tapos na

Hakbang 14:

Larawan
Larawan

Susunod na kailangan namin upang magpatakbo ng isang utos upang maisagawa ang darkice.sh file na maipapatupad. Buksan ang window ng terminal at i-type ang "sudo chmod 777 /home/pi/darkice.sh" at pindutin ang enter. Ngayon ay oras na upang simulan ang serbisyo ng Icecast2 server. I-type ang "sudo service icecast2 start" at pindutin ang enter.

sudo chmod 777 / home /pi/darkice.sh

sudo serbisyo icecast2 magsimula

Hakbang 15:

Larawan
Larawan
Larawan
Larawan
Larawan
Larawan
Larawan
Larawan

Susunod kailangan naming sabihin sa Darkice na awtomatikong magsimula tuwing nai-boot ang Pi (ang Icecast2 server ay tumatakbo bilang isang serbisyo at awtomatiko nang nagsisimulang pagkatapos ng pag-boot). Una kailangan naming pumili kung aling text editor ang gagamitin. Sa window ng terminal i-type ang "select-editor" at pindutin ang enter. I-type ang "2" upang mapili ang nano editor at pindutin ang enter. Pagkatapos i-type ang "crontab -e" at ipasok. Susunod na hawakan ang Down Arrow key pababa upang mag-scroll hanggang sa ilalim ng text file na lilitaw at idagdag ang linyang ito na "@reboot sleep 10 && sudo /home/pi/darkice.sh". Pagkatapos ay pindutin ang Ctrl-X upang lumabas at itutulak nito ang "I-save ang nabagong buffer?". Pindutin ang Y key para sa Oo pagkatapos Ipasok upang kumpirmahin ang anumang filename na awtomatikong nabuo.

select-editor

crontab -e

@reboot sleep 10 && sudo /home/pi/darkice.sh

Hakbang 16:

Larawan
Larawan
Larawan
Larawan
Larawan
Larawan

Ipares ang iyong telepono gamit ang Raspberry Pi gamit ang icon ng bluetooth sa desktop. Mahalagang mailagay mo ang bluetooth ng Pi sa mode ng pagtuklas at pagkatapos ay ipares mula sa iyong telepono. Kung inilagay mo ang iyong telepono sa mode ng pagtuklas at subukang ipares ito MULA sa Pi pagkatapos maaari itong kumonekta ngunit bigyan ka ng isang error na sinasabi na walang mga serbisyo sa iyong telepono na maaaring magamit ng Pi, na totoo. Sinusubukan naming magpadala ng audio SA Pi, hindi sa ibang paraan. Matapos itong ipares, patakbuhin ang utos na ito sa window ng terminal upang ibunyag ang address ng bluetooth MAC ng iyong nakakonektang aparato:

sudo bluetoothctl

Hakbang 17:

Larawan
Larawan
Larawan
Larawan
Larawan
Larawan

Upang magamit ng Darkice ang aparato ng Bluetooth bilang isang input ng audio ng PCM kailangan naming lumikha ng isang file sa folder na "etc" na tinatawag na "asound.conf" (etc / asound.conf). I-click ang pataas na arrow sa file manager ng maraming beses upang umakyat sa root Directory at pagkatapos ay i-double click ang folder na "etc" upang buksan ito. Mag-scroll pababa at RIGHT-click sa isang walang laman na puwang at lumikha ng isang walang laman na file na tinatawag na "asound.conf" at kopyahin at i-paste ang mga linya sa ibaba na may MAC address ng iyong aparato na pinalitan para sa minahan syempre at i-save.

pcm.phone {type plug slave.pcm {type bluealsa device "50: F0: D3: 7A: 94: C4" profile "a2dp"}}

Hakbang 18:

Larawan
Larawan
Larawan
Larawan
Larawan
Larawan

Parehong ang mga WiFi at Bluetooth radio sa Raspberry Pi ay nasa parehong chip kaya kung i-max out mo ang bandwidth ng pareho, maaaring mag-stutter o mag-freeze ang Bluetooth audio. Ang ilan ay tinatawag itong isang bug at ang ilan ay nagsasabi na ito ay isang limitasyon lamang sa hardware. Kami ay magbabago ng isang setting na malunasan ito. Ang kredito para sa pag-post ng pag-aayos na ito ay napupunta sa "pelwell" sa https://github.com/raspberrypi/linux/issues/1402 Patakbuhin muli ang sudo pcmanfm upang buksan ang file manager at mag-browse sa / lib / firmware / brcm. I-double click ang text file na "brcmfmac43430-sdio.txt" upang buksan ito at idagdag ang mga linyang ito sa ibaba at i-save.

# Mga eksperimentong Bluetooth na magkakasamang parameter mula sa Cypressbtc_mode = 1 btc_params8 = 0x4e20 btc_params1 = 0x7530

Hakbang 19:

Larawan
Larawan
Larawan
Larawan
Larawan
Larawan

I-click ang menu ng menu ng GUI at piliin ang Shutdown at Reboot. Kung sundin mo ang lahat ng mga hakbang na ito nang tumpak pagkatapos ay awtomatikong magsisimula ang iyong bluetooth audio server saanman mula 30 segundo hanggang isang minuto pagkatapos ng pag-click sa reboot. BAGO maaari mong idagdag ito sa Sonos dapat mong ikonekta ang bluetooth ng iyong telepono sa Pi (simpleng pag-tap dito sa mga setting ng bluetooth ng iyong telepono dahil nakapares na ito) at simulang patugtugin ang ilang uri ng audio at itaas ang dami. Tandaan na hindi mo maririnig ang anumang audio na nagmumula sa speaker ng iyong telepono dahil sa palagay nito konektado ito sa isang panlabas na bluetooth speaker. Ang isang visual na paraan upang malaman kung ang Icecast ay tumatanggap ng audio ng Bluetooth mula sa Darkice ay upang buksan ang https://192.168.86.107:8000 sa isang web browser kasama ang IP ng iyong Pi na pinalitan ng minahan. Palaging tumatakbo ang Icecast kaya't makikita mo palagi ang pahina ng katayuan ngunit kung tumatanggap din si Darkice ng audio na Bluetooth pagkatapos ay makikita mo rin ang mount point at stream deskriptor. Idiskonekta ang iyong bluetooth at i-refresh ang pahina at ito ay magiging blangko muli.

Hakbang 20:

Larawan
Larawan
Larawan
Larawan

Dapat mong gamitin ang Sonos desktop controller app upang magdagdag ng isang pasadyang stream sa Sonos. Mag-click sa Pamahalaan> Magdagdag ng Radio Station at ipasok ang url para sa stream na sa aking kaso ay "https://192.168.86.107:8000/rapi.mp3". Maglagay din ng isang Pangalan ng Station at i-click ang OK.

Hakbang 21:

Larawan
Larawan

Upang patugtugin ang pasadyang istasyon ng radyo na idinagdag lamang namin, piliin ang "Radio by Tunein" at pagkatapos ay ang "My Radio Stations". KALIWANANG DOUBLE-click upang i-play o RIGHT-click upang i-edit o idagdag ang istasyon sa iyong mga paboritong Sonos.

Hakbang 22:

Larawan
Larawan
Larawan
Larawan

Matapos idagdag ang pasadyang istasyon ng radyo ay agad itong magagamit sa iyong Sonos app. Buksan ang app, i-tap ang "My Sonos" sa ibaba, mag-scroll pababa sa "Mga Istasyon" at i-tap ang "Tingnan ang Lahat". Mag-scroll pababa hanggang makita mo ang iyong bagong nilikha na istasyon. Mag-tap dito at magsisimulang maglaro sa iyong mga napiling silid. Tandaan, ̶ kung ikaw idiskonekta ang iyong Bluetooth mula sa Pi pagkatapos ay ang Icecast stream ̶d̶i̶s̶c̶o̶n̶n̶e̶c̶t̶.̶ Kung ikaw Lumipat audio apps Maaaring ̶d̶i̶s̶c̶o̶n̶n̶e̶c̶t̶.̶ upang ipagpatuloy ang pakikinig sa Sonos youll kailangang i-restart play ng audio sa iyong telepono muli at push-play sa ̶T̶h̶e̶ ̶S̶o̶n̶o̶s̶ ̶a̶p̶p̶ ̶a̶g̶a̶i̶n̶.̶ <--- Naayos na ito; tingnan ang pag-update sa ibaba. Good luck at salamat sa pagbabasa!

Hakbang 23: I-UPDATE: NAayos ang PAGSUNOD NG STREAM NA KONEKTADO KUNG BLUETOOTH DISCONNECTS

Kaya't ang Bluetooth streaming ay gumagana nang perpekto sa pag-set up na ito MALIB sa mga Sonos ay magdidiskonekta mula sa server ng Icecast tuwing nawala si Darkice ng bluetooth audio tulad ng kapag lumipat ka ng mga audio app o sadyang naka-disconnect na Bluetooth na isang sakit dahil kakailanganin mong makakuha muli ng bluetooth audio streaming bago maaari mo ring pindutin ang pindutan ng pag-play sa Sonos app. Naging malaking problema ito nang sinusubukan kong mag-stream ng audio sa Sonos mula sa app ng WatchESPN ng aking telepono na fullscreen lamang kaya hindi ko ma-hit ang play button sa Sonos app matapos masimulan ang bluetooth audio ngunit nang isara ko ang WatchESPN app ang Ang Sonos stream ay hindi magsisimula maliban kung mayroon kang unang pagsisimula ng audio ng Bluetooth! Ugh! Nilabas ko ang aking buhok na sinusubukan na makabuo ng isang matikas na pag-aayos para dito. Sinubukan ko ang ibang encoder ng mp3 na tinatawag na liquidsoap na may pagpipilian na magpadala ng tahimik na audio kapag nawalan ito ng koneksyon ngunit hindi ko ito magawang gumana kasama si bluealsa. Sinubukan kong ihalo ang stream ng bluealsa sa isang pangalawang dummy soundcard alsa stream gamit ang dsnoop at asym upang subukang linlangin ang Icecast sa pag-iisip na mayroon pa ring audio signal na naroroon ngunit talagang hindi ka pinapayagan ng alsa na manipulahin mo ng husto ang bluetooth audio. Sinimulan kong mag-imbestiga gamit ang isang fallback mount point gamit ang isang tahimik na mp3 file sa Icecast ngunit makikita ni Sonos ang pagbabago ng pangalan ng mount point at idiskonekta. Gumagamit ako ng isang pagsubok na.mp3 file at hindi sinasadyang itinalaga ito bilang pangunahing pangalan ng mount point nang isang beses sa halip na ang fallback at napansin kong lumipat lang si Sonos sa pag-play ng file na iyon nang maalis ito mula sa stream ng bluetooth "rapi.mp3". Eureka! Hindi ito awtomatikong ibabalik sa stream ng bluetooth nang magagamit muli ito kaya't naisip kong bakit hindi na lang gumamit ng parehong mount point name? Kaya kung ano ang kailangan mong gawin ay lumikha ng isang tahimik na mp3 file at bigyan ito ng parehong pangalan tulad ng Darkice mp3 stream, "rapi.mp3", at hard code ito bilang pangunahing mount point sa Icecast2 config file. Ang nangyayari ay tuwing nawawalan ng koneksyon si Sonos sa Darkice / bluetooth rapi.mp3 stream nagsisimula lamang itong i-loop ang iba pang tahimik na rapi.mp3 file hanggang sa bumalik ang bluetooth stream sa online. Sa ganitong paraan hindi mo kailangang magkaroon ng bluetooth audio bago ka mag-play sa Sonos. Narito kung paano ito gawin …

Hakbang 24:

Larawan
Larawan
Larawan
Larawan
Larawan
Larawan

Una kailangan naming mag-install ng ffmpeg upang lumikha ng isang tahimik na mp3 file. Maaari kang magrekord ng isang tahimik. Buksan ang window ng terminal at i-type ang "sudo apt-get install ffmpeg" at pindutin ang Enter:

sudo apt-get install ffmpeg

Matapos itong mai-install na kopya at i-paste ang mahabang linya na ito upang ma-encode ang isang tahimik na mp3 file na isang segundo lamang ang tagal:

sudo ffmpeg -f lavfi -i anullsrc = channel_layout = stereo: sample_rate = 44100 -b: a 160k -t 1 /usr/share/icecast2/web/rapi.mp3

Buksan ang File Manager bilang root gamit ang "sudo pcmanfm" at mag-browse sa "/ etc / icecast2". PAG-right click sa "icecast.xml" at buksan ang paggamit ng Leafpad at i-paste ang mga linyang ito sa ilalim lamang ng tuktok na "" linya:

/rapi.mp3

I-save at I-reboot at dapat mo nang masimulan ang iyong pasadyang istasyon ng Bluetooth na Sonos bago mo pa nakakonekta ang iyong telepono sa bluetooth!

Hakbang 25: Addendum

Addendum
Addendum
Addendum
Addendum
Addendum
Addendum
Addendum
Addendum

Nais kong ang Raspberry Pi at 110V AC hanggang 5V DC na suplay ng kuryente ay mapag-iisa sa isang kaso upang madali kong ilipat ito sa paligid ng bahay ngunit nagulat ako na makita ang gayong kaso ay hindi umiiral. Maaari kong 3D-print ang isa sa ibang pagkakataon ngunit pansamantala lumipat ako sa paggamit ng ibang kaso ng Raspberry Pi at natagpuan ang isang manipis na USB wall charger at maikling cable. Ang charger ay may rubberized coating na hindi ko malinaw ang VHB tape na ididikit ngunit ito ay isang sticker na madaling matanggal; gayunpaman, lumikha iyon ng isang maliit na recess na ginawang masyadong manipis ang tape ng VHB kaya gumamit ako ng velcro.

Inirerekumendang: