Taula de continguts:

Emulador de vinil de Sonos Spotify: 26 passos
Emulador de vinil de Sonos Spotify: 26 passos

Vídeo: Emulador de vinil de Sonos Spotify: 26 passos

Vídeo: Emulador de vinil de Sonos Spotify: 26 passos
Vídeo: Broke 90 in Smart Tv 2024, Juliol
Anonim
Image
Image
Emulador de vinil de Sonos Spotify
Emulador de vinil de Sonos Spotify

Tingueu en compte que aquest no és el darrer conjunt d’instruccions per a aquest projecte:

Visiteu https://www.hackster.io/mark-hank/sonos-spotify-vinyl-emulator-3be63d per obtenir el darrer conjunt d’instruccions i assistència

Escoltar música en vinil és fantàstic. És físic i tàctil. Escoltes tot un disc en lloc de cançons aleatòries. Es nota quan s’acaba i tria conscientment una altra cosa. Podeu crear una col·lecció i navegar-hi en lloc d’haver de cercar exactament el que voleu.

També és car i voluminós, sobretot si teniu en compte que els diners que invertiu en vinil és probablement un duplicat de la música a la qual ja teniu accés a través d’un servei de transmissió al qual us subscriviu.

Aquest projecte intenta reproduir la tactilitat i els aspectes de construcció de col·leccions del vinil mentre confia en Spotify per lliurar la música. Si col·loqueu un objecte físic en un lector NFC connectat a un Raspberry Pi (tots dos es poden amagar), es començarà a reproduir l'àlbum associat amb aquesta etiqueta.

Et guiaré per tots els passos: des de la configuració del Raspberry Pi fins a la codificació de les etiquetes NFC. Aquest és el meu primer projecte de Raspberry Pi i el meu primer codi Python, de manera que em vaig ensenyar a tots dos mentre desenvolupava això. Com a tal, aquestes instruccions suposen literalment zero coneixements previs i us expliquen cada pas.

El cost total dels components essencials per construir-lo és d'aproximadament 50-60 lliures esterlines.

M’encantaria veure què construeixes!

Pas 1: subministraments necessaris 1: Raspberry Pi

La part posterior que s’interface amb la vostra xarxa, Sonos i Spotify serà executada per un Raspberry Pi. De fet, hi ha molt poc que necessiteu per tirar endavant això.

Essencial:

Raspberry Pi: he utilitzat un Raspberry Pi 3 Model B +, però també funcionarà amb un Raspberry Pi 3 Model A + (23 £)

Font d'alimentació USB: en tenia una de reduïda; n'hi ha una de oficial disponible si no ho feu (9 £)

Targeta Micro SD: en tinc una de 32 GB, que és suficient per a aquesta aplicació, a Amazon (6 £)

Alguns equips Sonos que s’executen a la vostra xarxa (suposo que ja teniu això si sou aquí …)

Un compte Spotify Premium

Recomanat:

Un cas per al Pi: hi ha moltes opcions, des de 5 GBP

Una ampolla de Zinfandel californià decent: recomano Ridge, però n'hi ha d'altres disponibles

Pas 2: subministraments necessaris 2: lector NFC

Subministraments necessaris 2: Lector NFC
Subministraments necessaris 2: Lector NFC
Subministraments necessaris 2: Lector NFC
Subministraments necessaris 2: Lector NFC

Aquestes instruccions estan dissenyades per a un lector NFC ACR122U que es connecta mitjançant USB.

ACR122U

El vaig comprar a Amazon per 38 lliures (principalment perquè tenia un lliurament excel·lent), però hi ha opcions més econòmiques per comprar aquest mateix lector.

Confusament, l'ACR122U sembla que es ven amb un munt de marques diferents (el meu va passar a ser el nom de marca "Yosoo"), però pel que puc dir són iguals i estan construïts per American Card Systems.

El més barat que he trobat a l'ACR122U anunciat és de 21 lliures incloses les despeses d'enviament, però prové directament de la Xina, de manera que és possible que hagueu d'esperar una mica.

Altres opcions

Aquest projecte es basa en una biblioteca python anomenada nfcpy que manté una llista de dispositius compatibles aquí:

En teoria, aquest projecte hauria de funcionar amb qualsevol dels que figuren en aquesta llista amb poca integració.

Una opció temptadora és l’Adafruit PN532, que és una placa que hauria de connectar-se directament al vostre Raspberry Pi mitjançant cables jumper. Ho vaig provar i em va semblar una autèntica faff. Requereix soldadura, per exemple.

Un dels seus avantatges és, superficialment, que és més petit, però en realitat el tauler té aproximadament la mateixa mida que les vísceres de l'ACR122U. Si realment se us demana espai per a la vostra aplicació, podeu treure el plàstic de l'ACR122U i simplement utilitzar el tauler.

Pas 3: subministraments necessaris 3: etiquetes NFC

Subministraments necessaris 3: etiquetes NFC
Subministraments necessaris 3: etiquetes NFC

Per a cada àlbum que vulgueu crear, necessitareu una etiqueta NFC que compleixi l'estàndard NTAG213.

Hi ha molts llocs on comprar-los.

Vaig comprar el meu primer lot a Amazon, on vaig obtenir un paquet de 10 per 9 GBP (inclòs el lliurament Prime)

El millor subministrament que he trobat aquí al Regne Unit és Seritag: tenen una selecció molt àmplia d’estils diferents, un bon consell al seu lloc web, ja sabeu exactament el que obteniu (no sempre és cert a Amazon). No tenen una mida mínima de comanda ni una gran quantitat d’opcions. Les etiquetes comencen a 27 p per etiqueta

Pas 4: baixeu el sistema operatiu Raspberry Pi a una targeta SD

Baixeu-vos el sistema operatiu Raspberry Pi a una targeta SD
Baixeu-vos el sistema operatiu Raspberry Pi a una targeta SD
Baixeu-vos el sistema operatiu Raspberry Pi a una targeta SD
Baixeu-vos el sistema operatiu Raspberry Pi a una targeta SD

Al vostre ordinador o Mac, descarregueu i executeu l'aplicació d'imatge Raspberry PI.

Introduïu la targeta SD en què vulgueu instal·lar el sistema operatiu Raspberry Pi.

Feu clic a TRIA EL SO i seleccioneu el Rasbian per defecte.

Feu clic a TRIA LA TARGETA SD i seleccioneu la targeta SD que heu connectat.

Feu clic a ESCRIURE. Això pot trigar una estona.

Un cop fet, us indicarà que traieu la targeta SD, cosa que hauríeu de fer. Però torneu a connectar-lo, ja que primer heu de fer alguns punts de neteja.

Pas 5: activeu SSH a la vostra imatge del sistema operatiu Raspberry Pi

Activeu SSH a la vostra imatge del sistema operatiu Raspberry Pi
Activeu SSH a la vostra imatge del sistema operatiu Raspberry Pi

Una vegada que el sistema operatiu s'ha escrit a la targeta SD, hi ha algunes tasques addicionals que heu de fer.

Volem accedir al Raspberry Pi sense connectar un teclat o monitor (també conegut com "sense cap"), cosa que podem fer a través de la nostra xarxa local mitjançant el nostre PC o Mac mitjançant un protocol anomenat SSH. Tot i això, per motius de seguretat, SSH està desactivat per defecte. Hem d’habilitar-ho.

Ho podem fer creant un fitxer buit anomenat:

ssh

a la targeta SD que acabem de crear. És important que això no tingui cap mena d'extensió (per exemple.txt). El fitxer en si no necessita contenir cap contingut, només la seva existència permetrà SSH quan arrenci el Pi.

Pas 6: opcional: configureu Wifi al vostre Raspberry Pi

Opcional: configureu Wifi al vostre Raspberry Pi
Opcional: configureu Wifi al vostre Raspberry Pi
Opcional: configureu Wifi al vostre Raspberry Pi
Opcional: configureu Wifi al vostre Raspberry Pi

Podeu ometre aquest pas si teniu previst connectar el vostre Raspberry Pi al vostre encaminador per Ethernet. (Tot i que és possible que vulgueu pensar molt en aquesta decisió: fer-la passar per wifi fa que la vida sigui molt més fàcil pel que fa al posicionament)

Creeu un fitxer de text pla anomenat wpa_supplicant.conf al directori arrel de la targeta SD.

Inseriu el text següent al fitxer:

país = gb

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

Canvieu el país segons correspongui (GB és el Regne Unit, els EUA són els EUA, DE són Alemanya, etc.)

Canvieu les credencials de wifi que hi hagi perquè siguin les dades reals del vostre encaminador wifi.

Deseu el fitxer.

Expulseu la targeta SD amb seguretat.

Pas 7: engegueu el vostre Raspberry Pi

Enceneu el vostre Raspberry Pi
Enceneu el vostre Raspberry Pi

Introduïu la targeta SD que acabeu de crear al vostre Raspberry Pi.

Connecteu el vostre Raspberry Pi a l’energia mitjançant el cable USB. Espereu un minut perquè arrenci.

Pas 8: cerqueu l'adreça IP del vostre Raspberry Pi

Ara heu de trobar l’adreça IP del Raspberry Pi perquè pugueu connectar-vos-hi. Podeu fer-ho de dues maneres:

  • mitjançant la pàgina de configuració del vostre encaminador: si teniu un encaminador modern com eero, és molt fàcil;
  • o mitjançant una aplicació per a telèfons intel·ligents disponible per a iOS i Android anomenada "fing": descarregueu-la, connecteu-vos al router i cerqueu dispositius; un d'ells s'hauria de dir "Raspberry": aquesta serà l'adreça IP que necessiteu.

Pas 9: connecteu-vos a la línia d'ordres de Raspberry Pi

Connecteu-vos a la línia d’ordres de Raspberry Pi
Connecteu-vos a la línia d’ordres de Raspberry Pi

Obriu Terminal al vostre Mac (o si utilitzeu Windows, descarregueu i utilitzeu Putty).

Introduïu l'ordre següent:

