INHOUDSOPGAWE:

Sonos Spotify Vinyl -emulator: 26 stappe
Sonos Spotify Vinyl -emulator: 26 stappe

Video: Sonos Spotify Vinyl -emulator: 26 stappe

Video: Sonos Spotify Vinyl -emulator: 26 stappe
Video: LOOK OUT! 👀 Sonos’ AMP is FAR BETTER than you think it is 2024, Julie
Anonim
Image
Image
Sonos Spotify Vinyl -emulator
Sonos Spotify Vinyl -emulator

Let daarop dat dit nie die nuutste stel instruksies vir hierdie projek is nie:

Besoek https://www.hackster.io/mark-hank/sonos-spotify-vinyl-emulator-3be63d vir die nuutste stel instruksies en ondersteuning

Dit is wonderlik om na vinyl op vinyl te luister. Dit is fisies en tasbaar. U luister eerder na 'n hele album as na ewekansige snitte. U sien wanneer dit verby is en kies bewustelik iets anders. U kan 'n versameling bou en daardeur blaai eerder as om presies te soek wat u wil hê.

Dit is ook duur en omvangryk, veral as u in ag neem dat geld wat u op vinyl spandeer, waarskynlik 'n duplikaat musiek is waartoe u reeds toegang het via 'n stroomdiens waarop u inteken.

Hierdie projek poog om die tasbaarheid en versamelingsbou-aspekte van vinyl te herhaal, terwyl dit op Spotify staatmaak om die musiek werklik te lewer. As u 'n fisiese voorwerp op 'n NFC -leser aansluit wat aan 'n Raspberry Pi gekoppel is (wat albei weggesteek kan word), begin die album wat met die tag verband hou, speel.

Ek sal u deur al die stappe lei - van die opstel van die Raspberry Pi tot die kodering van die NFC -etikette. Dit is my heel eerste Raspberry Pi -projek en my eerste Python -kode, so ek het myself geleer terwyl ek dit ontwikkel het. As sodanig veronderstel hierdie instruksies letterlik geen vorige kennis nie en word u deur elke stap gelei.

Die totale koste vir die noodsaaklike komponente om dit te bou is ongeveer £ 50-60.

Ek sal graag wil sien wat jy bou!

Stap 1: Benodighede 1: Raspberry Pi

Die agterkant wat met u netwerk, Sonos en Spotify koppel, word deur 'n Raspberry Pi bestuur. Daar is eintlik baie min wat u nodig het om dit aan die gang te kry.

Noodsaaklik:

Raspberry Pi: Ek het 'n Raspberry Pi 3 Model B+ gebruik, maar dit sal ook werk met 'n Raspberry Pi 3 Model A+ (£ 23)

USB -kragtoevoer: ek het een gelê - daar is 'n amptelike een beskikbaar as u dit nie doen nie (£ 9)

Micro SD -kaart: ek het 'n 32 GB -kaart, wat genoeg is vir hierdie toepassing, op Amazon (£ 6)

Sommige Sonos -toerusting werk op u netwerk (ek vermoed dat u dit reeds het as u hier is …)

'N Spotify Premium -rekening

Aanbeveel:

'N Geval vir die Pi: daar is baie opsies, vanaf £ 5

'N Bottel ordentlike California Zinfandel: ek beveel Ridge aan, maar ander is beskikbaar

Stap 2: Benodighede 2: NFC -leser

Benodighede 2: NFC -leser
Benodighede 2: NFC -leser
Benodighede 2: NFC -leser
Benodighede 2: NFC -leser

Hierdie instruksies is ontwerp vir 'n ACR122U NFC -leser wat via USB verbind kan word.

ACR122U

Ek het hierdie een vir £ 38 by Amazon gekoop (meestal omdat dit goed afgelewer is), maar daar is goedkoper opsies om dieselfde leser te koop.

Verwarrend blyk dit dat die ACR122U onder 'n klomp verskillende handelsname verkoop word (myne was onder die gerusstellende handelsnaam "Yosoo"), maar volgens my kennis is dit almal dieselfde en gebou deur American Card Systems.

Die goedkoopste wat ek gevind het dat die ACR122U geadverteer is, is £ 21, ingesluit gestuur, maar dit kom direk uit China, sodat u miskien 'n bietjie daarvoor moet wag.

Ander opsies

Hierdie projek berus op 'n python -biblioteek genaamd nfcpy wat 'n lys met ondersteunde toestelle hier byhou:

In teorie behoort hierdie projek te werk met almal op die lys met min integrasie.

Een aanloklike opsie is die Adafruit PN532, wat 'n bord is wat direk aan u Raspberry Pi moet koppel deur middel van springkabels. Ek het dit probeer en dit was 'n ware faff. Dit verg byvoorbeeld soldeer.

Een voordeel daarvan is, oppervlakkig, dat dit kleiner is, maar in werklikheid is die bord ongeveer dieselfde grootte as die ingewande van die ACR122U. As u regtig ruimte soek vir u toepassing, kan u die plastiek van die ACR122U verwyder en die bord gebruik.

Stap 3: Vereiste voorrade 3: NFC -etikette

Benodighede 3: NFC -etikette
Benodighede 3: NFC -etikette

Vir elke album wat u wil skep, benodig u 'n NFC -tag wat aan die NTAG213 -standaard voldoen.

Daar is baie plekke om dit te koop.

Ek het my eerste bondel by Amazon gekoop, waar ek 'n pakkie van 10 vir £ 9 (insluitend Prime -aflewering) gekry het

Die beste wat ek hier in die Verenigde Koninkryk gevind het, is Seritag - hulle het 'n groot verskeidenheid verskillende style, goeie advies op hul webwerf, u weet presies wat u kry (nie altyd waar op Amazon nie). Hulle het geen minimum bestelgrootte en baie opsies nie. Etikette begin by 27p per tag

Stap 4: Laai die Raspberry Pi OS af na 'n SD -kaart

Laai die Raspberry Pi OS af na 'n SD -kaart
Laai die Raspberry Pi OS af na 'n SD -kaart
Laai die Raspberry Pi OS af na 'n SD -kaart
Laai die Raspberry Pi OS af na 'n SD -kaart

Laai die Raspberry PI -beeldtoepassing af op u rekenaar of Mac.

Plaas die SD -kaart waarop u die Raspberry Pi -bedryfstelsel wil installeer.

Klik op KIES OS en kies die standaard Rasbian.

Klik op CHOOSE SD CARD en kies die SD -kaart wat u ingeprop het.

Klik op SKRYF. Dit kan 'n rukkie neem.

Sodra dit klaar is, sal dit u vertel om die SD -kaart te verwyder, wat u moet doen. Maar sluit dit dan weer aan, want daar is 'n paar huishoudelike punte wat u eers moet doen.

Stap 5: Aktiveer SSH op u Raspberry Pi OS -prent

Aktiveer SSH op u Raspberry Pi OS -prent
Aktiveer SSH op u Raspberry Pi OS -prent

Nadat die bedryfstelsel op die SD -kaart geskryf is, is daar 'n paar ekstra take wat u moet doen.

Ons wil toegang tot die Raspberry Pi verkry sonder om 'n sleutelbord of monitor (ook bekend as 'koploos') aan te sluit, wat ons via ons rekenaar of Mac kan doen via 'n protokol genaamd SSH. Om veiligheidsredes is SSH egter standaard uitgeskakel. Ons moet dit in staat stel.

Ons kan dit doen deur 'n leë lêer met die naam:

ssh

op die SD -kaart wat ons pas geskep het. Dit is belangrik dat dit geen uitbreiding het nie (bv. Txt). Die lêer self hoef geen inhoud te bevat nie - net die bestaan daarvan kan SSH moontlik maak wanneer die Pi opstart.

Stap 6: Opsioneel: Stel Wifi op u Framboos Pi op

Opsioneel: Stel Wifi op u Raspberry Pi op
Opsioneel: Stel Wifi op u Raspberry Pi op
Opsioneel: Stel Wifi op u Raspberry Pi op
Opsioneel: Stel Wifi op u Raspberry Pi op

U kan hierdie stap oorslaan as u van plan is om u Raspberry Pi via Ethernet na u router te stuur. (Alhoewel u miskien goed wil nadink oor die besluit - om dit oor wifi te laat loop, maak die lewe baie makliker in terme van die posisie)

Skep 'n gewone tekslêer genaamd wpa_supplicant.conf in die wortelgids van die SD -kaart.

Voeg die onderstaande teks in die lêer in:

land = gb

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

Verander die land soos toepaslik (GB is die Verenigde Koninkryk, die VSA is die VSA, DE is Duitsland, ens.)

Verander die wifi -geloofsbriewe daarin om u werklike wifi -router -besonderhede te wees.

Stoor die lêer.

Gooi die SD -kaart veilig uit.

Stap 7: Skakel u Framboos Pi aan

Skakel jou framboos Pi aan
Skakel jou framboos Pi aan

Plaas die pasgemaakte SD -kaart in u Raspberry Pi.

Koppel u Raspberry Pi aan via die USB -kabel. Wag 'n rukkie totdat dit begin is.

Stap 8: Soek die IP -adres van u Raspberry Pi

U moet nou die IP -adres van die Raspberry Pi vind, sodat u daaraan kan koppel. U kan dit op twee maniere doen:

  • via u router -opstellingsbladsy - as u 'n moderne router soos eero het, is dit baie maklik;
  • of via 'n slimfoonprogram beskikbaar vir iOS en Android met die naam "fing" - laai dit af, maak verbinding met u router en soek na toestelle - een daarvan moet "Framboos" genoem word - dit is die IP -adres wat u benodig.

Stap 9: Koppel aan u Raspberry Pi -opdraglyn

Koppel aan u Raspberry Pi -opdraglyn
Koppel aan u Raspberry Pi -opdraglyn

Open Terminal op u Mac (of laai Putty af as u Windows gebruik).

Voer die volgende opdrag in:

ssh pi@[jou Pi se IP -adres]

Aanvaar enige veiligheidswaarskuwings wat u kry. U sal die wagwoord vir die standaard pi -gebruiker gevra word

framboos

Stap 10: Stel die Raspberry Pi OS GUI op

Stel die Raspberry Pi OS GUI op
Stel die Raspberry Pi OS GUI op
Stel die Raspberry Pi OS GUI op
Stel die Raspberry Pi OS GUI op

U is nou verbind met u Pi via die opdragreël, wat baie goed is, maar u wil dit ook opstel sodat u toegang kan kry tot die grafiese gebruikerskoppelvlak waartoe ons toegang sal verkry via VNC (Virtual Network Computing). Ons moet dit ook voorspelbaar moontlik maak.

Kontroleer eerstens of u Pi -sagteware op datum is deur die volgende twee opdragte (elk gevolg deur enter) in die opdragreël in te voer:

sudo apt -opdatering

sudo apt installeer realvnc-vnc-server realvnc-vnc-viewer

Maak vervolgens die Raspberry Pi -instellingsmenu oop deur die volgende in te voer:

sudo raspi-config

Gaan na koppelvlakopsies> VNC> Ja.

Verlaat die config -toepassing deur op die ontsnappingsleutel te druk en herlaai die Pi vanaf die opdragreël deur te tik:

sudo herlaai

Stap 11: Koppel aan en stel u Raspberry Pi GUI in

Koppel aan en stel u Raspberry Pi GUI in
Koppel aan en stel u Raspberry Pi GUI in
Koppel aan en stel u Raspberry Pi GUI in
Koppel aan en stel u Raspberry Pi GUI in

Laai VNC Viewer af en maak dit oop.

Tik die IP -adres van u Raspberry Pi in en druk verbind. Dit sal u vra om gebruikersnaam en wagwoord, naamlik:

Gebruikersnaam = pi

Wagwoord = framboos

Dit behoort u na die GUI te begin.

Dit sal u vra om u geografie en sleutelborduitleg te bevestig.

Dit sal u dan vra om u wagwoord te verander (goeie idee).

Dit sal u vra om u wifi -besonderhede in te stel, maar u kan dit oorslaan omdat dit alreeds werk. (Alhoewel as u op ethernet werk en daaroor nadink, is dit u kans … maar let op dat u IP -adres kan verander)

Dit sal dan kyk na opdaterings, aflaai en installeer (dit kan 'n rukkie neem).

Sodra u deur die instellingsassistent is, sou ek aanbeveel dat u die skermresolusie verander, aangesien die standaard redelik klein is. U kan dit doen deur op die framboos links bo> Voorkeure> Raspberry Pi -konfigurasie> skerm> resolusie in te stel

U sal die Pi weer moet herlaai om dit in werking te stel.

Stap 12: Installeer Node.js en NPM

Installeer Node.js en NPM
Installeer Node.js en NPM

Vervolgens wil u die Raspberry Pi -opdragreël laai om die afhanklikes wat ons benodig, te installeer.

U kan dit doen deur aan te sluit via VNC en op die knoppie bo -aan te klik wat soos 'n opdragreël lyk; of u kan direk vanaf u Mac/PC koppel via Terminal en Putty soos ons voorheen gedoen het. As u minder gewoond is om met die Raspberry Pi te werk, is dit makliker om eersgenoemde te doen.

(Wenk: U kan teks vanaf u Mac/PC kopieer en dit op die Raspberry Pi plak via VNC deur op CONTROL-V te druk, maar as u probeer om dit in die Terminal te plak, moet u op CONTROL-SHIFT-V druk)

Die eerste taak is om weer te kyk of u sagteware op datum is deur die volgende twee opdragte in te tik. Dit kan 'n rukkie neem om dit af te laai en te installeer.

sudo apt-get update

sudo apt-get upgrade

Vervolgens wil u node.js en NPM aflaai en installeer (moenie te veel bekommerd wees oor wat dit is nie; dit is nuttig en nodig vir ons volgende take) deur die volgende in te tik:

sudo apt-get install nodejs npm

Dit sal u 'n paar keer vra of u skyfspasie hiermee wil inneem - u druk Y

Stap 13: Installeer die SONOS HTTP API

Installeer die SONOS HTTP API
Installeer die SONOS HTTP API
Installeer die SONOS HTTP API
Installeer die SONOS HTTP API

Die basis van die agterkant vir ons projek is die node-sonos-http-api-pakket wat deur jishi geskep is. U kan hier alles hieroor lees:

Ons sal dit van github aflaai met die volgende opdrag in die opdragreël:

git-kloon

en ons sal dit installeer met die volgende opdragte

cd node-sonos-http-api

npm installeer -produksie

Ons kan dit dan uitvoer met die volgende opdrag:

npm begin

Sodra dit klaar is, moet ons toets of dit werk.

Maak eers die internetblaaier op ons Raspberry Pi oop en navigeer na https:// localhost: 5005/. 'N Pragtige koppelvlak moet oopgemaak word met die Sonos -logo en dokumentasie oor hoe die API werk.

Laat ons dan kyk of dit vanaf die breër netwerk werk deur 'n blaaier op 'n ander rekenaar of Mac op dieselfde netwerk te gebruik en na https:// [theIPaddressofyourPi]: 5005/te gaan en te kyk of ons dieselfde resultaat kry. Ons moet.

Nou sal ons eintlik die stelsel iets laat doen. Gebruik 'n blaaier en navigeer na:

192.168.4.102:5005/Dining Room/playpause

U moet bogenoemde IP -adres vervang met die adres van u Raspberry Pi en 'Eetkamer' met een van die name van u Sonos -sones. Dit moet óf die musiek in die kamer speel of onderbreek (afhangende van of musiek reeds speel of nie). Dit is duidelik dat daar iets in die Sonos -ry moet wees om dit te laat werk.

In die toekoms gaan ek bogenoemde IP -adres en eetkamer as voorbeelde in hierdie tutoriaal gebruik. Uiteraard moet u dit elke keer met u IP -adres en u sone -naam vervang.

Stap 14: Laat die Sonos HTTP API voortdurend werk

Laat die Sonos HTTP API voortdurend werk
Laat die Sonos HTTP API voortdurend werk

Dit is wonderlik dat ons die Sonos HTTP API aan die gang het, maar wat as dit vasval? Of verloor u krag of moet u die Raspberry Pi herlaai?

U kan die effek sien deur die terminale venster toe te maak en weer te probeer wat ons pas probeer het. Dit werk nie omdat die HTTP API saam met die terminale venster gestop het.

Ons wil eintlik hê dat dit voortdurend moet werk en dit moet elke keer vanaf die begin gedoen word. Ons doen dit met 'n oulike ding genaamd PM2.

In 'n nuwe terminale venster, installeer en voer dit soos volg uit:

sudo npm installeer -g pm2

pm2 status

Laat ons dit nou kry om ons Sonos HTTP API uit te voer:

cd node-sonos-http-api

pm2 begin npm - begin pm2 opstart stelsel

Hierdie laaste opdrag genereer iets wat 'n bietjie lyk:

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

Kopieer wat u Pi genereer (nie die presiese teks hierbo nie - die uwe kan anders wees) en voer dit in die opdragreël in. Dit gee die stelsel die opdrag om elke keer PM2 op te laai.

Tik laastens in:

pm2 bespaar

wat alles bespaar.

Toets nou of dit gewerk het deur u Raspberry Pi te herlaai met die opdrag

sudo herlaai

Hopelik, sodra die Pi herlaai, begin dit ook PM2 en op sy beurt die Sonos HTTP API. U kan dit nagaan deur met 'n blaaier op dieselfde netwerk na die adres wat ons voorheen gebruik het, te navigeer en die Sonos -logo en instruksies te sien:

192.168.4.102:5005/

Dit is wat vir my van toepassing is, maar die uwe sal afhang van die IP -adres.

Stap 15: Speel 'n paar Spotify

Kom ons kyk of die diens toegang tot Spotify het.

Maak 'n blaaier oop en navigeer na die volgende adres (natuurlik vervang deur u IP -adres en kamernaam):

192.168.4.102:5005/ Eetkamer/spotify/nou/spotify/spotify: album: 2dfTV7CktUEBkZCHiB7VQB

U behoort 'n paar John Grant te hoor. Geniet dit.

Stap 16: Soek Spotify URI's

Vind Spotify URI's
Vind Spotify URI's

Weird, ek weet, maar nie almal hou van John Grant nie. Wil jy dalk na iets anders luister?

U kan die Spotify -skakels vanaf die lessenaar-, web- of mobiele programme kry, maar die lessenaar is verreweg die maklikste, aangesien dit die URI in presies die formaat lewer wat u wil hê, begin daarmee.

Navigeer in die Spotify -tafelblad -app na die album waarna u wil luister (miskien Lemonade deur Beyonce?)

Klik op die drie kolletjies langs die hartknoppie.

Gaan in die spyskaart na Deel en kies Kopieer Spotify URI

Dit sal iets soos

spotify: album: 7dK54iZuOxXFarGhXwEXfF

na u knipbord, wat die Spotify URI is vir Beyonce se Lemondade -album.

Skakel u blaaier weer op en navigeer na die volgende adres (vervang natuurlik die IP -adres en kamer en plak in die URI wat u pas gekopieer het):

192.168.4.102:5005/ Eetkamer/spotify/nou/[Spotify URI wat u wil speel]

U moet u keuse hoor speel.

As u verkies om die webprogram te gebruik, gee dit u 'n webskakel (soos die onderstaande):

open.spotify.com/album/7dK54iZuOxXFarGhXwEXfF

u moet dit omskakel na die spotify: album: kode -formaat hierbo om te kan werk.

Stap 17: 'n Opmerking oor Spotify URI's

Spotify URI's en die manier waarop hulle met die node-sonos-http-api koppel, is meestal intuïtief.

U kan direk na albums, snitte en snitlyste skakel.

'N Album -URI lyk soos volg:

spotify: album: 6agCM9GJcebduMddgFmgsO

'N Snit -URI lyk soos volg:

spotify: snit: 4fNDKbaeEjk2P4GrRE1UbW

Snitlyste werk 'n bietjie anders. As u die URI vanaf Spotify kopieer, sal dit so lyk:

spotify: snitlys: 5huIma0YU4iusLcT2reVEU

Om dit egter op die API te laat werk, moet u spotify: user: by die begin van bogenoemde voeg. Dit geld selfs vir publieke snitlyste, en ja, dit beteken dat u twee keer spotify sê.

Om duidelik te wees, hoef die gebruiker nie die naam van 'n spesifieke gebruiker te wees nie, net die teksgebruiker. Die korrekte URI vir bogenoemde snitlys om dit aan die werk te kry, is:

spotify: gebruiker: spotify: snitlys: 5huIma0YU4iusLcT2reVEU

Stap 18: Stel Raspberry Pi op om HTTP -versoeke te stuur

Stel Raspberry Pi op om HTTP -versoeke te stuur
Stel Raspberry Pi op om HTTP -versoeke te stuur

In plaas daarvan om HTTP -versoeke handmatig in 'n webblaaier in te tik, wil ons dit outomatiseer sodat die Raspberry Pi dit self doen as dit sekere stimulus bied (die NFC -leser word geaktiveer).

Ons sal 'n biblioteek genaamd versoeke gebruik om ons Raspberry Pi in staat te stel om dit te doen. Kom ons kyk of dit geïnstalleer is.

Maak die terminale op u Pi oop en tik die volgende:

sudo pip -installeringsversoeke

Dit is waarskynlik dat dit terugkom en sê dat dit reeds geïnstalleer is, in welke geval dit baie goed is. Indien nie, sal dit dit installeer.

Stap 19: Genereer NFCC -etikette met Spotify -data

Genereer NFCC -etikette met Spotify -data
Genereer NFCC -etikette met Spotify -data
Genereer NFCC -etikette met Spotify -data
Genereer NFCC -etikette met Spotify -data
Genereer NFCC -etikette met Spotify -data
Genereer NFCC -etikette met Spotify -data
Genereer NFCC -etikette met Spotify -data
Genereer NFCC -etikette met Spotify -data

Nou wil ons 'n Spotify -album -URI na 'n NFC -tag skryf. Elkeen van hierdie etikette is wat u sal gebruik om die Raspberry Pi te vertel om 'n spesifieke album te speel.

U kan met 'n Android -telefoon op 'n NFC -etiket skryf, maar ek vind dit die maklikste om dit via 'n Mac of 'n rekenaar te doen, aangesien u die maklikste kan kry om die Spotify URI's van die Spotify -lessenaarprogram te kry.

Koppel u USB NFC -leser aan op u rekenaar of Mac. Ek gebruik die ACR122U deur American Card Systems.

Laai NFC -gereedskap af na u rekenaar of Mac. Installeer en maak dit oop.

Dit kan soms 'n bietjie stadig wees om met die leser in verbinding te tree, en kan sê dat dit die leser glad nie kan vind nie. Gaan na die oortjie Ander in NFC -gereedskap en klik so gereeld op die Connected NFC Reader -knoppie. Miskien moet u die leser 'n paar keer ontkoppel en weer koppel voordat hy dit vind.

Uiteindelik gee dit u die opsie om u leser uit 'n lys te kies en te sê dat dit gekoppel is. Gaan na die oortjie Inligting, wat niks sal wys nie, behalwe "Wag vir 'n NFC -tag".

Neem 'n leë NFC -etiket. Sit dit op die leser en laat dit daar. NFC Tools sal die inligting oor die etiket vertoon.

Gaan na die blad Skryf en klik Voeg 'n rekord by> Teks. (Wees versigtig om nie URL of URI te kies nie - ek weet dit is aanloklik omdat u 'n URI kopieer, maar u wil teks hê)

Haal 'n URI van Spotify volgens die metode wat ons voorheen gebruik het. As u 'n maklike voorbeeld wil hê, dan is ons John Grant -album van vroeër die volgende.

spotify: album: 2dfTV7CktUEBkZCHiB7VQB

Klik op OK en klik dan op Skryf (moenie hierdie laaste stap vergeet nie - dit skryf dit nie eers as u hierop klik nie). Dit sal u vertel dat die etiket suksesvol geskryf is.

Haal die etiket van die leser af

Stap 20: Stel die NFC -leser op die Raspberry Pi op

Stel die NFC -leser op die Raspberry Pi op
Stel die NFC -leser op die Raspberry Pi op

Koppel u NFC -leser aan een van die USB -poorte op u Raspberry Pi.

Ons sal die nfcpy Python -biblioteek gebruik om met die NFC -leser te kommunikeer. Installeer dit deur die volgende op u Pi -opdragreël te tik:

pip installeer -U nfcpy

Ons kan dan kyk of hierdie biblioteek ons NFC -leser kan sien deur die volgende in te tik:

python -m nfc

As dit gewerk het, sal u die volgende sien:

Dit is die 1.0.3-weergawe van nfcpy wat in Python 2.7.16 op Linux-4.19.97-v7+-armv7l-with-debian-10.3 uitgevoer word

Ek soek nou na u kontaklose toestelle in u stelsel. ** ACS ACR122U PN532v1.6 gevind by usb: 001: 011 Ek probeer nie seriële toestelle nie omdat u dit nie vir my gesê het nie-voeg die opsie '--search-tty' by om my te laat soek - maar pas op dat dit ander reeksontwikkelaars kan onderbreek

Die kans is egter groot dat u 'n foutboodskap kry wat sê dat die leser gevind is, maar u gebruiker (pi) het nie toestemming om toegang daartoe te kry nie. As u hierdie foutboodskap kry, sal dit ook verduidelik hoe u die probleem oplos, deur twee opdragte in te tik wat 'n bietjie soos die volgende lyk:

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

sudo udevadm beheer -R

Kopieer en voer albei die opdragte wat dit u gee uit (voer dit nie presies hierbo uit nie, aangesien die uwe anders kan wees), en koppel dan die NFC -leser uit die USB -poort en koppel dit weer aan.

Probeer die tjekopdrag weer:

python -m nfc

Hierdie keer moet daar gesê word dat dit sonder foutboodskappe gevind is.

Stap 21: Installeer die Vinylemulator Python Scripts

Ons het nou al die boustene in plek:

  • Ons Raspberry Pi kan luister na NFC -invoer
  • Ons Raspberry Pi kan Sonos vertel om Spotify -snitlyste te speel as hulle 'n Spotify URI kry
  • Ons het 'n NFC -tag met 'n Spotify URI daarop

Nou moet ons al hierdie boustene in iets nuttigs trek. Dit word gedoen deur 'n kort luislang wat ek geskryf het (met baie hulp van vorige NFC/Spotify/Sonos -projekte), wat vinylemulator genoem word.

U kan die bronkode van die lêers op github sien:

Om dit op ons Raspberry Pi te installeer, moet ons dit van github kloon met die volgende opdrag:

git -kloon

Stap 22: Pas Vinylemulator aan

Pas Vinylemulator aan
Pas Vinylemulator aan
Pas Vinylemulator aan
Pas Vinylemulator aan

Maak die Raspberry Pi -lêerbestuurder oop en navigeer na huis> pi> vinylemulator

Maak die lêer gebruikersettings.py oop

Een van die reëls in hierdie lêer sal lees:

sonosroom = "Eetkamer"

Verander "Eetkamer" na die Sonos -kamernaam wat u wil beheer.

Daar is ook 'n instelling in hierdie lêer waarmee u die IP-adres van die sonos-http-api kan aanpas. U moet dit onveranderd kan laat as 'localhost', wat net beteken dat dit die Raspberry Pi waarop dit werk, sal gebruik.

Stoor die lêer en maak dit toe.

Stap 23: Toets Vinylemulator

Toets Vinylemulator
Toets Vinylemulator
Toets Vinylemulator
Toets Vinylemulator

Gaan na u Raspberry Pi -opdragprompt.

Voer die volgende opdrag in:

python vinylemulator/readnfc.py

As alles goed is, laai dit die script op en sê dat die leser gereed is. Die lig op die leser moet groen word.

Plaas die NFC -tag op die leser, wat sal piep.

Die terminale sal wys wat dit van die NFC -etiket gelees het en die HTTP -versoekadres wat dit gestuur het, wys. U keuse album moet vanaf u Sonos -luidsprekers gespeel word.

Hierdie skrif sal aanhou werk totdat u die terminale venster toemaak. U kan op verskillende album -NFC -etikette tik, en dit sal oorskakel na die album.

Stap 24: Laat Vinylemulator voortdurend werk en tydens opstart

Net soos die sonos-http-api, wil ons hê dat vinylemulator die hele tyd moet werk eerder as net wanneer ons dit noem. Ons kan pm2 gebruik om dit weer te doen.

Sluit eers die gevalle van vinylemulator wat u gebruik deur hul terminale vensters toe te maak.

Maak dan 'n nuwe terminale venster oop en tik die volgende twee opdragte:

pm2 begin vinylemulator/readnfc.py

pm2 bespaar

Kom ons kyk of dit gewerk het deur die Raspberry Pi te herlaai. (U kan óf sudo reboot tik, óf dit met die muis in die framboos -kieslys doen.

Wag totdat die Pi weer begin en sien hoe dit werk deur op 'n NFC -tag op die leser te tik. Jy moet musiek kry.

Stap 25: Geluk met uself

Alles is nou funksioneel. U kan die Raspberry Pi skuif na waar u ook al wil plaas. Dit sal weer begin en werk soos u dit opgestel het, telkens wanneer u dit aansluit.

U volgende take is die lekkerste: om alles mooi te maak.

Stap 26: Maak dit mooi - verberg u leser

Maak dit mooi - verberg u leser
Maak dit mooi - verberg u leser
Maak dit mooi - verberg u leser
Maak dit mooi - verberg u leser
Maak dit mooi - verberg u leser
Maak dit mooi - verberg u leser
Maak dit mooi - verberg u leser
Maak dit mooi - verberg u leser

Die eerste deel om dit mooi te maak, is om die nare wit plastiek NFC -leser iewers weg te steek.

Ek het 'n beslis lae tegniese opsie gehad om dit aan die onderkant van 'n toonbank langs my Sonos Play te plak: 5. Die hout van die toonbank is dun genoeg om deur die NFC te gaan, so ek speel musiek deur op 'n NFC -tag op 'n magiese en onsigbare plek te tik.

Aanbeveel: