Indholdsfortegnelse:

Sonos Spotify Vinyl Emulator: 26 trin
Sonos Spotify Vinyl Emulator: 26 trin

Video: Sonos Spotify Vinyl Emulator: 26 trin

Video: Sonos Spotify Vinyl Emulator: 26 trin
Video: Демо-версия винилового эмулятора (ЗВУК ВКЛЮЧЕН!) 2024, Juli
Anonim
Image
Image
Sonos Spotify Vinyl Emulator
Sonos Spotify Vinyl Emulator

Bemærk, at dette ikke er det seneste sæt instruktioner til dette projekt:

Besøg https://www.hackster.io/mark-hank/sonos-spotify-vinyl-emulator-3be63d for det seneste sæt instruktioner og support

Det er fantastisk at lytte til musik på vinyl. Det er fysisk og taktilt. Du lytter til et helt album frem for tilfældige numre. Du bemærker, når det er slut, og vælger bevidst noget andet. Du kan bygge en samling og gennemse den i stedet for at skulle søge efter præcis det, du ønsker.

Det er også dyrt og omfangsrigt, især når du tænker på, at alle penge, du bruger på vinyl, sandsynligvis er en kopi af musik, som du allerede har adgang til via en streamingtjeneste, du abonnerer på.

Dette projekt forsøger at replikere vinylens taktilitet og samlingsopbyggende aspekter, mens man stoler på, at Spotify rent faktisk leverer musikken. Placering af et fysisk objekt på en NFC -læser, der er tilsluttet en Raspberry Pi (som begge kan gemmes væk), begynder at afspille albummet, der er knyttet til det mærke.

Jeg vil guide dig gennem alle trin - fra opsætning af Raspberry Pi til kodning af NFC -tags. Dette er mit allerførste Raspberry Pi -projekt og min første Python -kode, så jeg lærte mig selv, mens jeg udviklede dette. Som sådan antager disse instruktioner bogstaveligt talt nul forudgående viden og taler dig igennem hvert trin.

De samlede omkostninger for de væsentlige komponenter til at bygge dette er cirka £ 50-60.

Jeg ville elske at se, hvad du bygger!

Trin 1: Påkrævet forbrugsvarer 1: Raspberry Pi

Bagenden, der har grænseflader med dit netværk, Sonos og Spotify, drives af en Raspberry Pi. Der er faktisk meget lidt, du skal bruge for at få dette til at fungere.

Vigtig:

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

USB -strømforsyning: Jeg havde en liggende - der er en officiel tilgængelig, hvis du ikke gør det (£ 9)

Micro SD -kort: Jeg fik et 32 GB, hvilket er rigeligt til denne applikation på Amazon (£ 6)

Noget Sonos -udstyr kører på dit netværk (jeg gætter på, at du allerede har dette, hvis du er her …)

En Spotify Premium -konto

Anbefalede:

Et tilfælde til Pi: der er masser af muligheder, der starter fra £ 5

En flaske anstændigt Californien Zinfandel: Jeg anbefaler Ridge, men andre er tilgængelige

Trin 2: Påkrævet forbrugsvarer 2: NFC -læser

Nødvendige forbrugsvarer 2: NFC -læser
Nødvendige forbrugsvarer 2: NFC -læser
Nødvendige forbrugsvarer 2: NFC -læser
Nødvendige forbrugsvarer 2: NFC -læser

Disse instruktioner er bygget til en ACR122U NFC -læser, der tilsluttes via USB.

ACR122U

Jeg købte denne fra Amazon for 38 £ (mest fordi den havde førsteklasses levering), men der er billigere muligheder for at købe den samme læser.

Forvirrende nok synes ACR122U at blive solgt under en flok forskellige mærkenavne (mit kom under det langt fra betryggende varemærke "Yosoo"), men hvad jeg kan se, er de alle ens og konstrueret af American Card Systems.

Det billigste jeg har fundet ACR122U annonceret er £ 21 inklusive forsendelse, men det kommer direkte fra Kina, så du skal muligvis vente lidt på det.

Andre muligheder

Dette projekt er afhængigt af et python -bibliotek kaldet nfcpy, som vedligeholder en liste over understøttede enheder her:

I teorien bør dette projekt fungere med nogen af dem på den liste med lidt integration.

En fristende mulighed er Adafruit PN532, som er et bord, der skal tilsluttes direkte til din Raspberry Pi ved hjælp af jumperkabler. Jeg prøvede det og fandt det en rigtig faff. Det kræver f.eks. Lodning.

En fordel ved det er overfladisk, at det er mindre, men i virkeligheden er tavlen omtrent den samme størrelse som tarmene på ACR122U. Hvis du virkelig får plads til din applikation, kan du fjerne plastikken fra ACR122U og bare bruge kortet.

Trin 3: Påkrævet forbrugsvarer 3: NFC -tags

Nødvendige forbrugsvarer 3: NFC -tags
Nødvendige forbrugsvarer 3: NFC -tags

For hvert album, du vil oprette, skal du bruge et NFC -tag, der opfylder NTAG213 -standarden.

Der er mange steder at købe disse.

Jeg købte mit første parti fra Amazon, hvor jeg fik en pakke med 10 for £ 9 (inklusive Prime levering)

Den bedst leverede jeg har fundet her i Storbritannien er Seritag - de har et virkelig bredt udvalg af forskellige stilarter, gode råd på deres hjemmeside, du ved præcis hvad du får (ikke altid sandt på Amazon). De har ingen minimum ordrestørrelse og masser af muligheder. Mærker starter ved 27p pr. Tag

Trin 4: Download Raspberry Pi OS til et SD -kort

Download Raspberry Pi OS til et SD -kort
Download Raspberry Pi OS til et SD -kort
Download Raspberry Pi OS til et SD -kort
Download Raspberry Pi OS til et SD -kort

Download og kør applikationen Raspberry PI imager på din pc eller Mac.

Indsæt det SD -kort, du vil installere Raspberry Pi -operativsystemet på.

Klik på VÆLG OS og vælg standard Rasbian.

Klik på VÆLG SD -KORT, og vælg det SD -kort, du har tilsluttet.

Klik på SKRIV. Dette kan tage et stykke tid.

Når det er gjort, vil det fortælle dig at fjerne SD -kortet, hvilket du skal gøre. Men tilslut det derefter igen, da der er et par punkter i husholdningen, du skal gøre først.

Trin 5: Aktiver SSH på dit Raspberry Pi OS -billede

Aktiver SSH på dit Raspberry Pi OS -billede
Aktiver SSH på dit Raspberry Pi OS -billede

Når operativsystemet er blevet skrevet til SD -kortet, er der et par ekstra opgaver, du skal udføre.

Vi ønsker at få adgang til Raspberry Pi uden at tilslutte et tastatur eller en skærm (også kaldet "hovedløs"), hvilket vi kan gøre via vores lokale netværk ved hjælp af vores pc eller Mac via en protokol kaldet SSH. Af sikkerhedsmæssige årsager er SSH dog deaktiveret som standard. Vi skal aktivere det.

Vi kan gøre dette ved at oprette en tom fil kaldet:

ssh

på SD -kortet, vi lige har oprettet. Det er vigtigt, at dette ikke har nogen form for udvidelse (f.eks. Txt). Selve filen behøver ikke at indeholde noget indhold - bare dens eksistens muliggør SSH, når Pi starter op.

Trin 6: Valgfrit: Konfigurer Wifi på din Raspberry Pi

Valgfrit: Konfigurer Wifi på din Raspberry Pi
Valgfrit: Konfigurer Wifi på din Raspberry Pi
Valgfrit: Konfigurer Wifi på din Raspberry Pi
Valgfrit: Konfigurer Wifi på din Raspberry Pi

Du kan springe dette trin over, hvis du planlægger at koble din Raspberry Pi til din router via ethernet. (Selvom du måske vil tænke grundigt over den beslutning - at have den kørt over wifi gør livet meget lettere i forhold til at placere dette)

Opret en ren tekstfil kaldet wpa_supplicant.conf i rodmappen på SD -kortet.

Indsæt nedenstående tekst i filen:

land = gb

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

Skift land efter behov (GB er Storbritannien, USA er USA, DE er Tyskland osv.)

Skift wifi -legitimationsoplysningerne derinde for at være dine faktiske wifi -router -detaljer.

Gem filen.

Skub SD -kortet sikkert ud.

Trin 7: Tænd din Raspberry Pi

Tænd din Raspberry Pi
Tænd din Raspberry Pi

Sæt det SD -kort, du lige har oprettet, i din Raspberry Pi.

Tilslut din Raspberry Pi til strøm via USB -kablet. Vent et øjeblik, før den starter.

Trin 8: Find IP -adressen på din Raspberry Pi

Du skal nu finde IP -adressen på Raspberry Pi, så du kan oprette forbindelse til den. Du kan gøre dette på to måder:

  • via din router -opsætningsside - hvis du har en moderne router som eero, er dette super let;
  • eller via en smartphone -app til rådighed for iOS og Android kaldet "fing" - download den, opret forbindelse til din router og søg efter enheder - en af dem skal hedde "Hindbær" - dette er den IP -adresse, du har brug for.

Trin 9: Opret forbindelse til din Raspberry Pi -kommandolinje

Opret forbindelse til din Raspberry Pi -kommandolinje
Opret forbindelse til din Raspberry Pi -kommandolinje

Åbn Terminal på din mac (eller hvis du bruger Windows, skal du downloade og bruge Putty).

Indtast følgende kommando:

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

Accepter eventuelle sikkerhedsadvarsler, du får. Du bliver bedt om adgangskoden til den standard -pi -bruger, der er

hindbær

Trin 10: Konfigurer Raspberry Pi OS GUI

Opsæt Raspberry Pi OS GUI
Opsæt Raspberry Pi OS GUI
Opsæt Raspberry Pi OS GUI
Opsæt Raspberry Pi OS GUI

Du er nu forbundet til din Pi via kommandolinjen, hvilket er fantastisk, men du vil også konfigurere den, så du kan få adgang til den grafiske brugergrænseflade, som vi får adgang til via VNC (Virtual Network Computing). Forudsigeligt er vi også nødt til at aktivere dette.

Kontroller først, at din Pi -software er opdateret ved at indtaste følgende to kommandoer (hver efterfulgt af enter) i kommandolinjen:

sudo apt opdatering

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

Åbn derefter Raspberry Pi -indstillingsmenuen ved at indtaste:

sudo raspi-config

Naviger til grænsefladeindstillinger> VNC> Ja.

Afslut konfigurationsprogrammet ved at trykke på Escape -tasten, og genstart Pi fra kommandolinjen ved at skrive:

sudo genstart

Trin 11: Opret forbindelse til og konfigurer din Raspberry Pi GUI

Opret forbindelse til og konfigurer din Raspberry Pi GUI
Opret forbindelse til og konfigurer din Raspberry Pi GUI
Opret forbindelse til og konfigurer din Raspberry Pi GUI
Opret forbindelse til og konfigurer din Raspberry Pi GUI

Download og åbn VNC Viewer.

Indtast IP -adressen til din Raspberry Pi, og tryk på connect. Det vil bede dig om brugernavn og adgangskode, som er:

Brugernavn = pi

Adgangskode = hindbær

Dette skulle starte dig op til GUI.

Det vil bede dig om at bekræfte din geografi og tastaturlayout.

Det vil derefter bede dig om at ændre din adgangskode (god idé).

Det vil bede dig om at indstille dine wifi -detaljer, men du kan springe dette over, da de allerede fungerer. (Selvom hvis du kører på ethernet og har andre tanker, så er det nu din chance … men bemærk, at din IP -adresse kan ændre sig)

Det vil derefter kontrollere, downloade og installere opdateringer (kan tage et stykke tid).

Når du er igennem installationsguiden, vil jeg anbefale at ændre skærmopløsningen, da standarden er ret lille. Du kan gøre dette ved at klikke på Hindbær øverst til venstre> Indstillinger> Raspberry Pi -konfiguration> Skærm> Indstil opløsning

Du bliver nødt til at genstarte Pi endnu en gang for at få dette til at træde i kraft.

Trin 12: Installer Node.js og NPM

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

Dernæst vil du indlæse kommandolinjen Raspberry Pi for at installere de afhængigheder, vi har brug for.

Du kan enten gøre dette ved at oprette forbindelse via VNC og klikke på knappen nær toppen, der ligner en kommandolinje; eller du kan oprette forbindelse direkte fra din Mac/PC ved hjælp af Terminal og Putty, som vi gjorde tidligere. Hvis du er mindre vant til at arbejde med Raspberry Pi, er det lettere at gøre det første.

(Tip: Du kan kopiere tekst fra din Mac/PC og indsætte den på Raspberry Pi via VNC ved at trykke på CONTROL-V, men hvis du forsøger at indsætte i terminalen, skal du trykke på CONTROL-SHIFT-V)

Første job er at kontrollere igen, at din software er opdateret ved at skrive følgende to kommandoer. De kan tage et stykke tid at downloade og installere.

sudo apt-get opdatering

sudo apt-get opgradering

Dernæst vil du downloade og installere node.js og NPM (bekymre dig ikke for meget om, hvad de er, de er nyttige og nødvendige for vores næste opgaver) ved at skrive følgende:

sudo apt-get install nodejs npm

Det vil spørge dig et par gange, om du er glad for at optage diskplads med disse - du trykker så på Y

Trin 13: Installer SONOS HTTP API

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

Grundlaget for bagenden for vores projekt er node-sonos-http-api-pakken oprettet af jishi. Du kan læse alt om det her:

Vi vil downloade dette fra github med følgende kommando indtastet på kommandolinjen:

git-klon

og vi installerer det med følgende kommandoer

cd node-sonos-http-api

npm install -produktion

Vi kan derefter køre det med følgende kommando:

npm start

Når det er gjort, skal vi teste, at det virker.

Først og fremmest skal du åbne internetbrowseren på vores Raspberry Pi og navigere til https:// localhost: 5005/. En flot grænseflade skulle åbne med Sonos -logoet og lidt dokumentation om, hvordan API’et fungerer.

Lad os derefter kontrollere, at dette fungerer fra det bredere netværk ved at bruge en browser på en anden pc eller Mac på det samme netværk og navigere til https:// [theIPaddressofyourPi]: 5005/og se, om vi får det samme resultat. Vi skulle.

Nu vil vi faktisk få systemet til at gøre noget. Brug en browser og naviger til:

192.168.4.102:5005/Dining Room/playpause

Du bør erstatte ovenstående IP -adresse med adressen på din Raspberry Pi og "Dining Room" med et af navnene på dine Sonos -zoner. Det skal enten afspille eller pause (afhængigt af om der allerede afspilles musik eller ej) musikken i det pågældende rum. Det er klart, at der skal være noget i Sonos -køen, for at det kan fungere.

Fremover vil jeg bruge ovenstående IP -adresse og spisestue som eksempler i hele denne vejledning. Det er klart, at du bør udskifte dem med din IP -adresse og dit zonenavn ved hver lejlighed.

Trin 14: Få Sonos HTTP API til at køre konstant

Få Sonos HTTP API til at køre konstant
Få Sonos HTTP API til at køre konstant

Det er dejligt, at vi har Sonos HTTP API kørende, men hvad hvis det går ned? Eller mister du strøm eller skal genstarte din Raspberry Pi?

Du kan se effekten ved at lukke terminalvinduet og prøve det, vi lige har prøvet. Det virker ikke, fordi HTTP API er stoppet sammen med terminalvinduet.

Vi vil faktisk have dette til at køre konstant og gøre det fra opstart hver gang. Vi gør dette med en cool ting, der hedder PM2.

I et nyt terminalvindue skal du installere og køre det som følger:

sudo npm install -g pm2

pm2 status

Lad os nu få det til at køre vores Sonos HTTP API:

cd node-sonos-http-api

pm2 start npm - start pm2 start systemd

Denne sidste kommando genererer noget, der ligner lidt:

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

Kopier hvad din Pi genererer (ikke den nøjagtige tekst ovenfor - din kan være anderledes) og indtast den på kommandolinjen. Dette instruerer systemet til at køre PM2 ved opstart hver gang.

Indtast endelig:

pm2 gemme

som sparer alt.

Test nu, om dette har fungeret, ved at genstarte din Raspberry Pi med kommandoen

sudo genstart

Forhåbentlig når Pi genstarter, starter den også PM2 og til gengæld Sonos HTTP API. Du kan kontrollere dette ved at navigere ved hjælp af en browser på det samme netværk til den adresse, vi brugte før, og se Sonos -logoet og instruktionerne:

192.168.4.102:5005/

er hvad der er for mig, men din vil afhænge af IP -adressen.

Trin 15: Afspil noget Spotify

Lad os kontrollere, at tjenesten har adgang til Spotify.

Åbn en browser og naviger til følgende adresse (naturligvis erstattet med din IP -adresse og rumnavn):

192.168.4.102:5005/Dining Room/spotify/nu/spotify/spotify: album: 2dfTV7CktUEBkZCHiB7VQB

Du burde høre nogle John Grant. God fornøjelse.

Trin 16: Find Spotify URI'er

Find Spotify URI'er
Find Spotify URI'er

Mærkeligt, jeg ved, men ikke alle kan lide John Grant. Måske vil du lytte til noget andet?

Du kan få Spotify -links fra skrivebordet, web eller mobilapps, men skrivebordet er langt det letteste, da det leverer URI'en i præcis det format, du ønsker, så start med det.

I Spotify desktop -appen navigerer du til det album, du vil lytte til (måske Lemonade af Beyonce?)

Klik på de tre små prikker ved siden af hjerteknappen.

Gå ned i menuen for at dele, og vælg Kopier Spotify URI

Dette vil kopiere noget lignende

spotify: album: 7dK54iZuOxXFarGhXwEXfF

til dit udklipsholder, som er Spotify URI for Beyonces Lemondade -album.

Start din browser igen, og naviger til følgende adresse (naturligvis udskiftning af IP -adresse og rum og indsætning i den URI, du lige har kopieret):

192.168.4.102:5005/Dining Room/spotify/nu/[Spotify URI du vil afspille]

Du bør høre dit valg spille.

Hvis du foretrækker at bruge webappen, giver den dig et weblink (noget som nedenstående):

open.spotify.com/album/7dK54iZuOxXFarGhXwEXfF

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

Trin 17: En note om Spotify URI'er

Spotify URI'er og deres måde at interagere med node-sonos-http-api er for det meste intuitive.

Du kan linke direkte til album, numre og afspilningslister.

Et album URI ligner:

spotify: album: 6agCM9GJcebduMddgFmgsO

En spor -URI ser sådan ud:

spotify: track: 4fNDKbaeEjk2P4GrRE1UbW

Spillelister fungerer lidt anderledes. Når du kopierer URI fra Spotify, ser det sådan ud:

spotify: playlist: 5huIma0YU4iusLcT2reVEU

For faktisk at få det til at fungere på API'en skal du tilføje spotify: user: til begyndelsen af ovenstående. Dette gælder selv for offentlige afspilningslister, og ja, det betyder, at du siger spotify to gange.

For at være meget klar behøver brugeren ikke at være en bestemt brugers navn, kun tekstbrugeren. Så den korrekte URI for ovenstående afspilningsliste for at få den til at fungere ville være:

spotify: bruger: spotify: playlist: 5huIma0YU4iusLcT2reVEU

Trin 18: Konfigurer Raspberry Pi til at sende HTTP -anmodninger

Konfigurer Raspberry Pi til at sende HTTP -anmodninger
Konfigurer Raspberry Pi til at sende HTTP -anmodninger

I stedet for manuelt at skrive HTTP -anmodninger i en webbrowser, ønsker vi at automatisere det, så Raspberry Pi gør det selv, når det præsenteres for en vis stimulus (NFC -læseren udløses).

Vi vil bruge et bibliotek kaldet forespørgsler for at give vores Raspberry Pi mulighed for at gøre dette. Lad os kontrollere, at den er installeret.

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

sudo pip installationsanmodninger

Det er sandsynligt, at det kommer tilbage og siger, at det allerede er installeret, i så fald fantastisk. Hvis ikke, vil det installere det.

Trin 19: Generer NFCC -tag (er) med Spotify -data

Generer NFCC -tag (er) med Spotify -data
Generer NFCC -tag (er) med Spotify -data
Generer NFCC -tag (er) med Spotify -data
Generer NFCC -tag (er) med Spotify -data
Generer NFCC -tag (er) med Spotify -data
Generer NFCC -tag (er) med Spotify -data
Generer NFCC -tag (er) med Spotify -data
Generer NFCC -tag (er) med Spotify -data

Nu vil vi skrive et Spotify -album URI til et NFC -tag. Hver af disse tags er, hvad du vil bruge til at fortælle Raspberry Pi at spille et bestemt album.

Du kan skrive til et NFC -tag ved hjælp af en Android -telefon, men jeg finder det lettest at gøre det via en mac eller pc, da du kan få det nemmeste at få Spotify URI'erne fra Spotify -skrivebordsprogrammet.

Tilslut din USB NFC -læser til din pc eller Mac. Jeg bruger ACR122U fra American Card Systems.

Download NFC -værktøjer til din pc eller Mac. Installer og åbn den.

Det kan være lidt langsomt at oprette forbindelse til læseren nogle gange og kan sige, at det slet ikke kan finde læseren. Gå til fanen Andet i NFC -værktøjer, og klik så ofte på knappen Tilsluttet NFC -læser. Du skal muligvis afbryde og tilslutte læseren et par gange, før den finder den.

Til sidst vil det give dig mulighed for at vælge din læser fra en liste og sige, at den er forbundet. Gå til fanen Information, der ikke viser andet end "Venter på et NFC -tag".

Tag et tomt NFC -mærke. Sæt det på læseren og lad det være der. NFC -værktøjer viser oplysningerne om mærket.

Gå til fanen Skriv, og klik på Tilføj en post> Tekst. (Pas på ikke at vælge URL eller URI - jeg ved, det er fristende, fordi du kopierer en URI, men du vil have tekst)

Tag en URI fra Spotify ved hjælp af den metode, vi tidligere har brugt. Hvis du vil have et let eksempel, er følgende vores John Grant -album fra tidligere.

spotify: album: 2dfTV7CktUEBkZCHiB7VQB

Klik på OK, og klik derefter på Skriv (glem ikke dette sidste trin - det skriver det faktisk ikke, før du klikker på dette). Det vil fortælle dig, at det er skrevet mærket med succes.

Tag mærket af læseren

Trin 20: Konfigurer NFC -læseren på Raspberry Pi

Konfigurer NFC -læseren på Raspberry Pi
Konfigurer NFC -læseren på Raspberry Pi

Slut din NFC -læser til en af USB -portene på din Raspberry Pi.

Vi vil bruge nfcpy Python -biblioteket til at kommunikere med NFC -læseren. Installer det ved at skrive følgende på din Pi -kommandolinje:

pip install -U nfcpy

Vi kan derefter kontrollere, om dette bibliotek er i stand til at se vores NFC -læser ved at skrive følgende:

python -m nfc

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

Dette er 1.0.3-versionen af nfcpy, der køres i Python 2.7.16 på Linux-4.19.97-v7+-armv7l-med-debian-10.3

Jeg søger nu på dit system efter kontaktløse enheder ** fandt ACS ACR122U PN532v1.6 på usb: 001: 011 Jeg prøver ikke serielle enheder, fordi du ikke har fortalt mig det-tilføj muligheden '--search-tty' for at få mig til at kigge - men pas på, at dette kan bryde andre serielle devs

Der er dog en god chance for, at du får en fejlmeddelelse om, at læseren er fundet, men din bruger (pi) har ikke tilladelse til at få adgang til den. Hvis du får denne fejlmeddelelse, vil den også forklare, hvordan du løser problemet, hvilket er ved at skrive to kommandoer, der ligner lidt 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 kontrol -R

Kopier og udfør begge kommandoer, den giver dig (ikke ligefrem hvad der er ovenfor, da din kan være anderledes), tag derefter stikket ud og tilslut din NFC -læser fra USB -porten.

Prøv kontrolkommandoen igen:

python -m nfc

Denne gang skulle det sige, at den har fundet den uden fejlmeddelelser.

Trin 21: Installer Vinylemulator Python Scripts

Vi har nu alle byggestenene på plads:

  • Vores Raspberry Pi er i stand til at lytte efter NFC -input
  • Vores Raspberry Pi kan fortælle Sonos at spille Spotify -afspilningslister, når de får en Spotify URI
  • Vi har et NFC -tag med en Spotify URI gemt på det

Nu skal vi trække alle disse byggesten til noget nyttigt. Dette gøres gennem et kort python -script, jeg skrev (med meget hjælp fra tidligere NFC/Spotify/Sonos -projekter), som kaldes vinylemulator.

Du kan se kildekoden til filerne på github:

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

git -klon

Trin 22: Tilpas Vinylemulator

Tilpas Vinylemulator
Tilpas Vinylemulator
Tilpas Vinylemulator
Tilpas Vinylemulator

Åbn Raspberry Pi filhåndtering og naviger til hjem> pi> vinylemulator

Åbn filen usersettings.py

En af linjerne i denne fil vil læse:

sonosroom = "Spisestue"

Skift "Spisestue" til det Sonos -stedsnavn, du vil kontrollere.

Der er også en indstilling i denne fil, som giver dig mulighed for at tilpasse IP-adressen på sonos-http-api. Du bør være i stand til at efterlade dette uændret som "localhost", hvilket bare betyder, at det vil bruge Raspberry Pi, det kører på.

Gem filen, og luk den.

Trin 23: Test vinylemulator

Test vinylemulator
Test vinylemulator
Test vinylemulator
Test vinylemulator

Gå til din Raspberry Pi -kommandoprompt.

Indtast følgende kommando:

python vinylemulator/readnfc.py

Hvis alt er godt, vil dette indlæse scriptet og sige, at læseren er klar. Lyset på læseren skal gå grønt.

Sæt NFC -mærket på læseren, hvilket bipper.

Terminalen viser, hvad den har læst fra NFC -tagget, og viser den HTTP -anmodningsadresse, den har sendt. Dit valgte album skal afspilles fra dine Sonos -højttalere.

Dette script bliver ved med at køre, indtil du lukker terminalvinduet. Du kan trykke på forskellige album NFC -tags, og det skifter til det album.

Trin 24: Få Vinylemulator til at køre konstant og ved opstart

Ligesom sonos-http-api vil vi have, at vinylemulator kører hele tiden frem for bare når vi kalder det. Vi kan bruge pm2 til at gøre dette igen.

Luk først alle forekomster af vinylemulator, du kører, ved at lukke deres terminalvinduer.

Åbn derefter et nyt terminalvindue, og skriv følgende to kommandoer:

pm2 start vinylemulator/readnfc.py

pm2 gemme

Lad os kontrollere, om det har fungeret ved at genstarte Raspberry Pi. (Du kan enten skrive sudo reboot eller gøre det fra hindbærmenuen med din mus.

Vent på, at Pi starter igen, og se, at det virker ved at trykke på et NFC -tag på læseren. Du burde få musik.

Trin 25: Tillykke dig selv

Alt er nu funktionelt. Du kan flytte Raspberry Pi til det sted, hvor du planlægger at placere det. Det genstarter og fungerer på den måde, du har konfigureret det, når du tilslutter det.

Dine næste opgaver er de sjove: at gøre det hele smukt.

Trin 26: Gør det smukt - skjul din læser

Gør det smukt - skjul din læser
Gør det smukt - skjul din læser
Gør det smukt - skjul din læser
Gør det smukt - skjul din læser
Gør det smukt - skjul din læser
Gør det smukt - skjul din læser
Gør det smukt - skjul din læser
Gør det smukt - skjul din læser

Den første del af at gøre den smuk er at skjule den grimme hvide NFC -læser i plastik et sted væk.

Jeg er gået med en decideret lavteknologisk mulighed for at tape den på undersiden af en tæller ved siden af min Sonos Play: 5. Træet på disken er tyndt nok til, at NFC kan gå igennem, så jeg spiller musik ved at trykke på et NFC -tag på et magisk og usynligt sted.

Anbefalede: