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

Sonos Spotify վինիլային էմուլատոր ՝ 26 քայլ
Sonos Spotify վինիլային էմուլատոր ՝ 26 քայլ

Video: Sonos Spotify վինիլային էմուլատոր ՝ 26 քայլ

Video: Sonos Spotify վինիլային էմուլատոր ՝ 26 քայլ
Video: How To Link And Play Spotify Music To Sonos 2024, Հուլիսի
Anonim
Image
Image
Sonos Spotify վինիլային էմուլատոր
Sonos Spotify վինիլային էմուլատոր

Խնդրում ենք նկատի ունենալ, որ սա այս ծրագրի հրահանգների վերջին փաթեթը չէ

Խնդրում ենք այցելել https://www.hackster.io/mark-hank/sonos-spotify-vinyl-emulator-3be63d վերջին հրահանգների և աջակցության համար

Վինիլային երաժշտություն լսելը հիանալի է: Դա ֆիզիկական և շոշափելի է: Դուք լսում եք ոչ թե պատահական, այլ մի ամբողջ ալբոմ: Դուք նկատում եք, երբ այն ավարտվում է և գիտակցաբար ընտրում եք այլ բան: Դուք կարող եք ստեղծել հավաքածու և թերթել այն, այլ ոչ թե փնտրել այն, ինչ ցանկանում եք:

Այն նաև թանկ է և ծանրաբեռնված, հատկապես, երբ հաշվի եք առնում, որ վինիլում ծախսվող ցանկացած գումար, ամենայն հավանականությամբ, երաժշտության կրկնօրինակ է, որին արդեն հասանելի եք հոսքի ծառայության միջոցով, որին բաժանորդագրվում եք:

Այս նախագիծը փորձում է կրկնել վինիլային նրբանկատությունն ու հավաքածուն կառուցելու ասպեկտները ՝ միաժամանակ Spotify- ին ապավինելով երաժշտության իրական մատուցման համար: Ֆիզիկական առարկա տեղադրելով Raspberry Pi- ի հետ կապված NFC ընթերցողի վրա (երկուսն էլ հնարավոր է թաքցնել) կսկսի նվագարկել այդ պիտակի հետ կապված ալբոմը:

Ես ձեզ կանցնեմ բոլոր քայլերով ՝ Raspberry Pi- ի կարգավորումից մինչև NFC պիտակների կոդավորում: Սա իմ առաջին Raspberry Pi նախագիծն է և իմ առաջին Python կոդը, այնպես որ ես ինքս ինձ սովորեցրի երկուսն էլ ՝ սա մշակելիս: Որպես այդպիսին, այս հրահանգները ենթադրում են բառացիորեն զրոյական նախորդ գիտելիքներ և ձեզ հետ խոսում են յուրաքանչյուր քայլի միջոցով:

Հիմնական բաղադրիչի կառուցման ընդհանուր արժեքը մոտավորապես 50-60 ֆունտ է:

Ես շատ կուզենայի տեսնել, թե ինչ եք կառուցում:

Քայլ 1. Պահանջվող պարագաներ 1. Ազնվամորի Պի

Հետևի վերջը, որը միանում է ձեր ցանցին ՝ Sonos- ին և Spotify- ին, գործարկելու է Raspberry Pi- ն: Իրականում շատ քիչ բան է պետք այս ամենը կյանքի կոչելու համար:

Էական:

Raspberry Pi. Ես օգտագործել եմ Raspberry Pi 3 Model B+, բայց այն կաշխատի նաև Raspberry Pi 3 Model A+ - ի հետ (23 ֆունտ ստեռլինգ)

USB սնուցման աղբյուր. Ես ունեի մեկը պառկած, կա պաշտոնականը, եթե չես (£ 9)

Micro SD քարտ. Ես ստացել եմ 32 գբ, որը շատ է այս հավելվածի համար, Amazon- ում (£ 6)

Ձեր ցանցում աշխատող որոշ Sonos սարքավորումներ (ենթադրում եմ, որ սա արդեն ունեք, եթե այստեղ եք …)

A Spotify Premium հաշիվ

Առաջարկվում է ՝

Գործ Pi- ի համար. Կան բազմաթիվ տարբերակներ ՝ սկսած 5 ֆունտից

Մի շիշ արժանապատիվ California Zinfandel: Ես խորհուրդ եմ տալիս Ridge- ին, բայց մյուսները հասանելի են

Քայլ 2. Պահանջվող պարագաներ 2. NFC Reader

Պահանջվող պարագաներ 2: NFC Reader
Պահանջվող պարագաներ 2: NFC Reader
Պահանջվող պարագաներ 2: NFC Reader
Պահանջվող պարագաներ 2: NFC Reader

Այս հրահանգները կառուցված են ACR122U NFC ընթերցողի համար, որը միանում է USB- ի միջոցով:

ACR122U

Ես սա գնել եմ Amazon- ից 38 ֆունտ ստեռլինգով (հիմնականում այն պատճառով, որ այն ունեցել է առաջնային առաքում), բայց այս նույն ընթերցողին գնելու ավելի էժան տարբերակներ կան:

Խառնաշփոթ կերպով թվում է, որ ACR122U- ն վաճառվում է մի շարք տարբեր ապրանքանիշերի ներքո (իմը գտնվում էր «Յոսոո» ապրանքանիշի հեռու), բայց ինչ կարող եմ ասել, դրանք բոլորը նույնն են և կառուցված են American Card Systems- ի կողմից:

Ամենաէժանը, որը ես գտել եմ գովազդվող ACR122U- ն 21 ֆունտ սթերլինգ է, ներառյալ առաքումը, բայց դա գալիս է անմիջապես Չինաստանից, այնպես որ դրա համար գուցե մի փոքր սպասեք:

Այլ ընտրանքներ

Այս նախագիծը հիմնված է nfcpy կոչվող պիթոնի գրադարանի վրա, որը պահպանում է աջակցվող սարքերի ցանկը այստեղ ՝

Տեսականորեն այս նախագիծը պետք է աշխատի այդ ցուցակում գտնվողներից որևէ մեկի հետ ՝ փոքր ինտեգրմամբ:

Մի գայթակղիչ տարբերակ է Adafruit PN532- ը, որը մի տախտակ է, որը պետք է անմիջապես միանա ձեր Raspberry Pi- ին ՝ օգտագործելով jumper մալուխներ: Ես փորձեցի և գտա, որ այն իրական սխալ է: Դա պահանջում է զոդում, օրինակ:

Դրա առավելություններից մեկը մակերեսորեն այն է, որ այն ավելի փոքր է, բայց իրականում տախտակը մոտավորապես նույն չափի է, ինչ ACR122U- ի փորոտիքը: Եթե դուք իսկապես տեղ եք զբաղեցնում ձեր դիմումի համար, ապա կարող եք պլաստիկը հանել ACR122U- ից և պարզապես օգտագործել տախտակը:

Քայլ 3. Պահանջվող պարագաներ 3. NFC պիտակներ

Պահանջվող պարագաներ 3: NFC պիտակներ
Պահանջվող պարագաներ 3: NFC պիտակներ

Յուրաքանչյուր ալբոմի համար, որը ցանկանում եք ստեղծել, ձեզ հարկավոր է NFC պիտակ, որը համապատասխանում է NTAG213 ստանդարտին:

Սրանք գնելու շատ տեղեր կան:

Ես գնել եմ իմ առաջին խմբաքանակը Amazon- ից, որտեղից ստացել եմ 10 փաթեթ ՝ 9 ֆունտ ստեռլինգով (ներառյալ Prime առաքումը)

Ամենալավը, որ ես գտել եմ այստեղ ՝ Միացյալ Թագավորությունում, Seritag- ն է: նրանք ունեն տարբեր ոճերի իսկապես լայն ընտրանի, հիանալի խորհուրդներ իրենց կայքում, դուք հստակ գիտեք, թե ինչ եք ստանում (միշտ չէ, որ ճշմարիտ է Amazon- ում): Նրանք չունեն պատվերի նվազագույն չափ և մի շարք հնարավորություններ: Պիտակները սկսվում են մեկ պիտակի համար 27p- ից

Քայլ 4: Ներբեռնեք Raspberry Pi OS- ն SD քարտի վրա

Ներբեռնեք Raspberry Pi OS- ն SD քարտի վրա
Ներբեռնեք Raspberry Pi OS- ն SD քարտի վրա
Ներբեռնեք Raspberry Pi OS- ն SD քարտի վրա
Ներբեռնեք Raspberry Pi OS- ն SD քարտի վրա

Ձեր համակարգչի կամ Mac- ի վրա ներբեռնեք և գործարկեք Raspberry PI պատկերող ծրագիրը:

Տեղադրեք SD քարտը, որի վրա ցանկանում եք տեղադրել Raspberry Pi օպերացիոն համակարգը:

Կտտացրեք CHOOSE OS- ին և ընտրեք կանխադրված Rasbian- ը:

Կտտացրեք ԸՆՏՐԵԼ SD ՔԱՐՏԸ և ընտրեք միացված SD քարտը:

Կտտացրեք ԳՐԵԼ. Սա կարող է որոշ ժամանակ տևել:

Ավարտելուց հետո այն ձեզ կասի հեռացնել SD քարտը, ինչը դուք պետք է անեք: Բայց հետո նորից միացրեք այն, քանի որ կան տնային տնտեսության մի քանի կետեր, որոնք առաջին հերթին պետք է անեք:

Քայլ 5. Միացրեք SSH- ը ձեր Raspberry Pi OS պատկերի վրա

Միացրեք SSH- ը ձեր Raspberry Pi OS պատկերի վրա
Միացրեք SSH- ը ձեր Raspberry Pi OS պատկերի վրա

Երբ OS- ն գրված է SD քարտի վրա, կան մի քանի լրացուցիչ առաջադրանքներ, որոնք դուք պետք է անեք:

Մենք ցանկանում ենք մուտք գործել Raspberry Pi ՝ առանց ստեղնաշար կամ մոնիտոր միացնելու (նույնը ՝ «անգլուխ»), ինչը կարող ենք անել մեր տեղական ցանցի միջոցով ՝ օգտագործելով մեր համակարգիչը կամ Mac- ը ՝ SSH կոչվող արձանագրության միջոցով: Այնուամենայնիվ, անվտանգության նկատառումներից ելնելով ՝ SSH- ն լռելյայն անջատված է: Մենք պետք է այն հնարավորություն տանք:

Մենք կարող ենք դա անել ՝ ստեղծելով դատարկ ֆայլ, որը կոչվում է ՝

սշ

մեր ստեղծած SD քարտում: Կարևոր է, որ սա չունենա որևէ ընդլայնում (օրինակ.txt): Ֆայլն ինքնին կարիք չունի պարունակել որևէ բովանդակություն. Պարզապես դրա առկայությունը հնարավորություն կտա SSH- ին, երբ Pi- ն բարձրանա:

Քայլ 6. Լրացուցիչ. Ստեղծեք Wifi ձեր ազնվամորի Pi- ի վրա

Լրացուցիչ. Կարգավորեք Wifi ձեր ազնվամորի Pi- ի վրա
Լրացուցիչ. Կարգավորեք Wifi ձեր ազնվամորի Pi- ի վրա
Լրացուցիչ. Կարգավորեք Wifi ձեր ազնվամորի Pi- ի վրա
Լրացուցիչ. Կարգավորեք Wifi ձեր ազնվամորի Pi- ի վրա

Դուք կարող եք բաց թողնել այս քայլը, եթե մտադիր եք ձեր Raspberry Pi- ն միացնել ձեր երթուղիչին ethernet- ով: (Չնայած գուցե ցանկանաք լավ մտածել այդ որոշման մասին. Այն WiFi- ի վրայով անցնելը կյանքը շատ ավելի դյուրին է դարձնում դա տեղադրելու առումով)

SD քարտի արմատային գրացուցակում ստեղծեք wpa_supplicant.conf կոչվող պարզ տեքստային ֆայլ:

Ստորև բերված տեքստը տեղադրեք ֆայլի մեջ.

երկիր = gb

update_config = 1 ctrl_interface =/var/run/wpa_supplicant network = {scan_ssid = 1 ssid = "MyNetworkSSID" psk = "MyPassword"}

Փոխեք երկիրը ըստ անհրաժեշտության (GB- ն Մեծ Բրիտանիա է, ԱՄՆ -ն ՝ ԱՄՆ, DE- ն ՝ Գերմանիա և այլն)

Փոխեք wifi հավատարմագրերն այնտեղ ՝ ձեր իրական wifi երթուղիչի մանրամասները լինելու համար:

Պահպանել ֆայլը:

Ապահով դուրս հանեք SD քարտը:

Քայլ 7: Միացրեք ձեր ազնվամորի Pi- ն

Միացրեք ձեր ազնվամորու Պիին
Միացրեք ձեր ազնվամորու Պիին

Տեղադրեք ձեր ստեղծած SD քարտը ձեր Raspberry Pi- ի մեջ:

Միացրեք ձեր Raspberry Pi- ն USB մալուխի միջոցով: Սպասեք մի րոպե, մինչև այն գործարկվի:

Քայլ 8: Գտեք ձեր Raspberry Pi- ի IP հասցեն

Այժմ դուք պետք է գտնեք Raspberry Pi- ի IP հասցեն, որպեսզի կարողանաք միանալ դրան: Դուք կարող եք դա անել երկու եղանակով.

  • ձեր երթուղիչի տեղադրման էջի միջոցով. եթե ունեք eero- ի նման ժամանակակից երթուղիչ, ապա դա շատ հեշտ է.
  • կամ iOS- ի և Android- ի համար հասանելի սմարթֆոնի հավելվածի միջոցով, որը կոչվում է «մատ» - ներբեռնեք այն, միացեք ձեր երթուղիչին և սկանավորեք սարքեր, որոնցից մեկը պետք է կոչվի «Ազնվամորի» - սա կլինի ձեզ անհրաժեշտ IP հասցեն:

Քայլ 9. Միացեք ձեր Raspberry Pi հրամանի տողին

Միացեք ձեր Raspberry Pi հրամանի տողին
Միացեք ձեր Raspberry Pi հրամանի տողին

Բացեք Terminal- ը ձեր mac- ում (կամ եթե Windows- ից եք օգտվում, ապա ներբեռնեք և օգտագործեք Putty):

Մուտքագրեք հետևյալ հրամանը.

ssh pi@[ձեր Pi- ի IP հասցեն]

Ընդունեք ձեր ստացած անվտանգության ցանկացած նախազգուշացում: Ձեզանից կպահանջվի գաղտնաբառ լռելյայն pi օգտագործողի համար, որն է

ազնվամորի

Քայլ 10: Կարգավորեք Raspberry Pi OS GUI- ն

Կարգավորեք Raspberry Pi OS GUI- ն
Կարգավորեք Raspberry Pi OS GUI- ն
Կարգավորեք Raspberry Pi OS GUI- ն
Կարգավորեք Raspberry Pi OS GUI- ն

Դուք այժմ միացված եք ձեր Pi- ին հրամանի տողի միջոցով, ինչը հիանալի է, բայց նաև ցանկանում եք այն կարգավորել, որպեսզի կարողանաք մուտք գործել գրաֆիկական ինտերֆեյս, որին մենք մուտք կունենանք VNC (Վիրտուալ ցանցի հաշվարկ) միջոցով: Կանխատեսելիորեն, մենք նույնպես պետք է հնարավորություն տանք դա:

Առաջին հերթին ստուգեք, որ ձեր Pi ծրագրակազմը արդիական է ՝ հրամանի տողում մուտքագրելով հետևյալ երկու հրամանները (որոնցից յուրաքանչյուրը հաջորդում է մուտքագրմանը).

sudo apt թարմացում

sudo apt տեղադրել realvnc-vnc-server realvnc-vnc-viewer

Հաջորդը, բացեք Raspberry Pi- ի կարգավորումների ցանկը `մուտքագրելով.

sudo raspi-config

Գնացեք դեպի Ինտերֆեյսի ընտրանքներ> VNC> Այո:

Դուրս եկեք կազմաձևման ծրագրից ՝ սեղմելով փախուստի ստեղնը և վերագործարկեք Pi հրամանի տողից ՝ մուտքագրելով.

sudo վերագործարկում

Քայլ 11. Միացեք և կարգավորեք ձեր Raspberry Pi GUI- ն

Միացեք և կարգավորեք ձեր Raspberry Pi GUI- ն
Միացեք և կարգավորեք ձեր Raspberry Pi GUI- ն
Միացեք և կարգավորեք ձեր Raspberry Pi GUI- ն
Միացեք և կարգավորեք ձեր Raspberry Pi GUI- ն

Ներբեռնեք և բացեք VNC Viewer- ը:

Մուտքագրեք ձեր Raspberry Pi- ի IP հասցեն և սեղմեք Connect: Այն ձեզ կպահանջի օգտվողի անուն և գաղտնաբառ, որոնք են.

Մականուն = pi

Գաղտնաբառ = ազնվամորի

Սա պետք է գործի ձեզ մինչև GUI:

Այն ձեզ հուշում է հաստատել ձեր աշխարհագրությունը և ստեղնաշարի դասավորությունը:

Այնուհետև ձեզ հուշում է փոխել ձեր գաղտնաբառը (լավ գաղափար):

Ձեզանից կպահանջվի սահմանել ձեր wifi մանրամասները, բայց կարող եք բաց թողնել դրանք, քանի որ դրանք արդեն աշխատում են: (Թեև եթե աշխատում եք ethernet- ով և երկրորդ մտքեր ունեք, ապա այժմ ձեր հնարավորությունն է … բայց նշեք, որ ձեր IP հասցեն կարող է փոխվել)

Այնուհետև այն ստուգելու է, ներբեռնելու և տեղադրելու է թարմացումները (կարող է որոշ ժամանակ տևել):

Կարգավորման հրաշագործին անցնելուց հետո ես խորհուրդ կտայի փոխել էկրանի լուծաչափը, քանի որ կանխադրվածը բավականին փոքր է: Դուք կարող եք դա անել ՝ կտտացնելով Ազնվամորիին վերևի ձախ մասում> Նախապատվություններ> Raspberry Pi կազմաձևում> Displayուցադրել> Սահմանել լուծում

Այն ուժի մեջ մտնելու համար նորից պետք է վերագործարկեք Pi- ն:

Քայլ 12: Տեղադրեք Node.js և NPM

Տեղադրեք Node.js և NPM
Տեղադրեք Node.js և NPM

Հաջորդը ցանկանում եք բեռնել Raspberry Pi հրամանի տողը `մեզ անհրաժեշտ կախվածությունները տեղադրելու համար:

Դուք կարող եք դա անել ՝ միանալով VNC- ի միջոցով և կտտացնելով վերևի կոճակին, որը նման է հրամանի տողի; կամ կարող եք ուղղակիորեն միանալ ձեր Mac/PC- ից ՝ օգտագործելով Terminal- ը և Putty- ն, ինչպես դա արել էինք նախկինում: Եթե դուք ավելի քիչ սովոր եք աշխատել Raspberry Pi- ի հետ, ապա ավելի հեշտ է անել առաջինը:

(Հուշում. Դուք կարող եք պատճենել տեքստը ձեր Mac/PC- ից և տեղադրել այն Raspberry Pi- ում VNC- ի միջոցով ՝ սեղմելով CONTROL-V, բայց եթե փորձում եք տեղադրել տերմինալում, ապա պետք է սեղմել CONTROL-SHIFT-V)

Առաջին գործն է `նորից ստուգել ձեր ծրագրակազմի արդիականությունը` մուտքագրելով հետևյալ երկու հրամանները: Նրանց ներբեռնելու և տեղադրելու համար կարող է որոշ ժամանակ պահանջվել:

sudo apt-get թարմացում

sudo apt-get բարելավում

Հաջորդը ցանկանում եք ներբեռնել և տեղադրել node.js և NPM (շատ մի անհանգստացեք, թե ինչ են դրանք, դրանք օգտակար և անհրաժեշտ են մեր հաջորդ առաջադրանքների համար) ՝ մուտքագրելով հետևյալը.

sudo apt-get տեղադրել nodejs npm

Այն ձեզ մի քանի անգամ կհարցնի ՝ արդյոք ուրախ եք դրանցով զբաղեցնել սկավառակի տարածքը, այնպես որ սեղմեք Y- ը

Քայլ 13: Տեղադրեք SONOS HTTP API

Տեղադրեք SONOS HTTP API- ն
Տեղադրեք SONOS HTTP API- ն
Տեղադրեք SONOS HTTP API- ն
Տեղադրեք SONOS HTTP API- ն

Մեր նախագծի հետևի հիմքը jishi- ի կողմից ստեղծված node-sonos-http-api փաթեթն է: Այս ամենի մասին կարող եք կարդալ այստեղ ՝

Մենք սա կբեռնենք github- ից ՝ հրամանի տող մուտքագրված հետևյալ հրամանով.

git կլոն

և մենք այն տեղադրելու ենք հետևյալ հրամաններով

cd հանգույց-sonos-http-api

npm տեղադրել -արտադրություն

Այնուհետև մենք կարող ենք այն գործարկել հետևյալ հրամանով.

npm սկիզբը

Երբ դա արվի, մենք պետք է ստուգենք, որ այն աշխատում է:

Առաջին հերթին, բացեք ինտերնետային դիտարկիչը մեր Raspberry Pi- ում և անցեք https:// localhost: 5005/: Գեղեցիկ ինտերֆեյսը պետք է բացվի Sonos- ի պատկերանշանով և API- ի աշխատանքի վերաբերյալ որոշ փաստաթղթերով:

Հաջորդը, եկեք ստուգենք, որ սա աշխատում է ավելի լայն ցանցից ՝ օգտագործելով մեկ այլ համակարգչի կամ Mac- ի նույն ցանցի դիտարկիչ և նավարկելով դեպի https:// [theIPaddressofyourPi]: 5005/և տեսնելով, թե արդյոք մենք կստանանք նույն արդյունքը: Մենք պետք է.

Այժմ մենք իրականում կստիպենք համակարգին ինչ -որ բան անել: Օգտագործեք դիտարկիչ և նավարկեք ՝

192.168.4.102:5005/ iningաշասենյակ/playpause

Դուք պետք է վերը նշված IP հասցեն փոխարինեք ձեր Raspberry Pi- ի և «iningաշասենյակի» հասցեով ՝ ձեր Sonos գոտիների անուններից մեկով: Այն պետք է կամ նվագի կամ դադար տա (կախված այն բանից, թե արդյո՞ք երաժշտություն արդեն հնչում է, թե՞ ոչ) այդ սենյակի երաժշտությունը: Ակնհայտ է, որ ինչ -որ բան պետք է լինի Sonos- ի հերթում, որպեսզի այն աշխատի:

Առաջ գնալով, ես պատրաստվում եմ օգտագործել վերը նշված IP հասցեն և iningաշասենյակը որպես օրինակներ այս ձեռնարկի ընթացքում: Ակնհայտ է, որ դրանք յուրաքանչյուր առիթով պետք է փոխարինեք ձեր IP հասցեով և ձեր գոտու անունով:

Քայլ 14. Ստեղծեք Sonos HTTP API- ն անընդհատ աշխատելու համար

Կատարեք Sonos HTTP API- ի անընդհատ գործարկումը
Կատարեք Sonos HTTP API- ի անընդհատ գործարկումը

Հիանալի է, որ մենք աշխատում ենք Sonos HTTP API- ով, բայց ի՞նչ անել, եթե այն խափանվի: Կամ դուք կորցնում եք էներգիան կամ կարիք ունեք վերագործարկել ձեր Raspberry Pi- ն:

Դուք կարող եք տեսնել ազդեցությունը ՝ փակելով տերմինալի պատուհանը և կրկին փորձելով այն, ինչ մենք հենց նոր փորձեցինք: Այն չի աշխատի, քանի որ HTTP API- ն դադարել է տերմինալի պատուհանի հետ միասին:

Մենք իրականում ցանկանում ենք, որ սա անընդհատ գործի, և ամեն անգամ դա անել սկզբից: Մենք դա անում ենք մի թույն բանով, որը կոչվում է PM2:

Թարմ տերմինալի պատուհանում տեղադրեք և գործարկեք այն հետևյալ կերպ.

sudo npm տեղադրել -g pm2

pm2 կարգավիճակը

Այժմ եկեք այն գործարկենք մեր Sonos HTTP API- ի գործարկման համար.

cd հանգույց-sonos-http-api

pm2 start npm - սկսել pm2 գործարկման համակարգ

Այս վերջին հրամանը ստեղծում է մի բան, որը մի փոքր նման է.

sudo env PATH = $ PATH:/usr/bin/usr/local/lib/node_modules/pm2/bin/pm2 գործարկման համակարգ d -u pi --hp/home/pi

Պատճենեք այն, ինչ ստեղծում է ձեր Pi- ն (ոչ թե վերը նշված ճշգրիտ տեքստը. Քոնը կարող է տարբեր լինել) և մուտքագրեք այն հրամանի տողում: Սա համակարգին հրահանգում է ամեն անգամ PM2 գործարկել բեռնման վրա:

Վերջապես, մուտքագրեք.

pm2 խնայել

որը փրկում է ամեն ինչ:

Այժմ ստուգեք, թե արդյոք դա աշխատել է ՝ վերագործարկելով ձեր Raspberry Pi հրամանը

sudo վերագործարկում

Հուսով եմ, որ երբ Pi- ն վերագործարկվի, այն կսկսի նաև PM2- ը և իր հերթին Sonos HTTP API- ն: Դուք կարող եք դա ստուգել ՝ նույն ցանցի դիտարկիչի միջոցով նավարկելով այն հասցեով, որը մենք օգտագործել էինք նախկինում և տեսնել Sonos- ի պատկերանշանը և հրահանգները.

192.168.4.102:5005/

դա այն է, ինչ ինձ համար է, բայց քոնը կախված կլինի IP հասցեից:

Քայլ 15. Խաղացեք որոշ Spotify

Եկեք ստուգենք, որ ծառայությունը կարող է մուտք գործել Spotify:

Բացեք դիտարկիչը և անցեք հետևյալ հասցեին (ակնհայտորեն փոխարինելով ձեր IP հասցեով և սենյակի անունով).

192.168.4.102:5005/ iningաշասենյակ/spotify/այժմ/spotify/spotify: ալբոմ ՝ 2dfTV7CktUEBkZCHiB7VQB

Դուք պետք է լսեք ինչ -որ Johnոն Գրանտ: Վայելեք:

Քայլ 16: Գտեք Spotify URI- ներ

Գտեք Spotify URI- ներ
Գտեք Spotify URI- ներ

Տարօրինակ է, ես գիտեմ, բայց ոչ բոլորին է դուր գալիս Johnոն Գրանտը: Միգուցե ուզում եք այլ բան լսել:

Դուք կարող եք ստանալ Spotify- ի հղումները աշխատասեղանից, վեբից կամ բջջային ծրագրերից, սակայն աշխատասեղանն ամենահեշտն է, քանի որ այն URI- ն մատուցում է հենց ձեր ուզած ձևաչափով, ուստի սկսեք դրանից:

Spotify աշխատասեղանի հավելվածում անցեք այն ալբոմին, որը ցանկանում եք լսել (գուցե Բեյոնսեի Lemonade):

Սեղմեք սրտի կոճակի կողքին գտնվող երեք փոքրիկ կետերի վրա:

Իջեցրեք ընտրացանկը Share և ընտրեք Copy Spotify URI

Սա կրկնօրինակելու է նման մի բան

ալբոմ ՝ 7dK54iZuOxXFarGhXwEXfF

ձեր սեղմատախտակին, որը Բեյոնսեի Lemondade ալբոմի Spotify URI- ն է:

Կրկին վառեք ձեր դիտարկիչը և անցեք հետևյալ հասցեին (ակնհայտորեն փոխարինելով IP հասցեն և սենյակը և տեղադրելով հենց պատճենած URI- ում).

192.168.4.102:5005/ iningաշասենյակ/spotify/այժմ/[Spotify URI, որը ցանկանում եք խաղալ]

Դուք պետք է լսեք ձեր ընտրած խաղը:

Եթե նախընտրում եք օգտագործել վեբ ծրագիրը, ապա այն ձեզ կտա վեբ հղում (ստորև բերված նման բան).

open.spotify.com/album/7dK54iZuOxXFarGhXwEXfF

դուք պետք է այն փոխարկեք spotify: album: վերը նշված կոդի ձևաչափի, որպեսզի այն աշխատի:

Քայլ 17. Նշում Spotify URI- ների վերաբերյալ

Spotify URI- ները և նրանք, թե ինչպես են նրանք միանում node-sonos-http-api- ին, մեծ մասամբ ինտուիտիվ են:

Կարող եք ուղղակիորեն կապել ալբոմներին, հետքերին և տեսացանկերին:

URI ալբոմի տեսքը հետևյալն է.

ալբոմ ՝ 6agCM9GJcebduMddgFmgsO

Հետագծի URI- ն ունի հետևյալ տեսքը.

spotify: track: 4fNDKbaeEjk2P4GrRE1UbW

Տեսացանկերը գործում են մի փոքր այլ կերպ: Երբ պատճենեք URI- ն Spotify- ից, այն նման կլինի հետևյալին.

spotify: երգացանկ ՝ 5huIma0YU4iusLcT2reVEU

Այնուամենայնիվ, API- ի վրա աշխատելու համար հարկավոր է ավելացնել spotify: user: վերը նշվածի սկզբին: Սա վերաբերում է նույնիսկ հանրային տեսացանկերին և, այո, նշանակում է, որ դուք երկու անգամ ասում եք spotify:

Շատ պարզ լինելու համար օգտագործողը կարիք չունի լինել որոշակի օգտվողի անուն, այլ միայն տեքստային օգտագործողի: Այսպիսով, վերը նշված երգացանկի գործարկման համար ճիշտ URI- ը կլինի.

spotify: օգտվող: spotify: երգացանկ `5huIma0YU4iusLcT2reVEU

Քայլ 18. Տեղադրեք Raspberry Pi ՝ HTTP հարցումներն ուղարկելու համար

Տեղադրեք Raspberry Pi ՝ HTTP հարցումներն ուղարկելու համար
Տեղադրեք Raspberry Pi ՝ HTTP հարցումներն ուղարկելու համար

Համացանցային դիտարկիչում HTTP հարցումները ձեռքով մուտքագրելու փոխարեն, մենք ցանկանում ենք ավտոմատացնել այն, որպեսզի Raspberry Pi- ն դա անի ինքնին, երբ այն ներկայացվում է որոշակի խթանով (NFC ընթերցողը գործարկվում է):

Մենք կօգտագործենք գրադարան, որը կոչվում է հարցում ՝ մեր Raspberry Pi- ին դա անելու համար: Եկեք ստուգենք, որ այն տեղադրված է:

Բացեք ձեր Pi- ի տերմինալը և մուտքագրեք հետևյալը.

sudo pip տեղադրման հարցումներ

Ամենայն հավանականությամբ, այն կվերադառնա և կասի, որ այն արդեն տեղադրված է, որի դեպքում հիանալի է: Եթե ոչ, այն կտեղադրի:

Քայլ 19. Ստեղծեք NFCC պիտակներ (ներ) Spotify- ի տվյալներով

Ստեղծեք NFCC պիտակ (ներ) Spotify- ի տվյալներով
Ստեղծեք NFCC պիտակ (ներ) Spotify- ի տվյալներով
Ստեղծեք NFCC պիտակ (ներ) Spotify- ի տվյալներով
Ստեղծեք NFCC պիտակ (ներ) Spotify- ի տվյալներով
Ստեղծեք NFCC պիտակ (ներ) Spotify- ի տվյալներով
Ստեղծեք NFCC պիտակ (ներ) Spotify- ի տվյալներով
Ստեղծեք NFCC պիտակ (ներ) Spotify- ի տվյալներով
Ստեղծեք NFCC պիտակ (ներ) Spotify- ի տվյալներով

Այժմ մենք ցանկանում ենք Spotify ալբոմի URI գրել NFC պիտակի վրա: Այս պիտակներից յուրաքանչյուրն այն է, ինչ կօգտագործեք Raspberry Pi- ին որոշակի ալբոմ նվագելու համար:

Դուք կարող եք գրել NFC պիտակի վրա ՝ օգտագործելով Android հեռախոս, բայց ես կարծում եմ, որ դա ամենահեշտն է դա անել Mac- ի կամ ԱՀ -ի միջոցով, քանի որ այնուհետև կարող եք ստանալ ամենահեշտը Spotify URI- ները Spotify աշխատասեղանի ծրագրից:

Միացրեք ձեր USB NFC ընթերցողը ձեր համակարգչին կամ Mac- ին: Ես օգտագործում եմ ACR122U- ն American Card Systems- ի կողմից:

Ներբեռնեք NFC գործիքները ձեր համակարգչին կամ Mac- ին: Տեղադրեք և բացեք այն:

Երբեմն կարող է մի փոքր դանդաղ լինել ընթերցողին միանալը և կարող է ասել, որ այն ընդհանրապես չի գտնում ընթերցողին: Գնացեք NFC գործիքների «Այլ» ներդիր և հաճախակի սեղմեք «Միացված NFC ընթերցող» կոճակի վրա: Հնարավոր է ստիպված լինեք մի քանի անգամ անջատել և նորից միացնել ընթերցողին, մինչև այն գտնի:

Ի վերջո, դա ձեզ հնարավորություն կտա ընտրել ձեր ընթերցողին ցուցակից և ասել, որ այն կապված է: Գնացեք Տեղեկատվության ներդիր, որը ոչինչ չի ցուցադրի, բացառությամբ «Սպասել NFC պիտակի»:

Վերցրեք դատարկ NFC պիտակ: Դրեք այն ընթերցողի վրա և թողեք այնտեղ: NFC գործիքները կցուցադրեն պիտակի մասին տեղեկությունները:

Գնացեք Գրել ներդիրին և կտտացրեք Ավելացնել գրառում> Տեքստ: (Carefulգույշ եղեք, որ URL կամ URI չընտրեք. Ես գիտեմ, որ դա գայթակղիչ է, քանի որ դուք պատճենում եք URI, բայց տեքստ եք ուզում)

Գրավեք Spotify- ի URI- ն ՝ նախկինում օգտագործած մեթոդով: Եթե ցանկանում եք հեշտ օրինակ, ապա ստորև ներկայացված է մեր նախկին John Grant ալբոմը:

ալբոմ ՝ 2dfTV7CktUEBkZCHiB7VQB

Կտտացրեք OK, այնուհետև կտտացրեք Գրեք (մի մոռացեք այս վերջին քայլը. Այն իրականում չի գրվում, քանի դեռ չեք սեղմել սա): Այն ձեզ կասի, որ պիտակը հաջողությամբ գրված է:

Հեռացրեք պիտակը ընթերցողից

Քայլ 20. Տեղադրեք NFC Reader- ը Raspberry Pi- ի վրա

Տեղադրեք NFC Reader- ը Raspberry Pi- ի վրա
Տեղադրեք NFC Reader- ը Raspberry Pi- ի վրա

Միացրեք ձեր NFC ընթերցողին ձեր Raspberry Pi- ի USB պորտերից մեկը:

NFC ընթերցողի հետ շփվելու համար մենք կօգտագործենք nfcpy Python գրադարանը: Տեղադրեք այն ՝ ձեր Pi հրամանի տողում մուտքագրելով հետևյալը.

pip տեղադրել -U nfcpy

Այնուհետեւ մենք կարող ենք ստուգել, թե արդյոք այս գրադարանը ի վիճակի է տեսնել մեր NFC ընթերցողին ՝ մուտքագրելով հետևյալը.

python -m nfc

Եթե այն աշխատել է, ապա կտեսնեք հետևյալը.

Սա nfcpy- ի 1.0.3 տարբերակն է, որն աշխատում է Python 2.7.16-ում Linux-4.19.97-v7+-armv7l-with-debian-10.3

Ես այժմ ձեր համակարգում փնտրում եմ անշփոթ սարքեր ** գտա ACS ACR122U PN532v1.6 usb: 001: 011 սերիական սարքեր չեմ փորձում, քանի որ դուք ինձ չեք ասել. Ավելացրեք '-search-tty' տարբերակը ինձ նայելու համար - բայց զգույշ եղեք, որ դա կարող է կոտրել այլ սերիական մշակողներ

Այնուամենայնիվ, մեծ հավանականություն կա, որ դուք ստանում եք սխալի հաղորդագրություն, որտեղ ասվում է, որ ընթերցողը գտնվել է, բայց ձեր օգտվողը (pi) չունի այն մուտք գործելու թույլտվություն: Եթե դուք ստանում եք այս սխալի հաղորդագրությունը, այն նաև կբացատրի, թե ինչպես շտկել խնդիրը, այն է ՝ մուտքագրելով երկու հրաման, որը մի փոքր նման է հետևյալին.

sudo sh -c 'echo SUBSYSTEM == / "usb \", ACTION == / "add \", ATTRS {idVendor} == / "04e6 \", ATTRS {idProduct} == / "5591 \", GROUP = / "plugdev \" >> /etc/udev/rules.d/nfcdev.rules '

sudo udevadm հսկողություն -R

Պատճենեք և կատարեք ձեզ տրված երկու հրամանները (ոչ թե այն, ինչ վերևում է, քանի որ ձերն էլ կարող է տարբեր լինել), այնուհետև անջատեք և նորից միացրեք USB պորտից ձեր NFC ընթերցողին:

Կրկին փորձեք ստուգման հրամանը.

python -m nfc

Այս անգամ այն պետք է ասի, որ այն գտնվել է առանց սխալի հաղորդագրությունների:

Քայլ 21. Տեղադրեք Vinylemulator Python սցենարները

Այժմ մենք ունենք բոլոր շինանյութերը տեղում.

  • Մեր Raspberry Pi- ն ունակ է լսել NFC մուտքագրման համար
  • Մեր Raspberry Pi- ն ի վիճակի է Sonos- ին ասել, որ Spotify տեսացանկեր նվագի, երբ տրվում է Spotify URI
  • Մենք ունենք NFC պիտակ, որի վրա պահված է Spotify URI- ն

Այժմ մենք պետք է այս բոլոր շինանյութերը քաշենք ինչ -որ օգտակար բանի մեջ: Դա արվում է իմ գրած կարճ պիթոնի սցենարի միջոցով (նախորդ NFC/Spotify/Sonos նախագծերի մեծ օգնությամբ), որը կոչվում է vinylemulator:

Դուք կարող եք դիտել ֆայլերի աղբյուրի կոդը github- ում ՝

Սա մեր Raspberry Pi- ի վրա տեղադրելու համար մենք պետք է այն կլոնավորենք github- ից հետևյալ հրամանով.

git կլոն

Քայլ 22: Անհատականացրեք Vinylemulator- ը

Անհատականացրեք Vinylemulator- ը
Անհատականացրեք Vinylemulator- ը
Անհատականացրեք Vinylemulator- ը
Անհատականացրեք Vinylemulator- ը

Բացեք Raspberry Pi ֆայլերի կառավարիչը և նավարկեք դեպի տուն> pi> vinylemulator

Բացեք ֆայլը usersettings.py

Այս ֆայլի տողերից մեկը կկարդա.

sonosroom = "iningաշասենյակ"

Փոխեք «iningաշասենյակ» ՝ այն որևէ Sonos սենյակի անունով, որը ցանկանում եք վերահսկել:

Այս ֆայլում կա նաև մի կարգավորում, որը թույլ է տալիս հարմարեցնել sonos-http-api- ի IP հասցեն: Դուք պետք է կարողանաք անփոփոխ թողնել սա որպես «localhost», ինչը նշանակում է, որ այն կօգտագործի Raspberry Pi- ն, որի վրա այն աշխատում է:

Պահպանեք ֆայլը և փակեք այն:

Քայլ 23. Փորձարկեք Vinylemulator- ը

Փորձարկել Vinylemulator- ը
Փորձարկել Vinylemulator- ը
Փորձարկել Vinylemulator- ը
Փորձարկել Vinylemulator- ը

Գնացեք ձեր Raspberry Pi հրամանի տողում:

Մուտքագրեք հետևյալ հրամանը.

python vinylemulator/readnfc.py

Եթե ամեն ինչ լավ լինի, սա կբեռնի սցենարը և կասի, որ ընթերցողը պատրաստ է: Ընթերցողի վրա լույսը պետք է կանաչի:

NFC պիտակը դրեք ընթերցողի վրա, որը կտա ազդանշան:

Տերմինալը ցույց կտա այն, ինչ կարդացել է NFC պիտակից և ցույց կտա իր ուղարկած HTTP հարցման հասցեն: Ձեր ընտրած ալբոմը պետք է հնչի ձեր Sonos բարձրախոսներից:

Այս սցենարը կշարունակվի մինչև փակեք տերմինալի պատուհանը: Կարող եք հպել տարբեր ալբոմների NFC պիտակներին, և այն կանցնի այդ ալբոմին:

Քայլ 24. Ստացեք Vinylemulator- ը `անընդհատ աշխատելու և գործարկման համար

Theիշտ այնպես, ինչպես sonos-http-api- ն, մենք ցանկանում ենք, որ vinylemulator- ը գործի անընդհատ, այլ ոչ թե այն ժամանակ, երբ մենք այն անվանում ենք: Մենք նորից կարող ենք դա անել pm2- ով:

Նախ փակեք ձեր գործարկած vinylemulator- ի ցանկացած դեպք `փակելով դրանց տերմինալային պատուհանները:

Այնուհետև բացեք տերմինալի թարմ պատուհան և մուտքագրեք հետևյալ երկու հրամանները.

pm2 սկսել vinylemulator/readnfc.py

pm2 խնայել

Եկեք ստուգենք, արդյոք դա աշխատել է ՝ վերագործարկելով Raspberry Pi- ն: (Դուք կարող եք կամ մուտքագրել sudo reboot կամ դա անել Ազնվամորու մենյուից ՝ մկնիկով:

Սպասեք, մինչև Pi- ն նորից սկսվի և տեսեք, որ այն աշխատում է ՝ ընթերցողի վրա սեղմելով NFC պիտակը: Դուք պետք է երաժշտություն ստանաք:

Քայլ 25. Շնորհավորիր ինքդ քեզ

Այժմ ամեն ինչ ֆունկցիոնալ է: Դուք կարող եք Raspberry Pi- ն տեղափոխել այնտեղ, որտեղ նախատեսում եք տեղադրել այն: Այն կվերագործարկվի և կգործի այնպես, ինչպես դուք այն կարգավորել եք, երբ միացնում եք այն:

Ձեր հաջորդ առաջադրանքները զվարճալի են. Ամեն ինչ գեղեցիկ դարձնել:

Քայլ 26. Դարձրեք այն գեղեցիկ - Թաքցրեք ձեր ընթերցողին

Դարձրեք այն գեղեցիկ - Թաքցրեք ձեր ընթերցողին
Դարձրեք այն գեղեցիկ - Թաքցրեք ձեր ընթերցողին
Դարձրեք այն գեղեցիկ - Թաքցրեք ձեր ընթերցողին
Դարձրեք այն գեղեցիկ - Թաքցրեք ձեր ընթերցողին
Դարձրեք այն գեղեցիկ - Թաքցրեք ձեր ընթերցողին
Դարձրեք այն գեղեցիկ - Թաքցրեք ձեր ընթերցողին
Դարձրեք այն գեղեցիկ - Թաքցրեք ձեր ընթերցողին
Դարձրեք այն գեղեցիկ - Թաքցրեք ձեր ընթերցողին

Գեղեցիկ դարձնելու առաջին մասը թաքցնում է NFC- ի տհաճ սպիտակ պլաստիկ ընթերցողը ինչ -որ տեղ:

Ես գնացել եմ վճռականորեն ցածր տեխնոլոգիական տարբերակով `այն իմ Sonos Play- ի կողքին տեղադրած վաճառասեղանի ներքևի մասում: 5. Հաշվիչի փայտը այնքան բարակ է, որ NFC- ն կարող է անցնել, այնպես որ ես երաժշտություն եմ նվագում ՝ կախարդական և անտեսանելի տեղում դիպչելով NFC պիտակին:

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