ssh pi @ [l'adreça IP del vostre Pi]

Accepteu els avisos de seguretat que rebeu. Se us demanarà la contrasenya per a l'usuari pi predeterminat que és

gerds

Pas 10: configureu la GUI del sistema operatiu Raspberry Pi

Configureu la GUI del sistema operatiu Raspberry Pi
Configureu la GUI del sistema operatiu Raspberry Pi
Configureu la GUI del sistema operatiu Raspberry Pi
Configureu la GUI del sistema operatiu Raspberry Pi

Ara esteu connectat al vostre Pi mitjançant la línia d’ordres, que és fantàstic, però també voleu configurar-lo perquè pugueu accedir a la interfície gràfica d’usuari a la qual accedirem mitjançant VNC (Virtual Network Computing). Com és previsible, també hem d’habilitar-ho.

Primer de tot, comproveu que el programari Pi estigui actualitzat introduint les dues ordres següents (cadascuna seguida d’introduir) a la línia d’ordres:

actualització sudo apt

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

A continuació, obriu el menú de configuració de Raspberry Pi introduint:

sudo raspi-config

Aneu a Opcions d’interfície> VNC> Sí.

Sortiu de l'aplicació de configuració prement la tecla d'escapament i reinicieu el Pi des de la línia d'ordres escrivint:

sudo reiniciar

Pas 11: connecteu-vos i configureu la vostra interfície gràfica d’usuari de Raspberry Pi

Connecteu-vos i configureu la vostra interfície gràfica d’usuari de Raspberry Pi
Connecteu-vos i configureu la vostra interfície gràfica d’usuari de Raspberry Pi
Connecteu-vos i configureu la vostra interfície gràfica d’usuari de Raspberry Pi
Connecteu-vos i configureu la vostra interfície gràfica d’usuari de Raspberry Pi

Baixeu i obriu VNC Viewer.

Escriviu l'adreça IP del vostre Raspberry Pi i premeu connect. Us demanarà un nom d’usuari i una contrasenya que siguin:

Nom d’usuari = pi

Contrasenya = gerd

Això us hauria d'iniciar a la GUI.

Us demanarà que confirmeu la vostra geografia i disposició del teclat.

A continuació, us demanarà que canvieu la contrasenya (bona idea).

Us demanarà que definiu els detalls del wifi, però podeu ometre’ls ja que ja funcionen. (Tot i que si esteu funcionant amb Ethernet i teniu reflexions, ara és la vostra oportunitat … però tingueu en compte que la vostra adreça IP pot canviar)

A continuació, comprovarà, baixarà i instal·larà actualitzacions (pot trigar una estona).

Un cop hàgiu passat l'assistent de configuració, us recomanaria canviar la resolució de la pantalla, ja que la predeterminació és força petita. Podeu fer-ho fent clic a Raspberry a la part superior esquerra> Preferències> Configuració de Raspberry Pi> Pantalla> Establir resolució

Haureu de reiniciar el Pi una altra vegada per aconseguir que aquest sigui efectiu.

Pas 12: instal·leu Node.js i NPM

Instal·leu Node.js i NPM
Instal·leu Node.js i NPM

A continuació, voleu carregar la línia d'ordres Raspberry Pi per instal·lar les dependències que necessitem.

Podeu fer-ho connectant-vos mitjançant VNC i fent clic al botó situat a la part superior que sembla una línia d'ordres; o podeu connectar-vos directament des del vostre Mac / PC mitjançant Terminal i Putty com hem fet anteriorment. Si esteu menys acostumat a treballar amb el Raspberry Pi, és més fàcil fer el primer.

(Consell: Podeu copiar text des del vostre Mac / PC i enganxar-lo al Raspberry Pi mitjançant VNC prement CONTROL-V, però si intenteu enganxar-lo al terminal, heu de prémer CONTROL-SHIFT-V)

El primer treball consisteix a tornar a comprovar que el programari està actualitzat escrivint les dues ordres següents. Podrien trigar una estona a baixar-se i instal·lar-se.

sudo apt-get update

sudo apt-get upgrade

A continuació, voleu descarregar i instal·lar node.js i NPM (no us preocupeu massa pel que són, són útils i necessaris per a les nostres properes tasques) escrivint el següent:

sudo apt-get install nodejs npm

Us preguntarà un parell de vegades si esteu disposat a ocupar espai al disc amb això; per tant, premeu Y

Pas 13: instal·leu l'API HTTP de SONOS

Instal·leu l'API HTTP de SONOS
Instal·leu l'API HTTP de SONOS
Instal·leu l'API HTTP de SONOS
Instal·leu l'API HTTP de SONOS

La base del back-end del nostre projecte és el paquet node-sonos-http-api creat per jishi. Podeu llegir-ne tot aquí:

Ho descarregarem des de github amb l'ordre següent introduïda a la línia d'ordres:

git clone

i l’instal·larem amb les ordres següents

cd node-sonos-http-api

npm install --production

A continuació, podem executar-lo amb l'ordre següent:

npm d'inici

Un cop fet això, hauríem de comprovar que funciona.

Primer de tot, obriu el navegador d’Internet al nostre Raspberry Pi i aneu a https:// localhost: 5005 /. S'hauria d'obrir una bona interfície amb el logotip de Sonos i una mica de documentació sobre el funcionament de l'API.

A continuació, comprovem que funciona des de la xarxa més àmplia utilitzant un navegador en un altre PC o Mac de la mateixa xarxa i navegant a https:// [theIPaddressofyourPi]: 5005 / i comprovant si obtenim el mateix resultat. Hauríem.

Ara farem que el sistema faci alguna cosa. Utilitzeu un navegador i aneu a:

192.168.4.102:5005/Sala de menjador / pausa

Heu de substituir l'adreça IP anterior per l'adreça del vostre Raspberry Pi i "Menjador" per un dels noms de les vostres zones Sonos. Hauria de reproduir-se o posar en pausa (depenent de si ja es reprodueix la música o no) la música d’aquella sala. Viouslybviament, cal que hi hagi alguna cosa a la cua de Sonos perquè això funcioni.

En el futur, utilitzaré l’adreça IP i el menjador anteriors com a exemples al llarg d’aquest tutorial. Evidentment, hauríeu de substituir-los per la vostra adreça IP i el nom de la vostra zona en cada ocasió.

Pas 14: feu que l'API HTTP de Sonos s'executi constantment

Feu que l'API Sonos HTTP s'executi constantment
Feu que l'API Sonos HTTP s'executi constantment

És fantàstic que tinguem l'API HTTP de Sonos en funcionament, però, i si falla? O perdeu energia o necessiteu reiniciar el vostre Raspberry Pi?

Podeu veure l’efecte tancant la finestra del terminal i tornant a provar el que acabem d’intentar. No funcionarà perquè l'API HTTP s'ha aturat juntament amb la finestra del terminal.

De fet, volem que funcioni constantment i ho fem des de l’inici cada vegada. Ho fem amb una cosa genial anomenada PM2.

En una nova finestra de terminal, instal·leu-la i executeu-la de la manera següent:

sudo npm install -g pm2

estat pm2

Ara fem que executi la nostra API HTTP de Sonos:

cd node-sonos-http-api

pm2 start npm: inici del sistema d'inici pm2

Aquesta última ordre genera una cosa que s’assembla una mica a:

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

Copieu el que genera el vostre Pi (no el text exacte anterior: el vostre pot ser diferent) i introduïu-lo a la línia d'ordres. Això indica al sistema que executi PM2 en arrencar cada vegada.

Finalment, introduïu:

pm2 guardar

que ho estalvia tot.

Ara proveu si ha funcionat reiniciant el vostre Raspberry Pi amb l'ordre

sudo reiniciar

Amb sort, un cop reiniciat el Pi, també s'iniciarà PM2 i al seu torn l'API HTTP de Sonos. Podeu comprovar-ho navegant amb un navegador de la mateixa xarxa fins a l’adreça que havíem utilitzat abans i veure el logotip i les instruccions de Sonos:

192.168.4.102:5005/

és per a mi, però la vostra dependrà de l'adreça IP.

Pas 15: Reprodueix alguns Spotify

Comprovem que el servei pugui accedir a Spotify.

Obriu un navegador i aneu a la següent adreça (òbviament, substituint-la per la vostra adreça IP i el nom de la sala):

192.168.4.102:5005/ Menjador / spotify / ara / spotify / spotify: àlbum: 2dfTV7CktUEBkZCHiB7VQB

Hauríeu d’escoltar una mica de John Grant. Gaudeix.

Pas 16: cerqueu els URI de Spotify

Cerqueu URI de Spotify
Cerqueu URI de Spotify

És estrany, ho sé, però a tothom no li agrada John Grant. Potser voleu escoltar una altra cosa?

Podeu obtenir els enllaços de Spotify des de les aplicacions d’escriptori, web o mòbil, però l’escriptori és, amb diferència, el més senzill, ja que proporciona l’URI exactament en el format que desitgeu, així que comenceu per això.

A l'aplicació d'escriptori Spotify, aneu a l'àlbum que voleu escoltar (potser Lemonade de Beyonce?)

Feu clic als tres petits punts al costat del botó del cor.

Aneu al menú per compartir i trieu Copia l'URI de Spotify

Això copiarà alguna cosa així

spotify: àlbum: 7dK54iZuOxXFarGhXwEXfF

al portapapers, que és l’URI de Spotify de l’àlbum Lemondade de Beyonce.

Torneu a engegar el navegador i aneu a la següent adreça (òbviament substituint l'adreça IP i la sala i enganxant-la a l'URI que acabeu de copiar):

192.168.4.102:5005/Dining Room / spotify / ara / [URI de Spotify que voleu jugar]

Hauríeu d’escoltar la vostra elecció.

Si preferiu utilitzar l'aplicació web, us proporcionarà un enllaç web (com el següent):

open.spotify.com/album/7dK54iZuOxXFarGhXwEXfF

heu de convertir-lo al format spotify: album: codi anterior perquè funcioni.

Pas 17: una nota sobre els URI de Spotify

Els URI de Spotify i la seva forma de relacionar-se amb el node-sonos-http-api són intuïtius, en la seva major part.

Podeu enllaçar directament a àlbums, pistes i llistes de reproducció.

Un URI d'àlbum té el següent aspecte:

spotify: àlbum: 6agCM9GJcebduMddgFmgsO

Un URI de pista té el següent aspecte:

spotify: track: 4fNDKbaeEjk2P4GrRE1UbW

Les llistes de reproducció funcionen una mica de manera diferent. Quan copieu l’URI des de Spotify, es veurà com:

spotify: llista de reproducció: 5huIma0YU4iusLcT2reVEU

Tanmateix, per aconseguir que funcioni a l'API, cal afegir spotify: user: al principi de l'anterior. Això s'aplica fins i tot a les llistes de reproducció públiques i, sí, vol dir que dieu spotify dues vegades.

Per ser molt clar, l’usuari no ha de ser el nom d’un usuari concret, només l’usuari de text. Per tant, l’URI correcte per a la llista de reproducció anterior perquè funcioni sigui:

spotify: usuari: spotify: llista de reproducció: 5huIma0YU4iusLcT2reVEU

Pas 18: configureu Raspberry Pi per enviar sol·licituds

Configureu Raspberry Pi per enviar sol·licituds HTTP
Configureu Raspberry Pi per enviar sol·licituds HTTP

En lloc d’escriure manualment les sol·licituds HTTP en un navegador web, volem automatitzar-les de manera que el Raspberry Pi faci això mateix quan es presenta amb cert estímul (s’activa el lector NFC).

Utilitzarem una biblioteca anomenada peticions per permetre que Raspberry Pi faci això. Comprovem que estigui instal·lat.

Obriu el terminal del vostre Pi i escriviu el següent:

sol·licituds d'instal·lació de sudo pip

És probable que torni i digui que ja està instal·lat, en aquest cas és fantàstic. Si no, l’instal·larà.

Pas 19: Genereu etiquetes NFCC amb dades de Spotify

Genereu etiquetes NFCC amb dades de Spotify
Genereu etiquetes NFCC amb dades de Spotify
Genereu etiquetes NFCC amb dades de Spotify
Genereu etiquetes NFCC amb dades de Spotify
Genereu etiquetes NFCC amb dades de Spotify
Genereu etiquetes NFCC amb dades de Spotify
Genereu etiquetes NFCC amb dades de Spotify
Genereu etiquetes NFCC amb dades de Spotify

Ara volem escriure un URI d’àlbum de Spotify en una etiqueta NFC. Cadascuna d’aquestes etiquetes és el que faràs servir per dir al Raspberry Pi que reprodueixi un àlbum en concret.

Podeu escriure en una etiqueta NFC mitjançant un telèfon Android, però em sembla més fàcil fer-ho mitjançant un Mac o un PC, ja que podeu obtenir el més fàcil obtenir els URI de Spotify des de l’aplicació d’escriptori Spotify.

Connecteu el lector USB NFC al vostre PC o Mac. Estic fent servir l'ACR122U de American Card Systems.

Baixeu Eines NFC al vostre PC o Mac. Instal·leu-lo i obriu-lo.

De vegades pot ser una mica lent connectar-se amb el lector i pot dir que no el troba gens. Aneu a la pestanya Altres de les eines NFC i feu clic de tant en tant al botó Connector NFC Reader. És possible que hàgiu de desconnectar i tornar a endollar el lector unes quantes vegades abans de trobar-lo.

Finalment, us donarà l'opció de triar el vostre lector d'una llista i dir que està connectat. Aneu a la pestanya Informació que no mostrarà res excepte "Esperant una etiqueta NFC".

Agafeu una etiqueta NFC en blanc. Poseu-lo al lector i deixeu-lo allà. Eines NFC mostrarà la informació sobre l’etiqueta.

Aneu a la pestanya Escriu i feu clic a Afegeix un registre> Text. (Vés amb compte de no triar URL o URI; sé que és temptador perquè copies un URI, però vols text)

Agafa un URI de Spotify mitjançant el mètode que hem utilitzat anteriorment. Si voleu un exemple senzill, el següent és el nostre àlbum de John Grant anterior.

spotify: àlbum: 2dfTV7CktUEBkZCHiB7VQB

Feu clic a D'acord i, a continuació, a Escriu (no oblideu aquest darrer pas; en realitat no l'escriu fins que no feu clic a aquest). Us indicarà que l’etiqueta s’ha escrit correctament.

Traieu l'etiqueta del lector

Pas 20: configureu el lector NFC al Raspberry Pi

Configureu el lector NFC al Raspberry Pi
Configureu el lector NFC al Raspberry Pi

Connecteu el lector NFC a un dels ports USB del vostre Raspberry Pi.

Utilitzarem la biblioteca nfcpy Python per comunicar-nos amb el lector NFC. Instal·leu-lo escrivint el següent a la línia d'ordres Pi:

pip install -U nfcpy

A continuació, podem comprovar si aquesta biblioteca pot veure el nostre lector NFC escrivint el següent:

python -m nfc

Si ha funcionat, veureu el següent:

Aquesta és la versió 1.0.3 de nfcpy executada a Python 2.7.16 a Linux-4.19.97-v7 + -armv7l-with-debian-10.3

Ara busco dispositius sense contacte al vostre sistema ** trobat ACS ACR122U PN532v1.6 a usb: 001: 011 No estic provant dispositius de sèrie perquè no m'ho heu dit - afegiu l'opció "--search-tty" perquè em busqui, però tingueu en compte que això pot trencar altres desenvolupadors de sèrie

Tanmateix, hi ha moltes probabilitats que rebeu un missatge d'error que indiqui que s'ha trobat el lector, però el vostre usuari (pi) no té permís per accedir-hi. Si rebeu aquest missatge d'error, també s'explicarà com solucionar el problema, que és escrivint dues ordres que s'assemblen a les següents:

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

Copieu i executeu les dues ordres que us proporciona (no exactament les que es mostren a sobre, ja que les vostres poden ser diferents), després desconnecteu i torneu a connectar el lector NFC del port USB.

Torneu a provar l'ordre check:

python -m nfc

Aquesta vegada hauria de dir que l'ha trobat sense missatges d'error.

Pas 21: instal·leu els scripts Python de Vinylemulator

Ara disposem de tots els elements bàsics:

  • El nostre Raspberry Pi és capaç d’escoltar l’entrada NFC
  • El nostre Raspberry Pi és capaç de dir a Sonos que reprodueixi llistes de reproducció de Spotify quan se li proporciona un URI de Spotify
  • Tenim una etiqueta NFC amb un URI de Spotify emmagatzemat

Ara hem de convertir tots aquests blocs en alguna cosa útil. Això es fa a través d’un breu script Python que vaig escriure (amb molta ajuda d’anteriors projectes NFC / Spotify / Sonos), que s’anomena vinylemulator.

Podeu veure el codi font dels fitxers a github:

Per instal·lar-ho al nostre Raspberry Pi, hem de clonar-lo des de github amb l'ordre següent:

git clone

Pas 22: personalitzeu Vinylemulator

Personalitzeu Vinylemulator
Personalitzeu Vinylemulator
Personalitzeu Vinylemulator
Personalitzeu Vinylemulator

Obriu el gestor de fitxers de Raspberry Pi i aneu a casa> pi> vinylemulator

Obriu el fitxer usersettings.py

Una de les línies d’aquest fitxer es llegeix:

sonosroom = "Menjador"

Canvieu "Menjador" per ser el nom de la sala de Sonos que vulgueu controlar.

També hi ha una configuració en aquest fitxer que us permet personalitzar l'adreça IP de sonos-http-api. Hauríeu de deixar això sense canvis com a "localhost", cosa que significa que utilitzarà el Raspberry Pi que està executant.

Deseu el fitxer i tanqueu-lo.

Pas 23: proveu Vinylemulator

Test Vinylemulator
Test Vinylemulator
Test Vinylemulator
Test Vinylemulator

Aneu a l’indicador d’ordres de Raspberry Pi.

Introduïu l'ordre següent:

python vinylemulator / readnfc.py

Si tot està bé, es carregarà el guió i es dirà que el lector està a punt. La llum del lector s’ha de posar de color verd.

Poseu l'etiqueta NFC al lector, que emetrà un so.

El terminal mostrarà el que ha llegit de l'etiqueta NFC i mostrarà l'adreça de sol·licitud HTTP que ha enviat. El vostre àlbum escollit hauria de reproduir-se des dels altaveus de Sonos.

Aquest script continuarà funcionant fins que tanqueu la finestra del terminal. Podeu tocar diferents etiquetes NFC de l'àlbum i canviarà a aquest àlbum.

Pas 24: feu que Vinylemulator s'executi constantment i a l'inici

Igual que el sonos-http-api, volem que el vinylemulator s’executi tot el temps en lloc de fer-ho quan ho anomenem. Podem tornar a fer servir pm2.

Primer, tanqueu qualsevol instància de vinilemulador que esteu executant tancant les finestres del terminal.

A continuació, obriu una nova finestra de terminal i escriviu les dues ordres següents:

pm2 start vinylemulator / readnfc.py

pm2 guardar

Comprovem si ha funcionat reiniciant el Raspberry Pi. (Podeu escriure sudo reboot o fer-ho des del menú Raspberry amb el ratolí.

Espereu a que el Pi es torni a engegar i vegeu que funciona tocant una etiqueta NFC al lector. Hauríeu d’aconseguir música.

Pas 25: feliciteu-vos

Ara tot és funcional. Podeu moure el Raspberry Pi a qualsevol lloc que vulgueu situar. Es reiniciarà i funcionarà de la manera que l'heu configurat cada vegada que el connecteu.

Les vostres properes tasques són les divertides: fer-ho tot bonic.

Pas 26: Feu-lo bonic: amagueu el vostre lector

Fes-lo bonic: amaga el teu lector
Fes-lo bonic: amaga el teu lector
Fes-lo bonic: amaga el teu lector
Fes-lo bonic: amaga el teu lector
Fes-lo bonic: amaga el teu lector
Fes-lo bonic: amaga el teu lector
Fes-lo bonic: amaga el teu lector
Fes-lo bonic: amaga el teu lector

La primera part de fer-lo bell és amagar el desagradable lector de plàstic blanc NFC en algun lloc.

He anat amb una opció decididament de baixa tecnologia de gravar-la a la part inferior d’un taulell al costat del meu Sonos Play: 5. La fusta del taulell és prou prima perquè pugui passar l’NFC, així que toco música tocant una etiqueta NFC en un lloc màgic i invisible.

Recomanat: