Spisu treści:

Emulator winylu Sonos Spotify: 26 kroków
Emulator winylu Sonos Spotify: 26 kroków

Wideo: Emulator winylu Sonos Spotify: 26 kroków

Wideo: Emulator winylu Sonos Spotify: 26 kroków
Wideo: Waves Plugins a Complete Guide 2024, Listopad
Anonim
Image
Image
Emulator winylu Sonos Spotify
Emulator winylu Sonos Spotify

Pamiętaj, że to nie jest najnowszy zestaw instrukcji dla tego projektu:

Odwiedź stronę https://www.hackster.io/mark-hank/sonos-spotify-vinyl-emulator-3be63d, aby uzyskać najnowszy zestaw instrukcji i wsparcia

Słuchanie muzyki na winylu jest świetne. Jest fizyczny i dotykowy. Słuchasz całego albumu, a nie losowych utworów. Zauważasz, kiedy to już koniec i świadomie wybierasz coś innego. Możesz zbudować kolekcję i przeglądać ją, zamiast szukać dokładnie tego, czego chcesz.

Jest również drogi i nieporęczny, zwłaszcza jeśli weźmiesz pod uwagę, że wszelkie pieniądze, które wydajesz na winyle, są najprawdopodobniej duplikatem muzyki, do której masz już dostęp za pośrednictwem subskrybowanej usługi przesyłania strumieniowego.

Ten projekt próbuje odtworzyć namacalne i związane z budowaniem kolekcji aspekty winylu, opierając się na Spotify, aby faktycznie dostarczać muzykę. Umieszczenie fizycznego obiektu na czytniku NFC podłączonym do Raspberry Pi (oba można ukryć) rozpocznie odtwarzanie albumu powiązanego z tym tagiem.

Przeprowadzę Cię przez wszystkie kroki - od konfiguracji Raspberry Pi po kodowanie tagów NFC. To mój pierwszy projekt Raspberry Pi i mój pierwszy kod w Pythonie, więc nauczyłem się obu podczas tworzenia tego. W związku z tym instrukcje te zakładają dosłownie zerową wcześniejszą wiedzę i prowadzą Cię przez każdy krok.

Całkowity koszt niezbędnych komponentów do zbudowania to około 50-60 funtów.

Chciałbym zobaczyć, co budujesz!

Krok 1: Wymagane materiały 1: Raspberry Pi

Zaplecze, które łączy się z Twoją siecią, Sonos i Spotify, będzie obsługiwane przez Raspberry Pi. Właściwie niewiele potrzebujesz, aby to wszystko uruchomić.

Niezbędny:

Raspberry Pi: użyłem Raspberry Pi 3 Model B+, ale będzie również działać z Raspberry Pi 3 Model A+ (23 £)

Zasilacz USB: miałem jeden leżący w pobliżu - dostępny jest oficjalny, jeśli nie masz (9 funtów)

Karta Micro SD: Mam kartę o pojemności 32 GB, która jest wystarczająca dla tej aplikacji, na Amazon (6 GBP)

Niektóre urządzenia Sonos działające w Twojej sieci (zgaduję, że już to masz, jeśli tu jesteś…)

Konto Spotify Premium

Zalecana:

Etui na Pi: istnieje wiele opcji, zaczynając od 5 £

Butelka przyzwoitego California Zinfandel: polecam Ridge, ale dostępne są inne

Krok 2: Wymagane materiały eksploatacyjne 2: Czytnik NFC

Wymagane materiały eksploatacyjne 2: Czytnik NFC
Wymagane materiały eksploatacyjne 2: Czytnik NFC
Wymagane materiały eksploatacyjne 2: Czytnik NFC
Wymagane materiały eksploatacyjne 2: Czytnik NFC

Te instrukcje są przeznaczone dla czytnika ACR122U NFC, który łączy się przez USB.

ACR122U

Kupiłem ten od Amazona za 38 funtów (głównie dlatego, że miał najlepszą dostawę), ale są tańsze opcje zakupu tego samego czytnika.

Mylące jest to, że ACR122U wydaje się być sprzedawany pod kilkoma różnymi markami (moje były pod daleką od uspokajającą marką „Yosoo”), ale z tego, co mogę powiedzieć, wszystkie są takie same i są skonstruowane przez American Card Systems.

Najtańszy, jaki znalazłem, reklamowany ACR122U, to 21 funtów, w tym wysyłka, ale pochodzi on bezpośrednio z Chin, więc być może trzeba będzie trochę poczekać.

Inne opcje

Ten projekt opiera się na bibliotece Pythona o nazwie nfcpy, która utrzymuje listę obsługiwanych urządzeń tutaj:

Teoretycznie ten projekt powinien współpracować z każdym z tych na tej liście z niewielką integracją.

Jedną z kuszących opcji jest Adafruit PN532, która jest płytą, którą należy podłączyć bezpośrednio do Raspberry Pi za pomocą kabli połączeniowych. Spróbowałem tego i uznałem, że to prawdziwy bzdury. Wymaga np. lutowania.

Jedną z jego zalet jest powierzchownie to, że jest mniejszy, ale w rzeczywistości płyta jest mniej więcej tego samego rozmiaru co wnętrzności ACR122U. Jeśli naprawdę zależy Ci na miejscu na swoją aplikację, możesz zdjąć plastik z ACR122U i po prostu użyć płyty.

Krok 3: Wymagane materiały 3: Tagi NFC

Wymagane materiały eksploatacyjne 3: Tagi NFC
Wymagane materiały eksploatacyjne 3: Tagi NFC

Do każdego albumu, który chcesz utworzyć, potrzebujesz tagu NFC, który spełnia standard NTAG213.

Jest wiele miejsc, w których można je kupić.

Kupiłem pierwszą partię z Amazon, gdzie dostałem paczkę 10 za 9 funtów (w tym dostawa Prime)

Najlepszym dostawcą, jaki znalazłem w Wielkiej Brytanii, jest Seritag - mają naprawdę szeroki wybór różnych stylów, świetne porady na swojej stronie internetowej, dokładnie wiesz, co dostajesz (nie zawsze tak jest na Amazon). Nie mają minimalnej wielkości zamówienia i mnóstwo opcji. Tagi zaczynają się od 27 pensów za tag

Krok 4: Pobierz system operacyjny Raspberry Pi na kartę SD

Pobierz system operacyjny Raspberry Pi na kartę SD
Pobierz system operacyjny Raspberry Pi na kartę SD
Pobierz system operacyjny Raspberry Pi na kartę SD
Pobierz system operacyjny Raspberry Pi na kartę SD

Na komputerze PC lub Mac pobierz i uruchom aplikację do obrazowania Raspberry PI.

Włóż kartę SD, na której chcesz zainstalować system operacyjny Raspberry Pi.

Kliknij WYBIERZ OS i wybierz domyślny Rasbian.

Kliknij WYBIERZ KARTĘ SD i wybierz podłączoną kartę SD.

Kliknij NAPISZ. To może zająć chwilę.

Gdy to zrobisz, poinformuje Cię o wyjęciu karty SD, co powinieneś zrobić. Ale potem podłącz go ponownie, ponieważ najpierw musisz wykonać kilka czynności porządkowych.

Krok 5: Włącz SSH na obrazie systemu operacyjnego Raspberry Pi

Włącz SSH na obrazie systemu operacyjnego Raspberry Pi
Włącz SSH na obrazie systemu operacyjnego Raspberry Pi

Po zapisaniu systemu operacyjnego na karcie SD musisz wykonać kilka dodatkowych zadań.

Chcemy uzyskać dostęp do Raspberry Pi bez podłączania klawiatury lub monitora (tzw. „bezgłowy”), co możemy zrobić w naszej sieci lokalnej za pomocą naszego komputera PC lub Mac za pośrednictwem protokołu SSH. Jednak ze względów bezpieczeństwa protokół SSH jest domyślnie wyłączony. Musimy to umożliwić.

Możemy to zrobić, tworząc pusty plik o nazwie:

cisza

na karcie SD, którą właśnie utworzyliśmy. Ważne jest, aby nie miał żadnego rozszerzenia (np..txt). Sam plik nie musi zawierać żadnej zawartości - samo jego istnienie umożliwi SSH po uruchomieniu Pi.

Krok 6: Opcjonalnie: skonfiguruj Wifi na swoim Raspberry Pi

Opcjonalnie: skonfiguruj Wifi na swoim Raspberry Pi
Opcjonalnie: skonfiguruj Wifi na swoim Raspberry Pi
Opcjonalnie: skonfiguruj Wifi na swoim Raspberry Pi
Opcjonalnie: skonfiguruj Wifi na swoim Raspberry Pi

Możesz pominąć ten krok, jeśli planujesz podłączyć Raspberry Pi do routera przez Ethernet. (Chociaż możesz chcieć przemyśleć tę decyzję - uruchomienie go przez Wi-Fi znacznie ułatwia życie pod względem pozycjonowania tego)

Utwórz plik tekstowy o nazwie wpa_supplicant.conf w katalogu głównym karty SD.

Wstaw poniższy tekst do pliku:

kraj=gb

update_config=1 ctrl_interface=/var/run/wpa_supplicant network={ scan_ssid=1 ssid="Moje SSIDSieci" psk="MojeHasło" }

Zmień odpowiednio kraj (GB to Wielka Brytania, US to USA, DE to Niemcy itd.)

Zmień dane uwierzytelniające Wi-Fi, aby były rzeczywistymi danymi routera Wi-Fi.

Zapisz plik.

Bezpiecznie wyjmij kartę SD.

Krok 7: Wzmocnij swoje Raspberry Pi

Wzmocnij swoje Raspberry Pi
Wzmocnij swoje Raspberry Pi

Umieść właśnie utworzoną kartę SD w swoim Raspberry Pi.

Podłącz Raspberry Pi do zasilania za pomocą kabla USB. Poczekaj chwilę, aż się uruchomi.

Krok 8: Znajdź adres IP swojego Raspberry Pi

Teraz musisz znaleźć adres IP Raspberry Pi, aby móc się z nim połączyć. Możesz to zrobić na dwa sposoby:

  • za pośrednictwem strony konfiguracji routera - jeśli masz nowoczesny router, taki jak eero, jest to bardzo łatwe;
  • lub za pomocą aplikacji na smartfona dostępnej na iOS i Androida o nazwie „fing” – pobierz ją, połącz z routerem i skanuj w poszukiwaniu urządzeń – jedno z nich powinno mieć nazwę „Malina” – będzie to adres IP, którego potrzebujesz.

Krok 9: Połącz się z linią poleceń Raspberry Pi

Połącz się z linią poleceń Raspberry Pi
Połącz się z linią poleceń Raspberry Pi

Otwórz Terminal na komputerze Mac (lub jeśli używasz systemu Windows, pobierz i użyj Putty).

Wpisz następujące polecenie:

ssh pi@[adres IP twojego Pi]

Zaakceptuj wszelkie otrzymane ostrzeżenia dotyczące bezpieczeństwa. Zostaniesz poproszony o podanie hasła dla domyślnego użytkownika pi, którym jest

Malina

Krok 10: Skonfiguruj GUI Raspberry Pi OS

Skonfiguruj graficzny interfejs użytkownika Raspberry Pi OS
Skonfiguruj graficzny interfejs użytkownika Raspberry Pi OS
Skonfiguruj graficzny interfejs użytkownika Raspberry Pi OS
Skonfiguruj graficzny interfejs użytkownika Raspberry Pi OS

Jesteś teraz połączony z Pi za pomocą wiersza poleceń, co jest świetne, ale chcesz go również skonfigurować, aby uzyskać dostęp do graficznego interfejsu użytkownika, do którego uzyskamy dostęp za pośrednictwem VNC (Virtual Network Computing). Przewidywalnie, musimy również to umożliwić.

Przede wszystkim sprawdź, czy Twoje oprogramowanie Pi jest aktualne, wpisując w wierszu poleceń następujące dwa polecenia (po każdym następuje enter):

aktualizacja sudo apt

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

Następnie otwórz menu ustawień Raspberry Pi, wpisując:

sudo raspi-config

Przejdź do opcji interfejsu > VNC > tak.

Wyjdź z aplikacji konfiguracyjnej, naciskając klawisz Escape i zrestartuj Pi z wiersza poleceń, wpisując:

ponowne uruchomienie sudo

Krok 11: Połącz się i skonfiguruj GUI Raspberry Pi

Połącz się i skonfiguruj swój graficzny interfejs użytkownika Raspberry Pi
Połącz się i skonfiguruj swój graficzny interfejs użytkownika Raspberry Pi
Połącz się i skonfiguruj swój graficzny interfejs użytkownika Raspberry Pi
Połącz się i skonfiguruj swój graficzny interfejs użytkownika Raspberry Pi

Pobierz i otwórz przeglądarkę VNC.

Wpisz adres IP swojego Raspberry Pi i naciśnij połącz. Zostaniesz poproszony o podanie nazwy użytkownika i hasła, które są:

Nazwa użytkownika = pi

Hasło = malina

To powinno uruchomić Cię do GUI.

Poprosi Cię o potwierdzenie położenia geograficznego i układu klawiatury.

Następnie poprosi Cię o zmianę hasła (dobry pomysł).

Poprosi Cię o ustawienie szczegółów Wi-Fi, ale możesz to pominąć, ponieważ już działają. (Chociaż jeśli korzystasz z sieci Ethernet i masz wątpliwości, to teraz masz szansę… ale pamiętaj, że Twój adres IP może się zmienić)

Następnie sprawdzi, pobierze i zainstaluje aktualizacje (może to chwilę potrwać).

Po przejściu przez kreatora konfiguracji zalecam zmianę rozdzielczości ekranu, ponieważ domyślna jest dość mała. Możesz to zrobić, klikając Raspberry w lewym górnym rogu> Preferencje> Konfiguracja Raspberry Pi> Wyświetlacz> Ustaw rozdzielczość

Będziesz musiał ponownie uruchomić Pi, aby to zadziałało.

Krok 12: Zainstaluj Node.js i NPM

Zainstaluj Node.js i NPM
Zainstaluj Node.js i NPM

Następnie chcesz załadować wiersz poleceń Raspberry Pi, aby zainstalować potrzebne nam zależności.

Możesz to zrobić, łącząc się przez VNC i klikając przycisk u góry, który wygląda jak wiersz poleceń; lub możesz połączyć się bezpośrednio z komputera Mac/PC za pomocą Terminala i Putty, tak jak to zrobiliśmy wcześniej. Jeśli jesteś mniej przyzwyczajony do pracy z Raspberry Pi, łatwiej jest zrobić to pierwsze.

(Wskazówka: możesz skopiować tekst z komputera Mac/PC i wkleić go do Raspberry Pi przez VNC, naciskając CONTROL-V, ale jeśli próbujesz wkleić do terminala, musisz nacisnąć CONTROL-SHIFT-V)

Pierwszym zadaniem jest ponowne sprawdzenie, czy oprogramowanie jest aktualne, wpisując następujące dwa polecenia. Pobranie i zainstalowanie może trochę potrwać.

aktualizacja sudo apt-get

sudo apt-get upgrade

Następnie chcesz pobrać i zainstalować node.js i NPM (nie przejmuj się tym, czym one są, są pomocne i niezbędne do kolejnych zadań), wpisując:

sudo apt-get zainstaluj nodejs npm

Zostaniesz zapytany kilka razy, czy chcesz zajmować miejsce na dysku za pomocą tych - jesteś więc naciśnij Y

Krok 13: Zainstaluj SONOS HTTP API

Zainstaluj SONOS HTTP API
Zainstaluj SONOS HTTP API
Zainstaluj SONOS HTTP API
Zainstaluj SONOS HTTP API

Podstawą zaplecza naszego projektu jest pakiet node-sonos-http-api stworzony przez jishi. Możesz o tym przeczytać tutaj:

Ściągniemy to z github za pomocą następującego polecenia wpisanego w wierszu poleceń:

klon git

i zainstalujemy go za pomocą następujących poleceń

cd node-sonos-http-api

npm instalacja --produkcja

Następnie możemy go uruchomić za pomocą następującego polecenia:

początek npm

Gdy to zrobimy, powinniśmy sprawdzić, czy działa.

Najpierw otwórz przeglądarkę internetową na naszym Raspberry Pi i przejdź do https://localhost:5005/. Ładny interfejs powinien otwierać się z logo Sonos i dokumentacją dotyczącą działania API.

Następnie sprawdźmy, czy to działa z szerszej sieci, używając przeglądarki na innym komputerze PC lub Mac w tej samej sieci i przechodząc do https://[adresIPTwojegoPi]:5005/ i sprawdzając, czy otrzymamy ten sam wynik. Powinniśmy.

Teraz faktycznie sprawimy, że system coś zrobi. Użyj przeglądarki i przejdź do:

192.168.4.102:5005/Jadalnia/playpause

Powyższy adres IP należy zastąpić adresem Raspberry Pi, a „Dining Room” jedną z nazw stref Sonos. Powinien albo odtwarzać, albo wstrzymywać (w zależności od tego, czy muzyka jest już odtwarzana, czy nie) muzyki w tym pokoju. Oczywiście coś musi być w kolejce Sonos, żeby to zadziałało.

Idąc dalej, będę używać powyższego adresu IP i jadalni jako przykładów w tym samouczku. Oczywiście za każdym razem należy je zastąpić adresem IP i nazwą strefy.

Krok 14: Spraw, aby Sonos HTTP API działał stale

Spraw, aby Sonos HTTP API działał stale
Spraw, aby Sonos HTTP API działał stale

Wspaniale, że mamy działające API Sonos HTTP, ale co się stanie, jeśli się zawiesi? A może tracisz zasilanie lub musisz ponownie uruchomić Raspberry Pi?

Możesz zobaczyć efekt, zamykając okno terminala i ponawiając to, co właśnie próbowaliśmy. To nie zadziała, ponieważ API HTTP zostało zatrzymane wraz z oknem terminala.

Właściwie chcemy, aby działało to stale i robimy to od początku za każdym razem. Robimy to za pomocą fajnej rzeczy zwanej PM2.

W nowym oknie terminala zainstaluj i uruchom go w następujący sposób:

sudo npm install -g pm2

stan pm2

Teraz spróbujmy uruchomić nasze Sonos HTTP API:

cd node-sonos-http-api

pm2 start npm -- start pm2 system startowyd

To ostatnie polecenie generuje coś, co wygląda trochę tak:

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

Skopiuj to, co generuje twoje Pi (nie dokładny tekst powyżej - twój może być inny) i wprowadź go w wierszu poleceń. Instruuje to system, aby za każdym razem uruchamiał PM2 podczas rozruchu.

Na koniec wpisz:

pm2 zapisz

co oszczędza wszystko.

Teraz sprawdź, czy to zadziałało, ponownie uruchamiając Raspberry Pi za pomocą polecenia

ponowne uruchomienie sudo

Mam nadzieję, że po ponownym uruchomieniu Pi uruchomi również PM2 i z kolei Sonos HTTP API. Możesz to sprawdzić, przechodząc za pomocą przeglądarki w tej samej sieci pod adres, którego używaliśmy wcześniej, i zobacz logo Sonos i instrukcje:

192.168.4.102:5005/

jest dla mnie, ale twój będzie zależał od adresu IP.

Krok 15: Zagraj w Spotify

Sprawdźmy, czy usługa ma dostęp do Spotify.

Otwórz przeglądarkę i przejdź do następującego adresu (oczywiście zastępując go swoim adresem IP i nazwą pokoju):

192.168.4.102:5005/Jadalnia/spotify/teraz/spotify/spotify:album:2dfTV7CktUEBkZCHiB7VQB

Powinieneś usłyszeć Johna Granta. Cieszyć się.

Krok 16: Znajdź identyfikatory URI Spotify

Znajdź identyfikatory URI Spotify
Znajdź identyfikatory URI Spotify

Dziwne, wiem, ale nie każdy lubi Johna Granta. Może chcesz posłuchać czegoś innego?

Możesz uzyskać linki Spotify z aplikacji komputerowych, internetowych lub mobilnych, ale Pulpit jest zdecydowanie najłatwiejszy, ponieważ dostarcza identyfikator URI w dokładnie takim formacie, jaki chcesz, więc zacznij od tego.

W aplikacji komputerowej Spotify przejdź do albumu, którego chcesz posłuchać (może Lemonade Beyonce?)

Kliknij trzy małe kropki obok przycisku serca.

Przejdź do menu, aby udostępnić i wybierz Kopiuj Spotify URI

To skopiuje coś takiego

spotify:album:7dK54iZuOxXFarGhXwEXfF

do schowka, czyli identyfikatora Spotify URI albumu Beyonce Lemondade.

Uruchom ponownie przeglądarkę i przejdź do następującego adresu (oczywiście zastępując adres IP i pokój oraz wklejając właśnie skopiowany URI):

192.168.4.102:5005/Jadalnia/spotify/teraz/[Spotify URI, który chcesz odtworzyć]

Powinieneś usłyszeć swoją wybraną grę.

Jeśli wolisz korzystać z aplikacji internetowej, otrzymasz link do strony internetowej (coś jak poniżej):

open.spotify.com/album/7dK54iZuOxXFarGhXwEXfF

musisz przekonwertować to na format spotify:album:code powyżej, aby to zadziałało.

Krok 17: Uwaga na temat identyfikatorów URI Spotify

Identyfikatory URI Spotify i sposób, w jaki łączą się z node-sonos-http-api, są w większości intuicyjne.

Możesz tworzyć bezpośrednie linki do albumów, utworów i list odtwarzania.

URI albumu wygląda tak:

spotify:album:6agCM9GJcebduMddgFmgsO

Identyfikator URI ścieżki wygląda następująco:

spotify: utwór: 4fNDKbaeEjk2P4GrRE1UbW

Playlisty działają trochę inaczej. Po skopiowaniu identyfikatora URI ze Spotify będzie wyglądać mniej więcej tak:

spotify: lista odtwarzania: 5huIma0YU4iusLcT2reVEU

Jednak, aby faktycznie działał na API, musisz dodać spotify:user: na początku powyższego. Dotyczy to nawet publicznych list odtwarzania i tak, oznacza to, że mówisz spotify dwa razy.

Aby było jasne, użytkownik nie musi być nazwą konkretnego użytkownika, tylko użytkownikiem tekstowym. Więc poprawny identyfikator URI dla powyższej listy odtwarzania, aby działał, to:

spotify:użytkownik:spotify:lista odtwarzania:5huIma0YU4iusLcT2reVEU

Krok 18: Skonfiguruj Raspberry Pi do wysyłania żądań

Skonfiguruj Raspberry Pi do wysyłania żądań HTTP
Skonfiguruj Raspberry Pi do wysyłania żądań HTTP

Zamiast ręcznie wpisywać żądania HTTP do przeglądarki internetowej, chcemy zautomatyzować to, aby Raspberry Pi robiło to samo po otrzymaniu określonego bodźca (aktywowany czytnik NFC).

Będziemy używać biblioteki zwanej requestami, aby umożliwić to naszemu Raspberry Pi. Sprawdźmy, czy jest zainstalowany.

Otwórz terminal na swoim Pi i wpisz:

prośby o instalację sudo pip

Prawdopodobnie wróci i mówi, że jest już zainstalowany, w takim przypadku świetnie. Jeśli nie, zainstaluje go.

Krok 19: Wygeneruj tagi NFCC za pomocą danych Spotify

Generuj tagi NFCC za pomocą danych Spotify
Generuj tagi NFCC za pomocą danych Spotify
Generuj tagi NFCC za pomocą danych Spotify
Generuj tagi NFCC za pomocą danych Spotify
Generuj tagi NFCC za pomocą danych Spotify
Generuj tagi NFCC za pomocą danych Spotify
Generuj tagi NFCC za pomocą danych Spotify
Generuj tagi NFCC za pomocą danych Spotify

Teraz chcemy zapisać identyfikator URI albumu Spotify w tagu NFC. Każdy z tych tagów jest tym, czego użyjesz, aby nakazać Raspberry Pi odtworzenie określonego albumu.

Możesz pisać do tagu NFC za pomocą telefonu z Androidem, ale uważam, że najłatwiej jest to zrobić za pomocą komputera Mac lub PC, ponieważ wtedy najłatwiej jest uzyskać identyfikatory URI Spotify z aplikacji komputerowej Spotify.

Podłącz czytnik USB NFC do komputera PC lub Mac. Używam ACR122U firmy American Card Systems.

Pobierz narzędzia NFC na komputer PC lub Mac. Zainstaluj i otwórz.

Czasami łączenie się z czytnikiem może być trochę powolne i może oznaczać, że w ogóle nie może go znaleźć. Przejdź do zakładki Inne w narzędziach NFC i klikaj co jakiś czas przycisk Podłączony czytnik NFC. Być może będziesz musiał kilka razy odłączyć i ponownie podłączyć czytnik, zanim go znajdzie.

W końcu da ci możliwość wybrania czytnika z listy i powiedzenia, że jest podłączony. Przejdź do zakładki Informacje, która nie pokaże nic oprócz „Oczekiwanie na tag NFC”.

Weź pusty tag NFC. Umieść go na czytniku i zostaw tam. Narzędzia NFC wyświetlą informacje o tagu.

Przejdź do karty Napisz i kliknij Dodaj rekord > Tekst. (Uważaj, aby nie wybierać adresu URL ani URI – wiem, że to kuszące, ponieważ kopiujesz URI, ale chcesz tekst)

Pobierz URI ze Spotify, korzystając z metody, której używaliśmy wcześniej. Jeśli chcesz prostego przykładu, poniżej znajduje się nasz wcześniejszy album Johna Granta.

spotify:album:2dfTV7CktUEBkZCHiB7VQB

Kliknij OK, a następnie kliknij Zapisz (nie zapomnij o tym ostatnim kroku - nie zapisze go, dopóki tego nie klikniesz). Powie ci, że tag został napisany pomyślnie.

Zdejmij tag z czytnika

Krok 20: Skonfiguruj czytnik NFC na Raspberry Pi

Skonfiguruj czytnik NFC na Raspberry Pi
Skonfiguruj czytnik NFC na Raspberry Pi

Podłącz czytnik NFC do jednego z portów USB w Raspberry Pi.

Do komunikacji z czytnikiem NFC użyjemy biblioteki Pythona nfcpy. Zainstaluj go, wpisując następujące polecenie w wierszu poleceń Pi:

pip install -U nfcpy

Możemy wtedy sprawdzić, czy ta biblioteka jest w stanie zobaczyć nasz czytnik NFC, wpisując:

python -m nfc

Jeśli to zadziałało, zobaczysz następujące informacje:

To jest wersja 1.0.3 nfcpy uruchomiona w Pythonie 2.7.16 na Linux-4.19.97-v7+-armv7l-with-debian-10.3

Przeszukuję teraz twój system w poszukiwaniu urządzeń zbliżeniowych ** znalazłem ACS ACR122U PN532v1.6 pod adresem usb:001:011 Nie próbuję urządzeń szeregowych, ponieważ mi nie powiedziałeś -- dodaj opcję '--search-tty' żebym szukał - ale uważaj, bo może to zepsuć innych seryjnych deweloperów

Istnieje jednak duża szansa, że otrzymasz komunikat o błędzie informujący, że czytnik został znaleziony, ale Twój użytkownik (pi) nie ma do niego dostępu. Jeśli pojawi się ten komunikat o błędzie, wyjaśni on również, jak rozwiązać problem, czyli wpisując dwa polecenia, które wyglądają trochę tak:

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

kontrola sudo udevadm -R

Skopiuj i wykonaj oba polecenia, które ci daje (nie dokładnie to, co powyżej, ponieważ twoje może być inne), a następnie odłącz i ponownie podłącz czytnik NFC z portu USB.

Spróbuj ponownie wykonać polecenie check:

python -m nfc

Tym razem powinien powiedzieć, że znalazł go bez komunikatów o błędach.

Krok 21: Zainstaluj skrypty Pythona Vinylemulator

Mamy teraz wszystkie elementy konstrukcyjne:

  • Nasze Raspberry Pi jest w stanie nasłuchiwać wejścia NFC
  • Nasze Raspberry Pi jest w stanie powiedzieć Sonosowi, aby odtwarzał listy odtwarzania Spotify, gdy otrzyma identyfikator Spotify URI
  • Mamy tag NFC z zapisanym na nim Spotify URI

Teraz musimy zebrać wszystkie te cegiełki w coś pożytecznego. Odbywa się to za pomocą krótkiego skryptu Pythona, który napisałem (z dużą pomocą z poprzednich projektów NFC/Spotify/Sonos), który nazywa się vinylemulator.

Możesz wyświetlić kod źródłowy plików na github:

Aby zainstalować to na naszym Raspberry Pi, musimy sklonować go z github za pomocą następującego polecenia:

klon git

Krok 22: Dostosuj emulator winylu

Dostosuj emulator winylu
Dostosuj emulator winylu
Dostosuj emulator winylu
Dostosuj emulator winylu

Otwórz menedżera plików Raspberry Pi i przejdź do domu> pi> vinylemulator

Otwórz plik usersettings.py

Jedna z linii w tym pliku będzie brzmieć:

sonosroom="Jadalnia"

Zmień nazwę „Jadalnia” na dowolną nazwę pokoju Sonos, którą chcesz kontrolować.

W tym pliku znajduje się również ustawienie, które pozwala dostosować adres IP sonos-http-api. Powinieneś móc pozostawić to bez zmian jako „localhost”, co oznacza, że będzie używał Raspberry Pi, na którym działa.

Zapisz plik i zamknij go.

Krok 23: Przetestuj emulator winylu

Testuj emulator winylu
Testuj emulator winylu
Testuj emulator winylu
Testuj emulator winylu

Przejdź do wiersza poleceń Raspberry Pi.

Wpisz następujące polecenie:

Python vinylemulator/readnfc.py

Jeśli wszystko jest w porządku, załaduje skrypt i powie, że czytnik jest gotowy. Lampka na czytniku powinna zaświecić się na zielono.

Umieść tag NFC na czytniku, który wyda sygnał dźwiękowy.

Terminal pokaże, co odczytał ze znacznika NFC i pokaże adres żądania HTTP, który wysłał. Wybrany album powinien być odtwarzany z głośników Sonos.

Ten skrypt będzie działał, dopóki nie zamkniesz okna terminala. Możesz dotknąć różnych tagów NFC albumów, aby przejść do tego albumu.

Krok 24: Uzyskaj Vinylemulator, aby działał stale i podczas uruchamiania

Podobnie jak sonos-http-api, chcemy, aby emulator winylu działał cały czas, a nie tylko wtedy, gdy go nazwiemy. Możemy użyć pm2, aby zrobić to ponownie.

Najpierw zamknij wszystkie uruchomione instancje winylu, zamykając ich okna terminala.

Następnie otwórz nowe okno terminala i wpisz następujące dwa polecenia:

pm2 uruchom emulator winylu/readnfc.py

pm2 zapisz

Sprawdźmy, czy to zadziałało, ponownie uruchamiając Raspberry Pi. (Możesz wpisać sudo reboot lub zrobić to z menu Raspberry za pomocą myszy.

Poczekaj, aż Pi ponownie się uruchomi i zobacz, jak działa, dotykając znacznika NFC na czytniku. Powinieneś dostać muzykę.

Krok 25: Pogratuluj sobie

Wszystko jest teraz sprawne. Możesz przenieść Raspberry Pi w dowolne miejsce, w którym planujesz go umieścić. Za każdym razem, gdy go podłączysz, uruchomi się ponownie i będzie działać w sposób, w jaki go skonfigurowałeś.

Twoje następne zadania są zabawne: sprawić, by wszystko było piękne.

Krok 26: Spraw, by było pięknie – ukryj swojego czytelnika

Spraw, by było pięknie - ukryj swojego czytelnika
Spraw, by było pięknie - ukryj swojego czytelnika
Spraw, by było pięknie - ukryj swojego czytelnika
Spraw, by było pięknie - ukryj swojego czytelnika
Spraw, by było pięknie - ukryj swojego czytelnika
Spraw, by było pięknie - ukryj swojego czytelnika
Spraw, by było pięknie - ukryj swojego czytelnika
Spraw, by było pięknie - ukryj swojego czytelnika

Pierwszą częścią upiększania jest ukrycie gdzieś paskudnego białego plastikowego czytnika NFC.

Poszedłem z zdecydowanie słabą technologicznie opcją przyklejenia go do spodu blatu obok mojego Sonos Play: 5. Drewno blatu jest na tyle cienkie, że NFC może przez nie przejść, więc odtwarzam muzykę, stukając tagiem NFC w magiczne i niewidoczne miejsce.

Zalecana: