Sommario:

Sonos Spotify Vinyl Emulatore: 26 passaggi
Sonos Spotify Vinyl Emulatore: 26 passaggi

Video: Sonos Spotify Vinyl Emulatore: 26 passaggi

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

Si prega di notare che questa non è l'ultima serie di istruzioni per questo progetto:

Visita https://www.hackster.io/mark-hank/sonos-spotify-vinyl-emulator-3be63d per l'ultima serie di istruzioni e supporto

Ascoltare musica su vinile è fantastico. È fisico e tattile. Ascolti un intero album piuttosto che brani casuali. Ti accorgi quando è finita e scegli consapevolmente qualcos'altro. Puoi creare una raccolta e sfogliarla invece di dover cercare esattamente ciò che desideri.

È anche costoso e ingombrante, soprattutto se si considera che i soldi spesi per il vinile sono molto probabilmente un duplicato di musica a cui si ha già accesso tramite un servizio di streaming a cui si è abbonati.

Questo progetto tenta di replicare la tattilità e gli aspetti di creazione di collezioni del vinile facendo affidamento su Spotify per fornire effettivamente la musica. Posizionando un oggetto fisico su un lettore NFC collegato a un Raspberry Pi (entrambi i quali possono essere nascosti) inizierà la riproduzione dell'album associato a quel tag.

Ti guiderò attraverso tutti i passaggi, dalla configurazione del Raspberry Pi alla codifica dei tag NFC. Questo è il mio primissimo progetto Raspberry Pi e il mio primo codice Python, quindi ho imparato entrambi durante lo sviluppo di questo. In quanto tali, queste istruzioni presuppongono letteralmente zero conoscenze precedenti e illustrano ogni passaggio.

Il costo totale per i componenti essenziali per costruirlo è di circa £ 50-60.

Mi piacerebbe vedere cosa costruisci!

Passaggio 1: Materiali di consumo necessari 1: Raspberry Pi

Il back-end che si interfaccia con la tua rete, Sonos e Spotify sarà gestito da un Raspberry Pi. C'è davvero poco che ti serve per farlo funzionare.

Essenziale:

Raspberry Pi: ho usato un Raspberry Pi 3 Model B+ ma funzionerà anche con un Raspberry Pi 3 Model A+ (£ 23)

Alimentatore USB: ne avevo uno in giro - ce n'è uno ufficiale disponibile se non lo fai (£ 9)

Scheda Micro SD: ne ho una da 32 GB, che è abbastanza per questa applicazione, su Amazon (£ 6)

Alcuni dispositivi Sonos in esecuzione sulla tua rete (immagino che tu li abbia già se sei qui…)

Un account Spotify Premium

Consigliato:

Un caso per il Pi: ci sono molte opzioni, a partire da £ 5

Una bottiglia di California Zinfandel decente: consiglio Ridge, ma ne sono disponibili altri

Passaggio 2: materiali di consumo necessari 2: lettore NFC

Materiali di consumo richiesti 2: lettore NFC
Materiali di consumo richiesti 2: lettore NFC
Materiali di consumo richiesti 2: lettore NFC
Materiali di consumo richiesti 2: lettore NFC

Queste istruzioni sono costruite per un lettore NFC ACR122U che si collega tramite USB.

ACR122U

Ho comprato questo da Amazon per £ 38 (soprattutto perché aveva la consegna prime) ma ci sono opzioni più economiche per acquistare questo stesso lettore.

Confusamente, l'ACR122U sembra essere venduto con un mucchio di marchi diversi (il mio è arrivato con il marchio tutt'altro che rassicurante "Yosoo") ma da quello che posso dire sono tutti uguali e costruiti da American Card Systems.

Il più economico che ho trovato l'ACR122U pubblicizzato è £ 21 inclusa la spedizione, ma arriva direttamente dalla Cina, quindi potrebbe essere necessario aspettare un po'.

Altre opzioni

Questo progetto si basa su una libreria Python chiamata nfcpy che mantiene un elenco di dispositivi supportati qui:

In teoria questo progetto dovrebbe funzionare con uno qualsiasi di quelli in quell'elenco con poca integrazione.

Un'opzione allettante è l'Adafruit PN532 che è una scheda che dovrebbe collegarsi direttamente al tuo Raspberry Pi usando cavi jumper. L'ho provato e l'ho trovato un vero disastro. Richiede la saldatura, per esempio.

Un vantaggio è, superficialmente, che è più piccolo ma in realtà la scheda ha circa le stesse dimensioni del budello dell'ACR122U. Se hai davvero bisogno di spazio per la tua applicazione, puoi rimuovere la plastica dall'ACR122U e utilizzare semplicemente la scheda.

Passaggio 3: materiali di consumo necessari 3: tag NFC

Materiali di consumo necessari 3: tag NFC
Materiali di consumo necessari 3: tag NFC

Per ogni album che vuoi creare, avrai bisogno di un tag NFC che soddisfi lo standard NTAG213.

Ci sono molti posti dove comprarli.

Ho acquistato il mio primo lotto da Amazon, dove ho ricevuto una confezione da 10 per £ 9 (inclusa la consegna Prime)

Il meglio fornito che ho trovato qui nel Regno Unito è Seritag: hanno una selezione davvero ampia di stili diversi, ottimi consigli sul loro sito Web, sai esattamente cosa ottieni (non sempre vero su Amazon). Non hanno un ordine minimo e un sacco di opzioni. I tag iniziano a 27p per tag

Passaggio 4: scarica il sistema operativo Raspberry Pi su una scheda SD

Scarica il sistema operativo Raspberry Pi su una scheda SD
Scarica il sistema operativo Raspberry Pi su una scheda SD
Scarica il sistema operativo Raspberry Pi su una scheda SD
Scarica il sistema operativo Raspberry Pi su una scheda SD

Sul tuo PC o Mac, scarica ed esegui l'applicazione imager Raspberry PI.

Inserisci la scheda SD su cui desideri installare il sistema operativo Raspberry Pi.

Fare clic su SCEGLI OS e selezionare il Rasbian predefinito.

Fai clic su SCEGLI SCHEDA SD e seleziona la scheda SD che hai collegato.

Clicca su SCRIVI. Questo potrebbe richiedere del tempo.

Una volta fatto, ti dirà di rimuovere la scheda SD, cosa che dovresti fare. Ma poi ricollegalo perché ci sono alcuni punti di pulizia che devi fare prima.

Passaggio 5: abilitare SSH sull'immagine del sistema operativo Raspberry Pi

Abilita SSH sull'immagine del tuo sistema operativo Raspberry Pi
Abilita SSH sull'immagine del tuo sistema operativo Raspberry Pi

Una volta che il sistema operativo è stato scritto sulla scheda SD, sono necessarie alcune attività aggiuntive.

Vogliamo accedere al Raspberry Pi senza collegare una tastiera o un monitor (noto anche come "headless"), cosa che possiamo fare sulla nostra rete locale usando il nostro PC o Mac su un protocollo chiamato SSH. Tuttavia, per motivi di sicurezza SSH è disabilitato per impostazione predefinita. Dobbiamo abilitarlo.

Possiamo farlo creando un file vuoto chiamato:

ssh

nella scheda SD che abbiamo appena creato. È importante che questo non abbia alcun tipo di estensione (es..txt). Il file stesso non deve contenere alcun contenuto: solo la sua esistenza abiliterà SSH all'avvio del Pi.

Passaggio 6: opzionale: configura il Wi-Fi sul tuo Raspberry Pi

Facoltativo: configura il Wi-Fi sul tuo Raspberry Pi
Facoltativo: configura il Wi-Fi sul tuo Raspberry Pi
Opzionale: imposta il Wi-Fi sul tuo Raspberry Pi
Opzionale: imposta il Wi-Fi sul tuo Raspberry Pi

Puoi saltare questo passaggio se prevedi di collegare il tuo Raspberry Pi al router tramite Ethernet. (Anche se potresti voler riflettere bene su questa decisione: farlo funzionare su Wi-Fi rende la vita molto più semplice in termini di posizionamento)

Crea un file di testo semplice chiamato wpa_supplicant.conf nella directory principale della scheda SD.

Inserisci il testo seguente nel file:

paese=gb

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

Modificare il paese come appropriato (GB è il Regno Unito, gli Stati Uniti sono gli Stati Uniti, DE è la Germania, ecc.)

Cambia le credenziali Wi-Fi lì per essere i dettagli del tuo router Wi-Fi effettivo.

Salva il file.

Espellere in sicurezza la scheda SD.

Passaggio 7: accendi il tuo Raspberry Pi

Accendi il tuo Raspberry Pi
Accendi il tuo Raspberry Pi

Inserisci la scheda SD appena creata nel tuo Raspberry Pi.

Collega il tuo Raspberry Pi all'alimentazione tramite il cavo USB. Aspetta un minuto che si avvii.

Passaggio 8: trova l'indirizzo IP del tuo Raspberry Pi

Ora devi trovare l'indirizzo IP del Raspberry Pi in modo da poterti connettere ad esso. Puoi farlo in due modi:

  • tramite la pagina di configurazione del router: se disponi di un router moderno come eero, è semplicissimo;
  • o tramite un'app per smartphone disponibile per iOS e Android chiamata "fing" - scaricala, connettiti al router e cerca i dispositivi - uno di questi dovrebbe chiamarsi "Raspberry" - questo sarà l'indirizzo IP di cui hai bisogno.

Passaggio 9: connettiti alla riga di comando del tuo Raspberry Pi

Connettiti alla tua riga di comando Raspberry Pi
Connettiti alla tua riga di comando Raspberry Pi

Apri Terminale sul tuo Mac (o se stai usando Windows, scarica e usa Putty).

Immettere il seguente comando:

ssh pi@[indirizzo IP del tuo Pi]

Accetta tutti gli avvisi di sicurezza che ricevi. Ti verrà richiesta la password per l'utente pi predefinito che è

lampone

Passaggio 10: configurare la GUI del sistema operativo Raspberry Pi

Configura la GUI del sistema operativo Raspberry Pi
Configura la GUI del sistema operativo Raspberry Pi
Configura la GUI del sistema operativo Raspberry Pi
Configura la GUI del sistema operativo Raspberry Pi

Ora sei connesso al tuo Pi tramite la riga di comando, il che è fantastico ma vuoi anche configurarlo in modo da poter accedere all'interfaccia utente grafica a cui accederemo tramite VNC (Virtual Network Computing). Com'era prevedibile, dobbiamo anche abilitare questo.

Prima di tutto controlla che il tuo software Pi sia aggiornato inserendo i seguenti due comandi (ognuno seguito da invio) nella riga di comando:

sudo apt update

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

Quindi, apri il menu delle impostazioni di Raspberry Pi inserendo:

sudo raspi-config

Passare a Opzioni di interfaccia > VNC > Sì.

Uscire dall'applicazione di configurazione premendo il tasto Esc e riavviare il Pi dalla riga di comando digitando:

sudo reboot

Passaggio 11: connettersi e configurare la GUI di Raspberry Pi

Connetti e configura la GUI del tuo Raspberry Pi
Connetti e configura la GUI del tuo Raspberry Pi
Connetti e configura la tua GUI Raspberry Pi
Connetti e configura la tua GUI Raspberry Pi

Scarica e apri il visualizzatore VNC.

Digita l'indirizzo IP per il tuo Raspberry Pi e premi Connetti. Ti chiederà nome utente e password che sono:

Nome utente = pi

Password = lampone

Questo dovrebbe avviarti alla GUI.

Ti verrà chiesto di confermare la tua geografia e il layout della tastiera.

Ti chiederà quindi di cambiare la password (buona idea).

Ti verrà chiesto di impostare i dettagli del Wi-Fi, ma puoi saltarlo perché stanno già funzionando. (Anche se sei in esecuzione su Ethernet e hai dei ripensamenti, ora è la tua occasione… ma tieni presente che il tuo indirizzo IP potrebbe cambiare)

Quindi controllerà, scaricherà e installerà gli aggiornamenti (potrebbe volerci un po' di tempo).

Una volta completata la procedura guidata di configurazione, ti consiglio di modificare la risoluzione dello schermo poiché l'impostazione predefinita è piuttosto piccola. Puoi farlo facendo clic sul Raspberry in alto a sinistra> Preferenze> Configurazione Raspberry Pi> Display> Imposta risoluzione

Dovrai riavviare il Pi ancora una volta per far sì che questo abbia effetto.

Passaggio 12: installare Node.js e NPM

Installa Node.js e NPM
Installa Node.js e NPM

Quindi vuoi caricare la riga di comando di Raspberry Pi per installare le dipendenze di cui abbiamo bisogno.

Puoi farlo collegandoti tramite VNC e facendo clic sul pulsante nella parte superiore che sembra una riga di comando; oppure puoi connetterti direttamente dal tuo Mac/PC usando Terminal e Putty come abbiamo fatto in precedenza. Se sei meno abituato a lavorare con il Raspberry Pi, è più facile fare il primo.

(Suggerimento: puoi copiare il testo dal tuo Mac/PC e incollarlo sul Raspberry Pi tramite VNC premendo CONTROL-V, ma se stai cercando di incollare nel Terminale, devi premere CONTROL-SHIFT-V)

Il primo compito è controllare di nuovo che il software sia aggiornato digitando i due comandi seguenti. Potrebbero volerci un po' di tempo per il download e l'installazione.

sudo apt-get update

sudo apt-get upgrade

Quindi vuoi scaricare e installare node.js e NPM (non preoccuparti troppo di cosa sono, sono utili e necessari per le nostre prossime attività) digitando quanto segue:

sudo apt-get install nodejs npm

Ti verrà chiesto un paio di volte se sei felice di occupare spazio su disco con questi - quindi premi Y

Passaggio 13: installare l'API HTTP di SONOS

Installa l'API HTTP di SONOS
Installa l'API HTTP di SONOS
Installa l'API HTTP di SONOS
Installa l'API HTTP di SONOS

La base del back-end per il nostro progetto è il pacchetto node-sonos-http-api creato da jishi. Puoi leggere tutto qui:

Lo scaricheremo da github con il seguente comando inserito nella riga di comando:

git clone

e lo installeremo con i seguenti comandi

cd node-sonos-http-api

npm install --produzione

Possiamo quindi eseguirlo con il seguente comando:

npm inizio

Una volta fatto, dovremmo verificare che funzioni.

Prima di tutto, apri il browser Internet sul nostro Raspberry Pi e vai a https://localhost:5005/. Dovrebbe aprirsi una bella interfaccia con il logo Sonos e della documentazione su come funziona l'API.

Quindi, controlliamo che funzioni dalla rete più ampia utilizzando un browser su un altro PC o Mac sulla stessa rete e navigando su https://[theIPaddressofyourPi]:5005/ e verificando se otteniamo lo stesso risultato. Dovremmo.

Ora faremo effettivamente in modo che il sistema faccia qualcosa. Usa un browser e vai a:

192.168.4.102:5005/Sala da pranzo/playpause

Dovresti sostituire l'indirizzo IP sopra con l'indirizzo del tuo Raspberry Pi e "Sala da pranzo" con uno dei nomi delle tue zone Sonos. Dovrebbe riprodurre o mettere in pausa (a seconda che la musica sia già in riproduzione o meno) la musica in quella stanza. Ovviamente qualcosa deve essere nella coda di Sonos affinché funzioni.

Andando avanti, utilizzerò l'indirizzo IP sopra e Dining Room come esempi in questo tutorial. Ovviamente dovresti sostituirli con il tuo indirizzo IP e il nome della tua zona di volta in volta.

Passaggio 14: eseguire costantemente l'API HTTP di Sonos

Fai in modo che l'API HTTP di Sonos funzioni costantemente
Fai in modo che l'API HTTP di Sonos funzioni costantemente

È fantastico che l'API HTTP di Sonos sia in esecuzione, ma cosa succede se si blocca? O perdi potenza o devi riavviare il tuo Raspberry Pi?

Puoi vedere l'effetto chiudendo la finestra del terminale e riprovando quello che abbiamo appena provato. Non funzionerà perché l'API HTTP è stata interrotta insieme alla finestra del terminale.

In realtà vogliamo che questo funzioni costantemente e lo faccia ogni volta dall'avvio. Lo facciamo con una cosa interessante chiamata PM2.

In una nuova finestra di terminale, installalo ed eseguilo come segue:

sudo npm install -g pm2

stato pm2

Ora facciamo eseguire la nostra API HTTP Sonos:

cd node-sonos-http-api

pm2 start npm -- avvia pm2 avvio systemd

Quest'ultimo comando genera qualcosa che assomiglia un po' a:

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

Copia ciò che genera il tuo Pi (non il testo esatto sopra - il tuo potrebbe essere diverso) e inseriscilo nella riga di comando. Questo indica al sistema di eseguire ogni volta PM2 all'avvio.

Infine, inserisci:

pm2 salva

che salva tutto.

Ora verifica se ha funzionato riavviando il tuo Raspberry Pi con il comando

sudo reboot

Si spera che una volta riavviato il Pi, avvii anche PM2 e, a sua volta, l'API HTTP Sonos. Puoi verificarlo navigando utilizzando un browser sulla stessa rete fino all'indirizzo utilizzato in precedenza e visualizzando il logo Sonos e le istruzioni:

192.168.4.102:5005/

è quello che fa per me, ma il tuo dipenderà dall'indirizzo IP.

Passaggio 15: riproduci un po' di Spotify

Verifichiamo che il servizio possa accedere a Spotify.

Apri un browser e vai al seguente indirizzo (ovviamente sostituendolo con il tuo indirizzo IP e il nome della stanza):

192.168.4.102:5005/Sala da pranzo/spotify/now/spotify/spotify:album:2dfTV7CktUEBkZCHiB7VQB

Dovresti sentire un po' di John Grant. Godere.

Passaggio 16: trova gli URI di Spotify

Trova URI Spotify
Trova URI Spotify

Strano, lo so, ma non a tutti piace John Grant. Forse vuoi ascoltare qualcos'altro?

Puoi ottenere i collegamenti Spotify dalle app desktop, web o mobili, ma il desktop è di gran lunga il più semplice in quanto fornisce l'URI esattamente nel formato che desideri, quindi inizia con quello.

Nell'app desktop Spotify accedi all'album che desideri ascoltare (forse Lemonade di Beyonce?)

Fare clic sui tre puntini accanto al pulsante del cuore.

Scendi nel menu su Condividi e scegli Copia URI Spotify

Questo copierà qualcosa come

spotify:album:7dK54iZuOxXFarGhXwEXfF

negli appunti, che è l'URI Spotify per l'album Lemondade di Beyonce.

Riavvia il browser e vai al seguente indirizzo (ovviamente sostituendo l'indirizzo IP e la stanza e incollando l'URI appena copiato):

192.168.4.102:5005/Sala da pranzo/spotify/now/[Spotify URI che vuoi riprodurre]

Dovresti sentire suonare la tua scelta.

Se preferisci utilizzare l'app Web, ti verrà fornito un collegamento Web (qualcosa come il seguente):

open.spotify.com/album/7dK54iZuOxXFarGhXwEXfF

devi convertirlo nel formato spotify:album:code sopra per farlo funzionare.

Passaggio 17: una nota sugli URI di Spotify

Gli URI di Spotify e il modo in cui si interfacciano con node-sonos-http-api sono intuitivi, per la maggior parte.

Puoi collegarti direttamente ad album, brani e playlist.

L'URI di un album ha il seguente aspetto:

spotify:album:6agCM9GJcebduMddgFmgsO

Un URI di traccia ha il seguente aspetto:

spotify:track:4fNDKbaeEjk2P4GrRE1UbW

Le playlist funzionano in modo leggermente diverso. Quando copi l'URI da Spotify, sarà simile a:

spotify:playlist:5huIma0YU4iusLcT2reVEU

Tuttavia, per farlo funzionare effettivamente sull'API è necessario aggiungere spotify:user: all'inizio di quanto sopra. Questo vale anche per le playlist pubbliche e, sì, significa che stai dicendo Spotify due volte.

Per essere molto chiari, user non ha bisogno di essere il nome di un particolare utente, solo l'utente di testo. Quindi l'URI corretto per la playlist sopra per farlo funzionare sarebbe:

spotify:utente:spotify:playlist:5huIma0YU4iusLcT2reVEU

Passaggio 18: configurare Raspberry Pi per inviare richieste

Configura Raspberry Pi per inviare richieste HTTP
Configura Raspberry Pi per inviare richieste HTTP

Piuttosto che digitare manualmente le richieste HTTP in un browser Web, vogliamo automatizzarlo in modo che il Raspberry Pi lo faccia da solo quando viene presentato con un determinato stimolo (il lettore NFC viene attivato).

Useremo una libreria chiamata request per consentire al nostro Raspberry Pi di farlo. Controlliamo che sia installato.

Apri il terminale sul tuo Pi e digita quanto segue:

sudo pip install richieste

È probabile che ritorni e dica che è già installato, nel qual caso ottimo. In caso contrario, lo installerà.

Passaggio 19: generare tag NFCC con dati Spotify

Genera tag NFCC con dati Spotify
Genera tag NFCC con dati Spotify
Genera tag NFCC con dati Spotify
Genera tag NFCC con dati Spotify
Genera tag NFCC con dati Spotify
Genera tag NFCC con dati Spotify
Genera tag NFCC con dati Spotify
Genera tag NFCC con dati Spotify

Ora vogliamo scrivere un URI dell'album Spotify su un tag NFC. Ognuno di questi tag è ciò che utilizzerai per dire al Raspberry Pi di riprodurre un determinato album.

Puoi scrivere su un tag NFC utilizzando un telefono Android, ma trovo che sia più semplice farlo tramite un Mac o un PC in quanto è più semplice ottenere gli URI di Spotify dall'app desktop Spotify.

Collega il tuo lettore NFC USB al tuo PC o Mac. Sto usando l'ACR122U di American Card Systems.

Scarica gli strumenti NFC sul tuo PC o Mac. Installalo e aprilo.

A volte può essere un po' lento connettersi al lettore e potrebbe dire che non riesce a trovare il lettore. Vai alla scheda Altro negli strumenti NFC e fai clic ogni tanto sul pulsante Lettore NFC connesso. Potrebbe essere necessario scollegare e ricollegare il lettore alcune volte prima che lo trovi.

Alla fine ti darà la possibilità di scegliere il tuo lettore da un elenco e dire che è connesso. Vai alla scheda Informazioni che non mostrerà nulla tranne "In attesa di un tag NFC".

Prendi un tag NFC vuoto. Mettilo sul lettore e lascialo lì. NFC Tools visualizzerà le informazioni sul tag.

Vai alla scheda Scrivi e fai clic su Aggiungi un record > Testo. (Fai attenzione a non scegliere URL o URI: so che è allettante perché stai copiando un URI, ma vuoi del testo)

Prendi un URI da Spotify usando il metodo che abbiamo usato in precedenza. Se vuoi un esempio facile, quello che segue è il nostro album di John Grant di prima.

spotify:album:2dfTV7CktUEBkZCHiB7VQB

Fare clic su OK e quindi fare clic su Scrivi (non dimenticare questo ultimo passaggio: in realtà non lo scrive finché non si fa clic su questo). Ti dirà che il tag è stato scritto correttamente.

Togli il tag dal lettore

Passaggio 20: configurare il lettore NFC sul Raspberry Pi

Configura il lettore NFC sul Raspberry Pi
Configura il lettore NFC sul Raspberry Pi

Collega il tuo lettore NFC a una delle porte USB del tuo Raspberry Pi.

Useremo la libreria Python nfcpy per comunicare con il lettore NFC. Installalo digitando quanto segue sulla riga di comando di Pi:

pip install -U nfcpy

Possiamo quindi verificare se questa libreria è in grado di vedere il nostro lettore NFC digitando quanto segue:

python -m nfc

Se ha funzionato, vedrai quanto segue:

Questa è la versione 1.0.3 di nfcpy eseguita in Python 2.7.16 su Linux-4.19.97-v7+-armv7l-with-debian-10.3

Ora sto cercando nel tuo sistema dispositivi contactless ** ho trovato ACS ACR122U PN532v1.6 su usb:001:011 Non sto provando dispositivi seriali perché non me l'hai detto -- aggiungi l'opzione '--search-tty' per farmi guardare, ma attenzione che questo potrebbe danneggiare altri sviluppatori seriali

Tuttavia ci sono buone probabilità che tu riceva un messaggio di errore che dice che il lettore è stato trovato ma il tuo utente (pi) non ha il permesso di accedervi. Se ricevi questo messaggio di errore, ti spiegherà anche come risolvere il problema, ovvero digitando due comandi che assomigliano un po' ai seguenti:

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 ed esegui entrambi i comandi che ti dà (non esattamente quello sopra, poiché il tuo potrebbe essere diverso), quindi scollega e ricollega il lettore NFC dalla porta USB.

Riprova il comando check:

python -m nfc

Questa volta dovrebbe dire che l'ha trovato senza messaggi di errore.

Passaggio 21: installare gli script Python di Vinylemulator

Ora abbiamo tutti gli elementi costitutivi a posto:

  • Il nostro Raspberry Pi è in grado di ascoltare l'input NFC
  • Il nostro Raspberry Pi è in grado di dire a Sonos di riprodurre le playlist di Spotify quando viene fornito un URI di Spotify
  • Abbiamo un tag NFC con un URI Spotify memorizzato su di esso

Ora dobbiamo trasformare tutti questi elementi costitutivi in qualcosa di utile. Questo viene fatto attraverso un breve script Python che ho scritto (con molto aiuto dai precedenti progetti NFC/Spotify/Sonos) che si chiama vinilemulator.

Puoi visualizzare il codice sorgente per i file su github:

Per installarlo sul nostro Raspberry Pi dobbiamo clonarlo da github con il seguente comando:

git clone

Passo 22: Personalizza Vinylemulator

Personalizza l'emulatore di vinile
Personalizza l'emulatore di vinile
Personalizza l'emulatore di vinile
Personalizza l'emulatore di vinile

Apri il file manager Raspberry Pi e vai a home> pi> vinilemulator

Apri il file usersettings.py

Una delle righe in questo file leggerà:

sonosroom="Sala da pranzo"

Cambia "Sala da pranzo" con il nome della stanza Sonos che desideri controllare.

C'è anche un'impostazione in questo file che consente di personalizzare l'indirizzo IP di sonos-http-api. Dovresti essere in grado di lasciare questo invariato come "localhost", il che significa semplicemente che utilizzerà il Raspberry Pi su cui è in esecuzione.

Salva il file e chiudilo.

Passaggio 23: prova Vinylemulator

Prova Vinylemulatore
Prova Vinylemulatore
Prova Vinylemulatore
Prova Vinylemulatore

Vai al prompt dei comandi di Raspberry Pi.

Immettere il seguente comando:

python vinilemulator/readnfc.py

Se tutto va bene, questo caricherà lo script e dirà che il lettore è pronto. La spia sul lettore dovrebbe diventare verde.

Metti il tag NFC sul lettore, che emetterà un segnale acustico.

Il terminale mostrerà ciò che ha letto dal tag NFC e mostrerà l'indirizzo della richiesta HTTP che ha inviato. Il tuo album preferito dovrebbe essere riprodotto dagli altoparlanti Sonos.

Questo script continuerà a funzionare finché non chiudi la finestra del terminale. Puoi toccare diversi tag NFC dell'album e passerà a quell'album.

Passaggio 24: fai in modo che Vinylemulator venga eseguito costantemente e all'avvio

Proprio come sonos-http-api, vogliamo che l'emulatore di vinile funzioni tutto il tempo anziché solo quando lo chiamiamo. Possiamo usare pm2 per farlo di nuovo.

Per prima cosa chiudi tutte le istanze di vinilemulator che stai eseguendo chiudendo le loro finestre di terminale.

Quindi apri una nuova finestra di terminale e digita i seguenti due comandi:

pm2 avvia vinilemulator/readnfc.py

pm2 salva

Controlliamo se ha funzionato riavviando il Raspberry Pi. (Puoi digitare sudo reboot o farlo dal menu Raspberry con il mouse.

Attendi che il Pi si riavvii e verifica che funzioni toccando un tag NFC sul lettore. Dovresti prendere della musica.

Passaggio 25: congratularsi con te stesso

Adesso è tutto funzionante. Puoi spostare il Raspberry Pi ovunque tu abbia intenzione di posizionarlo. Si riavvierà e funzionerà nel modo in cui l'hai impostato ogni volta che lo colleghi.

I tuoi prossimi compiti sono quelli divertenti: rendere tutto bello.

Passaggio 26: rendilo bello - Nascondi il tuo lettore

Rendilo bello - Nascondi il tuo lettore
Rendilo bello - Nascondi il tuo lettore
Rendilo bello - Nascondi il tuo lettore
Rendilo bello - Nascondi il tuo lettore
Rendilo bello - Nascondi il tuo lettore
Rendilo bello - Nascondi il tuo lettore
Rendilo bello - Nascondi il tuo lettore
Rendilo bello - Nascondi il tuo lettore

La prima parte per renderlo bello è nascondere da qualche parte il brutto lettore NFC di plastica bianca.

Sono andato con un'opzione decisamente low-tech di attaccarlo alla parte inferiore di un contatore accanto al mio Sonos Play:5. Il legno del bancone è abbastanza sottile da poter passare attraverso l'NFC, quindi suono la musica toccando un tag NFC in un punto magico e invisibile.

Consigliato: