Turinys:

„Sonos Spotify“vinilo emuliatorius: 26 žingsniai
„Sonos Spotify“vinilo emuliatorius: 26 žingsniai

Video: „Sonos Spotify“vinilo emuliatorius: 26 žingsniai

Video: „Sonos Spotify“vinilo emuliatorius: 26 žingsniai
Video: Демо-версия винилового эмулятора (ЗВУК ВКЛЮЧЕН!) 2024, Liepa
Anonim
Image
Image
„Sonos Spotify“vinilo emuliatorius
„Sonos Spotify“vinilo emuliatorius

Atminkite, kad tai nėra naujausias šio projekto instrukcijų rinkinys:

Apsilankykite https://www.hackster.io/mark-hank/sonos-spotify-vinyl-emulator-3be63d, kad gautumėte naujausius nurodymus ir palaikymą

Klausytis muzikos vinilu yra puiku. Tai fizinis ir lytėjimas. Jūs klausotės viso albumo, o ne atsitiktinių takelių. Jūs pastebite, kai viskas baigiasi, ir sąmoningai pasirenkate ką nors kita. Galite sukurti kolekciją ir naršyti, o ne ieškoti to, ko norite.

Tai taip pat brangu ir sudėtinga, ypač kai manote, kad visi pinigai, kuriuos išleidžiate vinilui, greičiausiai yra muzikos, kurią jau turite prieiga per jūsų prenumeruojamą srautinio perdavimo paslaugą, dublikatas.

Šis projektas bando atkartoti vinilo taktiškumą ir kolekcijos kūrimo aspektus, o muzika iš tikrųjų pristatoma naudojant „Spotify“. Įdėjus fizinį objektą į NFC skaitytuvą, prijungtą prie „Raspberry Pi“(abu galima paslėpti), bus pradėtas leisti su ta žyma susietas albumas.

Aprašysiu visus veiksmus - nuo „Raspberry Pi“nustatymo iki NFC žymų kodavimo. Tai yra mano pirmasis „Raspberry Pi“projektas ir pirmasis „Python“kodas, todėl kurdamas tai mokiausi abiejų. Taigi šiose instrukcijose tiesiogine prasme nėra jokių ankstesnių žinių ir kalbama apie kiekvieną žingsnį.

Bendra pagrindinių šio komponento kūrimo kaina yra apie 50–60 svarų sterlingų.

Norėčiau pamatyti, ką statai!

1 veiksmas: būtini priedai 1: Raspberry Pi

Galinę dalį, jungiančią jūsų tinklą, „Sonos“ir „Spotify“, valdys „Raspberry Pi“. Tiesą sakant, jums reikia labai mažai.

Esminis:

„Raspberry Pi“: aš naudoju „Raspberry Pi 3“modelį B+, tačiau jis taip pat veiks su „Raspberry Pi 3“modeliu A+ (23 svarai)

USB maitinimo šaltinis: aš turėjau vieną gulėti - yra oficialus, jei neturite (£ 9)

„Micro SD“kortelė: „Amazon“gavau 32 GB atminties, kurios užtenka šiai programai (6 svarai)

Kai kuri jūsų tinkle veikianti „Sonos“įranga (spėju, kad ją jau turite, jei esate čia …)

„Spotify Premium“paskyra

Rekomenduojamas:

„Pi“atvejis: yra daug galimybių, pradedant nuo 5 svarų sterlingų

Butelis padoraus Kalifornijos „Zinfandel“: aš rekomenduoju „Ridge“, bet yra ir kitų

2 veiksmas: reikalingi priedai 2: NFC skaitytuvas

Reikalingi priedai 2: NFC skaitytuvas
Reikalingi priedai 2: NFC skaitytuvas
Reikalingi priedai 2: NFC skaitytuvas
Reikalingi priedai 2: NFC skaitytuvas

Šios instrukcijos skirtos ACR122U NFC skaitytuvui, kuris jungiamas per USB.

ACR122U

Aš nusipirkau šį iš „Amazon“už 38 svarus (dažniausiai todėl, kad jis buvo pristatytas geriausiai), tačiau yra ir pigesnių galimybių nusipirkti tą patį skaitytuvą.

Akivaizdu, kad ACR122U parduodamas su daugybe skirtingų prekių ženklų (mano pavadinimas buvo toli gražu neįtikinantis „Yosoo“), tačiau, kaip galiu pasakyti, jie visi yra vienodi ir sukurti „American Card Systems“.

Pigiausias, kurį radau reklamuojamą ACR122U, yra £ 21, įskaitant pristatymą, tačiau jis atkeliauja tiesiai iš Kinijos, todėl gali tekti šiek tiek palaukti.

Kiti variantai

Šis projektas remiasi „python“biblioteka „nfcpy“, kuri palaiko palaikomų įrenginių sąrašą čia:

Teoriškai šis projektas turėtų dirbti su bet kuriuo iš to sąrašo asmenų, mažai integravus.

Vienas viliojančių variantų yra „Adafruit PN532“, kuris yra lenta, kuri turėtų būti tiesiogiai prijungta prie jūsų „Raspberry Pi“naudojant trumpiklius. Išbandžiau ir radau tikrą kvapą. Tam, pavyzdžiui, reikia lituoti.

Vienas iš jo pranašumų yra paviršutiniškai, kad jis yra mažesnis, tačiau iš tikrųjų plokštė yra maždaug tokio paties dydžio kaip ACR122U žarnos. Jei tikrai prašote vietos savo programai, galite nuimti plastiką nuo ACR122U ir tiesiog naudoti plokštę.

3 veiksmas: reikalingi priedai 3: NFC žymos

Reikalingi priedai 3: NFC žymos
Reikalingi priedai 3: NFC žymos

Kiekvienam norimam sukurti albumui jums reikės NTAG213 standartą atitinkančios NFC žymos.

Yra daug vietų, kur tokių galima nusipirkti.

Pirmąją partiją nusipirkau iš „Amazon“, kur gavau 10 pakuočių už £ 9 (įskaitant „Prime“pristatymą)

Geriausiai tiekiamas čia Jungtinėje Karalystėje yra „Seritag“- jie turi tikrai platų įvairių stilių pasirinkimą, puikius patarimus savo svetainėje, jūs tiksliai žinote, ką gaunate (ne visada tiesa „Amazon“). Jie neturi minimalaus užsakymo dydžio ir daugybės galimybių. Žymos prasideda nuo 27 p

4 veiksmas: atsisiųskite Raspberry Pi OS į SD kortelę

Atsisiųskite Raspberry Pi OS į SD kortelę
Atsisiųskite Raspberry Pi OS į SD kortelę
Atsisiųskite Raspberry Pi OS į SD kortelę
Atsisiųskite Raspberry Pi OS į SD kortelę

Kompiuteryje ar „Mac“atsisiųskite ir paleiskite „Raspberry PI imager“programą.

Įdėkite SD kortelę, kurioje norite įdiegti „Raspberry Pi“operacinę sistemą.

Spustelėkite PASIRINKTI OS ir pasirinkite numatytąją Rasbian.

Spustelėkite CHOOSE SD CARD ir pasirinkite SD kortelę, kurią prijungėte.

Spustelėkite WRITE. Tai gali užtrukti.

Kai tai bus padaryta, jis nurodys pašalinti SD kortelę, ką turėtumėte padaryti. Bet tada vėl prijunkite, nes pirmiausia turite atlikti keletą namų tvarkymo punktų.

5 veiksmas: įjunkite SSH „Raspberry Pi“OS vaizde

Įjunkite SSH „Raspberry Pi“OS vaizde
Įjunkite SSH „Raspberry Pi“OS vaizde

Kai OS bus įrašyta į SD kortelę, turite atlikti keletą papildomų užduočių.

Mes norime pasiekti „Raspberry Pi“neprijungę klaviatūros ar monitoriaus (dar žinomo kaip „be galvos“), tai galime padaryti per savo vietinį tinklą, naudodami kompiuterį ar „Mac“naudodami protokolą, vadinamą SSH. Tačiau saugumo sumetimais SSH išjungta pagal numatytuosius nustatymus. Turime tai įgalinti.

Tai galime padaryti sukurdami tuščią failą pavadinimu:

ssh

ką tik sukurtoje SD kortelėje. Svarbu, kad tai neturėtų jokio plėtinio (pvz., Txt). Pačiame faile nereikia turėti jokio turinio - tik jo egzistavimas įgalins SSH, kai „Pi“paleidžiamas.

6 veiksmas: neprivaloma: nustatykite „Wi -Fi“savo „Raspberry Pi“

Neprivaloma: nustatykite „Wi -Fi“savo „Raspberry Pi“
Neprivaloma: nustatykite „Wi -Fi“savo „Raspberry Pi“
Neprivaloma: nustatykite „Wi -Fi“savo „Raspberry Pi“
Neprivaloma: nustatykite „Wi -Fi“savo „Raspberry Pi“

Galite praleisti šį veiksmą, jei planuojate prijungti „Raspberry Pi“prie maršrutizatoriaus eternetu. (Nors galbūt norėsite gerai pagalvoti apie šį sprendimą - jei jis bus paleistas per „Wi -Fi“, tai bus daug lengviau, kai tai padarysite)

Sukurkite paprasto teksto failą pavadinimu wpa_supplicant.conf šakniniame SD kortelės kataloge.

Į failą įterpkite žemiau esantį tekstą:

šalis = GB

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

Pakeiskite šalį (GB yra JK, JAV yra JAV, DE yra Vokietija ir kt.)

Pakeiskite „Wi -Fi“prisijungimo duomenis, kad jie būtų tikri „Wi -Fi“maršrutizatoriaus duomenys.

Išsaugokite failą.

Saugiai išimkite SD kortelę.

7 veiksmas: įjunkite „Raspberry Pi“

Įjunkite „Raspberry Pi“
Įjunkite „Raspberry Pi“

Įdėkite ką tik sukurtą SD kortelę į „Raspberry Pi“.

Prijunkite „Raspberry Pi“prie maitinimo per USB kabelį. Palaukite minutę, kol ji įsijungs.

8 veiksmas: raskite „Raspberry Pi“IP adresą

Dabar turite rasti „Raspberry Pi“IP adresą, kad galėtumėte prie jo prisijungti. Tai galite padaryti dviem būdais:

  • per savo maršrutizatoriaus sąrankos puslapį - jei turite modernų maršrutizatorių, pvz., „eero“, tai padaryti yra labai paprasta;
  • arba per išmaniųjų telefonų programą, skirtą „iOS“ir „Android“, vadinamą „fing“- atsisiųskite ją, prisijunkite prie maršrutizatoriaus ir nuskaitykite įrenginius - vienas iš jų turėtų būti pavadintas „Raspberry“- tai bus jums reikalingas IP adresas.

9 veiksmas: prisijunkite prie „Raspberry Pi“komandų eilutės

Prisijunkite prie „Raspberry Pi“komandų eilutės
Prisijunkite prie „Raspberry Pi“komandų eilutės

„Mac“atidarykite terminalą (arba jei naudojate „Windows“, atsisiųskite ir naudokite „Putty“).

Įveskite šią komandą:

ssh pi@[jūsų Pi IP adresas]

Priimkite visus gautus saugumo įspėjimus. Jūsų bus paprašyta įvesti numatytojo pi vartotojo slaptažodį

aviečių

10 veiksmas: nustatykite Raspberry Pi OS GUI

Nustatykite Raspberry Pi OS GUI
Nustatykite Raspberry Pi OS GUI
Nustatykite Raspberry Pi OS GUI
Nustatykite Raspberry Pi OS GUI

Dabar esate prisijungę prie „Pi“naudodami komandinę eilutę, kuri yra puiku, tačiau taip pat norite ją nustatyti, kad galėtumėte pasiekti grafinę vartotojo sąsają, kurią pasieksime per VNC (virtualiojo tinklo kompiuterį). Numatoma, kad taip pat turime tai įgalinti.

Pirmiausia patikrinkite, ar jūsų „Pi“programinė įranga yra atnaujinta, į komandų eilutę įvesdami šias dvi komandas (po jų eina „Enter“):

sudo apt atnaujinimas

sudo apt įdiegti realvnc-vnc-server realvnc-vnc-viewer

Tada atidarykite „Raspberry Pi“nustatymų meniu įvesdami:

sudo raspi-config

Eikite į sąsajos parinktys> VNC> Taip.

Išeikite iš konfigūracijos programos paspausdami „Esc“klavišą ir iš naujo paleiskite „Pi“iš komandinės eilutės įvesdami:

sudo perkraukite

11 veiksmas: prisijunkite ir nustatykite „Raspberry Pi“GUI

Prisijunkite ir nustatykite „Raspberry Pi“GUI
Prisijunkite ir nustatykite „Raspberry Pi“GUI
Prisijunkite ir nustatykite „Raspberry Pi“GUI
Prisijunkite ir nustatykite „Raspberry Pi“GUI

Atsisiųskite ir atidarykite „VNC Viewer“.

Įveskite savo Raspberry Pi IP adresą ir paspauskite connect. Jis paprašys įvesti vartotojo vardą ir slaptažodį:

Vartotojo vardas = pi

Slaptažodis = avietė

Tai turėtų paleisti jus į GUI.

Jis paragins jus patvirtinti savo geografiją ir klaviatūros išdėstymą.

Tada jis paragins jus pakeisti slaptažodį (gera idėja).

Bus paprašyta nustatyti išsamią „Wi -Fi“informaciją, tačiau galite tai praleisti, nes jie jau veikia. (Nors jei naudojate eternetą ir negalvojate, dabar yra jūsų galimybė… tačiau atkreipkite dėmesį, kad jūsų IP adresas gali pasikeisti)

Tada jis tikrins, atsisiųs ir įdiegs naujinimus (gali užtrukti).

Kai baigsite sąrankos vedlį, rekomenduočiau pakeisti ekrano skiriamąją gebą, nes numatytoji yra gana maža. Tai galite padaryti spustelėję Raspberry viršuje kairėje> Nuostatos> Raspberry Pi Configuration> Display> Set Resolution

Kad tai įsigaliotų, turėsite dar kartą paleisti „Pi“.

12 veiksmas: įdiekite „Node.js“ir NPM

Įdiekite „Node.js“ir „NPM“
Įdiekite „Node.js“ir „NPM“

Toliau norite įkelti „Raspberry Pi“komandų eilutę, kad įdiegtumėte mums reikalingas priklausomybes.

Tai galite padaryti prisijungę per VNC ir spustelėję šalia viršaus esantį mygtuką, kuris atrodo kaip komandinė eilutė; arba galite prisijungti tiesiai iš „Mac“/kompiuterio naudodami „Terminal“ir „Putty“, kaip tai darėme anksčiau. Jei esate mažiau įpratęs dirbti su „Raspberry Pi“, tai lengviau padaryti pirmąjį.

(Patarimas: galite nukopijuoti tekstą iš „Mac“/kompiuterio ir įklijuoti jį į „Raspberry Pi“per VNC paspausdami CONTROL-V, bet jei bandote įklijuoti į terminalą, turite paspausti CONTROL-SHIFT-V)

Pirmasis darbas yra dar kartą patikrinti, ar jūsų programinė įranga yra atnaujinta, įvesdami šias dvi komandas. Jų atsisiuntimas ir įdiegimas gali užtrukti.

sudo apt-get atnaujinimas

sudo apt-get atnaujinimas

Toliau norite atsisiųsti ir įdiegti „nod.js“ir „NPM“(per daug nesijaudinkite, kas jie yra, jie yra naudingi ir reikalingi atliekant kitas užduotis), įvesdami šiuos duomenis:

sudo apt-get install nodejs npm

Keletą kartų jūsų paklaus, ar mielai užimsite vietos diske, todėl paspauskite Y

13 veiksmas: įdiekite SONOS HTTP API

Įdiekite SONOS HTTP API
Įdiekite SONOS HTTP API
Įdiekite SONOS HTTP API
Įdiekite SONOS HTTP API

Mūsų projekto galinės dalies pagrindas yra „jishi“sukurtas „node-sonos-http-api“paketas. Visa tai galite perskaityti čia:

Atsisiųsime tai iš „github“, komandų eilutėje įvedę šią komandą:

git klonas

ir mes ją įdiegsime su šiomis komandomis

cd mazgas-sonos-http-api

npm įdiegti -gaminti

Tada galime jį paleisti naudodami šią komandą:

npm pradžia

Kai tai bus padaryta, turėtume patikrinti, ar jis veikia.

Visų pirma, atidarykite „Raspberry Pi“interneto naršyklę ir eikite į https:// localhost: 5005/. Turėtų būti atidaryta gera sąsaja su „Sonos“logotipu ir tam tikra dokumentacija, kaip veikia API.

Tada patikrinkime, ar tai veikia iš platesnio tinklo, naudojant kito to paties tinklo kompiuterio ar „Mac“naršyklę ir einant į https:// [theIPaddressofyourPi]: 5005/ir pažiūrėjus, ar gauname tą patį rezultatą. Mes turėtume.

Dabar mes iš tikrųjų priversime sistemą kažką daryti. Naudokite naršyklę ir eikite į:

192.168.4.102:5005/Valgykla/playpause

Pirmiau nurodytą IP adresą turėtumėte pakeisti savo „Raspberry Pi“ir „Valgomojo“adresu vienu iš savo „Sonos“zonų pavadinimų. Ji turėtų leisti arba pristabdyti (priklausomai nuo to, ar muzika jau grojama, ar ne) toje patalpoje esančią muziką. Akivaizdu, kad kažkas turi būti „Sonos“eilėje, kad tai veiktų.

Ateityje aš naudosiu aukščiau pateiktą IP adresą ir valgomąjį kaip šios mokymo programos pavyzdžius. Akivaizdu, kad kiekvieną kartą turėtumėte juos pakeisti savo IP adresu ir zonos pavadinimu.

14 veiksmas: priverskite „Sonos HTTP“API veikti nuolat

Priverskite „Sonos HTTP“API veikti nuolat
Priverskite „Sonos HTTP“API veikti nuolat

Puiku, kad veikia „Sonos“HTTP API, bet kas, jei ji sugenda? Arba prarandate galią arba reikia iš naujo paleisti „Raspberry Pi“?

Efektą galite pamatyti uždarydami terminalo langą ir bandydami tai, ką ką tik bandėme. Tai neveiks, nes HTTP API sustojo kartu su terminalo langu.

Mes iš tikrųjų norime, kad tai vyktų nuolat, ir tai darome kiekvieną kartą nuo paleidimo. Mes tai darome su šauniu dalyku, vadinamu PM2.

Naujame terminalo lange įdiekite ir paleiskite jį taip:

sudo npm įdiegti -g pm2

pm2 būsena

Dabar leiskite paleisti mūsų „Sonos“HTTP API:

cd mazgas-sonos-http-api

pm2 start npm - start pm2 startup systemd

Ši paskutinė komanda sugeneruoja kažką panašaus į:

sudo env PATH = $ PATH:/usr/bin/usr/local/lib/node_modules/pm2/bin/pm2 paleisties sistemad -u pi --hp/home/pi

Nukopijuokite tai, ką generuoja jūsų „Pi“(ne tikslus tekstas aukščiau - jūsų gali būti kitoks) ir įveskite jį į komandų eilutę. Tai nurodo sistemai kiekvieną kartą paleisti PM2 paleidžiant.

Galiausiai įveskite:

Išsaugoti pm2

kuris viską gelbsti.

Dabar patikrinkite, ar tai pavyko, iš naujo paleisdami „Raspberry Pi“naudodami komandą

sudo perkraukite

Tikimės, kad „Pi“iš naujo paleidus, jis taip pat paleis PM2 ir savo ruožtu „Sonos“HTTP API. Tai galite patikrinti naršydami to paties tinklo naršyklėje adresu, kurį naudojome anksčiau, ir pamatysite „Sonos“logotipą bei instrukcijas:

192.168.4.102:5005/

tai kas man, bet jūsų priklausys nuo IP adreso.

15 veiksmas: paleiskite „Spotify“

Patikrinkime, ar paslauga gali pasiekti „Spotify“.

Atidarykite naršyklę ir eikite į šį adresą (akivaizdžiai pakeičiant savo IP adresu ir kambario pavadinimu):

192.168.4.102:5005/Valgykla/spotify/dabar/spotify/spotify: albumas: 2dfTV7CktUEBkZCHiB7VQB

Turėtumėte išgirsti Johną Grantą. Mėgautis.

16 veiksmas: raskite „Spotify“URI

Raskite „Spotify“URI
Raskite „Spotify“URI

Keista, žinau, bet ne visiems patinka Johnas Grantas. Gal norite dar ko nors pasiklausyti?

„Spotify“nuorodas galite gauti iš darbalaukio, žiniatinklio ar programų mobiliesiems, tačiau darbalaukis yra pats lengviausias, nes jis pateikia URI tiksliai tokiu formatu, kokio norite, todėl pradėkite nuo to.

„Spotify“darbalaukio programoje eikite į albumą, kurio norite klausytis (galbūt „Beyonce“limonadas?)

Spustelėkite tris mažus taškus šalia širdies mygtuko.

Eikite žemyn į meniu Dalintis ir pasirinkite Kopijuoti „Spotify“URI

Tai nukopijuos kažką panašaus

spotify: albumas: 7dK54iZuOxXFarGhXwEXfF

į jūsų mainų sritį, kuri yra „Spotify“URI, skirta Beyonce „Lemondade“albumui.

Dar kartą įjunkite naršyklę ir eikite į šį adresą (akivaizdžiai pakeisdami IP adresą ir kambarį ir įklijuodami ką tik nukopijuotame URI):

192.168.4.102:5005/Valgykla/spotify/dabar/[„Spotify“URI, kurį norite žaisti]

Turėtumėte išgirsti savo pasirinkimą.

Jei norite naudoti žiniatinklio programą, ji suteiks jums žiniatinklio nuorodą (kažką panašaus į žemiau):

open.spotify.com/album/7dK54iZuOxXFarGhXwEXfF

turite tai konvertuoti į „spotify“: albumas: aukščiau pateiktas kodo formatas, kad jis veiktų.

17 veiksmas: pastaba apie „Spotify“URI

„Spotify“URI ir jų sąsaja su mazgu-sonos-http-api dažniausiai yra intuityvūs.

Galite tiesiogiai susieti su albumais, takeliais ir grojaraščiais.

Albumo URI atrodo taip:

spotify: albumas: 6agCM9GJcebduMddgFmgsO

Takelio URI atrodo taip:

spotify: takelis: 4fNDKbaeEjk2P4GrRE1UbW

Grojaraščiai veikia šiek tiek kitaip. Kai nukopijuosite URI iš „Spotify“, jis atrodys maždaug taip:

spotify: grojaraštis: 5huIma0YU4iusLcT2reVEU

Tačiau norint, kad jis veiktų su API, prie aukščiau pateikto pradžios turite pridėti „spotify: user:“. Tai taikoma net viešiems grojaraščiams ir, taip, tai reiškia, kad du kartus sakote „spotify“.

Kad būtų labai aišku, vartotojas neturi būti konkretaus vartotojo vardas, o tik teksto vartotojas. Taigi teisingas aukščiau pateikto grojaraščio URI, kad jis veiktų, būtų toks:

spotify: vartotojas: spotify: grojaraštis: 5huIma0YU4iusLcT2reVEU

18 veiksmas: nustatykite „Raspberry Pi“siųsti HTTP užklausas

Nustatykite „Raspberry Pi“siųsti HTTP užklausas
Nustatykite „Raspberry Pi“siųsti HTTP užklausas

Užuot rankiniu būdu įvedę HTTP užklausas į žiniatinklio naršyklę, mes norime ją automatizuoti, kad „Raspberry Pi“tai padarytų pats, kai pateikiamas tam tikras dirgiklis (suaktyvinamas NFC skaitytuvas).

Mes naudosime biblioteką, pavadintą „prašymai“, kad mūsų „Raspberry Pi“galėtų tai padaryti. Patikrinkime, ar jis įdiegtas.

Atidarykite „Pi“terminalą ir įveskite:

sudo pip diegimo užklausos

Tikėtina, kad jis grįžta ir sako, kad jis jau įdiegtas, tokiu atveju puiku. Jei ne, jis jį įdiegs.

19 veiksmas: sukurkite NFCC žymą (-as) naudodami „Spotify“duomenis

Sukurkite NFCC žymą (-as) naudodami „Spotify“duomenis
Sukurkite NFCC žymą (-as) naudodami „Spotify“duomenis
Sukurkite NFCC žymą (-as) naudodami „Spotify“duomenis
Sukurkite NFCC žymą (-as) naudodami „Spotify“duomenis
Sukurkite NFCC žymą (-as) naudodami „Spotify“duomenis
Sukurkite NFCC žymą (-as) naudodami „Spotify“duomenis
Sukurkite NFCC žymą (-as) naudodami „Spotify“duomenis
Sukurkite NFCC žymą (-as) naudodami „Spotify“duomenis

Dabar norime įrašyti „Spotify“albumo URI į NFC žymą. Kiekvieną iš šių žymų naudosite liepdami „Raspberry Pi“paleisti tam tikrą albumą.

Galite rašyti į NFC žymą naudodami „Android“telefoną, tačiau manau, kad lengviausia tai padaryti naudojant „Mac“arba asmeninį kompiuterį, nes tada „Spotify“URI gauti lengviausia iš „Spotify“darbalaukio programos.

Prijunkite USB NFC skaitytuvą prie kompiuterio ar „Mac“. Aš naudoju „American Card Systems“ACR122U.

Atsisiųskite „NFC Tools“į savo kompiuterį arba „Mac“. Įdiekite ir atidarykite.

Kartais gali būti šiek tiek lėta prisijungti prie skaitytojo ir pasakyti, kad jis neranda skaitytojo. Eikite į NFC įrankių skirtuką Kitas ir kaskart spustelėkite mygtuką Prijungtas NFC skaitytuvas. Gali tekti kelis kartus atjungti ir vėl prijungti skaitytuvą, kol jis jį suras.

Galų gale tai suteiks jums galimybę pasirinkti skaitytuvą iš sąrašo ir pasakyti, kad jis yra prijungtas. Eikite į skirtuką Informacija, kuriame bus rodoma tik „Laukiama NFC žymos“.

Paimkite tuščią NFC žymą. Uždėkite jį ant skaitytuvo ir palikite ten. „NFC Tools“parodys informaciją apie žymą.

Eikite į skirtuką Rašyti ir spustelėkite Pridėti įrašą> Tekstas. (Būkite atsargūs, nesirinkite URL ar URI - žinau, kad tai viliojanti, nes kopijuojate URI, bet norite teksto)

Paimkite URI iš „Spotify“naudodami metodą, kurį naudojome anksčiau. Jei norite lengvo pavyzdžio, šis yra mūsų John Grant albumas iš ankstesnio.

spotify: albumas: 2dfTV7CktUEBkZCHiB7VQB

Spustelėkite Gerai, tada spustelėkite Rašyti (nepamirškite šio paskutinio veiksmo - jis iš tikrųjų nerašo to, kol nepaspausite šio). Tai jums pasakys, kad žyma sėkmingai parašyta.

Nuimkite etiketę nuo skaitytuvo

20 veiksmas: nustatykite NFC skaitytuvą „Raspberry Pi“

Nustatykite NFC skaitytuvą „Raspberry Pi“
Nustatykite NFC skaitytuvą „Raspberry Pi“

Prijunkite NFC skaitytuvą prie vieno iš „Raspberry Pi“USB prievadų.

Bendraudami su NFC skaitytuvu naudosime „nfcpy Python“biblioteką. Įdiekite jį, įvesdami šią komandinę eilutę „Pi“:

pip install -U nfcpy

Tada galime patikrinti, ar ši biblioteka gali matyti mūsų NFC skaitytuvą, įvesdami:

python -m nfc

Jei tai pavyko, pamatysite šiuos dalykus:

Tai yra 1.0.3 „nfcpy“versija, paleista „Python 2.7.16“sistemoje „Linux-4.19.97-v7+-armv7l-with-debian-10.3“

Dabar ieškau jūsų sistemoje bekontaktių įrenginių ** radau ACS ACR122U PN532v1.6 per usb: 001: 011 Nebandau serijinių įrenginių, nes man to nepasakėte-pridėkite parinktį „--search-tty“kad galėčiau ieškoti, bet saugokitės, kad tai gali pažeisti kitus serijinius kūrėjus

Tačiau yra didelė tikimybė, kad gausite klaidos pranešimą, kuriame sakoma, kad skaitytuvas buvo rastas, bet jūsų vartotojas (pi) neturi leidimo prie jo prieiti. Jei gausite šį klaidos pranešimą, jis taip pat paaiškins, kaip išspręsti problemą, ty įvesdami dvi komandas, kurios atrodo šiek tiek taip:

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

sudo udevadm valdymas -R

Nukopijuokite ir vykdykite abi jo pateiktas komandas (ne visai tai, kas nurodyta aukščiau, nes jūsų gali skirtis), tada atjunkite ir vėl prijunkite NFC skaitytuvą iš USB prievado.

Pabandykite dar kartą patikrinti komandą:

python -m nfc

Šį kartą turėtų būti pasakyta, kad jis buvo rastas be klaidų pranešimų.

21 veiksmas: įdiekite „Vinylemulator Python“scenarijus

Dabar turime visus statybinius blokus:

  • Mūsų „Raspberry Pi“gali klausytis NFC įvesties
  • Mūsų „Raspberry Pi“gali nurodyti „Sonos“paleisti „Spotify“grojaraščius, kai jiems suteikiamas „Spotify“URI
  • Turime NFC žymą su „Spotify URI“

Dabar turime visus šiuos blokus paversti kažkuo naudingu. Tai atliekama per trumpą mano parašytą „Python“scenarijų (su daugybe ankstesnių NFC/„Spotify“/„Sonos“projektų pagalbos), kuris vadinamas vinylemulator.

Failų šaltinio kodą galite peržiūrėti „github“:

Norėdami tai įdiegti „Raspberry Pi“, turime jį klonuoti iš „github“naudodami šią komandą:

git klonas

22 veiksmas: tinkinkite „Vinylemulator“

Tinkinkite „Vinylemulator“
Tinkinkite „Vinylemulator“
Tinkinkite „Vinylemulator“
Tinkinkite „Vinylemulator“

Atidarykite „Raspberry Pi“failų tvarkyklę ir eikite į pagrindinį puslapį> pi> vinylemulator

Atidarykite failą usersettings.py

Viena iš šio failo eilučių bus tokia:

sonosroom = "Valgomasis"

Pakeiskite „Valgomasis“į tą „Sonos“kambario pavadinimą, kurį norite valdyti.

Šiame faile taip pat yra nustatymas, leidžiantis tinkinti „sonos-http-api“IP adresą. Turėtumėte tai palikti nepakeistą kaip „localhost“, o tai reiškia, kad jis naudos „Raspberry Pi“, kuriame jis veikia.

Išsaugokite failą ir uždarykite.

23 žingsnis: išbandykite „Vinylemulator“

Išbandykite Vinylemulator
Išbandykite Vinylemulator
Išbandykite Vinylemulator
Išbandykite Vinylemulator

Eikite į „Raspberry Pi“komandų eilutę.

Įveskite šią komandą:

python vinylemulator/readnfc.py

Jei viskas gerai, įkeliamas scenarijus ir sakoma, kad skaitytojas yra pasirengęs. Skaitytuvo lemputė turėtų degti žalia.

Uždėkite NFC žymą ant skaitytuvo, kuris pypsės.

Terminalas parodys tai, ką perskaitė iš NFC žymos, ir parodys jo išsiųstą HTTP užklausos adresą. Pasirinktas albumas turėtų būti paleistas iš „Sonos“garsiakalbių.

Šis scenarijus veiks tol, kol uždarysite terminalo langą. Galite paliesti kitas albumo NFC žymas ir jis persijungs į tą albumą.

24 veiksmas: leiskite „Vinylemulator“veikti nuolat ir paleidžiant

Kaip ir „sonos-http-api“, mes norime, kad viniliatorius veiktų visą laiką, o ne tik tada, kai jį vadiname. Norėdami tai padaryti, galime naudoti „pm2“.

Pirmiausia uždarykite bet kokius jūsų naudojamus vinylemulator atvejus, uždarydami jų terminalo langus.

Tada atidarykite naują terminalo langą ir įveskite šias dvi komandas:

pm2 paleiskite vinylemulator/readnfc.py

Išsaugoti pm2

Patikrinkime, ar tai pavyko, iš naujo paleisdami „Raspberry Pi“. (Galite įvesti sudo reboot arba tai padaryti iš Raspberry meniu su pele.

Palaukite, kol „Pi“vėl pradės veikti, ir pamatysite, kaip jis veikia, paliesdami skaitytuvo NFC žymą. Turėtumėte gauti muziką.

25 žingsnis: pasveikinkite save

Dabar viskas veikia. „Raspberry Pi“galite perkelti į bet kurią vietą, kurioje planuojate ją patalpinti. Jis bus paleistas iš naujo ir veiks taip, kaip jį nustatėte, kai tik jį prijungsite.

Kitos jūsų užduotys yra linksmos: padaryti viską gražią.

26 žingsnis: padarykite tai gražiu - paslėpkite skaitytoją

Padarykite tai gražia - paslėpkite savo skaitytoją
Padarykite tai gražia - paslėpkite savo skaitytoją
Padarykite tai gražia - paslėpkite savo skaitytoją
Padarykite tai gražia - paslėpkite savo skaitytoją
Padarykite tai gražia - paslėpkite savo skaitytoją
Padarykite tai gražia - paslėpkite savo skaitytoją
Padarykite tai gražia - paslėpkite savo skaitytoją
Padarykite tai gražia - paslėpkite savo skaitytoją

Pirmoji jo gražinimo dalis yra kažkur paslėpti bjaurų balto plastiko NFC skaitytuvą.

Aš pasirinkau neabejotinai žemos technologijos galimybę priklijuoti jį prie skaitiklio apačios šalia „Sonos Play“: 5. Skaitiklio mediena yra pakankamai plona, kad NFC galėtų praeiti, todėl groju muziką paliesdamas NFC žymę stebuklingoje ir nematomoje vietoje.

Rekomenduojamas: