Cuprins:

Emulator de vinil Sonos Spotify: 26 de pași
Emulator de vinil Sonos Spotify: 26 de pași

Video: Emulator de vinil Sonos Spotify: 26 de pași

Video: Emulator de vinil Sonos Spotify: 26 de pași
Video: The CRAZIEST iPad Feature! 🤯 2024, Iulie
Anonim
Image
Image
Emulator de vinil Sonos Spotify
Emulator de vinil Sonos Spotify

Vă rugăm să rețineți că acesta nu este cel mai recent set de instrucțiuni pentru acest proiect:

Vă rugăm să vizitați https://www.hackster.io/mark-hank/sonos-spotify-vinyl-emulator-3be63d pentru ultimul set de instrucțiuni și asistență

Ascultarea muzicii pe vinil este grozavă. Este fizic și tactil. Ascultați un album întreg, mai degrabă decât piese aleatorii. Observați când s-a terminat și alegeți altceva în mod conștient. Puteți construi o colecție și să o răsfoiți, mai degrabă decât să căutați exact ceea ce doriți.

Este, de asemenea, scump și voluminos, mai ales atunci când considerați că orice ban pe care îl cheltuiți pe vinil este foarte probabil un duplicat de muzică la care aveți deja acces printr-un serviciu de streaming la care vă abonați.

Acest proiect încearcă să reproducă aspectul tactil și de construcție a colecțiilor de vinil, bazându-se pe Spotify pentru a livra muzica. Plasarea unui obiect fizic pe un cititor NFC conectat la un Raspberry Pi (ambele pot fi ascunse) va începe redarea albumului asociat cu acea etichetă.

Vă voi parcurge toți pașii - de la configurarea Raspberry Pi până la codificarea etichetelor NFC. Acesta este primul meu proiect Raspberry Pi și primul meu cod Python, așa că m-am învățat pe amândoi în timp ce dezvoltam acest lucru. Ca atare, aceste instrucțiuni presupun literalmente zero cunoștințe anterioare și vă vor vorbi în fiecare pas.

Costul total pentru componentele esențiale pentru a construi acest lucru este de aproximativ 50-60 GBP.

Mi-ar plăcea să văd ce construiești!

Pasul 1: consumabile necesare 1: Raspberry Pi

Back-end-ul care se interfață cu rețeaua dvs., Sonos și Spotify va fi rulat de un Raspberry Pi. De fapt, ai nevoie de foarte puțin pentru a începe acest lucru.

Esenţial:

Raspberry Pi: am folosit un Raspberry Pi 3 Model B +, dar va funcționa și cu un Raspberry Pi 3 Model A + (23 GBP)

Sursă de alimentare USB: am avut una în jur - există una oficială disponibilă dacă nu (9 GBP)

Card Micro SD: am primit unul de 32 GB, care este suficient pentru această aplicație, pe Amazon (6 GBP)

Unele echipamente Sonos care rulează în rețeaua dvs. (cred că aveți deja acest lucru dacă sunteți aici …)

Un cont Spotify Premium

Recomandat:

Un caz pentru Pi: există o mulțime de opțiuni, începând de la 5 GBP

O sticlă de California Zinfandel decent: recomand Ridge, dar sunt disponibile și altele

Pasul 2: consumabile necesare 2: cititor NFC

Consumabile necesare 2: NFC Reader
Consumabile necesare 2: NFC Reader
Consumabile necesare 2: NFC Reader
Consumabile necesare 2: NFC Reader

Aceste instrucțiuni sunt concepute pentru un cititor NFC ACR122U care se conectează prin USB.

ACR122U

L-am cumpărat de la Amazon cu 38 GBP (mai ales pentru că avea livrare primară), dar există opțiuni mai ieftine de a cumpăra același cititor.

În mod confuz, ACR122U pare să fie vândut sub o serie de nume de mărci diferite (al meu a fost sub denumirea de marcă departe de a fi liniștitor „Yosoo”), dar din câte pot spune, toate sunt la fel și construite de American Card Systems.

Cel mai ieftin pe care l-am găsit pe ACR122U anunțat este de 21 GBP, inclusiv transportul, dar acesta vine direct din China, deci este posibil să trebuiască să așteptați puțin pentru asta.

Alte optiuni

Acest proiect se bazează pe o bibliotecă python numită nfcpy care menține aici o listă de dispozitive acceptate:

În teorie, acest proiect ar trebui să funcționeze cu oricare dintre cei de pe acea listă cu o integrare redusă.

O opțiune tentantă este Adafruit PN532, care este o placă care ar trebui să se conecteze direct la Raspberry Pi folosind cabluri jumper. Am încercat-o și mi s-a părut un adevărat faff. De exemplu, necesită lipire.

Un avantaj al acestuia este, superficial, că este mai mic, dar în realitate placa are aproximativ aceeași dimensiune ca și curajul ACR122U. Dacă sunteți într-adevăr împins pentru spațiu pentru aplicația dvs., atunci puteți scoate plasticul de pe ACR122U și pur și simplu utilizați placa.

Pasul 3: consumabile necesare 3: etichete NFC

Consumabile necesare 3: etichete NFC
Consumabile necesare 3: etichete NFC

Pentru fiecare album pe care doriți să îl creați, veți avea nevoie de o etichetă NFC care să respecte standardul NTAG213.

Există multe locuri pentru a le cumpăra.

Am cumpărat primul meu lot de la Amazon, unde am primit un pachet de 10 pentru 9 GBP (inclusiv livrarea Prime)

Cel mai bine furnizat pe care l-am găsit aici în Marea Britanie este Seritag - au o selecție foarte largă de stiluri diferite, sfaturi grozave pe site-ul lor, știi exact ce primești (nu întotdeauna este adevărat pe Amazon). Nu au o dimensiune minimă a comenzii și o mulțime de opțiuni. Etichetele încep de la 27p pe etichetă

Pasul 4: Descărcați sistemul de operare Raspberry Pi pe un card SD

Descărcați sistemul de operare Raspberry Pi pe un card SD
Descărcați sistemul de operare Raspberry Pi pe un card SD
Descărcați sistemul de operare Raspberry Pi pe un card SD
Descărcați sistemul de operare Raspberry Pi pe un card SD

Pe computer sau Mac, descărcați și rulați aplicația de imagine Raspberry PI.

Introduceți cardul SD pe care doriți să instalați sistemul de operare Raspberry Pi.

Faceți clic pe ALEGE OS și selectați Rasbian implicit.

Faceți clic pe ALEGE CARD SD și selectați cardul SD pe care l-ați conectat.

Faceți clic pe WRITE. S-ar putea sa dureze o vreme.

După ce ați terminat, vă va spune să eliminați cardul SD, ceea ce ar trebui să faceți. Dar apoi conectați-l din nou, deoarece trebuie să faceți mai întâi câteva puncte de menaj.

Pasul 5: Activați SSH pe imaginea dvs. Raspberry Pi OS

Activați SSH pe imaginea dvs. Raspberry Pi OS
Activați SSH pe imaginea dvs. Raspberry Pi OS

Odată ce sistemul de operare a fost scris pe cardul SD, trebuie să faceți câteva sarcini suplimentare.

Vrem să accesăm Raspberry Pi fără a conecta o tastatură sau un monitor (alias „fără cap”), ceea ce putem face prin rețeaua noastră locală utilizând computerul sau Mac-ul nostru printr-un protocol numit SSH. Cu toate acestea, din motive de securitate SSH este dezactivat în mod implicit. Trebuie să o activăm.

Putem face acest lucru creând un fișier gol numit:

ssh

în cardul SD pe care tocmai l-am creat. Este important ca aceasta să nu aibă niciun fel de extensie (de exemplu.txt). Fișierul în sine nu trebuie să conțină niciun conținut - doar existența acestuia va permite SSH atunci când Pi pornește.

Pasul 6: Opțional: configurați Wifi pe Raspberry Pi

Opțional: configurați Wifi pe Raspberry Pi
Opțional: configurați Wifi pe Raspberry Pi
Opțional: configurați Wifi pe Raspberry Pi
Opțional: configurați Wifi pe Raspberry Pi

Puteți sări peste acest pas dacă intenționați să conectați Raspberry Pi la routerul dvs. prin Ethernet. (Deși s-ar putea să doriți să vă gândiți cu atenție la acea decizie - dacă o treceți peste wifi, viața este mult mai ușoară în ceea ce privește poziționarea acesteia)

Creați un fișier text simplu numit wpa_supplicant.conf în directorul rădăcină al cardului SD.

Introduceți textul de mai jos în fișier:

country = gb

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

Schimbați țara după caz (GB este Marea Britanie, SUA sunt SUA, DE este Germania etc.)

Schimbați acreditările wifi de acolo pentru a afla detaliile dvs. reale de router wifi.

Salvați fișierul.

Scoateți în siguranță cardul SD.

Pasul 7: Porniți Raspberry Pi

Porniți Raspberry Pi
Porniți Raspberry Pi

Puneți cardul SD pe care tocmai l-ați creat în Raspberry Pi.

Conectați Raspberry Pi la alimentare prin cablul USB. Așteptați un minut pentru ca acesta să pornească.

Pasul 8: Găsiți adresa IP a Raspberry Pi

Acum trebuie să găsiți adresa IP a Raspberry Pi pentru a vă putea conecta la ea. Puteți face acest lucru în două moduri:

  • prin pagina de configurare a routerului - dacă aveți un router modern precum eero, atunci este foarte ușor;
  • sau printr-o aplicație pentru smartphone disponibilă pentru iOS și Android numită „fing” - descărcați-o, conectați-vă la router și căutați dispozitive - una dintre ele ar trebui să fie numită „Raspberry” - aceasta va fi adresa IP de care aveți nevoie.

Pasul 9: Conectați-vă la linia de comandă Raspberry Pi

Conectați-vă la linia de comandă Raspberry Pi
Conectați-vă la linia de comandă Raspberry Pi

Deschideți Terminal pe Mac (sau dacă utilizați Windows, apoi descărcați și utilizați Putty).

Introduceți următoarea comandă:

ssh pi @ [adresa IP a Pi]

Acceptați orice avertismente de securitate pe care le primiți. Vi se va solicita parola pentru utilizatorul pi implicit, care este

zmeură

Pasul 10: Configurați GUI-ul Raspberry Pi OS

Configurați Raspberry Pi OS GUI
Configurați Raspberry Pi OS GUI
Configurați Raspberry Pi OS GUI
Configurați Raspberry Pi OS GUI

Acum sunteți conectat la Pi-ul dvs. prin linia de comandă, ceea ce este minunat, dar doriți, de asemenea, să-l configurați, astfel încât să puteți accesa interfața grafică de utilizator pe care o vom accesa prin VNC (Virtual Network Computing). În mod previzibil, trebuie să activăm și acest lucru.

În primul rând, verificați dacă software-ul Pi este actualizat introducând următoarele două comenzi (fiecare urmată de enter) în linia de comandă:

actualizare sudo apt

sudo apt install realvnc-vnc-server realvnc-vnc-viewer

Apoi, deschideți meniul de setări Raspberry Pi introducând:

sudo raspi-config

Navigați la Opțiuni de interfață> VNC> Da.

Ieșiți din aplicația de configurare apăsând tasta de evacuare și reporniți Pi din linia de comandă tastând:

sudo reboot

Pasul 11: Conectați-vă și configurați-vă Raspberry Pi GUI

Conectați-vă și configurați Raspberry Pi GUI
Conectați-vă și configurați Raspberry Pi GUI
Conectați-vă și configurați Raspberry Pi GUI
Conectați-vă și configurați Raspberry Pi GUI

Descărcați și deschideți VNC Viewer.

Introduceți adresa IP pentru Raspberry Pi și apăsați conectare. Vă va solicita numele de utilizator și parola care sunt:

Nume utilizator = pi

Parola = zmeură

Acest lucru ar trebui să vă pornească la GUI.

Vă va solicita să vă confirmați geografia și aspectul tastaturii.

Apoi vă va solicita să vă schimbați parola (idee bună).

Vă va cere să vă setați detaliile wifi, dar puteți sări peste acest lucru deoarece funcționează deja. (Deși dacă rulați pe Ethernet și aveți alte gânduri, acum este șansa dvs. … dar rețineți că adresa dvs. IP se poate schimba)

Apoi va verifica, descărca și instala actualizări (ar putea dura ceva timp).

Odată ce ați trecut prin expertul de configurare, vă recomand să modificați rezoluția ecranului, deoarece valoarea implicită este destul de mică. Puteți face acest lucru făcând clic pe Raspberry din partea stângă sus> Preferințe> Configurare Raspberry Pi> Afișare> Set Rezoluție

Va trebui să reporniți din nou Pi-ul pentru a face efect acest lucru.

Pasul 12: Instalați Node.js și NPM

Instalați Node.js și NPM
Instalați Node.js și NPM

Apoi doriți să încărcați linia de comandă Raspberry Pi pentru a instala dependențele de care avem nevoie.

Puteți face acest lucru conectându-vă prin VNC și făcând clic pe butonul din partea de sus, care arată ca o linie de comandă; sau vă puteți conecta direct de pe Mac / PC folosind Terminal și Putty așa cum am făcut anterior. Dacă sunteți mai puțin obișnuiți să lucrați cu Raspberry Pi, atunci este mai ușor să faceți primul.

(Sfat: puteți copia text de pe Mac / PC și îl puteți lipi pe Raspberry Pi prin VNC apăsând CONTROL-V, dar dacă încercați să lipiți în terminal, atunci trebuie să apăsați CONTROL-SHIFT-V)

Prima sarcină este să verificați din nou software-ul dvs. actualizat, tastând următoarele două comenzi. S-ar putea să dureze ceva timp pentru descărcare și instalare.

sudo apt-get update

sudo apt-get upgrade

Apoi doriți să descărcați și să instalați node.js și NPM (nu vă faceți griji prea mult despre ceea ce sunt, sunt utile și necesare pentru următoarele sarcini), tastând următoarele:

sudo apt-get install nodejs npm

Vă va întreba de câteva ori dacă sunteți fericit să ocupați spațiu pe disc cu acestea - sunteți atât de apăsat pe Y

Pasul 13: Instalați API-ul SONOS

Instalați API-ul SONOS HTTP
Instalați API-ul SONOS HTTP
Instalați API-ul HTTP SONOS
Instalați API-ul HTTP SONOS

Baza back-end-ului pentru proiectul nostru este pachetul node-sonos-http-api creat de jishi. Puteți citi totul despre el aici:

Vom descărca acest lucru din github cu următoarea comandă introdusă în linia de comandă:

git clone

și îl vom instala cu următoarele comenzi

cd node-sonos-http-api

npm install --production

O putem rula apoi cu următoarea comandă:

npm start

Odată ce ați terminat, ar trebui să testăm că funcționează.

În primul rând, deschideți browserul de internet de pe Raspberry Pi și navigați la https:// localhost: 5005 /. O interfață drăguță ar trebui să se deschidă cu sigla Sonos și câteva documente despre modul în care funcționează API-ul.

Apoi, să verificăm dacă funcționează din rețeaua mai largă utilizând un browser de pe alt PC sau Mac din aceeași rețea și navigând la https:// [theIPaddressofyourPi]: 5005 / și să vedem dacă obținem același rezultat. Noi ar trebui să.

Acum vom face de fapt sistemul să facă ceva. Utilizați un browser și navigați la:

192.168.4.102:5005/Dining Room / playpause

Ar trebui să înlocuiți adresa IP de mai sus cu adresa Raspberry Pi și „Dining Room” cu unul dintre numele zonelor dvs. Sonos. Ar trebui să fie redat sau întrerupt (în funcție de faptul că muzica este deja redată sau nu) muzica din acea cameră. Evident, trebuie să existe ceva în coada Sonos pentru ca acest lucru să funcționeze.

În continuare, voi folosi adresa IP de mai sus și Dining Room ca exemple în acest tutorial. Evident, ar trebui să le înlocuiți cu adresa IP și numele zonei dvs. de fiecare dată.

Pasul 14: Faceți ca API-ul Sonos HTTP să ruleze constant

Faceți ca API-ul Sonos HTTP să ruleze constant
Faceți ca API-ul Sonos HTTP să ruleze constant

Este minunat că avem API-ul Sonos HTTP rulat, dar dacă se blochează? Sau pierdeți puterea sau trebuie să reporniți Raspberry Pi?

Puteți vedea efectul închizând fereastra terminalului și reîncercând ceea ce tocmai am încercat. Nu va funcționa, deoarece API-ul HTTP s-a oprit împreună cu fereastra terminalului.

De fapt, dorim ca acest lucru să ruleze constant și să o facem de la pornire de fiecare dată. Facem acest lucru cu un lucru interesant numit PM2.

Într-o nouă fereastră de terminal, instalați-o și rulați-o după cum urmează:

sudo npm install -g pm2

starea pm2

Acum, să îl facem să ruleze API-ul nostru Sonos

cd node-sonos-http-api

pm2 start npm - start pm2 startd systemd

Această ultimă comandă generează ceva care arată un pic ca:

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

Copiați ceea ce generează Pi (nu textul exact de mai sus - al dvs. poate fi diferit) și introduceți-l în linia de comandă. Aceasta instruiește sistemul să ruleze PM2 la pornire de fiecare dată.

În cele din urmă, introduceți:

pm2 salvați

care salvează totul în jos.

Acum testați dacă acest lucru a funcționat repornind Raspberry Pi cu comanda

sudo reboot

Sperăm că odată ce repornirea Pi va porni și PM2 și, la rândul său, API-ul Sonos HTTP. Puteți verifica acest lucru navigând utilizând un browser din aceeași rețea la adresa pe care am folosit-o anterior și vedeți sigla Sonos și instrucțiunile:

192.168.4.102:5005/

este pentru mine, dar a ta va depinde de adresa IP.

Pasul 15: Joacă unele Spotify

Să verificăm dacă serviciul poate accesa Spotify.

Deschideți un browser și navigați la următoarea adresă (înlocuind evident cu adresa dvs. IP și numele camerei):

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

Ar trebui să-l auziți pe John Grant. Bucurați-vă.

Pasul 16: Găsiți URI-uri Spotify

Găsiți URI-uri Spotify
Găsiți URI-uri Spotify

Știu ciudat, dar nu tuturor îi place John Grant. Poate vrei să asculți altceva?

Puteți obține linkurile Spotify de pe desktop, web sau aplicații mobile, dar Desktop-ul este de departe cel mai ușor, deoarece oferă URI exact în formatul dorit, așa că începeți cu acesta.

În aplicația desktop Spotify navigați la albumul pe care doriți să-l ascultați (poate Lemonade by Beyonce?)

Faceți clic pe cele trei puncte mici de lângă butonul inimii.

Accesați meniul pentru a partaja și alegeți Copiați URI Spotify

Aceasta va copia ceva de genul

spotify: album: 7dK54iZuOxXFarGhXwEXfF

în clipboard, care este URI-ul Spotify pentru albumul Beyonce's Lemondade.

Porniți din nou browserul și navigați la următoarea adresă (înlocuind evident adresa IP și camera și lipiți în URI-ul pe care tocmai l-ați copiat):

192.168.4.102:5005/Dining Room / spotify / acum / [Spotify URI pe care doriți să îl jucați]

Ar trebui să auzi jocul ales.

Dacă preferați să utilizați aplicația web, aceasta vă va oferi un link web (ceva de genul celor de mai jos):

open.spotify.com/album/7dK54iZuOxXFarGhXwEXfF

trebuie să îl convertiți în formatul spotify: album: cod de mai sus pentru ca acesta să funcționeze.

Pasul 17: O notă despre URI-urile Spotify

URI-urile Spotify și modul în care interacționează cu nodul-sonos-http-api sunt intuitive, în cea mai mare parte.

Puteți conecta direct la albume, melodii și liste de redare.

Un URI de album arată ca:

spotify: album: 6agCM9GJcebduMddgFmgsO

Un URI de pistă arată ca:

spotify: track: 4fNDKbaeEjk2P4GrRE1UbW

Playlisturile funcționează puțin diferit. Când copiați URI-ul din Spotify, acesta va arăta ca:

spotify: playlist: 5huIma0YU4iusLcT2reVEU

Cu toate acestea, pentru ca acesta să funcționeze efectiv pe API, trebuie să adăugați spotify: user: la începutul celor de mai sus. Acest lucru se aplică chiar și playlisturilor publice și, da, înseamnă că spui spotify de două ori.

Pentru a fi foarte clar, utilizatorul nu trebuie să fie numele unui anumit utilizator, ci doar utilizatorul text. Deci, URI-ul corect pentru lista de redare de mai sus pentru a-l face să funcționeze ar fi:

spotify: utilizator: spotify: playlist: 5huIma0YU4iusLcT2reVEU

Pasul 18: Configurați Raspberry Pi pentru a trimite cereri

Configurați Raspberry Pi pentru a trimite cereri HTTP
Configurați Raspberry Pi pentru a trimite cereri HTTP

Mai degrabă decât tastarea manuală a cererilor HTTP într-un browser web, dorim să o automatizăm astfel încât Raspberry Pi să facă asta singură când este prezentat cu un anumit stimul (cititorul NFC este declanșat).

Vom folosi o bibliotecă numită solicitări pentru a permite Raspberry Pi să facă acest lucru. Să verificăm dacă este instalat.

Deschideți terminalul de pe Pi și tastați următoarele:

solicitări de instalare sudo pip

Este probabil să revină și să spună că este deja instalat, caz în care este grozav. Dacă nu, îl va instala.

Pasul 19: Generați etichete NFCC cu date Spotify

Generați etichete NFCC cu date Spotify
Generați etichete NFCC cu date Spotify
Generați etichete NFCC cu date Spotify
Generați etichete NFCC cu date Spotify
Generați etichete NFCC cu date Spotify
Generați etichete NFCC cu date Spotify
Generați etichete NFCC cu date Spotify
Generați etichete NFCC cu date Spotify

Acum vrem să scriem un album Spotify URI pe o etichetă NFC. Fiecare dintre aceste etichete este ceea ce veți folosi pentru a spune Raspberry Pi să redea un anumit album.

Puteți scrie pe o etichetă NFC folosind un telefon Android, dar mi se pare cel mai ușor să faceți acest lucru prin intermediul unui Mac sau PC, deoarece puteți obține cel mai ușor să obțineți URI-urile Spotify din aplicația desktop Spotify.

Conectați cititorul USB NFC la computer sau Mac. Folosesc ACR122U de la American Card Systems.

Descărcați Instrumente NFC pe computer sau Mac. Instalați-l și deschideți-l.

Uneori poate fi puțin lent să vă conectați la cititor și poate spune că nu îl găsește deloc. Accesați fila Altele din instrumentele NFC și faceți clic din când în când pe butonul Connector NFC Reader. Este posibil să fie necesar să deconectați și să conectați din nou cititorul de câteva ori înainte ca acesta să îl găsească.

În cele din urmă vă va oferi opțiunea de a vă alege cititorul dintr-o listă și de a spune că este conectat. Accesați fila Informații care nu va afișa nimic în afară de „Așteptarea unei etichete NFC”.

Luați o etichetă NFC goală. Puneți-l pe cititor și lăsați-l acolo. Instrumentele NFC vor afișa informațiile despre etichetă.

Mergeți la fila Scrieți și faceți clic pe Adăugați o înregistrare> Text. (Aveți grijă să nu alegeți URL sau URI - știu că este tentant, deoarece copiați un URI, dar doriți text)

Luați un URI de la Spotify folosind metoda pe care am folosit-o anterior. Dacă doriți un exemplu ușor, următorul este albumul nostru John Grant de mai devreme.

spotify: album: 2dfTV7CktUEBkZCHiB7VQB

Faceți clic pe OK, apoi pe Scrieți (nu uitați acest ultim pas - nu îl scrie de fapt până nu faceți clic pe acesta). Vă va spune că eticheta a fost scrisă cu succes.

Scoateți eticheta de pe cititor

Pasul 20: Configurați cititorul NFC pe Raspberry Pi

Configurați cititorul NFC pe Raspberry Pi
Configurați cititorul NFC pe Raspberry Pi

Conectați cititorul NFC la unul dintre porturile USB de pe Raspberry Pi.

Vom folosi biblioteca nfcpy Python pentru a comunica cu cititorul NFC. Instalați-l tastând următoarele pe linia de comandă Pi:

pip install -U nfcpy

Apoi putem verifica dacă această bibliotecă poate vedea cititorul nostru NFC tastând următoarele:

python -m nfc

Dacă a funcționat, veți vedea următoarele:

Aceasta este versiunea 1.0.3 a nfcpy rulată în Python 2.7.16 pe Linux-4.19.97-v7 + -armv7l-with-debian-10.3

Acum caut sistemul dvs. pentru dispozitive fără contact ** găsit ACS ACR122U PN532v1.6 la usb: 001: 011 Nu încerc dispozitive seriale pentru că nu mi-ați spus - adăugați opțiunea „--search-tty” să mă caute - dar ai grijă că acest lucru ar putea rupe alte dev-uri seriale

Cu toate acestea, există șanse mari să primiți un mesaj de eroare care să spună că cititorul a fost găsit, dar utilizatorul dvs. (pi) nu are permisiunea de a-l accesa. Dacă primiți acest mesaj de eroare, acesta va explica, de asemenea, cum să remediați problema, care este tastând două comenzi care seamănă puțin cu următoarele:

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

sudo udevadm control -R

Copiați și executați ambele comenzi pe care vi le oferă (nu exact ceea ce este mai sus, deoarece a dvs. poate fi diferită), apoi deconectați și reconectați cititorul NFC de la portul USB.

Încercați din nou comanda de verificare:

python -m nfc

De data aceasta ar trebui să spună că l-a găsit fără mesaje de eroare.

Pasul 21: Instalați scripturile Python Vinylemulator

Acum avem toate elementele de bază:

  • Raspberry Pi-ul nostru poate asculta intrarea NFC
  • Raspberry Pi este capabil să-i spună lui Sonos să redea liste de redare Spotify atunci când i se oferă un URI Spotify
  • Avem o etichetă NFC cu un URI Spotify stocat pe ea

Acum trebuie să tragem toate aceste elemente de bază în ceva util. Acest lucru se face printr-un scurt script python pe care l-am scris (cu mult ajutor din proiectele anterioare NFC / Spotify / Sonos), care se numește vinylemulator.

Puteți vizualiza codul sursă pentru fișiere la github:

Pentru a instala acest lucru pe Raspberry Pi, trebuie să-l clonăm din github cu următoarea comandă:

git clone

Pasul 22: Personalizați Vinylemulator

Personalizați Vinylemulator
Personalizați Vinylemulator
Personalizați Vinylemulator
Personalizați Vinylemulator

Deschideți managerul de fișiere Raspberry Pi și navigați la acasă> pi> vinylemulator

Deschideți fișierul usersettings.py

Una dintre rândurile din acest fișier va citi:

sonosroom = "sufragerie"

Schimbați „Sala de mese” pentru a fi orice nume de cameră Sonos doriți să controlați.

Există, de asemenea, o setare în acest fișier care vă permite să personalizați adresa IP a sonos-http-api. Ar trebui să puteți lăsa acest lucru neschimbat ca „localhost”, ceea ce înseamnă doar că va folosi Raspberry Pi pe care rulează.

Salvați fișierul și închideți-l.

Pasul 23: Testați Vinylemulator

Test Vinylemulator
Test Vinylemulator
Test Vinylemulator
Test Vinylemulator

Accesați promptul de comandă Raspberry Pi.

Introduceți următoarea comandă:

python vinylemulator / readnfc.py

Dacă totul este bine, acest lucru va încărca scriptul și va spune că cititorul este gata. Lumina cititorului ar trebui să devină verde.

Puneți eticheta NFC pe cititor, care va emite un semnal sonor.

Terminalul va afișa ceea ce a citit din eticheta NFC și va afișa adresa solicitării HTTP pe care a trimis-o. Albumul la alegere ar trebui să fie redat din difuzoarele Sonos.

Acest script va rula în continuare până când închideți fereastra terminalului. Puteți atinge diferite etichete NFC de album și acesta va trece la acel album.

Pasul 24: Faceți Vinylemulator să ruleze constant și la pornire

La fel ca sonos-http-api, vrem ca vinylemulator să ruleze tot timpul, mai degrabă decât atunci când îl numim. Putem folosi pm2 pentru a face acest lucru din nou.

Mai întâi închideți toate cazurile de vinilemulator pe care îl executați închizând ferestrele terminalului.

Apoi deschideți o nouă fereastră de terminal și tastați următoarele două comenzi:

pm2 start vinylemulator / readnfc.py

pm2 salvați

Să verificăm dacă a funcționat prin repornirea Raspberry Pi. (Puteți să tastați sudo reboot sau să faceți acest lucru din meniul Raspberry cu mouse-ul.

Așteptați ca Pi să pornească din nou și vedeți că funcționează atingând o etichetă NFC pe cititor. Ar trebui să obții muzică.

Pasul 25: Felicitați-vă

Totul este acum funcțional. Puteți muta Raspberry Pi oriunde intenționați să-l localizați. Se va reporni și va funcționa în modul în care l-ați configurat de fiecare dată când îl conectați.

Următoarele dvs. sarcini sunt cele distractive: a face totul frumos.

Pasul 26: Faceți-l frumos - Ascundeți-vă cititorul

Faceți-l frumos - Ascundeți-vă cititorul
Faceți-l frumos - Ascundeți-vă cititorul
Faceți-l frumos - Ascundeți-vă cititorul
Faceți-l frumos - Ascundeți-vă cititorul
Faceți-l frumos - Ascundeți-vă cititorul
Faceți-l frumos - Ascundeți-vă cititorul
Faceți-l frumos - Ascundeți-vă cititorul
Faceți-l frumos - Ascundeți-vă cititorul

Prima parte a face-o frumoasă este ascunderea undeva a cititorului NFC din plastic alb alb.

Am ales cu o opțiune de tehnologie foarte scăzută, de a o lipi pe partea inferioară a unui tejghea de lângă Sonos Play: 5. Lemnul tejghelei este suficient de subțire încât să poată trece NFC, așa că redau muzică atingând o etichetă NFC într-un loc magic și invizibil.

Recomandat: