Spisu treści:
- Krok 1: Wymagane materiały 1: Raspberry Pi
- Krok 2: Wymagane materiały eksploatacyjne 2: Czytnik NFC
- Krok 3: Wymagane materiały 3: Tagi NFC
- Krok 4: Pobierz system operacyjny Raspberry Pi na kartę SD
- Krok 5: Włącz SSH na obrazie systemu operacyjnego Raspberry Pi
- Krok 6: Opcjonalnie: skonfiguruj Wifi na swoim Raspberry Pi
- Krok 7: Wzmocnij swoje Raspberry Pi
- Krok 8: Znajdź adres IP swojego Raspberry Pi
- Krok 9: Połącz się z linią poleceń Raspberry Pi
- Krok 10: Skonfiguruj GUI Raspberry Pi OS
- Krok 11: Połącz się i skonfiguruj GUI Raspberry Pi
- Krok 12: Zainstaluj Node.js i NPM
- Krok 13: Zainstaluj SONOS HTTP API
- Krok 14: Spraw, aby Sonos HTTP API działał stale
- Krok 15: Zagraj w Spotify
- Krok 16: Znajdź identyfikatory URI Spotify
- Krok 17: Uwaga na temat identyfikatorów URI Spotify
- Krok 18: Skonfiguruj Raspberry Pi do wysyłania żądań
- Krok 19: Wygeneruj tagi NFCC za pomocą danych Spotify
- Krok 20: Skonfiguruj czytnik NFC na Raspberry Pi
- Krok 21: Zainstaluj skrypty Pythona Vinylemulator
- Krok 22: Dostosuj emulator winylu
- Krok 23: Przetestuj emulator winylu
- Krok 24: Uzyskaj Vinylemulator, aby działał stale i podczas uruchamiania
- Krok 25: Pogratuluj sobie
- Krok 26: Spraw, by było pięknie – ukryj swojego czytelnika
Wideo: Emulator winylu Sonos Spotify: 26 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:27
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
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
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
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
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
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
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
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
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
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
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
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
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
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ń
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
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
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
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
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
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:
Głośnik Sonos Like Spotify Wifi: 9 kroków (ze zdjęciami)
Sonos Like Spotify Wifi Speaker: W tym projekcie zbudujemy głośnik Wifi z wbudowanym klientem Spotify. Oznacza to, że możesz łatwo wybrać w spotify, aby odtwarzać na tym konkretnym głośniku. Nie musisz mieć do czynienia z gównianym bluetoothem, ponieważ jest on oparty na sieci Ethernet. Twój
TinyDice: Profesjonalne płytki PCB w domu z obcinaczem do winylu: 10 kroków (ze zdjęciami)
TinyDice: Profesjonalne płytki PCB w domu z obcinaczem do winylu: Ta instrukcja składa się z przewodnika krok po kroku dokumentującego metodę produkcji płytek PCB profesjonalnej jakości w domu za pomocą noża do winylu, w niezawodny, prosty i wydajny sposób. Ta metoda pozwala na produkcję consis
Instrukcja obsługi plotera tnącego do winylu MH871-MK2: 11 kroków
Instrukcja obsługi plotera tnącego do winylu MH871-MK2: Witam, nazywam się Ricardo Greene i przygotowałem instrukcje użytkowania plotera tnącego do winylu MH871-MK2
Albumy z tagami NFC do automatycznego odtwarzania muzyki Spotify na Chromecaście: 5 kroków
Albumy z tagami NFC do automatycznego odtwarzania muzyki Spotify na Chromecaście: Ten projekt rozpoczął się od pomysłu stworzenia kolażu albumów moich najczęściej odtwarzanych artystów na Spotify. Po kilku grach z API Spotify w Pythonie pomyślałem, że byłoby miło połączyć te okładki albumów z ich identyfikatorami URI Spotify i zacząć odtwarzać
Używanie frezu do winylu do wykonania szablonu aerografu: 5 kroków
Używanie plotera do cięcia winylu do tworzenia szablonu aerografu: W tej instrukcji przedstawię krótkie wprowadzenie do procesu używania plotera do cięcia winylu do tworzenia szablonów, których można użyć do malowania za pomocą zestawu aerografu lub naprawdę, z dowolnym typem farby. Na tych zdjęciach użyłem airbrush boo