Innholdsfortegnelse:

Sonos Spotify Vinyl Emulator: 26 trinn
Sonos Spotify Vinyl Emulator: 26 trinn

Video: Sonos Spotify Vinyl Emulator: 26 trinn

Video: Sonos Spotify Vinyl Emulator: 26 trinn
Video: 30 лучших советов и рекомендаций по Windows 10 на 2020 год 2024, Juli
Anonim
Image
Image
Sonos Spotify Vinyl Emulator
Sonos Spotify Vinyl Emulator

Vær oppmerksom på at dette ikke er det siste settet med instruksjoner for dette prosjektet:

Besøk https://www.hackster.io/mark-hank/sonos-spotify-vinyl-emulator-3be63d for det siste settet med instruksjoner og støtte

Det er flott å høre på musikk på vinyl. Det er fysisk og taktilt. Du hører på et helt album i stedet for tilfeldige spor. Du merker når det er over og velger bevisst noe annet. Du kan bygge en samling og bla gjennom den i stedet for å måtte søke etter akkurat det du vil.

Det er også dyrt og omfangsrikt, spesielt når du tenker på at alle pengene du bruker på vinyl, sannsynligvis er en duplikat av musikk som du allerede har tilgang til gjennom en strømmetjeneste du abonnerer på.

Dette prosjektet prøver å replikere taktilitet og samlingsbyggende aspekter av vinyl mens du stoler på Spotify for å faktisk levere musikken. Hvis du plasserer et fysisk objekt på en NFC -leser som er koblet til en Raspberry Pi (som begge kan gjemmes bort), begynner det å spille albumet som er knyttet til denne taggen.

Jeg vil lede deg gjennom alle trinnene - fra å sette opp Raspberry Pi til koding av NFC -tagger. Dette er mitt aller første Raspberry Pi -prosjekt og min første Python -kode, så jeg lærte meg selv begge mens jeg utviklet dette. Som sådan antar disse instruksjonene bokstavelig talt null tidligere kunnskap og snakker deg gjennom hvert trinn.

Den totale kostnaden for de viktigste komponentene for å bygge dette er omtrent £ 50-60.

Jeg vil gjerne se hva du bygger!

Trinn 1: Nødvendig rekvisita 1: Raspberry Pi

Baksiden som grensesnitt med nettverket ditt, Sonos og Spotify vil bli drevet av en Raspberry Pi. Det er faktisk veldig lite du trenger for å få dette til.

Viktig:

Raspberry Pi: Jeg brukte en Raspberry Pi 3 Model B+, men det vil også fungere med en Raspberry Pi 3 Model A+ (£ 23)

USB -strømforsyning: Jeg hadde en liggende - det er en offisiell en tilgjengelig hvis du ikke gjør det (£ 9)

Micro SD -kort: Jeg har et 32 GB, som er nok for denne applikasjonen, på Amazon (£ 6)

Noe Sonos -utstyr kjører på nettverket ditt (jeg antar at du allerede har dette hvis du er her …)

En Spotify Premium -konto

Anbefalt:

Et tilfelle for Pi: det er mange alternativer, fra £ 5

En flaske anstendig California Zinfandel: Jeg anbefaler Ridge, men andre er tilgjengelige

Trinn 2: Nødvendig rekvisita 2: NFC -leser

Nødvendige rekvisita 2: NFC -leser
Nødvendige rekvisita 2: NFC -leser
Nødvendige rekvisita 2: NFC -leser
Nødvendige rekvisita 2: NFC -leser

Disse instruksjonene er bygget for en ACR122U NFC -leser som kobles til via USB.

ACR122U

Jeg kjøpte denne fra Amazon for £ 38 (hovedsakelig fordi den hadde førsteklasses levering), men det er billigere alternativer å kjøpe den samme leseren.

Forvirrende synes ACR122U å bli solgt under en haug med forskjellige merkenavn (mitt kom under det langt fra betryggende merkenavnet "Yosoo"), men etter det jeg kan se er de alle like og konstruert av American Card Systems.

Det billigste jeg har funnet ACR122U annonsert er £ 21 inkludert frakt, men det kommer direkte fra Kina, så du må kanskje vente litt på det.

Andre muligheter

Dette prosjektet er avhengig av et python -bibliotek kalt nfcpy som opprettholder en liste over støttede enheter her:

I teorien bør dette prosjektet fungere med noen av de på den listen med liten integrasjon.

Et fristende alternativ er Adafruit PN532, som er et brett som skal kobles direkte til din Raspberry Pi ved hjelp av jumperkabler. Jeg prøvde det og fant det skikkelig. Det krever for eksempel lodding.

En fordel med det er, overfladisk, at det er mindre, men i virkeligheten er brettet omtrent like stort som tarmen til ACR122U. Hvis du virkelig trenger plass til applikasjonen din, kan du fjerne plasten fra ACR122U og bare bruke brettet.

Trinn 3: Nødvendig rekvisita 3: NFC -koder

Nødvendige rekvisita 3: NFC -koder
Nødvendige rekvisita 3: NFC -koder

For hvert album du vil lage, trenger du en NFC -tag som oppfyller NTAG213 -standarden.

Det er mange steder å kjøpe disse.

Jeg kjøpte min første batch fra Amazon, hvor jeg fikk en pakke med 10 for £ 9 (inkludert Prime -levering)

Det beste jeg har funnet her i Storbritannia er Seritag - de har et veldig stort utvalg av forskjellige stiler, gode råd på nettstedet deres, du vet nøyaktig hva du får (ikke alltid sant på Amazon). De har ingen minimum bestillingsstørrelse og massevis av alternativer. Etiketter starter med 27p per tag

Trinn 4: Last ned Raspberry Pi OS til et SD -kort

Last ned Raspberry Pi OS til et SD -kort
Last ned Raspberry Pi OS til et SD -kort
Last ned Raspberry Pi OS til et SD -kort
Last ned Raspberry Pi OS til et SD -kort

Last ned og kjør programmet Raspberry PI imager på PC eller Mac.

Sett inn SD -kortet du vil installere Raspberry Pi -operativsystemet på.

Klikk på VELG OS og velg standard Rasbian.

Klikk på VELG SD -KORT og velg SD -kortet du har plugget inn.

Klikk på SKRIV. Dette kan ta en stund.

Når det er gjort, vil det fortelle deg å fjerne SD -kortet, noe du bør gjøre. Men plugg den deretter inn igjen, da det er noen få rengjøringspunkter du må gjøre først.

Trinn 5: Aktiver SSH på Raspberry Pi OS -bildet ditt

Aktiver SSH på Raspberry Pi OS -bildet ditt
Aktiver SSH på Raspberry Pi OS -bildet ditt

Når operativsystemet er skrevet til SD -kortet, er det noen få ekstra oppgaver du må gjøre.

Vi ønsker å få tilgang til Raspberry Pi uten å koble til et tastatur eller en skjerm (aka "hodeløs"), noe vi kan gjøre over vårt lokale nettverk ved hjelp av vår PC eller Mac via en protokoll kalt SSH. Av sikkerhetshensyn er imidlertid SSH deaktivert som standard. Vi må aktivere det.

Vi kan gjøre dette ved å lage en tom fil som heter:

ssh

på SD -kortet vi nettopp opprettet. Det er viktig at dette ikke har noen form for utvidelse (f.eks. Txt). Selve filen trenger ikke å inneholde noe innhold - bare dens eksistens vil aktivere SSH når Pi starter opp.

Trinn 6: Valgfritt: Sett opp Wifi på din Raspberry Pi

Valgfritt: Sett opp Wifi på din Raspberry Pi
Valgfritt: Sett opp Wifi på din Raspberry Pi
Valgfritt: Sett opp Wifi på din Raspberry Pi
Valgfritt: Sett opp Wifi på din Raspberry Pi

Du kan hoppe over dette trinnet hvis du planlegger å koble din Raspberry Pi til ruteren din via ethernet. (Selv om du kanskje vil tenke godt over den avgjørelsen - å ha den kjørt over wifi gjør livet mye lettere når det gjelder å plassere dette)

Lag en ren tekstfil som heter wpa_supplicant.conf i rotkatalogen på SD -kortet.

Sett inn teksten nedenfor i filen:

land = gb

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

Endre landet etter behov (GB er Storbritannia, USA er USA, DE er Tyskland osv.)

Endre wifi -legitimasjonen der inne for å være de faktiske wifi -ruterdetaljene.

Lagre filen.

Ta ut SD -kortet på en trygg måte.

Trinn 7: Slå på Raspberry Pi

Slå på Raspberry Pi
Slå på Raspberry Pi

Sett SD -kortet du nettopp opprettet i Raspberry Pi.

Koble Raspberry Pi til strøm via USB -kabelen. Vent litt før den starter opp.

Trinn 8: Finn IP -adressen til din Raspberry Pi

Du må nå finne IP -adressen til Raspberry Pi, slik at du kan koble deg til den. Du kan gjøre dette på to måter:

  • via ruteroppsettsiden - hvis du har en moderne ruter som eero, er dette superenkelt;
  • eller via en smarttelefon -app som er tilgjengelig for iOS og Android kalt "fing" - last den ned, koble til ruteren din og søk etter enheter - en av dem skal kalles "Bringebær" - dette vil være IP -adressen du trenger.

Trinn 9: Koble til Raspberry Pi -kommandolinjen

Koble til Raspberry Pi -kommandolinjen
Koble til Raspberry Pi -kommandolinjen

Åpne Terminal på din Mac (eller hvis du bruker Windows, last ned og bruk Putty).

Skriv inn følgende kommando:

ssh pi@[din Pi's IP -adresse]

Godta eventuelle sikkerhetsadvarsler du får. Du vil bli bedt om passordet for standard pi -brukeren

bringebær

Trinn 10: Sett opp Raspberry Pi OS GUI

Sett opp Raspberry Pi OS GUI
Sett opp Raspberry Pi OS GUI
Sett opp Raspberry Pi OS GUI
Sett opp Raspberry Pi OS GUI

Du er nå koblet til din Pi via kommandolinjen, noe som er flott, men du vil også sette den opp slik at du får tilgang til det grafiske brukergrensesnittet som vi får tilgang til via VNC (Virtual Network Computing). Forutsigbart må vi også aktivere dette.

Kontroller først at Pi -programvaren din er oppdatert ved å skrive inn følgende to kommandoer (hver etterfulgt av enter) i kommandolinjen:

sudo apt oppdatering

sudo apt installer realvnc-vnc-server realvnc-vnc-viewer

Deretter åpner du Raspberry Pi -innstillingsmenyen ved å gå inn på:

sudo raspi-config

Naviger til Grensesnittalternativer> VNC> Ja.

Avslutt konfigurasjonsprogrammet ved å trykke på Escape -tasten og start Pi på nytt fra kommandolinjen ved å skrive:

sudo omstart

Trinn 11: Koble til og konfigurer Raspberry Pi GUI

Koble til og konfigurer Raspberry Pi GUI
Koble til og konfigurer Raspberry Pi GUI
Koble til og konfigurer Raspberry Pi GUI
Koble til og konfigurer Raspberry Pi GUI

Last ned og åpne VNC Viewer.

Skriv inn IP -adressen til Raspberry Pi og trykk på connect. Det vil be deg om brukernavn og passord som er:

Brukernavn = pi

Passord = bringebær

Dette bør starte deg opp til GUI.

Det vil be deg om å bekrefte geografien og tastaturoppsettet.

Det vil deretter be deg om å endre passordet ditt (god idé).

Det vil be deg om å angi wifi -detaljene dine, men du kan hoppe over dette ettersom de allerede fungerer. (Selv om du kjører på ethernet og har andre tanker, så er det nå din sjanse … men vær oppmerksom på at IP -adressen din kan endres)

Den vil deretter se etter, laste ned og installere oppdateringer (kan ta en stund).

Når du er igjennom oppsettveiviseren vil jeg anbefale å endre skjermoppløsningen ettersom standarden er ganske liten. Du kan gjøre dette ved å klikke på bringebæret øverst til venstre> Innstillinger> Raspberry Pi -konfigurasjon> Skjerm> Angi oppløsning

Du må starte Pi på nytt for å få dette til å tre i kraft.

Trinn 12: Installer Node.js og NPM

Installer Node.js og NPM
Installer Node.js og NPM

Deretter vil du laste Raspberry Pi -kommandolinjen for å installere avhengighetene vi trenger.

Du kan enten gjøre dette ved å koble til via VNC og klikke på knappen nær toppen som ser ut som en kommandolinje; eller du kan koble deg direkte fra din Mac/PC ved hjelp av Terminal og Putty som vi gjorde tidligere. Hvis du er mindre vant til å jobbe med Raspberry Pi, er det lettere å gjøre det første.

(Tips: Du kan kopiere tekst fra Mac/PC og lime den inn på Raspberry Pi via VNC ved å trykke CONTROL-V, men hvis du prøver å lime inn i terminalen, må du trykke CONTROL-SHIFT-V)

Første jobb er å sjekke at programvaren din er oppdatert igjen ved å skrive de to følgende kommandoene. De kan ta en stund å laste ned og installere.

sudo apt-get oppdatering

sudo apt-get oppgradering

Deretter vil du laste ned og installere node.js og NPM (ikke bekymre deg for mye om hva de er, de er nyttige og nødvendige for våre neste oppgaver) ved å skrive følgende:

sudo apt-get install nodejs npm

Det vil spørre deg et par ganger om du er glad for å ta opp diskplass med disse - du trykker så på Y

Trinn 13: Installer SONOS HTTP API

Installer SONOS HTTP API
Installer SONOS HTTP API
Installer SONOS HTTP API
Installer SONOS HTTP API

Grunnlaget for back end for prosjektet vårt er node-sonos-http-api-pakken laget av jishi. Du kan lese alt om det her:

Vi vil laste ned dette fra github med følgende kommando angitt på kommandolinjen:

git-klon

og vi installerer det med følgende kommandoer

cd node-sonos-http-api

npm install -produksjon

Vi kan deretter kjøre den med følgende kommando:

npm start

Når det er gjort, bør vi teste at det fungerer.

Først av alt, åpne nettleseren på Raspberry Pi og naviger til https:// localhost: 5005/. Et fint grensesnitt bør åpnes med Sonos -logoen og litt dokumentasjon om hvordan API fungerer.

La oss deretter kontrollere at dette fungerer fra det bredere nettverket ved å bruke en nettleser på en annen PC eller Mac på samme nettverk og navigere til https:// [theIPaddressofyourPi]: 5005/og se om vi får det samme resultatet. Vi burde.

Nå skal vi faktisk få systemet til å gjøre noe. Bruk en nettleser og naviger til:

192.168.4.102:5005/Dining Room/playpause

Du bør erstatte IP -adressen ovenfor med adressen til din Raspberry Pi og "Dining Room" med et av navnene på Sonos -sonene dine. Den skal enten spille eller pause (avhengig av om musikk allerede spilles av eller ikke) musikken i det rommet. Det er klart at noe må være i Sonos -køen for at det skal fungere.

Fremover skal jeg bruke ovennevnte IP -adresse og spisestue som eksempler gjennom denne opplæringen. Tydeligvis bør du erstatte dem med din IP -adresse og sonenavnet ditt ved hver anledning.

Trinn 14: Få Sonos HTTP API til å kjøre hele tiden

Få Sonos HTTP API til å kjøre hele tiden
Få Sonos HTTP API til å kjøre hele tiden

Det er flott at vi har Sonos HTTP API kjørende, men hva om det krasjer? Eller mister du strøm eller trenger å starte Raspberry Pi på nytt?

Du kan se effekten ved å lukke terminalvinduet og prøve det vi nettopp prøvde. Det vil ikke fungere fordi HTTP API har stoppet sammen med terminalvinduet.

Vi vil faktisk at dette skal kjøre konstant og gjøre det fra oppstart hver gang. Vi gjør dette med en kul ting som heter PM2.

I et nytt terminalvindu, installer og kjør det som følger:

sudo npm install -g pm2

pm2 -status

La oss få det til å kjøre vårt Sonos HTTP API:

cd node-sonos-http-api

pm2 start npm - start pm2 oppstart systemd

Denne siste kommandoen genererer noe som ser litt ut som:

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

Kopier hva Pi genererer (ikke den eksakte teksten ovenfor - din kan være annerledes) og skriv den inn på kommandolinjen. Dette instruerer systemet til å kjøre PM2 ved oppstart hver gang.

Til slutt skriver du inn:

pm2 lagre

som sparer alt.

Test nå om dette har fungert ved å starte Raspberry Pi på nytt med kommandoen

sudo omstart

Forhåpentligvis når Pi starter på nytt, starter den også PM2 og igjen Sonos HTTP API. Du kan sjekke dette ved å navigere i en nettleser på samme nettverk til adressen vi brukte før og se Sonos -logoen og instruksjonene:

192.168.4.102:5005/

er det som er for meg, men din vil avhenge av IP -adressen.

Trinn 15: Spill noen Spotify

La oss sjekke at tjenesten har tilgang til Spotify.

Åpne en nettleser og naviger til følgende adresse (erstatter åpenbart med din IP -adresse og romnavn):

192.168.4.102:5005/Dining Room/spotify/nå/spotify/spotify: album: 2dfTV7CktUEBkZCHiB7VQB

Du burde høre noen John Grant. Nyt.

Trinn 16: Finn Spotify URIer

Finn Spotify URIer
Finn Spotify URIer

Merkelig, jeg vet, men ikke alle liker John Grant. Kanskje du vil lytte til noe annet?

Du kan få Spotify -koblingene fra skrivebordet, nettet eller mobilappene, men skrivebordet er langt det enkleste, ettersom det leverer URI i akkurat det formatet du ønsker, så begynn med det.

I Spotify -skrivebordsappen navigerer du til albumet du vil lytte til (kanskje Lemonade av Beyonce?)

Klikk på de tre små prikkene ved siden av hjerteknappen.

Gå ned på menyen for å dele og velg Kopier Spotify URI

Dette vil kopiere noe slikt

spotify: album: 7dK54iZuOxXFarGhXwEXfF

til utklippstavlen din, som er Spotify URI for Beyonces Lemondade -album.

Slå på nettleseren din igjen og naviger til følgende adresse (selvfølgelig bytt ut IP -adressen og rommet og lim inn i URI -en du nettopp kopierte):

192.168.4.102:5005/Dining Room/spotify/now/[Spotify URI du vil spille]

Du bør høre ditt valg spille.

Hvis du foretrekker å bruke webappen, vil den gi deg en lenke (noe som det nedenfor):

open.spotify.com/album/7dK54iZuOxXFarGhXwEXfF

du må konvertere dette til spotify: album: kodeformatet ovenfor for at det skal fungere.

Trinn 17: Et notat om Spotify URIer

Spotify URIer og måten de grensesnitt med node-sonos-http-api er for det meste intuitive.

Du kan koble direkte til album, spor og spillelister.

Et album URI ser slik ut:

spotify: album: 6agCM9GJcebduMddgFmgsO

En spor -URI ser slik ut:

spotify: track: 4fNDKbaeEjk2P4GrRE1UbW

Spillelister fungerer litt annerledes. Når du kopierer URI fra Spotify vil det se slik ut:

spotify: spilleliste: 5huIma0YU4iusLcT2reVEU

For å få det til å fungere på API -en må du imidlertid legge til spotify: user: til begynnelsen av det ovennevnte. Dette gjelder til og med offentlige spillelister, og ja, det betyr at du sier spotify to ganger.

For å være veldig tydelig trenger ikke brukeren å være en bestemt brukers navn, bare tekstbrukeren. Så riktig URI for spillelisten ovenfor for å få den til å fungere ville være:

spotify: bruker: spotify: spilleliste: 5huIma0YU4iusLcT2reVEU

Trinn 18: Sett opp Raspberry Pi for å sende HTTP -forespørsler

Sett opp Raspberry Pi for å sende HTTP -forespørsler
Sett opp Raspberry Pi for å sende HTTP -forespørsler

I stedet for å skrive HTTP -forespørsler manuelt i en nettleser, ønsker vi å automatisere det slik at Raspberry Pi gjør det selv når det blir vist en viss stimulans (NFC -leseren blir utløst).

Vi vil bruke et bibliotek kalt forespørsler for å la Raspberry Pi gjøre dette. La oss sjekke at den er installert.

Åpne terminalen på din Pi og skriv inn følgende:

sudo pip installasjonsforespørsler

Det er sannsynlig at det kommer tilbake og sier at det allerede er installert, i så fall flott. Hvis ikke, vil den installere den.

Trinn 19: Generer NFCC -tagger med Spotify -data

Generer NFCC -tagger med Spotify -data
Generer NFCC -tagger med Spotify -data
Generer NFCC -tagger med Spotify -data
Generer NFCC -tagger med Spotify -data
Generer NFCC -tagger med Spotify -data
Generer NFCC -tagger med Spotify -data
Generer NFCC -tagger med Spotify -data
Generer NFCC -tagger med Spotify -data

Nå vil vi skrive et Spotify -album URI til en NFC -tag. Hver av disse kodene er det du vil bruke til å be Raspberry Pi om å spille et bestemt album.

Du kan skrive til en NFC -tag ved hjelp av en Android -telefon, men jeg synes det er enklest å gjøre det via en mac eller PC, da kan du få det enkleste for å få Spotify URI fra Spotify -skrivebordsappen.

Koble USB NFC -leseren til din PC eller Mac. Jeg bruker ACR122U av American Card Systems.

Last ned NFC -verktøy til din PC eller Mac. Installer og åpne den.

Det kan være litt tregt å koble til leseren noen ganger og kan si at den ikke finner leseren i det hele tatt. Gå til kategorien Annet i NFC -verktøy, og klikk så ofte på knappen Tilkoblet NFC -leser. Du må kanskje koble fra og koble til leseren et par ganger før den finner den.

Etter hvert vil det gi deg muligheten til å velge leseren din fra en liste og si at den er koblet til. Gå til kategorien Informasjon som ikke vil vise annet enn "Venter på en NFC -tag".

Ta en tom NFC -tag. Legg den på leseren og la den ligge der. NFC Tools viser informasjonen om taggen.

Gå til kategorien Skriv og klikk på Legg til en post> Tekst. (Vær forsiktig så du ikke velger URL eller URI - jeg vet det er fristende fordi du kopierer en URI, men du vil ha tekst)

Ta en URI fra Spotify ved å bruke metoden vi brukte tidligere. Hvis du vil ha et enkelt eksempel, er følgende vårt John Grant -album fra tidligere.

spotify: album: 2dfTV7CktUEBkZCHiB7VQB

Klikk OK og klikk deretter på Skriv (ikke glem dette siste trinnet - det skrives faktisk ikke før du klikker på dette). Det vil fortelle deg at det er skrevet koden vellykket.

Ta taggen av leseren

Trinn 20: Sett opp NFC -leseren på Raspberry Pi

Sett opp NFC -leseren på Raspberry Pi
Sett opp NFC -leseren på Raspberry Pi

Koble NFC -leseren til en av USB -portene på Raspberry Pi.

Vi vil bruke nfcpy Python -biblioteket til å kommunisere med NFC -leseren. Installer det ved å skrive følgende på Pi -kommandolinjen:

pip install -U nfcpy

Vi kan deretter sjekke om dette biblioteket kan se NFC -leseren vår ved å skrive følgende:

python -m nfc

Hvis det har fungert, vil du se følgende:

Dette er 1.0.3-versjonen av nfcpy som kjøres i Python 2.7.16 på Linux-4.19.97-v7+-armv7l-with-debian-10.3

Jeg søker nå etter kontaktløse enheter i systemet ditt ** fant ACS ACR122U PN532v1.6 på usb: 001: 011 Jeg prøver ikke serielle enheter fordi du ikke har fortalt meg det-legg til alternativet '--search-tty' for å få meg til å lete - men pass på at dette kan ødelegge andre serielle enheter

Det er imidlertid en god sjanse for at du får en feilmelding som sier at leseren er funnet, men brukeren din (pi) har ikke tillatelse til å få tilgang til den. Hvis du får denne feilmeldingen, vil den også forklare hvordan du løser problemet, som er ved å skrive to kommandoer som ser litt ut som følgende:

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

sudo udevadm kontroll -R

Kopier og utfør begge kommandoene den gir deg (ikke akkurat det som er ovenfor, siden din kan være annerledes), koble deretter fra og koble NFC -leseren fra USB -porten.

Prøv kontrollkommandoen igjen:

python -m nfc

Denne gangen skal det si at den har funnet den uten feilmeldinger.

Trinn 21: Installer Vinylemulator Python Scripts

Vi har nå alle byggesteinene på plass:

  • Vår Raspberry Pi er i stand til å lytte etter NFC -inngang
  • Vår Raspberry Pi kan fortelle Sonos å spille Spotify -spillelister når de får en Spotify URI
  • Vi har en NFC -tag med en Spotify URI lagret på den

Nå må vi trekke alle disse byggeklossene til noe nyttig. Dette gjøres gjennom et kort python -script jeg skrev (med mye hjelp fra tidligere NFC/Spotify/Sonos -prosjekter) som kalles vinylemulator.

Du kan se kildekoden for filene på github:

For å installere dette på Raspberry Pi må vi klone det fra github med følgende kommando:

git -klon

Trinn 22: Tilpass Vinylemulator

Tilpass Vinylemulator
Tilpass Vinylemulator
Tilpass Vinylemulator
Tilpass Vinylemulator

Åpne Raspberry Pi filbehandling og naviger til hjem> pi> vinylemulator

Åpne filen usersettings.py

En av linjene i denne filen vil lese:

sonosroom = "Spisestue"

Endre "Spisestue" til å være hvilket Sonos -romnavn du vil kontrollere.

Det er også en innstilling i denne filen som lar deg tilpasse IP-adressen til sonos-http-api. Du bør kunne la dette være uendret som "localhost", noe som bare betyr at det vil bruke Raspberry Pi det kjører på.

Lagre filen og lukk den.

Trinn 23: Test Vinylemulator

Test vinylemulator
Test vinylemulator
Test vinylemulator
Test vinylemulator

Gå til Raspberry Pi -ledeteksten.

Skriv inn følgende kommando:

python vinylemulator/readnfc.py

Hvis alt er bra, vil dette laste opp skriptet og si at leseren er klar. Lyset på leseren skal gå grønt.

Sett NFC -taggen på leseren, som piper.

Terminalen viser hva den har lest fra NFC -taggen og viser HTTP -forespørselsadressen den har sendt. Det valgte albumet skal spilles av fra Sonos -høyttalerne.

Dette skriptet fortsetter å kjøre til du lukker terminalvinduet. Du kan trykke på forskjellige album -NFC -tagger, og det vil bytte til det albumet.

Trinn 24: Få Vinylemulator til å kjøre konstant og ved oppstart

Akkurat som sonos-http-api, vil vi at vinylemulator skal kjøre hele tiden i stedet for bare når vi kaller det. Vi kan bruke pm2 til å gjøre dette igjen.

Lukk først alle forekomster av vinylemulator du kjører ved å lukke terminalvinduene.

Åpne deretter et nytt terminalvindu og skriv inn følgende to kommandoer:

pm2 start vinylemulator/readnfc.py

pm2 lagre

La oss sjekke om det har fungert ved å starte Raspberry Pi på nytt. (Du kan enten skrive sudo reboot eller gjøre det fra bringebærmenyen med musen.

Vent til Pi starter opp igjen og se at den fungerer ved å trykke på en NFC -tag på leseren. Du burde få musikk.

Trinn 25: Gratulere deg selv

Alt er nå funksjonelt. Du kan flytte Raspberry Pi til hvor du vil plassere den. Den starter på nytt og fungerer slik du har konfigurert den når du kobler den til.

Dine neste oppgaver er de morsomme: å gjøre det hele vakkert.

Trinn 26: Gjør det vakkert - Skjul leseren din

Gjør det vakkert - Skjul leseren din
Gjør det vakkert - Skjul leseren din
Gjør det vakkert - Skjul leseren din
Gjør det vakkert - Skjul leseren din
Gjør det vakkert - Skjul leseren din
Gjør det vakkert - Skjul leseren din
Gjør det vakkert - Skjul leseren din
Gjør det vakkert - Skjul leseren din

Den første delen av å gjøre den vakker er å gjemme den ekle hvite NFC -leseren i plast et sted.

Jeg har valgt et desidert lavteknologisk alternativ for å tape den på undersiden av en teller ved siden av Sonos Play: 5. Tanken på disken er tynn nok til at NFC kan gå gjennom, så jeg spiller musikk ved å trykke på en NFC -tag på et magisk og usynlig sted.

Anbefalt: