Բովանդակություն:

Խաղացեք Bluetooth Sonos- ով ՝ օգտագործելով Raspberry Pi: 25 քայլ
Խաղացեք Bluetooth Sonos- ով ՝ օգտագործելով Raspberry Pi: 25 քայլ

Video: Խաղացեք Bluetooth Sonos- ով ՝ օգտագործելով Raspberry Pi: 25 քայլ

Video: Խաղացեք Bluetooth Sonos- ով ՝ օգտագործելով Raspberry Pi: 25 քայլ
Video: Մեկ ականջակալ «Xiaomi Airdots» չի լիցքավորվում 2024, Հուլիսի
Anonim
Image
Image
Խաղացեք Bluetooth Sonos- ում ՝ օգտագործելով Raspberry Pi
Խաղացեք Bluetooth Sonos- ում ՝ օգտագործելով Raspberry Pi

Նախկինում ես գրել էի ուսանելի, որը նկարագրում էր, թե ինչպես կարելի է ավելացնել օժանդակ կամ անալոգային գիծ Sonos- ում ՝ օգտագործելով Raspberry Pi- ն: Ընթերցողներից մեկը հարցրեց, թե հնարավո՞ր է իր հեռախոսից bluetooth աուդիո հեռարձակել Sonos- ին: Ավելի հեշտ է դա անել, օգտագործելով bluetooth dongle- ը, որը միացված է ավելի թանկ Sonos Play- ի ՝ 5-ին կամ Sonos CONNECT- ին: Այնուամենայնիվ, դուք կորցնում եք հավատարմությունը ՝ Bluetooth- ը (թվային) դարձնելով անալոգային, այնուհետև ՝ թվային, և եթե ձեզ է պատկանում Sonos- ի ոչ թանկարժեք բարձրախոսներից մեկը, ապա դա տարբերակ չէ: Այս հրահանգը նկարագրում է, թե ինչպես կարելի է ստեղծել Raspberry Pi- ն ՝ Bluetooth- ի ձայնը ցանկացած Sonos բարձրախոսին փոխանցելու համար:

ՆՇՈՄ. Հիշեք, որ մենք պատրաստվում ենք bluetooth ձայնը փոխանցել Raspberry Pi- ին և այն վերածել mp3 հոսքի ՝ նախքան Sonos- ին ուղարկելը, այնպես որ մի քանի վայրկյան ուշացում կլինի: Եթե սա օգտագործում եք տեսանյութ դիտելու համար, ձայնը համաժամեցված չէ:

Քայլ 1:

Այն, ինչ ձեզ հարկավոր կլինի.

Ազնվամորի PI 3 Model B (կա ավելի նոր, ավելի արագ մոդել B+, բայց ես մնացել եմ սովորական Model B- ին, քանի որ կարդացել եմ B+ - ի կողպման հետ կապված որոշ խնդիրներ, ինչպես նաև B+ - ի wifi և bluetooth ռադիոկայաններն իրենց շուրջը մետաղական պաշտպանություն ունեն դրանք համապատասխանում են FCC- ին, երբ տեղադրվում են մեկ այլ սարքի ներսում, բայց ես ուզում էի առավելագույն Bluetooth տիրույթ և վախենում էի, որ պաշտպանությունը կարող է խանգարել դրան)

Աշխատասեղան կամ նոութբուք համակարգիչ `microSD քարտի ընթերցողով

HDMI մուտքով մոնիտոր կամ հեռուստացույց (միայն սկզբնական կարգավորման համար)

USB կամ bluetooth ստեղնաշար և մկնիկ (միայն նախնական կարգավորման համար)

Պլաստիկ ազնվամորու պատյան (այս նախագծի համար ես օգտագործում եմ պլաստիկ պատյան ՝ bluetooth տիրույթը առավելագույնի հասցնելու համար)

Kingston 8 ԳԲ microSDHC Class 4 ֆլեշ հիշողության քարտ

5 Վ էլեկտրամատակարարում

Քայլ 2:

Պատկեր
Պատկեր
Պատկեր
Պատկեր

Գնացեք https://www.raspberrypi.org/downloads/raspbian/ ձեր սովորական համակարգչից և ներբեռնեք «RASPBIAN STRETCH with DESKTOP» - ով:

Նաև գնացեք https://etcher.io/ և ներբեռնեք Etcher և տեղադրեք այն:

Նշում. Իմ նախորդ հրահանգում ես նկարագրեցի, թե ինչպես ներբեռնել NOOBS- ը Raspbian- ը տեղադրելու համար. սակայն, այս մեթոդը մի փոքր ավելի արագ է: Ամեն դեպքում լավ է:

Քայլ 3:

Պատկեր
Պատկեր
Պատկեր
Պատկեր

Գործարկեք Etcher- ը և կտտացրեք Ընտրել պատկերը և դիտեք zip ֆայլը: Կտտացրեք Ընտրել սկավառակը և դիտեք microSD քարտը, այնուհետև կտտացրեք Flash:

Քայլ 4:

Պատկեր
Պատկեր
Պատկեր
Պատկեր
Պատկեր
Պատկեր
Պատկեր
Պատկեր

ՈEՇԱԴՐՈԹՅՈՆ. Այս հաջորդ քայլերից մի քանիսը նման են իմ նախորդ հրահանգին, այնպես որ բաց թողեք, եթե արդեն ունեք արմատային գաղտնաբառ, ստատիկ IP և VNC:

Տեղադրեք microSD քարտը Raspberry Pi- ի ներքևի մասում գտնվող SD քարտի բնիկի մեջ: Միացրեք HDMI մալուխը Raspberry Pi- ից ձեր մոնիտորին կամ հեռուստացույցին: Միացրեք USB ստեղնաշարը, մկնիկը և վերջապես Micro USB հոսանքի մալուխը: Այն գործարկելուց հետո կհայտնվի Raspbian աշխատասեղանը: Այն ձեզ կանցնի մի քանի պարամետրերով, բայց ես խորհուրդ կտայի ՉԻ ստուգել թարմացումները: Կտտացրեք Բաց թողնել: Ես անընդհատ ստանում էի «blueman.bluez.errors. DBusFailedError: Protocol not available» սխալ, երբ փորձում էի բոլոր թարմացումները տեղադրելուց հետո Bluetooth- ը զուգավորել, այնպես որ ես ստիպված էի նորից սկսել:

ՀՈIPՅՈ IfՄ. Եթե չեք ցանկանում զինվորական ժամանակ RԻՇՏ սեղմել ժամացույցի վրա և ընտրել թվային ժամացույցի կարգավորումներ և փոխել ժամացույցի ձևաչափը %R- ից %r

Քայլ 5:

Պատկեր
Պատկեր
Պատկեր
Պատկեր
Պատկեր
Պատկեր

Հաջորդը մենք միացնելու ենք ներկառուցված VNC սերվերը: Սա ամեն ինչ շատ ավելի հեշտ է դարձնում, քանի որ կարող եք պարզապես պատճենել և տեղադրել հրամանները VNC- ի միջոցով, այլ ոչ թե դրանք մուտքագրել: Ընտրեք GUI ընտրացանկ> Նախապատվություններ> Raspberry Pi կազմաձևում> Ինտերֆեյսեր: Կտտացրեք Միացված է VNC- ի կողքին, այնուհետև OK: Մի քանի վայրկյան անց VNC պատկերակը կհայտնվի առաջադրանքի տողում: Կտտացրեք այն, այնուհետև ընտրացանկի պատկերակին ՝ վերևի աջ մասում (տուփ 3 հորիզոնական տողով), այնուհետև ՝ Ընտրանքներ: Անվտանգության ընտրանքներում կոդավորումը սահմանեք «Նախընտրեք անջատված», իսկ իսկությունը ՝ որպես «VNC գաղտնաբառ», այնուհետև կտտացրեք Դիմել: Կբացվի գաղտնաբառի տուփ: Յուրաքանչյուր տուփի մեջ մուտքագրեք «ազնվամորի» (առանց չակերտների) գաղտնաբառի համար և կտտացրեք OK:

Քայլ 6:

Պատկեր
Պատկեր
Պատկեր
Պատկեր
Պատկեր
Պատկեր

Ավելի հեռուն գնալուց առաջ մենք պետք է ստատիկ IP հասցե նշանակենք: Եթե ձեր Pi- ի IP հասցեն պատահականորեն նշանակված է ձեր երթուղիչի DHCP սերվերի կողմից, ապա IP հասցեն կարող է հետագայում փոխվել, և դուք չեք կարողանա միանալ VNC- ի (կամ այդ դեպքում Sonos- ի) միջոցով: Աջ-սեղմեք առաջադրանքների տողում գտնվող ցանցի միացումների պատկերակին (փոքր վեր և վար սլաքի պատկերակը) և ընտրեք «Անլար և լարային ցանցի կարգավորումներ»: ՁԱՅՆ սեղմեք վերին աջ վանդակի վրա և ընտրեք «eth0» ՝ Ethernet կապը կամ անլար «wlan0»-ը կարգավորելու համար: Ես խորհուրդ կտայի ստատիկ IP նշանակել միայն մեկին կամ մյուսին: Ես խնդիր ունեի, երբ ես առաջին անգամ ստեղծեցի իմ Pi- ն, որտեղ ես միևնույն ստատիկ IP հասցեն նշանակեցի երկու միացումներին, և իմ Pi- ի անլարն արգելափակվեց, և ես չկարողացա այն ճիշտ աշխատել, այնպես որ ես ստիպված էի սկսել ամբողջովին տեղադրել ՕՀ -ն: Ամեն դեպքում, մուտքագրեք ձեր ուզած IP հասցեն IP հասցեի դաշտում և մուտքագրեք ձեր երթուղիչի IP հասցեն ինչպես երթուղիչի, այնպես էլ DNS սերվերների դաշտում: Կտտացրեք Դիմել և փակել:

ՆՇՈՄ. Հնարավոր է, որ ավելի հեշտ լինի ստատիկ IP հասցե նշանակել ՝ օգտագործելով ձեր երթուղիչի DHCP IP ամրագրման հնարավորությունը, եթե այն ունի: Ձեզ կարող է անհրաժեշտ լինել Pi- ի MAC հասցեն կամ այն կարող է պարզապես հայտնվել ձեր երթուղղիչի ադմինիստրատորի էջում միացված սարքերի ցանկում: Եթե Ձեզ անհրաժեշտ է MAC հասցեն, ապա մուտքագրեք «ifconfig eth0» հրամանը տերմինալի պատուհանում ethernet- ի համար կամ «ifconfig wlan0» WiFi- ի համար: Հետաքրքիր է, որ WiFi MAC հասցեն կհայտնվի «եթեր» -ով սկսվող տողում

Քայլ 7:

Պատկեր
Պատկեր
Պատկեր
Պատկեր
Պատկեր
Պատկեր

Հաջորդը մենք պետք է սահմանենք էկրանի կանխադրված լուծաչափը: Սա կարող է հիմար թվալ, քանի որ մենք արդեն միացված ենք մոնիտորին, բայց ավելի ուշ, երբ VNC- ով միանում եք առանց միացված մոնիտորի (ինչպես ասում են, անգլուխ) այն կվերադառնա Pi- ի կանխադրված 640x480 բանաձևին, որը շատ փոքր էկրան է: աշխատել հետ! Ընտրեք GUI ընտրացանկ> Նախապատվություններ> Raspberry Pi Configuration> Set Resolution: Տեղադրեք այն 1280x720 կամ ավելի բարձր մակարդակի վրա և վերագործարկելու համար կտտացրեք OK և Yes:

Քայլ 8:

Պատկեր
Պատկեր
Պատկեր
Պատկեր
Պատկեր
Պատկեր

Կարող եք փոխել ձեր Pi- ի անունը, հատկապես, եթե ձեր ցանցում ունեք մեկից ավելի: Իմ անունը վերանվանեցի «BluetoothPi» ՝ այն հեշտությամբ ճանաչելի դարձնելու համար: Այն կխնդրի ձեզ վերագործարկել այն վերանվանելուց հետո:

Քայլ 9:

Պատկեր
Պատկեր
Պատկեր
Պատկեր
Պատկեր
Պատկեր
Պատկեր
Պատկեր

Այս պահին գուցե ցանկանաք սկսել օգտագործել VNC ՝ Pi- ն վերահսկելու համար: Կրկին բացեք VNC կառավարման վահանակը Raspbian աշխատասեղանին և փնտրեք IP հասցեն «Միացում» բաժնում: Տեղադրեք և գործարկեք VNC դիտիչ ձեր սովորական համակարգչի վրա և օգտագործեք այդ IP հասցեն ՝ միացնելու և մուտքագրելու համար «ազնվամորի» (առանց մեջբերումների) որպես գաղտնաբառ: Windows- ի համար օգտագործել եմ TightVNC- ը: Միանալուց հետո կարող եք պահպանել Pi- ի VNC կապը որպես դյուրանցում ձեր աշխատասեղանին `հետագայում արագ միանալու համար` շրջանցելով մուտքի էկրանը: Դուք կստանաք նախազգուշացում գաղտնաբառի դյուրանցման մեջ պահելու մասին: Pi- ի տերմինալի պատուհանում պատճենելու և տեղադրելու համար ընտրեք կամ ընդգծեք ձեր սովորական համակարգչի տեքստը կամ հրամանները, սեղմեք Ctrl-C (բառացիորեն միաժամանակ սեղմեք Ctrl և C ստեղնաշարի վրա) կամ աջ սեղմեք և ընտրեք «Պատճենել , այնուհետև ակտիվացրեք Pi- ի VNC դիտիչի պատուհանը և IGHիշտ սեղմեք տերմինալի պատուհանի ներսում` անմիջապես կուրսորի վրա և ընտրեք Տեղադրեք:

Քայլ 10:

Պատկեր
Պատկեր
Պատկեր
Պատկեր

Հաջորդը մենք մտադիր ենք տեղադրել երկու ծրագիր ՝ Darkice և Icecast2: Darkice- ն այն է, ինչը կոդավորելու է մեր bluetooth ձայնային աղբյուրը mp3 հոսքի մեջ, իսկ Icecast2- ը այն է, ինչ այն ծառայելու է Sonos- ին որպես Shoutcast հոսք: Այս տողերից յուրաքանչյուրը պատճենեք և տեղադրեք տերմինալի պատուհանում մեկ առ մեկ, որին հաջորդում է Enter ստեղնը ՝

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 տեղադրել libmp3lame0 libtwolame0

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

Քայլ 11:

Պատկեր
Պատկեր
Պատկեր
Պատկեր
Պատկեր
Պատկեր
Պատկեր
Պատկեր

Այժմ տեղադրել Icecast2- ը: Մուտքագրեք «sudo apt-get install icecast2», որին հաջորդում է enter: Տեղադրվելուց հետո կհայտնվի պատուհան, որը կհարցնի ՝ արդյոք ցանկանում եք կարգավորել Icecast2- ը: Հպեք ձախ սլաքի ստեղնին և մուտքագրեք ՝ Այո ընտրելու համար: Երկրորդ էկրանին սեղմեք ներքևի սլաքի ստեղնը և մուտքագրեք ՝ OK ընտրելու համար ՝ կանխադրված հյուրընկալող անունը «localhost» օգտագործելու համար: Հաջորդ երեք էկրաններին սեղմեք ներքևի սլաքը և մուտքագրեք բանալին, որպեսզի համաձայնեք օգտագործել «hackme» - ը որպես կանխադրված աղբյուր, ռելե և կառավարման գաղտնաբառ: Չնայած մենք համաձայն ենք բոլոր կանխադրված պարամետրերին, այս քայլերը պետք է ավարտվեն ՝ Icecast2 սերվերը ակտիվացնելու համար:

sudo apt-get տեղադրել icecast2

Քայլ 12:

Պատկեր
Պատկեր
Պատկեր
Պատկեր
Պատկեր
Պատկեր

Հաջորդը մենք պետք է գործարկենք GUI ֆայլերի կառավարիչը որպես արմատային օգտվող: Դա անելու համար ընտրեք GUI ընտրացանկ> Գործարկել: Մուտքագրեք «sudo pcmanfm» և սեղմեք enter: Դա կբացի ֆայլերի կառավարիչը (մեզ համար Windows Explorer- ի համար ֆայլերի որոնիչի համարժեքը) տնային գրացուցակում (/home/pi), և դուք կտեսնեք մեր կողմից նախկինում ներբեռնած darkice տեղադրման ֆայլը: Աջ սեղմեք դատարկ տարածքում և ընտրեք Ստեղծել նոր, այնուհետև Դատարկ ֆայլ: Անվանեք այն «darkice.cfg» և կտտացրեք OK: Այնուհետև ԱՇՏ-կտտացրեք այդ նոր ստեղծված ֆայլին և ընտրեք այն բացել Leafpad- ով (Windows- ի նոթատետրին համարժեք): Պատճենեք ստորև նշված տողերը և տեղադրեք դրանք Leafpad- ում, այնուհետև կտտացրեք Ֆայլ և Պահել: Դուք կնկատեք, որ «որակի» տողը մեկնաբանվում է # -ով ՝ դրա դիմաց: Այն օգտագործվում է միայն այն դեպքում, եթե դուք սահմանում եք «bitrateMode = vbr» (փոփոխվող բիթային արագություն): Դուք չեք կարող որակի արժեք սահմանել cbr (մշտական բիթային արագություն) օգտագործելիս, հակառակ դեպքում հոսքը կակազի և բաց կթողնի: Եվ ընդհակառակը, եթե որոշեք vbr օգտագործել, ապա պետք է մեկնաբանեք «bitrate = 160» տողը և մեկնաբանեք «որակի» տողը:

EԱՆՈԹՈԹՅՈՆ. Ամենաբարձր որակի mp3 բիթ արագությունը, որը կարող եք ունենալ, 320 կբիթ / վ է; Այնուամենայնիվ, Raspberry Pi- ի WiFi և Bluetooth ռադիոկայանները միևնույն չիպի վրա են, այնպես որ, եթե երկուսի թողունակությունն էլ գերազանցեք, bluetooth- ի ձայնը կարող է կակազել կամ սառեցնել: Մենք հետագայում կփոխենք այնպիսի պարամետր, որը կփրկի դա, սակայն դա ինչ -որ չափով սահմանափակում է WiFi թողունակությունը, այնպես որ ես այս նախագծի համար աուդիո բիթ արագությունը իջեցրի մինչև 160 կբիթ / վրկ, քանի որ մտադիր եմ այն պահել բացառապես WiFi- ում: Եթե դուք օգտագործում եք ethernet, դա խնդիր չէ, և կարող եք ապահով սահմանել բիթային արագությունը մինչև 320 կբիթ / վ:

[ընդհանուր] տևողություն = 0 # տևողություն վրկ, 0 ընդմիշտ բուֆերՀետք = 1 # բուֆեր, վայրկյանների ընթացքում նորից միացեք = այո # նորից միացեք անջատված լինելու դեպքում

[մուտքագրում]

սարք = հեռախոս # bluetooth սարքի նմուշի գնահատական = 44100 # ընտրանքի արագություն 11025, 22050 կամ 44100 բիթ PerSample = 16 # բիթ ալիք = 2 # 2 = ստերեո

[icecast2-0]

bitrateMode = cbr # հաստատուն բիթ -արագություն ('cbr' հաստատուն, 'abr' միջինը) #quality = 1.0 # 1.0 լավագույն որակն է (օգտագործել միայն vbr- ով) ձևաչափ = mp3 # ձևաչափ: Ընտրեք 'vorbis' OGG- ի համար Vorbis bitrate = 160 # bitrate server = localhost # կամ IP port = 8000 # port for IceCast2 access password = hackme # source password for IceCast2 server mountPoint = rapi.mp3 # mount point on IceCast2 server.mp3 կամ.ogg անունը = BluetoothPi

Քայլ 13:

Պատկեր
Պատկեր
Պատկեր
Պատկեր
Պատկեր
Պատկեր
Պատկեր
Պատկեր

Հաջորդը, մենք պետք է կատարենք նույն քայլերը, ինչ նախկինում `« darkice.sh »անունով դատարկ ֆայլ ստեղծելու համար:. Sh ֆայլը համարժեք է.bat կամ խմբաքանակի ֆայլին DOS- ի կամ Windows- ի համար: Բացեք Leafpad- ի միջոցով, պատճենեք և տեղադրեք ստորև նշված տողերը և պահեք: Եթե հետևեք իմ նախորդ հրահանգին, ապա կնկատեք, որ Darkice- ով սկսվող տողը մի փոքր այլ տեսք ունի: Ես ստիպված էի ծածկագիրը տեղադրել մի հանգույցի մեջ, քանի որ ամեն անգամ, երբ Darkice- ը կորցնում է bluetooth ձայնային ազդանշանը, այն կդադարի գործել և ինքնաբերաբար չի վերագործարկվի, նույնիսկ երբ ձայնը վերագործարկվի: Ես շատ եմ ուսումնասիրել այս խնդիրը, և մինչդեռ կան bluetooth սարքերին միացված սցենարի ավտոմատ գործարկման բարդ եղանակներ, Darkice- ը երբեմն կանգ է առնում, երբ ձայնային ազդանշանը կորչում է, նույնիսկ եթե Bluetooth սարքը դեռ միացված է (օրինակ, եթե փակեք YouTube- ը ծրագիրը ձեր հեռախոսի վրա), այնպես որ սա ամենահեշտ և ամենահուսալի միջոցն է `համոզվելու համար, որ Darkice- ն աշխատում է ամեն անգամ, երբ առկա է Bluetooth աուդիո: Եթե Darkice- ն արդեն աշխատում է, հրամանը անտեսվում է:

#!/bin/bash while: անել sudo/usr/bin/darkice -c /home/pi/darkice.cfg; քնել 5; կատարած

Քայլ 14:

Պատկեր
Պատկեր

Հաջորդը մենք պետք է գործարկենք հրաման ՝ darkice.sh ֆայլը գործարկելի դարձնելու համար: Բացեք տերմինալի պատուհանը և մուտքագրեք «sudo chmod 777 /home/pi/darkice.sh» և սեղմեք enter: Այժմ ժամանակն է սկսել Icecast2 սերվերի ծառայությունը: Մուտքագրեք «sudo service icecast2 start» և սեղմեք enter:

sudo chmod 777 /home/pi/darkice.sh

sudo ծառայություն icecast2 սկիզբ

Քայլ 15:

Պատկեր
Պատկեր
Պատկեր
Պատկեր
Պատկեր
Պատկեր
Պատկեր
Պատկեր

Հաջորդը, մենք պետք է Darkice- ին ասենք, որ ինքնաբերաբար սկսվի, երբ Pi- ն գործարկվի (Icecast2 սերվերը աշխատում է որպես ծառայություն և արդեն ինքնաբերաբար սկսում է բեռնվելուց հետո): Նախ պետք է ընտրենք, թե որ տեքստային խմբագրիչն օգտագործի: Տերմինալի պատուհանում մուտքագրեք «ընտրել-խմբագիր» և սեղմեք enter: Մուտքագրեք «2» ՝ nano խմբագիր ընտրելու համար և սեղմեք enter: Այնուհետև մուտքագրեք «crontab -e» և մուտքագրեք: Հաջորդը պահեք ներքև սլաքի ստեղնը ներքև ՝ ամբողջովին ոլորվող տեքստային ֆայլի ներքևում և ավելացրեք այս տողը «@reboot sleep 10 && sudo /home/pi/darkice.sh» տողը: Այնուհետև դուրս գալու համար կտտացրեք Ctrl-X- ին և այն կհրավիրի «Պահե՞լ փոփոխված բուֆերը»: Կտտացրեք Y ստեղնը Այո, այնուհետև Enter ՝ հաստատելու համար, թե ինչ ֆայլի անուն է ստեղծվում ինքնաբերաբար:

ընտրել-խմբագիր

crontab -e

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

Քայլ 16:

Պատկեր
Պատկեր
Պատկեր
Պատկեր
Պատկեր
Պատկեր

Ձեր հեռախոսը զուգակցեք Raspberry Pi- ի հետ ՝ օգտագործելով աշխատասեղանի bluetooth պատկերակը: Կարևոր է, որ դուք տեղադրեք Pi- ի bluetooth- ը հայտնագործման ռեժիմում, այնուհետև զուգակցեք ձեր հեռախոսից: Եթե ձեր հեռախոսը դնում եք հայտնագործման ռեժիմի վրա և փորձում եք այն զուգակցել Pi- ից, ապա այն կարող է միանալ, բայց ձեզ սխալ է տալիս ՝ ասելով, որ ձեր հեռախոսում չկան ծառայություններ, որոնք Pi- ն կարող է օգտագործել, ինչը ճիշտ է: Մենք փորձում ենք ձայնը ուղարկել Pi- ին, այլ ոչ թե հակառակը: Iredուգտկվելուց հետո գործարկեք այս հրամանը տերմինալի պատուհանում ՝ ձեր միացված սարքի bluetooth MAC հասցեն բացահայտելու համար.

sudo bluetoothctl

Քայլ 17:

Պատկեր
Պատկեր
Պատկեր
Պատկեր
Պատկեր
Պատկեր

Որպեսզի Darkice- ն կարողանա օգտագործել bluetooth սարքը որպես PCM աուդիո մուտք, մենք պետք է ֆայլ ստեղծենք «asund.conf» (etc/asound.conf) անունով պանակում և այլն: Մի քանի անգամ կտտացրեք ֆայլերի կառավարչի վերևի սլաքին ՝ արմատային գրացուցակ բարձրանալու համար, այնուհետև կրկնակի կտտացրեք «և այլն» պանակին ՝ այն բացելու համար: Ոլորեք ներքև և Ա -Ա click սեղմեք դատարկ տարածության վրա և ստեղծեք «asound.conf» անունով դատարկ ֆայլ և պատճենեք և տեղադրեք ստորև նշված տողերը ՝ ձեր սարքի MAC հասցեով, որը փոխարինվել է իմով և, իհարկե, պահպանել:

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

Քայլ 18:

Պատկեր
Պատկեր
Պատկեր
Պատկեր
Պատկեր
Պատկեր

Raspberry Pi- ի WiFi և Bluetooth ռադիոկայանները միևնույն չիպի վրա են, այնպես որ, եթե երկուսի թողունակությունն էլ գերազանցեք, bluetooth- ի ձայնը կարող է կակազել կամ սառեցնել: Ոմանք դա սխալ են անվանում, իսկ ոմանք ասում են, որ դա պարզապես սարքավորման սահմանափակում է: Մենք փոխելու ենք այն պարամետրը, որը շտկելու է դա: Այս շտկման տեղադրման համար արժանիքն է «pelwell» - ին ՝ https://github.com/raspberrypi/linux/issues/1402 Կրկին գործարկեք sudo pcmanfm ՝ ֆայլերի կառավարիչը բացելու և/lib/firmware/brcm էջ դիտելու համար: Կրկնակի կտտացրեք «brcmfmac43430-sdio.txt» տեքստային ֆայլին ՝ այն բացելու համար և ներքևում ավելացրեք այս տողերը և պահպանեք:

# Փորձնական Bluetooth համակեցության պարամետրեր Cypressbtc_mode- ից = 1 btc_params8 = 0x4e20 btc_params1 = 0x7530

Քայլ 19:

Պատկեր
Պատկեր
Պատկեր
Պատկեր
Պատկեր
Պատկեր

Կտտացրեք GUI ընտրացանկի պատկերակին և ընտրեք անջատում և վերագործարկում: Եթե դուք հետևել եք այս բոլոր քայլերին ճշգրիտ, ապա ձեր Bluetooth աուդիո սերվերը ինքնաբերաբար կսկսվի ցանկացած վայրից ՝ 30 վայրկյանից մինչև մեկ րոպե, վերաբեռնումը սեղմելուց հետո: Նախքան այն Sonos- ում ավելացնելը, դուք պետք է ձեր հեռախոսի bluetooth- ը միացնեք Pi- ին (պարզապես այն հպելով ձեր հեռախոսի bluetooth- ի կարգավորումներում, քանի որ այն արդեն զուգակցված է) և սկսեք ինչ -որ տեսակի աուդիո նվագարկել և բարձրացնել ձայնը: Հիշեք, որ ձեր հեռախոսի բարձրախոսից ոչ մի ձայն չեք լսի, քանի որ այն կարծում է, որ այն միացված է արտաքին bluetooth բարձրախոսին: Icecast- ը Darkice- ից bluetooth աուդիո ստանալու մասին տեսողական եղանակներից մեկն է `բացել https://192.168.86.107:8000 վեբ դիտարկիչում` ձեր Pi- ի IP- ով փոխարինված իմով: Icecast- ը միշտ աշխատում է, այնպես որ դուք միշտ կտեսնեք կարգավիճակի էջը, բայց եթե Darkice- ը նաև bluetooth ձայն է ստանում, ապա կտեսնեք նաև լեռան կետը և հոսքի նկարագրիչը: Անջատեք ձեր bluetooth- ը և թարմացրեք էջը, և այն նորից կդատարկվի:

Քայլ 20:

Պատկեր
Պատկեր
Պատկեր
Պատկեր

Sonos- ին հատուկ հոսք ավելացնելու համար դուք պետք է օգտագործեք Sonos աշխատասեղանի վերահսկիչի ծրագիրը: Կտտացրեք Կառավարել> Ավելացնել ռադիոկայան և մուտքագրեք այն հոսքի հասցեն, որն իմ դեպքում «https://192.168.86.107:8000/rapi.mp3» էր: Նաև մուտքագրեք կայանի անունը և կտտացրեք OK:

Քայլ 21:

Պատկեր
Պատկեր

Մեր ավելացրած հատուկ ռադիոկայանը նվագարկելու համար ընտրեք «Ռադիո Թունեյնի կողմից», այնուհետև «Իմ ռադիոկայանները»: ՁԱՅՆ Կրկնակի կտտացրեք նվագարկելու համար, կամ ԱIGHԱՇՏ սեղմեք ՝ կայանը ձեր Sonos- ի նախընտրածներին խմբագրելու կամ ավելացնելու համար:

Քայլ 22:

Պատկեր
Պատկեր
Պատկեր
Պատկեր

Պատվերով ռադիոկայան ավելացնելուց հետո այն անմիջապես հասանելի կլինի ձեր Sonos հավելվածում: Բացեք ծրագիրը, ներքևում կտտացրեք «Իմ Sonos», ոլորեք ներքև «Կայաններ» և կտտացրեք «Տեսնել բոլորը»: Ոլորեք ներքև, մինչև չտեսնեք ձեր նորաստեղծ կայանը: Հպեք դրա վրա և այն կսկսի խաղալ ձեր ընտրած սենյակներում: Հիշեք, ̶ Եթե դուք անջատեք ձեր Bluetooth ից ՔԿՀ-ում, ապա Icecast հոսքն արդեն ̶d̶i̶s̶c̶o̶n̶n̶e̶c̶t̶.̶ Եթե դուք միացնում աուդիո հավելվածները Այն կարող է ̶d̶i̶s̶c̶o̶n̶n̶e̶c̶t̶.̶ է վերսկսել լսում Sonos ̶y̶o̶u̶'̶l̶l̶ պետք է վերսկսել խաղալ աուդիո Ձեր հեռախոսը նորից եւ հրում Play- ին ̶T̶h̶e̶ ̶S̶o̶n̶o̶s̶ ̶a̶p̶p̶ ̶a̶g̶a̶i̶n̶.̶ <--- Սա շտկված է. տես թարմացումը ստորև: Հաջողություն և շնորհակալություն կարդալու համար:

Քայլ 23. ԹԱՐՄԱՆՈ:Մ. ՖԻՔՍՎԱ ՍՊԱՍԱՐԿՈԹՅԱՆ ԿՈՄԸ ՄԻԱ WHՎԱ Է, երբ BLUETOOTH- ն անջատվում է

Այսպիսով, Bluetooth- ի հոսքը հիանալի աշխատում էր այս տեղադրման հետ, բացառությամբ, որ Sonos- ն անջատվում էր Icecast սերվերից, երբ Darkice- ը կորցնում էր bluetooth ձայնը, ինչպես, օրինակ, երբ դուք միացնում եք աուդիո ծրագրերը կամ պարզապես անջատում եք bluetooth- ը, ինչը ցավ էր պատճառում, քանի որ մինչ այդ ստիպված կլինեիք նորից Bluetooth ձայնային հոսք ստանալ: Դուք նույնիսկ կարող եք սեղմել նվագարկման կոճակը Sonos հավելվածում:Սա հսկայական խնդիր դարձավ, երբ ես փորձում էի ձայնագրություն փոխանցել Sonos- ին իմ հեռախոսի WatchESPN հավելվածից, որը ամբողջ էկրանով է, այնպես որ bluetooth ձայնը սկսելուց հետո չկարողացա հարվածել Sonos հավելվածի նվագարկման կոճակին, բայց երբ փակեցի WatchESPN ծրագիրը: Sonos- ի հոսքը չի սկսվի, եթե առաջինը Bluetooth ձայնային ազդանշանը միացված չլինի: Վա! Ես մազերս հանում եմ ՝ փորձելով գալ դրա համար էլեգանտ լուծում: Ես փորձեցի մեկ այլ mp3 կոդավորիչ, որը կոչվում է liquidsoap, որն ունի կապ ուղարկելու դեպքում լուռ աուդիո ուղարկելու հնարավորություն, բայց չկարողացա այն գործի դնել bluealsa- ի հետ: Փորձեցի Bluealsa հոսքը խառնել երկրորդական dummy soundcard ալսա հոսքի հետ ՝ օգտագործելով dsnoop և asym ՝ փորձելով խաբել Icecast- ին ՝ կարծելով, որ դեռ կա ձայնային ազդանշան, բայց alsa- ն իրոք թույլ չի տալիս շատ շահարկել bluetooth ձայնը: Այնուհետև ես սկսեցի հետաքննություն կատարել ՝ օգտագործելով Icecast- ում անաղմուկ mp3 ֆայլ, բայց Sonos- ը կտեսներ, որ լեռան կետի անունը փոխվում և անջատվում էր: Ես օգտագործում էի test.mp3 ֆայլը և պատահաբար այն նշանակեցի որպես հիմնական լեռան կետի անուն մեկ անգամ փոխարինողի փոխարեն և նկատեցի, որ Sonos- ը պարզապես անցավ այդ ֆայլը նվագարկելուն, երբ այն անջատվեց bluetooth «rapi.mp3» հոսքից: Եվրիկա! Այն ինքնաբերաբար չի անցնի Bluetooth հոսքին, երբ այն նորից հասանելի դարձավ, և դա ինձ ստիպեց մտածել, թե ինչու չօգտագործել միևնույն լեռան կետի անունը: Այսպիսով, այն, ինչ դուք պետք է անեք, ստեղծել լուռ mp3 ֆայլ և տալ այն նույն անունով, ինչ Darkice mp3 հոսքը ՝ «rapi.mp3» և կոշտ կոդավորել այն որպես Icecast2 կազմաձևման ֆայլի հիմնական ամրացման կետ: Այն, ինչ տեղի է ունենում, այն է, որ երբ Sonos- ը կորցնում է կապը Darkice/bluetooth rapi.mp3 հոսքի հետ, այն պարզապես սկսում է շրջանցել մյուս լուռ rapi.mp3 ֆայլը, մինչև Bluetooth հոսքը վերադառնա առցանց: Այս կերպ ձեզ հարկավոր չէ ունենալ Bluetooth- ի ձայնային ազդանշան, նախքան Sonos- ում նվագարկելը: Ահա թե ինչպես դա անել…

Քայլ 24:

Պատկեր
Պատկեր
Պատկեր
Պատկեր
Պատկեր
Պատկեր

Սկզբում մենք պետք է տեղադրենք ffmpeg ՝ լուռ mp3 ֆայլ ստեղծելու համար: Կարող եք արտաքին ձայնային քարտից ձայնագրել լուռ.wav ֆայլ և mp3- ին վերածել կաղ, բայց քանի որ այս նախագծի համար արտաքին ձայնային քարտ չունեմ, ffmpeg- ի օգտագործումը ամենահեշտ լուծումն էր: Բացեք տերմինալի պատուհանը և մուտքագրեք «sudo apt-get install ffmpeg» և սեղմեք Enter:

sudo apt-get տեղադրել ffmpeg

Տեղադրվելուց հետո պատճենեք և տեղադրեք այս երկար տողը `ծածկագրելու համար լուռ mp3 ֆայլը, որը տևում է ընդամենը մեկ վայրկյան.

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

Բացեք Ֆայլի կառավարիչը որպես արմատ ՝ օգտագործելով «sudo pcmanfm» և թերթեք «/etc/icecast2»: Աջ սեղմեք "icecast.xml"-ի վրա և բացեք Leafpad- ի միջոցով և տեղադրեք այս տողերը հենց վերևի տողի տակ:

/rapi.mp3

Պահեք և վերագործարկեք, և այժմ պետք է կարողանաք գործարկել ձեր հատուկ Sonos bluetooth կայանը, նախքան ձեր հեռախոսը նույնիսկ Bluetooth- ին միացնելը:

Քայլ 25. Լրացում

Լրացում
Լրացում
Լրացում
Լրացում
Լրացում
Լրացում
Լրացում
Լրացում

Ես ցանկանում էի, որ Raspberry Pi- ն և 110V AC- ից մինչև 5V DC սնուցման աղբյուրը ինքնուրույն լինեն մեկ դեպքում, որպեսզի հեշտությամբ կարողանամ այն տեղափոխել տան մեջ, բայց զարմացա, երբ պարզեցի, որ նման պատյան գոյություն չունի: Կարող եմ ավելի ուշ 3D տպել, բայց այդ ընթացքում ես անցա այլ Raspberry Pi պատյանով և գտա բարակ USB պատի լիցքավորիչ և կարճ մալուխ: Լիցքավորիչն ուներ ռետինե ծածկույթ, որի վրա ես չէի կարողանում մաքուր VHB ժապավեն կպցնել, բայց պարզվեց, որ այն կպչուկ էր, որը հեշտությամբ հանվում էր. Այնուամենայնիվ, դա ստեղծեց մի փոքր ընդմիջում, որը VHB ժապավենը չափազանց բարակ դարձրեց, այնպես որ ես օգտագործեցի velcro:

Խորհուրդ ենք տալիս: