Obsah:

Emulátor vinylu Sonos Spotify: 26 kroků
Emulátor vinylu Sonos Spotify: 26 kroků

Video: Emulátor vinylu Sonos Spotify: 26 kroků

Video: Emulátor vinylu Sonos Spotify: 26 kroků
Video: nfc spotify 2024, Prosinec
Anonim
Image
Image
Vinylový emulátor Sonos Spotify
Vinylový emulátor Sonos Spotify

Upozorňujeme, že toto není nejnovější sada pokynů pro tento projekt:

Nejnovější sadu pokynů a podpory najdete na

Poslouchat hudbu na vinylu je skvělé. Je to fyzické a hmatové. Posloucháte spíše celé album než náhodné skladby. Všimnete si toho, až skončí, a vědomě si vyberete něco jiného. Můžete vytvářet kolekci a procházet ji, než abyste museli hledat přesně to, co chcete.

Je to také drahé a objemné, zvláště když uvážíte, že jakékoli peníze, které utratíte za vinyl, jsou velmi pravděpodobně duplikáty hudby, ke které již máte přístup prostřednictvím streamovací služby, kterou si předplatíte.

Tento projekt se pokouší replikovat hmatové a sbírkové aspekty vinylu a spoléhat se na to, že hudbu skutečně doručí Spotify. Umístěním fyzického předmětu na čtečku NFC připojenou k Raspberry Pi (obojí lze skrýt) se spustí přehrávání alba spojeného s touto značkou.

Provedu vás všemi kroky - od nastavení Raspberry Pi až po kódování NFC tagů. Toto je můj úplně první projekt Raspberry Pi a můj první kód v Pythonu, takže jsem se při vývoji naučil oba. Tyto pokyny jako takové předpokládají doslova nulové předchozí znalosti a provedou vás každým krokem.

Celkové náklady na základní komponenty k jeho vybudování jsou přibližně 50–60 liber.

Rád bych viděl, co stavíte!

Krok 1: Požadovaný spotřební materiál 1: Raspberry Pi

Back -end, který je propojen s vaší sítí, Sonos a Spotify, bude provozovat Raspberry Pi. Ve skutečnosti je k tomu potřeba jen velmi málo.

Nezbytný:

Raspberry Pi: Použil jsem Raspberry Pi 3 Model B+, ale bude také fungovat s Raspberry Pi 3 Model A+ (23 GBP)

Napájení USB: Měl jsem jeden ležet - je k dispozici oficiální, pokud ne (9 GBP)

Karta Micro SD: Mám 32 GB, což je pro tuto aplikaci dost, na Amazonu (6 GBP)

Některá zařízení Sonos běží ve vaší síti (hádám, že už to máte, pokud jste tady …)

Účet Spotify Premium

Doporučeno:

Případ pro Pi: existuje spousta možností, od 5 liber

Láhev slušného kalifornského Zinfandelu: Doporučuji Ridge, ale jiné jsou k dispozici

Krok 2: Požadovaný spotřební materiál 2: NFC čtečka

Požadovaný spotřební materiál 2: NFC čtečka
Požadovaný spotřební materiál 2: NFC čtečka
Požadovaný spotřební materiál 2: NFC čtečka
Požadovaný spotřební materiál 2: NFC čtečka

Tyto pokyny jsou vytvořeny pro čtečku ACR122U NFC, která se připojuje přes USB.

ACR122U

Koupil jsem tento od Amazonu za 38 liber (většinou proto, že měl prvotřídní doručení), ale existují levnější možnosti nákupu stejné čtečky.

Zdá se, že ACR122U je matně prodáván pod spoustou různých značek (ta moje spadala pod ne příliš uklidňující značku „Yosoo“), ale podle toho, co mohu říci, jsou všechny stejné a konstruovány společností American Card Systems.

Nejlevnější inzerát, který jsem inzeroval ACR122U, je 21 GBP včetně poštovného, ale ten pochází přímo z Číny, takže si na to možná budete muset chvíli počkat.

Jiné možnosti

Tento projekt se opírá o knihovnu python s názvem nfcpy, která zde udržuje seznam podporovaných zařízení:

Tento projekt by teoreticky měl fungovat s kýmkoli z těch na tomto seznamu s malou integrací.

Jednou lákavou možností je Adafruit PN532, což je deska, která by se měla připojit přímo k vašemu Raspberry Pi pomocí propojovacích kabelů. Zkusil jsem to a zjistil jsem, že je to skutečná chyba. Vyžaduje například pájení.

Jednou z jeho výhod je, že je povrchně menší, ale ve skutečnosti je deska přibližně stejně velká jako vnitřnosti ACR122U. Pokud jste opravdu tlačeni na prostor pro vaši aplikaci, můžete z ACR122U odstranit plast a použít desku.

Krok 3: Požadovaný spotřební materiál 3: NFC tagy

Požadovaný spotřební materiál 3: NFC tagy
Požadovaný spotřební materiál 3: NFC tagy

Pro každé album, které chcete vytvořit, budete potřebovat značku NFC, která splňuje standard NTAG213.

Existuje mnoho míst k nákupu těchto.

Koupil jsem svou první dávku z Amazonu, kde jsem dostal balíček 10 za 9 GBP (včetně dodávky Prime)

Nejlépe dodávaný, jaký jsem zde ve Velké Británii našel, je Seritag - mají opravdu široký výběr různých stylů, skvělé rady na svých webových stránkách, přesně víte, co dostanete (na Amazonu to vždy neplatí). Nemají žádnou minimální velikost objednávky a spoustu možností. Štítky začínají na 27 p na značku

Krok 4: Stáhněte si Raspberry Pi OS na SD kartu

Stáhněte si Raspberry Pi OS na SD kartu
Stáhněte si Raspberry Pi OS na SD kartu
Stáhněte si Raspberry Pi OS na SD kartu
Stáhněte si Raspberry Pi OS na SD kartu

Na svém PC nebo Mac si stáhněte a spusťte aplikaci Raspberry PI imager.

Vložte kartu SD, na kterou chcete nainstalovat operační systém Raspberry Pi.

Klikněte na CHOOSE OS a vyberte výchozí Rasbian.

Klikněte na VYBRAT KARTU SD a vyberte SD kartu, kterou jste zapojili.

Klikněte na ZÁPIS. Může to chvíli trvat.

Jakmile to bude hotové, řekne vám, abyste odstranili kartu SD, což byste měli udělat. Ale pak jej zapojte zpět, protože je zde několik bodů úklidu, které musíte udělat jako první.

Krok 5: Povolte SSH na obrázku vašeho Raspberry Pi OS

Povolte SSH na svém obrázku Raspberry Pi OS
Povolte SSH na svém obrázku Raspberry Pi OS

Jakmile je operační systém zapsán na kartu SD, musíte provést několik dalších úkolů.

Chceme mít přístup k Raspberry Pi bez připojení klávesnice nebo monitoru (alias „bezhlavě“), což můžeme dělat přes naši místní síť pomocí našeho PC nebo Mac přes protokol s názvem SSH. Z bezpečnostních důvodů je však SSH ve výchozím nastavení zakázáno. Musíme to povolit.

Můžeme to udělat vytvořením prázdného souboru s názvem:

ssh

na SD kartě, kterou jsme právě vytvořili. Je důležité, aby toto nemělo žádné rozšíření (např.. Txt). Samotný soubor nemusí obsahovat žádný obsah - pouze jeho existence povolí SSH při spuštění Pi.

Krok 6: Volitelné: Nastavte Wi -Fi na svém Raspberry Pi

Volitelné: Nastavte Wi -Fi na svém Raspberry Pi
Volitelné: Nastavte Wi -Fi na svém Raspberry Pi
Volitelné: Nastavte Wi -Fi na svém Raspberry Pi
Volitelné: Nastavte Wi -Fi na svém Raspberry Pi

Tento krok můžete přeskočit, pokud plánujete připojit Raspberry Pi k routeru ethernetem. (I když byste si o tom rozhodnutí možná měli pořádně promyslet - mít jej spuštěné přes wifi hodně usnadňuje život, pokud jde o jeho umístění)

V kořenovém adresáři karty SD vytvořte soubor prostého textu s názvem wpa_supplicant.conf.

Do souboru vložte následující text:

země = GB

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

Podle potřeby změňte zemi (GB je Spojené království, USA jsou USA, DE je Německo atd.)

Změňte zde přihlašovací údaje pro wifi, aby byly vaše skutečné podrobnosti o routeru wifi.

Uložte soubor.

Bezpečně vysuňte kartu SD.

Krok 7: Zapněte Raspberry Pi

Zapněte Raspberry Pi
Zapněte Raspberry Pi

Vložte kartu SD, kterou jste právě vytvořili, do svého Raspberry Pi.

Připojte svůj Raspberry Pi k napájení pomocí kabelu USB. Počkejte chvíli, než se spustí.

Krok 8: Najděte IP adresu vašeho Raspberry Pi

Nyní musíte najít IP adresu Raspberry Pi, abyste se k ní mohli připojit. Můžete to udělat dvěma způsoby:

  • prostřednictvím stránky nastavení routeru - pokud máte moderní router jako eero, je to velmi snadné;
  • nebo prostřednictvím aplikace pro smartphony dostupné pro iOS a Android s názvem „fing“- stáhněte si ji, připojte se ke svému routeru a vyhledejte zařízení - jedno z nich by se mělo jmenovat „Raspberry“- bude to IP adresa, kterou potřebujete.

Krok 9: Připojte se k příkazovému řádku Raspberry Pi

Připojte se k příkazovému řádku Raspberry Pi
Připojte se k příkazovému řádku Raspberry Pi

Otevřete Terminal na Macu (nebo pokud používáte Windows, stáhněte a použijte Putty).

Zadejte následující příkaz:

ssh pi@[IP adresa vašeho Pi]

Přijměte veškerá bezpečnostní upozornění, která dostanete. Budete vyzváni k zadání hesla pro výchozího uživatele pí, který je

malina

Krok 10: Nastavení grafického uživatelského rozhraní Raspberry Pi OS

Nastavte GUI Raspberry Pi OS
Nastavte GUI Raspberry Pi OS
Nastavte GUI Raspberry Pi OS
Nastavte GUI Raspberry Pi OS

Nyní jste připojeni ke svému Pi pomocí příkazového řádku, což je skvělé, ale chcete to také nastavit, abyste měli přístup ke grafickému uživatelskému rozhraní, ke kterému budeme přistupovat prostřednictvím VNC (Virtual Network Computing). Předvídatelně to musíme také povolit.

Nejprve zkontrolujte, zda je váš software Pi aktuální, zadáním následujících dvou příkazů (po nichž následuje Enter) do příkazového řádku:

sudo apt aktualizace

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

Dále otevřete nabídku nastavení Raspberry Pi zadáním:

sudo raspi-config

Přejděte na Možnosti rozhraní> VNC> Ano.

Ukončete konfigurační aplikaci stisknutím klávesy Escape a restartujte Pi z příkazového řádku zadáním:

sudo restart

Krok 11: Připojte se k grafickému uživatelskému rozhraní Raspberry Pi a nastavte jej

Připojte se a nastavte své Raspberry Pi GUI
Připojte se a nastavte své Raspberry Pi GUI
Připojte se a nastavte své Raspberry Pi GUI
Připojte se a nastavte své Raspberry Pi GUI

Stáhněte a otevřete prohlížeč VNC.

Zadejte IP adresu vašeho Raspberry Pi a stiskněte připojit. Zobrazí se výzva k zadání uživatelského jména a hesla, které jsou:

Uživatelské jméno = pí

Heslo = malina

To by vás mělo zavést do GUI.

Zobrazí se výzva k potvrzení vaší geografie a rozložení klávesnice.

Poté vás vyzve ke změně hesla (dobrý nápad).

Požádá vás o nastavení podrobností o Wi -Fi, ale můžete to přeskočit, protože již fungují. (I když běžíte na ethernetu a přemýšlíte, tak teď máte šanci … ale vaše IP adresa se může změnit)

Poté zkontroluje, stáhne a nainstaluje aktualizace (může to chvíli trvat).

Jakmile projdete průvodcem nastavením, doporučil bych změnit rozlišení obrazovky, protože výchozí je docela malý. To provedete kliknutím na Raspberry vlevo nahoře> Předvolby> Konfigurace Raspberry Pi> Displej> Nastavit rozlišení

Aby se to projevilo, budete muset Pi znovu restartovat.

Krok 12: Nainstalujte Node.js a NPM

Nainstalujte Node.js a NPM
Nainstalujte Node.js a NPM

Dále chcete načíst příkazový řádek Raspberry Pi a nainstalovat závislosti, které potřebujeme.

Můžete to udělat buď připojením přes VNC a kliknutím na tlačítko v horní části, které vypadá jako příkazový řádek; nebo se můžete připojit přímo z počítače Mac/PC pomocí terminálu a tmelu, jako jsme to udělali dříve. Pokud jste méně zvyklí pracovat s Raspberry Pi, pak je jednodušší udělat první.

(Tip: Můžete zkopírovat text z počítače Mac/PC a vložit jej na Raspberry Pi přes VNC stisknutím klávesy CONTROL-V, ale pokud se pokoušíte vložit do terminálu, musíte stisknout klávesu CONTROL-SHIFT-V)

Prvním úkolem je znovu zkontrolovat, zda je váš software aktuální, zadáním následujících dvou příkazů. Stažení a instalace může chvíli trvat.

sudo apt-get update

sudo apt-get upgrade

Dále budete chtít stáhnout a nainstalovat node.js a NPM (příliš si nelámejte hlavu s tím, co jsou, jsou užitečné a nezbytné pro naše další úkoly) zadáním následujícího:

sudo apt-get install nodejs npm

Několikrát se vás zeptá, jestli jste rádi, že zabírají místo na disku - jste tak stiskněte Y

Krok 13: Nainstalujte si SONOS HTTP API

Nainstalujte si SONOS HTTP API
Nainstalujte si SONOS HTTP API
Nainstalujte si SONOS HTTP API
Nainstalujte si SONOS HTTP API

Základem back-endu pro náš projekt je balíček node-sonos-http-api vytvořený společností jishi. Vše si můžete přečíst zde:

Stáhneme to z github s následujícím příkazem zadaným do příkazového řádku:

klon git

a nainstalujeme jej pomocí následujících příkazů

cd uzel-sonos-http-api

npm install --production

Potom jej můžeme spustit pomocí následujícího příkazu:

npm start

Jakmile to bude hotové, měli bychom vyzkoušet, zda to funguje.

Nejprve otevřete internetový prohlížeč na našem Raspberry Pi a přejděte na https:// localhost: 5005/. Mělo by se otevřít pěkné rozhraní s logem Sonos a nějakou dokumentací o tom, jak API funguje.

Dále zkontrolujeme, zda to funguje z širší sítě, pomocí prohlížeče na jiném počítači PC nebo Mac ve stejné síti a přejděte na adresu https:// [theIPaddressofyourPi]: 5005/a uvidíme, zda získáme stejný výsledek. Měli bychom.

Nyní skutečně přimíme systém, aby něco udělal. Použijte prohlížeč a přejděte na:

192.168.4.102:5005/ Jídelna/přestávka na přehrávání

Výše uvedenou IP adresu byste měli nahradit adresou vašeho Raspberry Pi a „jídelny“jedním z názvů vašich zón Sonos. Mělo by buď přehrávat nebo pozastavit (v závislosti na tom, zda hudba již hraje nebo ne) hudbu v dané místnosti. Aby to fungovalo, musí být evidentně něco ve frontě Sonos.

Do budoucna použiji výše uvedenou IP adresu a jídelnu jako příklady v celém tomto tutoriálu. Očividně byste je měli při každé příležitosti nahradit svou IP adresou a názvem vaší zóny.

Krok 14: Nechte Sonos HTTP API běžet neustále

Nechte Sonos HTTP API běžet neustále
Nechte Sonos HTTP API běžet neustále

Je skvělé, že máme spuštěno Sonos HTTP API, ale co když dojde k chybě? Nebo ztrácíte energii nebo potřebujete restartovat Raspberry Pi?

Efekt můžete vidět zavřením okna terminálu a opakováním toho, co jsme právě zkoušeli. Nebude to fungovat, protože HTTP API se zastavilo spolu s oknem terminálu.

Ve skutečnosti chceme, aby to běželo neustále a vždy od spuštění. Děláme to pomocí skvělé věci zvané PM2.

V novém okně terminálu jej nainstalujte a spusťte následujícím způsobem:

sudo npm install -g pm2

stav pm2

Nyní pojďme spustit naše Sonos HTTP API:

cd uzel-sonos-http-api

pm2 start npm - start pm2 startup systemd

Tento poslední příkaz generuje něco, co vypadá trochu jako:

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

Zkopírujte, co generuje váš Pi (ne přesný text výše - váš může být jiný) a zadejte jej do příkazového řádku. To dává systému pokyn ke spuštění PM2 při každém spuštění.

Nakonec zadejte:

pm2 uložit

což všechno zachraňuje.

Nyní vyzkoušejte, zda to fungovalo, restartováním vašeho Raspberry Pi pomocí příkazu

sudo restart

Doufejme, že jakmile se Pi restartuje, spustí se také PM2 a následně API Sonos HTTP. Můžete to zkontrolovat navigací pomocí prohlížeče ve stejné síti na adresu, kterou jsme použili dříve, a podívat se na logo Sonos a pokyny:

192.168.4.102:5005/

je to, co je pro mě, ale vaše bude záviset na IP adrese.

Krok 15: Zahrajte si nějaký Spotify

Zkontrolujte, zda má služba přístup ke službě Spotify.

Otevřete prohlížeč a přejděte na následující adresu (samozřejmě nahrazenou vaší IP adresou a názvem místnosti):

192.168.4.102:5005/ Jídelna/spotify/nyní/spotify/spotify: album: 2dfTV7CktUEBkZCHiB7VQB

Měli byste slyšet Johna Granta. Užívat si.

Krok 16: Najděte Spotify URI

Najděte URI Spotify
Najděte URI Spotify

Je to divné, já vím, ale ne každý má rád Johna Granta. Možná chcete poslouchat něco jiného?

Odkazy na Spotify můžete získat z desktopových, webových nebo mobilních aplikací, ale Desktop je zdaleka nejjednodušší, protože poskytuje URI přesně v požadovaném formátu, takže začněte s tím.

V desktopové aplikaci Spotify přejděte na album, které chcete poslouchat (třeba Lemonade od Beyonce?)

Klikněte na tři malé tečky vedle tlačítka srdce.

Přejděte dolů do nabídky Sdílet a vyberte Kopírovat URI Spotify

Tím se zkopíruje něco podobného

spotify: album: 7dK54iZuOxXFarGhXwEXfF

do vaší schránky, což je Spotify URI pro album Beyoncé Lemondade.

Znovu spusťte prohlížeč a přejděte na následující adresu (samozřejmě nahrazení IP adresy a místnosti a vložení do právě zkopírovaného URI):

192.168.4.102:5005/ Jídelna/spotify/nyní/[Spotify URI, který chcete hrát]

Měli byste slyšet, jak si zvolíte.

Pokud dáváte přednost používání webové aplikace, poskytne vám webový odkaz (něco jako níže):

open.spotify.com/album/7dK54iZuOxXFarGhXwEXfF

musíte to převést na formát spotify: album: kód výše, aby to fungovalo.

Krok 17: Poznámka k identifikátorům URI Spotify

Spotify URI a způsob, jakým komunikují s uzly-sonos-http-api, jsou z velké části intuitivní.

Můžete odkazovat přímo na alba, skladby a seznamy skladeb.

Identifikátor URI alba vypadá takto:

spotify: album: 6agCM9GJcebduMddgFmgsO

URI stopy vypadá takto:

spotify: track: 4fNDKbaeEjk2P4GrRE1UbW

Playlisty fungují trochu jinak. Když zkopírujete URI ze Spotify, bude to vypadat nějak takto:

spotify: seznam skladeb: 5huIma0YU4iusLcT2reVEU

Chcete -li však skutečně fungovat na rozhraní API, musíte na začátek výše přidat spotify: user: To platí i pro veřejné seznamy skladeb, a ano, znamená to, že dvakrát říkáte spotify.

Aby bylo zcela jasné, uživatel nemusí být jméno konkrétního uživatele, stačí textový uživatel. Správný identifikátor URI pro výše uvedený seznam skladeb, aby fungoval, by tedy byl:

spotify: uživatel: spotify: seznam skladeb: 5huIma0YU4iusLcT2reVEU

Krok 18: Nastavte Raspberry Pi na odesílání požadavků

Nastavte Raspberry Pi na odesílání požadavků HTTP
Nastavte Raspberry Pi na odesílání požadavků HTTP

Spíše než ručně zadávat požadavky HTTP do webového prohlížeče, chceme to zautomatizovat, aby to Raspberry Pi udělalo samo, když se mu zobrazí určitý stimul (spouští se čtečka NFC).

Budeme používat knihovnu s názvem požadavky, aby to náš Raspberry Pi umožnil. Pojďme zkontrolovat, zda je nainstalován.

Otevřete terminál na svém Pi a zadejte následující:

sudo pip install requests

Je pravděpodobné, že se vrátí a řekne, že je již nainstalován, v takovém případě je skvělý. Pokud ne, nainstaluje se.

Krok 19: Generování značek NFCC pomocí dat Spotify

Generujte značky NFCC pomocí dat Spotify
Generujte značky NFCC pomocí dat Spotify
Generujte značky NFCC pomocí dat Spotify
Generujte značky NFCC pomocí dat Spotify
Generujte značky NFCC pomocí dat Spotify
Generujte značky NFCC pomocí dat Spotify
Generujte značky NFCC pomocí dat Spotify
Generujte značky NFCC pomocí dat Spotify

Nyní chceme do tagu NFC napsat identifikátor URI alba Spotify. Každý z těchto tagů slouží k tomu, abyste Raspberry Pi řekli, aby hrál konkrétní album.

Můžete zapisovat na značku NFC pomocí telefonu Android, ale pro mě je nejjednodušší to provést prostřednictvím počítače Mac nebo PC, protože pak můžete získat nejsnadnější získání identifikátorů URI Spotify z desktopové aplikace Spotify.

Připojte čtečku USB NFC k počítači PC nebo Mac. Používám ACR122U od společnosti American Card Systems.

Stáhněte si NFC Tools do svého PC nebo Mac. Nainstalujte a otevřete.

Někdy může být připojení ke čtečce trochu pomalé a může se stát, že čtečku vůbec nenajde. V nástrojích NFC přejděte na kartu Jiné a často klikněte na tlačítko Připojená čtečka NFC. Možná budete muset čtečku několikrát odpojit a znovu připojit, než ji najde.

Nakonec vám to dá možnost vybrat si čtenáře ze seznamu a říct, že je připojený. Přejděte na kartu Informace, která nezobrazí nic kromě „Čekání na značku NFC“.

Vezměte prázdnou značku NFC. Dejte to na čtečku a nechte to tam. Nástroje NFC zobrazí informace o značce.

Přejděte na kartu Zápis a klikněte na Přidat záznam> Text. (Dávejte pozor, abyste nevybrali URL nebo URI - vím, že je to lákavé, protože kopírujete URI, ale chcete text)

Získejte URI ze Spotify pomocí metody, kterou jsme použili dříve. Pokud chcete snadný příklad, pak je naše předchozí album Johna Granta.

spotify: album: 2dfTV7CktUEBkZCHiB7VQB

Klikněte na OK a poté na Napsat (nezapomeňte na tento poslední krok - ve skutečnosti jej nezapíše, dokud na něj nekliknete). Řekne vám, že je značka úspěšně zapsána.

Sundejte štítek ze čtečky

Krok 20: Nastavte čtečku NFC na Raspberry Pi

Nastavte čtečku NFC na Raspberry Pi
Nastavte čtečku NFC na Raspberry Pi

Připojte čtečku NFC k jednomu z portů USB na vašem Raspberry Pi.

Ke komunikaci se čtečkou NFC použijeme knihovnu nfcpy Python. Nainstalujte jej zadáním následujícího příkazu do příkazového řádku Pi:

pip install -U nfcpy

Potom můžeme zkontrolovat, zda je tato knihovna schopna vidět naši čtečku NFC zadáním následujícího:

python -m nfc

Pokud to fungovalo, uvidíte následující:

Toto je verze 1.0.3 nfcpy spuštěná v Pythonu 2.7.16 na Linuxu-4.19.97-v7+-armv7l-with-debian-10.3

Nyní ve vašem systému hledám bezkontaktní zařízení ** nalezeno ACS ACR122U PN532v1.6 na usb: 001: 011 nezkouším sériová zařízení, protože jste mi to neřekli-přidejte možnost '--search-tty' abych se díval - ale mějte na paměti, že to může narušit ostatní sériová zařízení

Existuje však velká šance, že se zobrazí chybová zpráva, že čtečka byla nalezena, ale váš uživatel (pi) nemá oprávnění k přístupu. Pokud se vám zobrazí tato chybová zpráva, pak také vysvětlí, jak problém vyřešit, což je zadáním dvou příkazů, které vypadají trochu jako následující:

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

Zkopírujte a spusťte oba příkazy, které vám poskytne (ne přesně to, co je uvedeno výše, protože váš může být jiný), poté odpojte a znovu připojte čtečku NFC z portu USB.

Zkuste znovu zkontrolovat příkaz:

python -m nfc

Tentokrát by mělo být řečeno, že je nalezeno bez chybových zpráv.

Krok 21: Nainstalujte si skripty Vinylemulator Python

Nyní máme všechny stavební bloky na svém místě:

  • Náš Raspberry Pi je schopen naslouchat vstupu NFC
  • Náš Raspberry Pi je schopen přikázat Sonosu, aby hrál seznamy skladeb Spotify, když dostane identifikátor URI Spotify
  • Máme značku NFC s uloženým identifikátorem URI Spotify

Nyní musíme všechny tyto stavební bloky přetáhnout do něčeho užitečného. To se provádí pomocí krátkého pythonového skriptu, který jsem napsal (s velkou pomocí předchozích projektů NFC/Spotify/Sonos), který se nazývá vinylemulator.

Zdrojový kód souborů můžete zobrazit na github:

Chcete -li jej nainstalovat na náš Raspberry Pi, musíme jej naklonovat z github pomocí následujícího příkazu:

klon git

Krok 22: Přizpůsobte Vinylemulator

Přizpůsobte si Vinylemulator
Přizpůsobte si Vinylemulator
Přizpůsobte si Vinylemulator
Přizpůsobte si Vinylemulator

Otevřete správce souborů Raspberry Pi a přejděte na domovskou stránku> pi> vinylemulator

Otevřete soubor usersettings.py

Jeden z řádků v tomto souboru bude číst:

sonosroom = "Jídelna"

Změňte „Jídelna“na libovolný název místnosti Sonos, který chcete ovládat.

V tomto souboru je také nastavení, které vám umožňuje přizpůsobit IP adresu sonos-http-api. Měli byste to nechat beze změny jako „localhost“, což znamená, že bude používat Raspberry Pi, na kterém běží.

Uložte soubor a zavřete jej.

Krok 23: Otestujte Vinylemulator

Otestujte Vinylemulator
Otestujte Vinylemulator
Otestujte Vinylemulator
Otestujte Vinylemulator

Přejděte na příkazový řádek Raspberry Pi.

Zadejte následující příkaz:

python vinylemulator/readnfc.py

Pokud je vše v pořádku, načte skript a řekne, že čtečka je připravena. Kontrolka na čtečce by měla zezelenat.

Umístěte značku NFC na čtečku, která pípne.

Terminál ukáže, co přečetl ze značky NFC, a zobrazí adresu požadavku HTTP, kterou odeslal. Vaše vybrané album by se mělo přehrávat z reproduktorů Sonos.

Tento skript poběží, dokud nezavřete okno terminálu. Můžete klepnout na různé značky NFC alba a přepne se na dané album.

Krok 24: Získejte Vinylemulator, aby běžel neustále a při spuštění

Stejně jako sonos-http-api chceme, aby vinylemulator běžel stále, a ne jen tehdy, když tomu říkáme. K tomu můžeme znovu použít pm2.

Nejprve zavřete všechny spuštěné instance vinylemulátoru zavřením jejich oken terminálu.

Poté otevřete nové okno terminálu a zadejte následující dva příkazy:

pm2 spusťte vinylemulator/readnfc.py

pm2 uložit

Zkontrolujte, zda to fungovalo, restartováním Raspberry Pi. (Můžete buď zadat sudo reboot, nebo to udělat z nabídky Raspberry pomocí myši.

Klepnutím na značku NFC na čtečce počkejte, až se Pi znovu spustí, a uvidíte, že funguje. Měli byste dostat hudbu.

Krok 25: Blahopřejte si

Nyní je vše funkční. Raspberry Pi můžete přesunout kamkoli, kam ho plánujete umístit. Kdykoli jej zapojíte, restartuje se a bude fungovat tak, jak jste ho nastavili.

Vaše další úkoly jsou ty zábavné: udělat to všechno krásným.

Krok 26: Udělejte to krásnými - skryjte čtečku

Make It Beautiful - Skryjte svého čtenáře
Make It Beautiful - Skryjte svého čtenáře
Make It Beautiful - Skryjte svého čtenáře
Make It Beautiful - Skryjte svého čtenáře
Make It Beautiful - Skryjte svého čtenáře
Make It Beautiful - Skryjte svého čtenáře
Make It Beautiful - Skryjte svého čtenáře
Make It Beautiful - Skryjte svého čtenáře

První část, jak ji udělat krásnou, je schovat ošklivou bílou plastovou čtečku NFC někam pryč.

Šel jsem s rozhodně nízkou technologickou možností, jak to nalepit na spodní stranu pultu vedle mého Sonos Play: 5. Dřevo pultu je dostatečně tenké, aby jím mohl projít NFC, takže hraji hudbu poklepáním na značku NFC na kouzelném a neviditelném místě.

Doporučuje: