Tabla de contenido:

Emulador de vinilo Sonos Spotify: 26 pasos
Emulador de vinilo Sonos Spotify: 26 pasos

Video: Emulador de vinilo Sonos Spotify: 26 pasos

Video: Emulador de vinilo Sonos Spotify: 26 pasos
Video: CUAL ES EL HOMBRE QUE INTRODUCE SU INSTRUMENTO? 🤨🤨 #staryuuki #staryuukiii 2024, Mes de julio
Anonim
Image
Image
Emulador de vinilo Sonos Spotify
Emulador de vinilo Sonos Spotify

Tenga en cuenta que este no es el último conjunto de instrucciones para este proyecto:

Visite https://www.hackster.io/mark-hank/sonos-spotify-vinyl-emulator-3be63d para obtener el último conjunto de instrucciones y asistencia

Escuchar música en vinilo es genial. Es físico y táctil. Escuchas un álbum completo en lugar de pistas aleatorias. Te das cuenta cuando se acaba y conscientemente eliges otra cosa. Puede crear una colección y navegar a través de ella en lugar de tener que buscar exactamente lo que desea.

También es caro y voluminoso, especialmente si se tiene en cuenta que es muy probable que el dinero que gaste en vinilo sea un duplicado de la música a la que ya tiene acceso a través de un servicio de transmisión al que se suscribe.

Este proyecto intenta replicar los aspectos táctiles y de construcción de colecciones del vinilo mientras confía en Spotify para entregar la música. Al colocar un objeto físico en un lector NFC conectado a una Raspberry Pi (ambos pueden ocultarse), se iniciará la reproducción del álbum asociado con esa etiqueta.

Lo guiaré a través de todos los pasos, desde la configuración de la Raspberry Pi hasta la codificación de las etiquetas NFC. Este es mi primer proyecto Raspberry Pi y mi primer código Python, así que aprendí ambos mientras desarrollaba esto. Como tal, estas instrucciones asumen literalmente cero conocimientos previos y le explican cada paso.

El costo total de los componentes esenciales para construirlo es de aproximadamente 50 a 60 libras esterlinas.

¡Me encantaría ver lo que construyes!

Paso 1: Suministros requeridos 1: Raspberry Pi

El back-end que interactúa con su red, Sonos y Spotify será ejecutado por una Raspberry Pi. En realidad, es muy poco lo que necesita para que esto funcione.

Esencial:

Raspberry Pi: utilicé una Raspberry Pi 3 Modelo B + pero también funcionará con una Raspberry Pi 3 Modelo A + (£ 23)

Fuente de alimentación USB: tenía uno por ahí; hay uno oficial disponible si no lo hace (£ 9)

Tarjeta Micro SD: obtuve una de 32 GB, que es suficiente para esta aplicación, en Amazon (£ 6)

Algunos equipos de Sonos se están ejecutando en tu red (supongo que ya lo tienes si estás aquí …)

Una cuenta Premium de Spotify

Recomendado:

Un caso para el Pi: hay muchas opciones, desde £ 5

Una botella de California Zinfandel decente: recomiendo Ridge, pero hay otras disponibles

Paso 2: Suministros necesarios 2: Lector NFC

Suministros necesarios 2: Lector NFC
Suministros necesarios 2: Lector NFC
Suministros necesarios 2: Lector NFC
Suministros necesarios 2: Lector NFC

Estas instrucciones están diseñadas para un lector NFC ACR122U que se conecta a través de USB.

ACR122U

Compré este en Amazon por £ 38 (principalmente porque tenía una entrega principal) pero hay opciones más baratas para comprar este mismo lector.

Confusamente, el ACR122U parece venderse bajo un montón de nombres de marcas diferentes (el mío tenía el nombre de marca que dista mucho de ser tranquilizador "Yosoo") pero por lo que puedo decir son todos iguales y construidos por American Card Systems.

Lo más barato que he encontrado que el ACR122U anunciado es £ 21, incluido el envío, pero viene directamente de China, por lo que es posible que deba esperar un poco para eso.

Otras opciones

Este proyecto se basa en una biblioteca de Python llamada nfcpy que mantiene una lista de dispositivos compatibles aquí:

En teoría, este proyecto debería funcionar con cualquiera de los de esa lista con poca integración.

Una opción tentadora es Adafruit PN532, que es una placa que debe conectarse directamente a su Raspberry Pi mediante cables de puente. Lo probé y me pareció un verdadero faff. Requiere soldadura, por ejemplo.

Una ventaja es, superficialmente, que es más pequeña, pero en realidad la placa tiene aproximadamente el mismo tamaño que las entrañas del ACR122U. Si realmente está presionado por espacio para su aplicación, puede quitar el plástico del ACR122U y simplemente usar la placa.

Paso 3: Suministros necesarios 3: Etiquetas NFC

Suministros necesarios 3: etiquetas NFC
Suministros necesarios 3: etiquetas NFC

Para cada álbum que desee crear, necesitará una etiqueta NFC que cumpla con el estándar NTAG213.

Hay muchos lugares para comprarlos.

Compré mi primer lote en Amazon, donde obtuve un paquete de 10 por £ 9 (incluida la entrega Prime)

El mejor suministrado que he encontrado aquí en el Reino Unido es Seritag: tienen una selección realmente amplia de estilos diferentes, excelentes consejos en su sitio web, usted sabe exactamente lo que está obteniendo (no siempre es cierto en Amazon). No tienen un tamaño mínimo de pedido y un montón de opciones. Las etiquetas comienzan en 27p por etiqueta

Paso 4: descargue el sistema operativo Raspberry Pi en una tarjeta SD

Descargue el sistema operativo Raspberry Pi en una tarjeta SD
Descargue el sistema operativo Raspberry Pi en una tarjeta SD
Descargue el sistema operativo Raspberry Pi en una tarjeta SD
Descargue el sistema operativo Raspberry Pi en una tarjeta SD

En su PC o Mac, descargue y ejecute la aplicación de creación de imágenes Raspberry PI.

Inserte la tarjeta SD en la que desea instalar el sistema operativo Raspberry Pi.

Haga clic en ELEGIR SO y seleccione el Rasbian predeterminado.

Haga clic en ELEGIR TARJETA SD y seleccione la tarjeta SD que ha conectado.

Haga clic en ESCRIBIR. Esto puede tardar un rato.

Una vez hecho esto, le indicará que retire la tarjeta SD, lo que debe hacer. Pero luego vuelva a enchufarlo, ya que hay algunos puntos de limpieza que debe hacer primero.

Paso 5: habilite SSH en la imagen del sistema operativo Raspberry Pi

Habilite SSH en la imagen de su sistema operativo Raspberry Pi
Habilite SSH en la imagen de su sistema operativo Raspberry Pi

Una vez que el sistema operativo se ha escrito en la tarjeta SD, hay algunas tareas adicionales que debe realizar.

Queremos acceder a la Raspberry Pi sin enchufar un teclado o monitor (también conocido como "sin cabeza"), lo que podemos hacer a través de nuestra red local usando nuestra PC o Mac a través de un protocolo llamado SSH. Sin embargo, por razones de seguridad, SSH está deshabilitado de forma predeterminada. Necesitamos habilitarlo.

Podemos hacer esto creando un archivo vacío llamado:

ssh

en la tarjeta SD que acabamos de crear. Es importante que no tenga ningún tipo de extensión (por ejemplo,.txt). El archivo en sí no necesita contener ningún contenido, solo su existencia habilitará SSH cuando se inicie el Pi.

Paso 6: Opcional: Configure Wifi en su Raspberry Pi

Opcional: Configure Wifi en su Raspberry Pi
Opcional: Configure Wifi en su Raspberry Pi
Opcional: Configure Wifi en su Raspberry Pi
Opcional: Configure Wifi en su Raspberry Pi

Puede omitir este paso si planea conectar su Raspberry Pi a su enrutador por Ethernet. (Aunque es posible que desee pensar mucho acerca de esa decisión, tenerla a través de wifi hace la vida mucho más fácil en términos de posicionar esto)

Cree un archivo de texto sin formato llamado wpa_supplicant.conf en el directorio raíz de la tarjeta SD.

Inserte el siguiente texto en el archivo:

país = gb

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

Cambie el país según corresponda (GB es el Reino Unido, EE. UU. Es EE. UU., DE es Alemania, etc.)

Cambie las credenciales de wifi allí para que sean los detalles de su enrutador wifi real.

Guarda el archivo.

Expulse de forma segura la tarjeta SD.

Paso 7: Enciende tu Raspberry Pi

Enciende tu Raspberry Pi
Enciende tu Raspberry Pi

Coloque la tarjeta SD que acaba de crear en su Raspberry Pi.

Conecte su Raspberry Pi a la alimentación a través del cable USB. Espere un minuto a que se inicie.

Paso 8: busque la dirección IP de su Raspberry Pi

Ahora necesita encontrar la dirección IP de la Raspberry Pi para poder conectarse a ella. Puede hacer esto de dos maneras:

  • a través de la página de configuración de su enrutador: si tiene un enrutador moderno como eero, entonces esto es muy fácil;
  • oa través de una aplicación de teléfono inteligente disponible para iOS y Android llamada "fing" - descárguela, conéctese a su enrutador y busque dispositivos - uno de ellos debería llamarse "Raspberry" - esta será la dirección IP que necesita.

Paso 9: conéctese a la línea de comandos de su Raspberry Pi

Conéctese a la línea de comandos de su Raspberry Pi
Conéctese a la línea de comandos de su Raspberry Pi

Abra Terminal en su mac (o si está usando Windows, descargue y use Putty).

Ingrese el siguiente comando:

ssh pi @ [la dirección IP de su Pi]

Acepte las advertencias de seguridad que reciba. Se le pedirá la contraseña para el usuario pi predeterminado que es

frambuesa

Paso 10: Configure la GUI del sistema operativo Raspberry Pi

Configurar la interfaz gráfica de usuario de Raspberry Pi OS
Configurar la interfaz gráfica de usuario de Raspberry Pi OS
Configurar la interfaz gráfica de usuario de Raspberry Pi OS
Configurar la interfaz gráfica de usuario de Raspberry Pi OS

Ahora está conectado a su Pi a través de la línea de comandos, lo cual es genial, pero también desea configurarlo para poder acceder a la Interfaz gráfica de usuario a la que accederemos a través de VNC (Computación de red virtual). Como era de esperar, también necesitamos habilitar esto.

En primer lugar, verifique que su software Pi esté actualizado ingresando los siguientes dos comandos (cada uno seguido de enter) en la línea de comando:

actualización de sudo apt

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

A continuación, abra el menú de configuración de Raspberry Pi ingresando:

sudo raspi-config

Vaya a Opciones de interfaz> VNC> Sí.

Salga de la aplicación de configuración presionando la tecla de escape y reinicie el Pi desde la línea de comando escribiendo:

sudo reiniciar

Paso 11: Conéctese y configure la GUI de su Raspberry Pi

Conéctese y configure su interfaz gráfica de usuario de Raspberry Pi
Conéctese y configure su interfaz gráfica de usuario de Raspberry Pi
Conéctese y configure su interfaz gráfica de usuario de Raspberry Pi
Conéctese y configure su interfaz gráfica de usuario de Raspberry Pi

Descargue y abra VNC Viewer.

Escriba la dirección IP de su Raspberry Pi y presione conectar. Le pedirá el nombre de usuario y la contraseña, que son:

Nombre de usuario = pi

Contraseña = frambuesa

Esto debería iniciarte en la GUI.

Le pedirá que confirme su geografía y la distribución del teclado.

Luego le pedirá que cambie su contraseña (buena idea).

Le pedirá que configure los detalles de su wifi, pero puede omitir esto porque ya están funcionando. (Aunque si está usando ethernet y lo está pensando, ahora es su oportunidad … pero tenga en cuenta que su dirección IP puede cambiar)

Luego buscará, descargará e instalará actualizaciones (puede que tarde un poco).

Una vez que haya completado el asistente de configuración, recomendaría cambiar la resolución de la pantalla, ya que la predeterminada es bastante pequeña. Puede hacer esto haciendo clic en Raspberry en la parte superior izquierda> Preferencias> Configuración de Raspberry Pi> Pantalla> Establecer resolución

Deberá reiniciar la Pi una vez más para que esto surta efecto.

Paso 12: Instale Node.js y NPM

Instalar Node.js y NPM
Instalar Node.js y NPM

A continuación, desea cargar la línea de comandos de Raspberry Pi para instalar las dependencias que necesitamos.

Puede hacer esto conectándose a través de VNC y haciendo clic en el botón cerca de la parte superior que parece una línea de comando; o puede conectarse directamente desde su Mac / PC usando Terminal y Putty como lo hicimos anteriormente. Si está menos acostumbrado a trabajar con Raspberry Pi, entonces es más fácil hacer lo primero.

(Sugerencia: puede copiar texto de su Mac / PC y pegarlo en la Raspberry Pi a través de VNC presionando CONTROL-V, pero si está intentando pegarlo en la Terminal, debe presionar CONTROL-SHIFT-V)

El primer trabajo es comprobar de nuevo que el software está actualizado escribiendo los dos comandos siguientes. Es posible que tarden un poco en descargarse e instalarse.

sudo apt-get update

sudo apt-get upgrade

A continuación, desea descargar e instalar node.js y NPM (no se preocupe demasiado por lo que son, son útiles y necesarios para nuestras próximas tareas) escribiendo lo siguiente:

sudo apt-get install nodejs npm

Le preguntará un par de veces si está feliz de ocupar espacio en el disco con estos, así que presione Y

Paso 13: Instale la API HTTP de SONOS

Instale la API HTTP de SONOS
Instale la API HTTP de SONOS
Instale la API HTTP de SONOS
Instale la API HTTP de SONOS

La base del back-end de nuestro proyecto es el paquete node-sonos-http-api creado por jishi. Puede leerlo todo aquí:

Descargaremos esto de github con el siguiente comando ingresado en la línea de comando:

clon de git

y lo instalaremos con los siguientes comandos

cd nodo-sonos-http-api

npm install --producción

Luego podemos ejecutarlo con el siguiente comando:

inicio npm

Una vez hecho esto, deberíamos probar que está funcionando.

En primer lugar, abra el navegador de Internet en nuestra Raspberry Pi y navegue hasta https:// localhost: 5005 /. Debería abrirse una interfaz agradable con el logotipo de Sonos y algo de documentación sobre cómo funciona la API.

A continuación, verifiquemos que esto está funcionando desde la red más amplia usando un navegador en otra PC o Mac en la misma red y navegando a https:// [theIPaddressofyourPi]: 5005 / y viendo si obtenemos el mismo resultado. Deberíamos.

Ahora haremos que el sistema haga algo. Utilice un navegador y navegue hasta:

192.168.4.102:5005/Dining Room / playpause

Debe reemplazar la dirección IP anterior con la dirección de su Raspberry Pi y "Comedor" con uno de los nombres de sus zonas de Sonos. Debería reproducir o pausar (dependiendo de si ya se está reproduciendo música o no) la música de esa habitación. Obviamente, es necesario que haya algo en la cola de Sonos para que funcione.

En el futuro, usaré la dirección IP y el comedor anteriores como ejemplos a lo largo de este tutorial. Obviamente debes reemplazarlos con tu dirección IP y el nombre de tu zona en cada ocasión.

Paso 14: hacer que la API HTTP de Sonos se ejecute constantemente

Hacer que la API HTTP de Sonos se ejecute constantemente
Hacer que la API HTTP de Sonos se ejecute constantemente

Es genial que tengamos la API HTTP de Sonos en ejecución, pero ¿y si falla? ¿O pierde energía o necesita reiniciar su Raspberry Pi?

Puede ver el efecto cerrando la ventana de la terminal y volviendo a intentar lo que acabamos de probar. No funcionará porque la API HTTP se ha detenido junto con la ventana del terminal.

De hecho, queremos que esto se ejecute constantemente y que lo haga desde el inicio cada vez. Hacemos esto con una cosa genial llamada PM2.

En una nueva ventana de terminal, instálelo y ejecútelo de la siguiente manera:

sudo npm install -g pm2

estado de pm2

Ahora hagamos que ejecute nuestra API HTTP de Sonos:

cd nodo-sonos-http-api

pm2 start npm - iniciar pm2 startup systemd

Este último comando genera algo que se parece un poco a:

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

Copie lo que genera su Pi (no el texto exacto de arriba, el suyo puede ser diferente) e ingréselo en la línea de comando. Esto indica al sistema que ejecute PM2 al arrancar cada vez.

Finalmente, ingrese:

pm2 guardar

que salva todo.

Ahora pruebe si esto ha funcionado reiniciando su Raspberry Pi con el comando

sudo reiniciar

Con suerte, una vez que el Pi se reinicie, también iniciará PM2 y, a su vez, la API HTTP de Sonos. Puede verificar esto navegando usando un navegador en la misma red a la dirección que usamos antes y ver el logotipo de Sonos y las instrucciones:

192.168.4.102:5005/

es lo que es para mí, pero el tuyo dependerá de la dirección IP.

Paso 15: reproduce Spotify

Comprobemos que el servicio puede acceder a Spotify.

Abra un navegador y navegue hasta la siguiente dirección (obviamente reemplazándola con su dirección IP y el nombre de la habitación):

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

Deberías escuchar algo de John Grant. Disfrutar.

Paso 16: Encuentra los URI de Spotify

Encuentra URI de Spotify
Encuentra URI de Spotify

Extraño, lo sé, pero no a todo el mundo le gusta John Grant. ¿Quizás quieras escuchar algo más?

Puede obtener los enlaces de Spotify desde el escritorio, la web o las aplicaciones móviles, pero el escritorio es, con mucho, el más fácil, ya que entrega el URI exactamente en el formato que desea, así que comience con eso.

En la aplicación de escritorio de Spotify, navegue hasta el álbum que desea escuchar (¿tal vez Lemonade de Beyonce?)

Haga clic en los tres pequeños puntos junto al botón del corazón.

Vaya al menú para Compartir y elija Copiar URI de Spotify

Esto copiará algo como

spotify: álbum: 7dK54iZuOxXFarGhXwEXfF

a su portapapeles, que es el URI de Spotify para el álbum Lemondade de Beyonce.

Encienda su navegador nuevamente y navegue a la siguiente dirección (obviamente reemplazando la dirección IP y la habitación y pegando el URI que acaba de copiar):

192.168.4.102:5005/Dining Room / spotify / now / [URI de Spotify que quieres jugar]

Debería escuchar la reproducción de su elección.

Si prefiere usar la aplicación web, le dará un enlace web (algo como el siguiente):

open.spotify.com/album/7dK54iZuOxXFarGhXwEXfF

necesitas convertir esto al formato spotify: album: code de arriba para que funcione.

Paso 17: una nota sobre los URI de Spotify

Los URI de Spotify y la forma en que interactúan con el nodo-sonos-http-api son intuitivos, en su mayor parte.

Puede vincular directamente a álbumes, pistas y listas de reproducción.

Un URI de álbum se ve así:

spotify: album: 6agCM9GJcebduMddgFmgsO

Un URI de pista se ve así:

spotify: pista: 4fNDKbaeEjk2P4GrRE1UbW

Las listas de reproducción funcionan de forma un poco diferente. Cuando copie el URI de Spotify, se verá así:

Spotify: lista de reproducción: 5huIma0YU4iusLcT2reVEU

Sin embargo, para que funcione realmente en la API, debe agregar spotify: user: al comienzo de lo anterior. Esto se aplica incluso a las listas de reproducción públicas y, sí, significa que estás diciendo Spotify dos veces.

Para ser muy claro, el usuario no necesita ser un nombre de usuario en particular, solo el usuario de texto. Entonces, el URI correcto para la lista de reproducción anterior para que funcione sería:

spotify: usuario: spotify: lista de reproducción: 5huIma0YU4iusLcT2reVEU

Paso 18: Configure Raspberry Pi para enviar solicitudes

Configurar Raspberry Pi para enviar solicitudes HTTP
Configurar Raspberry Pi para enviar solicitudes HTTP

En lugar de escribir manualmente solicitudes HTTP en un navegador web, queremos automatizarlo para que Raspberry Pi lo haga por sí mismo cuando se le presente cierto estímulo (el lector NFC se activa).

Usaremos una biblioteca llamada solicitudes para permitir que nuestra Raspberry Pi haga esto. Comprobemos que esté instalado.

Abra la terminal de su Pi y escriba lo siguiente:

solicitudes de instalación de sudo pip

Es probable que vuelva y diga que ya está instalado, en cuyo caso genial. Si no, lo instalará.

Paso 19: Genere etiquetas NFCC con datos de Spotify

Genere etiquetas NFCC con datos de Spotify
Genere etiquetas NFCC con datos de Spotify
Genere etiquetas NFCC con datos de Spotify
Genere etiquetas NFCC con datos de Spotify
Genere etiquetas NFCC con datos de Spotify
Genere etiquetas NFCC con datos de Spotify
Genere etiquetas NFCC con datos de Spotify
Genere etiquetas NFCC con datos de Spotify

Ahora queremos escribir un URI de álbum de Spotify en una etiqueta NFC. Cada una de estas etiquetas es lo que usará para decirle a Raspberry Pi que reproduzca un álbum en particular.

Puede escribir en una etiqueta NFC usando un teléfono Android, pero me resulta más fácil hacerlo a través de una Mac o PC, ya que luego puede obtener la forma más fácil de obtener los URI de Spotify desde la aplicación de escritorio de Spotify.

Conecte su lector USB NFC a su PC o Mac. Estoy usando el ACR122U de American Card Systems.

Descargue NFC Tools a su PC o Mac. Instálalo y ábrelo.

A veces puede ser un poco lento conectarse con el lector y puede decir que no puede encontrar al lector en absoluto. Vaya a la pestaña Otros en las herramientas NFC y haga clic de vez en cuando en el botón Lector NFC conectado. Es posible que deba desconectar y volver a conectar el lector varias veces antes de que lo encuentre.

Eventualmente, le dará la opción de elegir su lector de una lista y decir que está conectado. Vaya a la pestaña Información, que no mostrará nada excepto "Esperando una etiqueta NFC".

Tome una etiqueta NFC en blanco. Ponlo en el lector y déjalo ahí. NFC Tools mostrará la información sobre la etiqueta.

Vaya a la pestaña Escribir y haga clic en Agregar un registro> Texto. (Tenga cuidado de no elegir URL o URI; sé que es tentador porque está copiando un URI, pero quiere texto)

Toma un URI de Spotify usando el método que usamos anteriormente. Si quieres un ejemplo sencillo, el siguiente es nuestro álbum de John Grant de antes.

spotify: álbum: 2dfTV7CktUEBkZCHiB7VQB

Haga clic en Aceptar y luego en Escribir (no olvide este último paso, en realidad no lo escribe hasta que haga clic en este). Le dirá que la etiqueta se ha escrito correctamente.

Quita la etiqueta del lector

Paso 20: Configure el lector NFC en la Raspberry Pi

Configurar el lector NFC en la Raspberry Pi
Configurar el lector NFC en la Raspberry Pi

Conecte su lector NFC a uno de los puertos USB de su Raspberry Pi.

Usaremos la biblioteca nfcpy Python para comunicarnos con el lector NFC. Instálelo escribiendo lo siguiente en la línea de comando de su Pi:

instalación de pip -U nfcpy

Luego, podemos verificar si esta biblioteca puede ver nuestro lector NFC escribiendo lo siguiente:

python -m nfc

Si ha funcionado, verá lo siguiente:

Esta es la versión 1.0.3 de nfcpy ejecutada en Python 2.7.16 en Linux-4.19.97-v7 + -armv7l-with-debian-10.3

Ahora estoy buscando en su sistema dispositivos sin contacto ** encontré ACS ACR122U PN532v1.6 en usb: 001: 011 No estoy probando dispositivos seriales porque no me lo ha dicho - agregue la opción '--search-tty' para que yo mire, pero tenga en cuenta que esto puede romper a otros desarrolladores en serie

Sin embargo, es muy probable que reciba un mensaje de error que indique que se ha encontrado el lector, pero su usuario (pi) no tiene permiso para acceder a él. Si recibe este mensaje de error, también le explicará cómo solucionar el problema, que es escribiendo dos comandos que se parecen un poco a lo siguiente:

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

Copie y ejecute los dos comandos que le da (no exactamente lo que está arriba, ya que el suyo puede ser diferente), luego desconecte y vuelva a conectar su lector NFC del puerto USB.

Intente el comando de verificación nuevamente:

python -m nfc

Esta vez debería decir que lo encontró sin mensajes de error.

Paso 21: Instale los scripts de Vinylemulator Python

Ahora tenemos todos los componentes básicos en su lugar:

  • Nuestra Raspberry Pi puede escuchar la entrada NFC
  • Nuestra Raspberry Pi puede decirle a Sonos que reproduzca listas de reproducción de Spotify cuando se le da un URI de Spotify
  • Tenemos una etiqueta NFC con un URI de Spotify almacenado en ella

Ahora tenemos que convertir todos estos bloques de construcción en algo útil. Esto se hace a través de un breve script de Python que escribí (con mucha ayuda de proyectos anteriores de NFC / Spotify / Sonos) que se llama vinylemulator.

Puede ver el código fuente de los archivos en github:

Para instalar esto en nuestra Raspberry Pi necesitamos clonarlo desde github con el siguiente comando:

clon de git

Paso 22: Personaliza Vinylemulator

Personalizar Vinylemulator
Personalizar Vinylemulator
Personalizar Vinylemulator
Personalizar Vinylemulator

Abra el administrador de archivos de Raspberry Pi y vaya a inicio> pi> vinylemulator

Abra el archivo usersettings.py

Una de las líneas de este archivo se leerá:

sonosroom = "Comedor"

Cambie "Comedor" para que sea el nombre de sala de Sonos que desee controlar.

También hay una configuración en este archivo que le permite personalizar la dirección IP de sonos-http-api. Debería poder dejar esto sin cambios como "localhost", lo que significa que usará la Raspberry Pi en la que se está ejecutando.

Guarde el archivo y ciérrelo.

Paso 23: prueba Vinylemulator

Prueba Vinylemulator
Prueba Vinylemulator
Prueba Vinylemulator
Prueba Vinylemulator

Vaya al símbolo del sistema de su Raspberry Pi.

Ingrese el siguiente comando:

Python vinylemulator / readnfc.py

Si todo va bien, se cargará el guión y se indicará que el lector está listo. La luz del lector debe ponerse verde.

Coloque la etiqueta NFC en el lector, que emitirá un pitido.

El terminal mostrará lo que ha leído de la etiqueta NFC y mostrará la dirección de solicitud HTTP que ha enviado. El álbum que elijas debería reproducirse en los altavoces de Sonos.

Este script seguirá ejecutándose hasta que cierre la ventana de la terminal. Puede tocar diferentes etiquetas NFC de álbumes y cambiará a ese álbum.

Paso 24: haga que Vinylemulator se ejecute constantemente y al inicio

Al igual que sonos-http-api, queremos que vinylemulator se ejecute todo el tiempo en lugar de solo cuando lo llamemos. Podemos usar pm2 para hacer esto nuevamente.

Primero cierre cualquier instancia de vinylemulator que esté ejecutando cerrando sus ventanas de terminal.

Luego abra una nueva ventana de terminal y escriba los siguientes dos comandos:

pm2 inicia vinylemulator / readnfc.py

pm2 guardar

Comprobemos si ha funcionado reiniciando la Raspberry Pi. (Puede escribir sudo reboot o hacerlo desde el menú de Raspberry con el mouse.

Espere a que el Pi se inicie nuevamente y vea que funciona tocando una etiqueta NFC en el lector. Deberías conseguir música.

Paso 25: Felicítese

Ahora todo es funcional. Puede mover la Raspberry Pi a cualquier lugar donde planee colocarla. Se reiniciará y funcionará de la forma en que lo configuró cada vez que lo conecte.

Tus próximas tareas son las más divertidas: hacer que todo sea hermoso.

Paso 26: Hágalo hermoso - Oculte su lector

Hágalo hermoso - Oculte su lector
Hágalo hermoso - Oculte su lector
Hágalo hermoso - Oculte su lector
Hágalo hermoso - Oculte su lector
Hágalo hermoso - Oculte su lector
Hágalo hermoso - Oculte su lector
Hágalo hermoso - Oculte su lector
Hágalo hermoso - Oculte su lector

La primera parte para hacerlo hermoso es esconder el desagradable lector NFC de plástico blanco en algún lugar.

He optado por una opción decididamente de baja tecnología de pegarlo en la parte inferior de un mostrador junto a mi Sonos Play: 5. La madera del mostrador es lo suficientemente delgada como para que la NFC pueda atravesarla, por lo que reproduzco música tocando una etiqueta NFC en un lugar mágico e invisible.

Recomendado: