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

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

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

Մեր նախագծի հետևի հիմքը 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 պիտակին:

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