İçindekiler:

Sonos Spotify Vinyl Emülatörü: 26 Adım
Sonos Spotify Vinyl Emülatörü: 26 Adım

Video: Sonos Spotify Vinyl Emülatörü: 26 Adım

Video: Sonos Spotify Vinyl Emülatörü: 26 Adım
Video: Kiosk mode Bruteforce Evasion with Flipper Zero 2024, Kasım
Anonim
Image
Image
Sonos Spotify Vinil Emülatörü
Sonos Spotify Vinil Emülatörü

Lütfen bunun, bu proje için en son talimat dizisi olmadığını unutmayın:

En son talimatlar ve destek için lütfen https://www.hackster.io/mark-hank/sonos-spotify-vinyl-emulator-3be63d adresini ziyaret edin

Plak üzerinde müzik dinlemek harikadır. Fiziksel ve dokunsaldır. Rastgele parçalar yerine bütün bir albümü dinliyorsunuz. Bittiğini anlar ve bilinçli olarak başka bir şey seçersiniz. Tam olarak ne istediğinizi aramak zorunda kalmadan bir koleksiyon oluşturabilir ve ona göz atabilirsiniz.

Ayrıca, özellikle plaklara harcadığınız paranın büyük olasılıkla abone olduğunuz bir akış hizmeti aracılığıyla zaten erişiminiz olan müziğin bir kopyası olduğunu düşündüğünüzde pahalı ve hantaldır.

Bu proje, müziği gerçekten sunmak için Spotify'a güvenirken, vinilin dokunsallığını ve koleksiyon oluşturma özelliklerini kopyalamaya çalışıyor. Raspberry Pi'ye bağlı bir NFC okuyucusuna (her ikisi de gizlenebilir) fiziksel bir nesne yerleştirmek, o etiketle ilişkili albümü çalmaya başlayacaktır.

Raspberry Pi'yi kurmaktan NFC etiketlerini kodlamaya kadar tüm adımlarda size yol göstereceğim. Bu benim ilk Raspberry Pi projem ve ilk Python kodum, bu yüzden bunu geliştirirken her ikisini de kendime öğrettim. Bu nedenle, bu talimatlar kelimenin tam anlamıyla sıfır ön bilgi olduğunu varsayar ve her adımda sizinle konuşur.

Bunu oluşturmak için gerekli bileşenlerin toplam maliyeti yaklaşık 50-60 £.

Ne inşa ettiğini görmeyi çok isterim!

Adım 1: Gerekli Malzemeler 1: Raspberry Pi

Ağınızla arayüz oluşturan arka uç, Sonos ve Spotify, bir Raspberry Pi tarafından çalıştırılacaktır. Aslında bunu başarmak için çok az şeye ihtiyacınız var.

Gerekli:

Raspberry Pi: Raspberry Pi 3 Model B+ kullandım ama aynı zamanda Raspberry Pi 3 Model A+ ile de çalışacak (23 £)

USB güç kaynağı: Ortalıkta bir tane vardı - yoksa resmi bir tane var (9 £)

Mikro SD kart: Amazon'da bu uygulama için bol olan 32 gb'lık bir kartım var (6 £)

Ağınızda çalışan bazı Sonos ekipmanları (buradaysanız zaten buna sahip olduğunuzu tahmin ediyorum…)

Spotify Premium hesabı

Tavsiye edilen:

Pi için bir örnek: 5 £ 'dan başlayan birçok seçenek var

Bir şişe iyi California Zinfandel: Ridge'i tavsiye ederim, ancak diğerleri mevcut

2. Adım: Gerekli Sarf Malzemeleri 2: NFC Okuyucu

Gerekli Sarf Malzemesi 2: NFC Okuyucu
Gerekli Sarf Malzemesi 2: NFC Okuyucu
Gerekli Malzemeler 2: NFC Okuyucu
Gerekli Malzemeler 2: NFC Okuyucu

Bu talimatlar, USB üzerinden bağlanan bir ACR122U NFC okuyucu için oluşturulmuştur.

ACR122U

Bunu Amazon'dan 38 £ karşılığında aldım (çoğunlukla birinci sınıf teslimatı olduğu için) ancak aynı okuyucuyu satın almak için daha ucuz seçenekler var.

ACR122U'nun kafa karıştırıcı bir şekilde bir grup farklı marka adı altında satıldığı görülüyor (benimki güven verici olmaktan uzak "Yosoo" markasıyla geldi), ancak söyleyebileceğim kadarıyla hepsi aynı ve American Card Systems tarafından yapılmış.

Reklamı yapılan ACR122U'yu bulduğum en ucuz fiyat nakliye dahil 21 sterlin, ancak bu doğrudan Çin'den geliyor, bu yüzden bunun için biraz beklemeniz gerekebilir.

Diğer seçenekler

Bu proje, burada desteklenen cihazların bir listesini tutan nfcpy adlı bir python kitaplığına dayanmaktadır:

Teorik olarak bu proje, bu listedekilerden herhangi biriyle çok az entegrasyonla çalışmalıdır.

Cazip bir seçenek, atlama kabloları kullanarak doğrudan Raspberry Pi'nize bağlanması gereken bir kart olan Adafruit PN532'dir. Denedim ve gerçek bir faff buldum. Örneğin lehimleme gerektirir.

Bunun bir avantajı, yüzeysel olarak daha küçük olmasıdır, ancak gerçekte anakart, ACR122U'nun bağırsakları ile hemen hemen aynı boyuttadır. Uygulamanız için gerçekten yer arıyorsanız, ACR122U'nun plastiğini çıkarabilir ve sadece kartı kullanabilirsiniz.

3. Adım: Gerekli Sarf Malzemeleri 3: NFC Etiketleri

Gerekli Malzemeler 3: NFC Etiketleri
Gerekli Malzemeler 3: NFC Etiketleri

Oluşturmak istediğiniz her albüm için NTAG213 standardını karşılayan bir NFC etiketine ihtiyacınız olacak.

Bunları satın alabileceğiniz birçok yer var.

İlk partimi Amazon'dan satın aldım, burada 9 sterline 10'luk bir paket aldım (Prime teslimat dahil)

Burada Birleşik Krallık'ta bulduğum en iyi ürün Seritag - gerçekten çok çeşitli farklı stiller var, web sitelerinde harika tavsiyeler var, tam olarak ne elde ettiğinizi biliyorsunuz (Amazon'da her zaman doğru değil). Minimum sipariş boyutu ve bir ton seçeneği yoktur. Etiketler, etiket başına 27p'den başlar

Adım 4: Raspberry Pi OS'yi bir SD Karta İndirin

Raspberry Pi OS'yi bir SD Karta indirin
Raspberry Pi OS'yi bir SD Karta indirin
Raspberry Pi OS'yi bir SD Karta indirin
Raspberry Pi OS'yi bir SD Karta indirin

PC'nizde veya Mac'inizde Raspberry PI görüntüleyici uygulamasını indirin ve çalıştırın.

Raspberry Pi işletim sistemini kurmak istediğiniz SD kartı takın.

OS SEÇ'e tıklayın ve varsayılan Rasbian'ı seçin.

SD KART SEÇ'e tıklayın ve taktığınız SD kartı seçin.

YAZ üzerine tıklayın. Bu biraz zaman alabilir.

Tamamlandığında, yapmanız gereken SD kartı çıkarmanızı söyleyecektir. Ancak, önce yapmanız gereken birkaç temizlik noktası olduğu için tekrar takın.

Adım 5: Raspberry Pi OS Görüntünüzde SSH'yi Etkinleştirin

Raspberry Pi OS Görüntünüzde SSH'yi Etkinleştirin
Raspberry Pi OS Görüntünüzde SSH'yi Etkinleştirin

İşletim sistemi SD karta yazıldıktan sonra yapmanız gereken birkaç ek görev vardır.

Raspberry Pi'ye bir klavye veya monitör takmadan (aka "başsız") erişmek istiyoruz, bunu yerel ağımız üzerinden PC veya Mac'imizi kullanarak SSH adlı bir protokol üzerinden yapabiliriz. Ancak güvenlik nedeniyle SSH varsayılan olarak devre dışıdır. Etkinleştirmemiz gerekiyor.

Bunu, adında boş bir dosya oluşturarak yapabiliriz:

ssh

az önce oluşturduğumuz SD kartta. Bunun herhangi bir uzantısı olmaması önemlidir (örn..txt). Dosyanın kendisinin herhangi bir içerik içermesi gerekmez - yalnızca varlığı Pi açıldığında SSH'yi etkinleştirir.

6. Adım: İsteğe Bağlı: Raspberry Pi'nizde Wifi Kurun

İsteğe bağlı: Raspberry Pi'nizde Wifi Kurun
İsteğe bağlı: Raspberry Pi'nizde Wifi Kurun
İsteğe bağlı: Raspberry Pi'nizde Wifi Kurun
İsteğe bağlı: Raspberry Pi'nizde Wifi Kurun

Raspberry Pi'nizi ethernet ile yönlendiricinize bağlamayı planlıyorsanız bu adımı atlayabilirsiniz. (Bu karar hakkında çok düşünmek isteyebilirsiniz - wifi üzerinden çalıştırmak, bunu konumlandırma açısından hayatı çok daha kolay hale getirir)

SD kartın kök dizininde wpa_supplicant.conf adlı bir düz metin dosyası oluşturun.

Aşağıdaki metni dosyaya ekleyin:

ülke=gb

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

Ülkeyi uygun şekilde değiştirin (GB İngiltere, ABD ABD, DE Almanya vb.)

Gerçek wifi yönlendirici ayrıntılarınız olacak şekilde oradaki wifi kimlik bilgilerini değiştirin.

Dosya 'yı kaydet.

SD kartı güvenle çıkarın.

7. Adım: Raspberry Pi'nizi Güçlendirin

Raspberry Pi'nizi Güçlendirin
Raspberry Pi'nizi Güçlendirin

Az önce oluşturduğunuz SD kartı Raspberry Pi'nize yerleştirin.

Raspberry Pi'nizi USB kablosuyla güce takın. Açılması için bir dakika bekleyin.

8. Adım: Raspberry Pi'nizin IP Adresini Bulun

Şimdi Raspberry Pi'ye bağlanabilmeniz için IP adresini bulmanız gerekiyor. Bunu iki şekilde yapabilirsiniz:

  • yönlendirici kurulum sayfanız aracılığıyla - eero gibi modern bir yönlendiriciniz varsa, bu çok kolaydır;
  • veya iOS ve Android için kullanılabilen "fing" adlı bir akıllı telefon uygulaması aracılığıyla - indirin, yönlendiricinize bağlanın ve cihazları tarayın - bunlardan birinin adı "Ahududu" olmalıdır - bu ihtiyacınız olan IP adresi olacaktır.

9. Adım: Raspberry Pi Komut Satırınıza Bağlanın

Raspberry Pi Komut Satırınıza Bağlanın
Raspberry Pi Komut Satırınıza Bağlanın

Mac'inizde Terminal'i açın (veya Windows kullanıyorsanız Putty'yi indirip kullanın).

Aşağıdaki komutu girin:

ssh pi@[Pi'nizin IP adresi]

Aldığınız tüm güvenlik uyarılarını kabul edin. Varsayılan pi kullanıcısının parolası istenecektir.

Ahududu

Adım 10: Raspberry Pi OS GUI'sini Kurun

Raspberry Pi OS GUI'sini Ayarlayın
Raspberry Pi OS GUI'sini Ayarlayın
Raspberry Pi OS GUI'sini Ayarlayın
Raspberry Pi OS GUI'sini Ayarlayın

Artık Pi'nize komut satırı üzerinden bağlısınız, bu harika ama aynı zamanda VNC (Sanal Ağ Hesaplama) üzerinden erişeceğimiz Grafik Kullanıcı Arayüzüne erişebilmeniz için ayarlamak istiyorsunuz. Tahmin edilebileceği gibi, bunu da etkinleştirmemiz gerekiyor.

Her şeyden önce, komut satırına aşağıdaki iki komutu (her biri ardından enter ile) girerek Pi yazılımınızın güncel olup olmadığını kontrol edin:

sudo uygun güncelleme

sudo apt realvnc-vnc-server realvnc-vnc-viewer'ı kurun

Ardından, aşağıdakileri girerek Raspberry Pi ayarları menüsünü açın:

sudo raspi yapılandırması

Arabirim Seçenekleri > VNC > Evet'e gidin.

Çıkış tuşuna basarak yapılandırma uygulamasından çıkın ve şunu yazarak Pi'yi komut satırından yeniden başlatın:

sudo yeniden başlatma

Adım 11: Raspberry Pi GUI'nize Bağlanın ve Ayarlayın

Raspberry Pi GUI'nize Bağlanın ve Ayarlayın
Raspberry Pi GUI'nize Bağlanın ve Ayarlayın
Raspberry Pi GUI'nize Bağlanın ve Ayarlayın
Raspberry Pi GUI'nize Bağlanın ve Ayarlayın

VNC Viewer'ı indirin ve açın.

Raspberry Pi'nizin IP adresini yazın ve bağlan'a basın. Sizden aşağıdakileri içeren kullanıcı adı ve şifre isteyecektir:

kullanıcı adı = pi

Şifre = ahududu

Bu sizi GUI'ye kadar başlatmalıdır.

Coğrafyanızı ve klavye düzeninizi onaylamanızı ister.

Daha sonra şifrenizi değiştirmenizi isteyecektir (iyi fikir).

Sizden wifi ayrıntılarınızı ayarlamanızı isteyecek, ancak zaten çalıştıkları için bunu atlayabilirsiniz. (Her ne kadar ethernet üzerinde çalışıyorsanız ve tereddüt ediyorsanız, o zaman şimdi şansınız… ancak IP adresinizin değişebileceğini unutmayın)

Ardından güncellemeleri kontrol edecek, indirecek ve yükleyecektir (biraz zaman alabilir).

Kurulum sihirbazından geçtikten sonra, varsayılan oldukça küçük olduğundan ekran çözünürlüğünü değiştirmenizi tavsiye ederim. Bunu, sol üstteki Raspberry > Tercihler > Raspberry Pi Yapılandırması > Ekran > Çözünürlüğü Ayarla'ya tıklayarak yapabilirsiniz.

Bunun etkili olması için Pi'yi yeniden başlatmanız gerekecek.

12. Adım: Node.js ve NPM'yi yükleyin

Node.js ve NPM'yi yükleyin
Node.js ve NPM'yi yükleyin

Daha sonra ihtiyacımız olan bağımlılıkları kurmak için Raspberry Pi komut satırını yüklemek istiyorsunuz.

Bunu, VNC üzerinden bağlanarak ve komut satırı gibi görünen üst kısımdaki düğmeyi tıklatarak yapabilirsiniz; veya daha önce yaptığımız gibi Terminal ve Putty kullanarak doğrudan Mac/PC'nizden bağlanabilirsiniz. Raspberry Pi ile çalışmaya daha az alışkınsanız, eskisini yapmak daha kolaydır.

(İpucu: Mac/PC'nizden metin kopyalayabilir ve CONTROL-V tuşlarına basarak VNC aracılığıyla Raspberry Pi'ye yapıştırabilirsiniz, ancak Terminal'e yapıştırmaya çalışıyorsanız CONTROL-SHIFT-V tuşlarına basmanız gerekir)

İlk iş, aşağıdaki iki komutu yazarak yazılımınızın güncel olup olmadığını tekrar kontrol etmektir. İndirmeleri ve kurmaları biraz zaman alabilir.

sudo apt-get güncellemesi

sudo apt-get yükseltme

Ardından, node.js ve NPM'yi indirip yüklemek istiyorsunuz (ne oldukları konusunda fazla endişelenmeyin, sonraki görevlerimiz için yararlı ve gereklidirler) aşağıdakini yazarak:

sudo apt-get kurulum düğümü npm

Bunlarla disk alanı doldurmaktan memnun olup olmadığınızı birkaç kez soracak - Y'ye basıyorsunuz

Adım 13: SONOS HTTP API'sini yükleyin

SONOS HTTP API'sini yükleyin
SONOS HTTP API'sini yükleyin
SONOS HTTP API'sini yükleyin
SONOS HTTP API'sini yükleyin

Projemizin arka ucunun temeli, jishi tarafından oluşturulan node-sonos-http-api paketidir. Bununla ilgili her şeyi buradan okuyabilirsiniz:

Bunu, komut satırına aşağıdaki komut girilerek github'dan indireceğiz:

git klonu

ve aşağıdaki komutlarla kuracağız

cd düğüm-sonos-http-api

npm kurulumu --üretim

Daha sonra aşağıdaki komutla çalıştırabiliriz:

npm başlangıç

Bu yapıldıktan sonra, çalıştığını test etmeliyiz.

Öncelikle Raspberry Pi'mizin internet tarayıcısını açın ve https://localhost:5005/ adresine gidin. Sonos logosu ve API'nin nasıl çalıştığına dair bazı belgelerle birlikte güzel bir arayüz açılmalıdır.

Ardından, aynı ağdaki başka bir PC veya Mac'te bir tarayıcı kullanarak ve https://[theIPaddressofyourPi]:5005/ adresine giderek bunun daha geniş ağdan çalıştığını kontrol edelim ve aynı sonucu alıp almadığımızı görelim. Yapmalıyız.

Şimdi aslında sistemin bir şeyler yapmasını sağlayacağız. Bir tarayıcı kullanın ve şuraya gidin:

192.168.4.102:5005/Yemek Odası/playpause

Yukarıdaki IP adresini Raspberry Pi'nizin adresi ve "Yemek Odası" Sonos bölgelerinizin adlarından biriyle değiştirmelisiniz. O odadaki müziği ya çalmalı ya da duraklatmalıdır (müziğin halihazırda çalıyor olup olmamasına bağlı olarak). Açıkçası, bunun çalışması için Sonos kuyruğunda bir şey olması gerekiyor.

İleride, bu eğitim boyunca yukarıdaki IP adresini ve Yemek Odası'nı örnek olarak kullanacağım. Açıkçası, her seferinde bunları IP adresiniz ve bölge adınızla değiştirmelisiniz.

Adım 14: Sonos HTTP API'sini Sürekli Çalıştırın

Sonos HTTP API'sini Sürekli Çalıştırın
Sonos HTTP API'sini Sürekli Çalıştırın

Sonos HTTP API'sinin çalışıyor olması harika, ama ya çökerse? Veya güç kaybettiniz veya Raspberry Pi'nizi yeniden başlatmanız mı gerekiyor?

Etkisini, terminal penceresini kapatarak ve az önce denediğimizi yeniden deneyerek görebilirsiniz. HTTP API, terminal penceresiyle birlikte durduğu için çalışmaz.

Aslında bunun sürekli çalışmasını ve her seferinde başlangıçtan itibaren yapmasını istiyoruz. Bunu PM2 adlı harika bir şeyle yapıyoruz.

Yeni bir terminal penceresinde, aşağıdaki gibi kurun ve çalıştırın:

sudo npm kurulumu -g pm2

pm2 durumu

Şimdi Sonos HTTP API'mizi çalıştırmasını sağlayalım:

cd düğüm-sonos-http-api

pm2 start npm -- pm2 start systemd'yi başlat

Bu son komut, biraz benzeyen bir şey üretir:

sudo env PATH=$PATH:/usr/bin /usr/local/lib/node_modules/pm2/bin/pm2 başlangıç systemd -u pi --hp /home/pi

Pi'nizin ürettiğini kopyalayın (yukarıdaki tam metin değil - sizinki farklı olabilir) ve komut satırına girin. Bu, sisteme her seferinde önyüklemede PM2'yi çalıştırma talimatı verir.

Son olarak şunu girin:

pm2 kaydet

hangi her şeyi aşağı kaydeder.

Şimdi Raspberry Pi'nizi şu komutla yeniden başlatarak bunun işe yarayıp yaramadığını test edin.

sudo yeniden başlatma

Umarım Pi yeniden başlatıldığında, PM2'yi ve sırayla Sonos HTTP API'sini de başlatır. Bunu, aynı ağdaki bir tarayıcıyı kullanarak daha önce kullandığımız adrese giderek kontrol edebilir ve Sonos logosunu ve talimatlarını görebilirsiniz:

192.168.4.102:5005/

benim için olan, ancak sizinki IP adresine bağlı olacaktır.

Adım 15: Biraz Spotify Çalın

Servisin Spotify'a erişebildiğini kontrol edelim.

Bir tarayıcı açın ve aşağıdaki adrese gidin (açıkça IP adresiniz ve oda adınızla değiştirin):

192.168.4.102:5005/Yemek Odası/spotify/şimdi/spotify/spotify:albüm:2dfTV7CktUEBkZCHiB7VQB

Biraz John Grant duymalısın. Eğlence.

Adım 16: Spotify URI'lerini Bulun

Spotify URI'lerini bulun
Spotify URI'lerini bulun

Garip, biliyorum ama herkes John Grant'i sevmiyor. Belki başka bir şey dinlemek istersin?

Spotify bağlantılarını masaüstünden, web'den veya mobil uygulamalardan alabilirsiniz, ancak URI'yi tam olarak istediğiniz biçimde sunduğu için Masaüstü açık ara en kolayıdır, o yüzden bununla başlayın.

Spotify masaüstü uygulamasında dinlemek istediğiniz albüme gidin (belki Beyonce'den Lemonade?)

Kalp düğmesinin yanındaki üç küçük noktaya tıklayın.

Paylaşmak için menüye gidin ve Spotify URI'sini Kopyala'yı seçin

Bu gibi bir şey kopyalayacaktır

spotify:albüm:7dK54iZuOxXFarGhXwEXfF

Beyonce'nin Lemondade albümünün Spotify URI'si olan panonuza.

Tarayıcınızı tekrar çalıştırın ve aşağıdaki adrese gidin (belli ki IP adresini ve odayı değiştirip yeni kopyaladığınız URI'ye yapıştırın):

192.168.4.102:5005/Yemek Odası/spotify/now/[Oynamak istediğiniz Spotify URI'sini]

Seçiminizin çaldığını duymalısınız.

Web uygulamasını kullanmayı tercih ederseniz, size bir web bağlantısı verecektir (aşağıdaki gibi bir şey):

open.spotify.com/album/7dK54iZuOxXFarGhXwEXfF

çalışması için bunu yukarıdaki spotify:album:code formatına dönüştürmeniz gerekir.

Adım 17: Spotify URI'leri Üzerine Bir Not

Spotify URI'leri ve düğüm-sonos-http-api ile arayüz oluşturma biçimleri çoğunlukla sezgiseldir.

Doğrudan albümlere, parçalara ve çalma listelerine bağlanabilirsiniz.

Bir albüm URI'si şuna benzer:

spotify:albüm:6agCM9GJcebduMddgFmgsO

Bir parça URI'si şuna benzer:

spotify:track:4fNDKbaeEjk2P4GrRE1UbW

Çalma listeleri biraz farklı çalışır. URI'yi Spotify'dan kopyaladığınızda şöyle görünecektir:

spotify:playlist:5huIma0YU4iusLcT2reVEU

Ancak, gerçekten API üzerinde çalışmasını sağlamak için yukarıdakilerin başına spotify:user: eklemeniz gerekir. Bu, herkese açık çalma listeleri için bile geçerlidir ve evet, iki kez spotify diyorsunuz demektir.

Çok açık olmak gerekirse, kullanıcının belirli bir kullanıcının adı olması gerekmez, yalnızca metin kullanıcısı olması gerekir. Bu nedenle, yukarıdaki oynatma listesinin çalışmasını sağlamak için doğru URI şöyle olacaktır:

spotify:user:spotify:playlist:5huIma0YU4iusLcT2reVEU

Adım 18: HTTP İsteklerini Göndermek için Raspberry Pi'yi Ayarlayın

HTTP İsteklerini Göndermek için Raspberry Pi'yi Ayarlayın
HTTP İsteklerini Göndermek için Raspberry Pi'yi Ayarlayın

HTTP isteklerini bir web tarayıcısına manuel olarak yazmak yerine, Raspberry Pi'nin belirli bir uyaranla sunulduğunda (NFC okuyucu tetiklendiğinde) bunu yapması için otomatikleştirmek istiyoruz.

Raspberry Pi'mizin bunu yapmasına izin vermek için request adında bir kütüphane kullanacağız. Kurulduğunu kontrol edelim.

Pi'nizdeki terminali açın ve aşağıdakini yazın:

sudo pip yükleme istekleri

Muhtemelen geri gelir ve zaten kurulu olduğunu söyler, bu durumda harika. Değilse, onu yükleyecektir.

19. Adım: Spotify Verileriyle NFCC Etiket(ler)i Oluşturun

Spotify Verileri ile NFCC Etiket(ler)i Oluşturun
Spotify Verileri ile NFCC Etiket(ler)i Oluşturun
Spotify Verileri ile NFCC Etiket(ler)i Oluşturun
Spotify Verileri ile NFCC Etiket(ler)i Oluşturun
Spotify Verileri ile NFCC Etiket(ler)i Oluşturun
Spotify Verileri ile NFCC Etiket(ler)i Oluşturun
Spotify Verileri ile NFCC Etiket(ler)i Oluşturun
Spotify Verileri ile NFCC Etiket(ler)i Oluşturun

Şimdi bir NFC etiketine bir Spotify albüm URI'si yazmak istiyoruz. Bu etiketlerin her biri, Raspberry Pi'ye belirli bir albümü çalmasını söylemek için kullanacağınız şeydir.

Bir Android telefon kullanarak bir NFC etiketine yazabilirsiniz, ancak bunu bir mac veya PC aracılığıyla yapmayı en kolay buluyorum, çünkü o zaman Spotify masaüstü uygulamasından Spotify URI'lerini almanın en kolay yolu bu.

USB NFC okuyucunuzu PC'nize veya Mac'inize takın. American Card Systems tarafından ACR122U kullanıyorum.

NFC Araçlarını PC'nize veya Mac'inize indirin. Kurun ve açın.

Bazen okuyucuya bağlanmak biraz yavaş olabiliyor ve okuyucuyu hiç bulamıyor diyebilir. NFC araçlarında Diğer sekmesine gidin ve Connected NFC Reader düğmesine sık sık tıklayın. Okuyucuyu bulmadan önce birkaç kez fişini çekip yeniden takmanız gerekebilir.

Sonunda size bir listeden okuyucunuzu seçme ve bağlı olduğunu söyleme seçeneği sunacaktır. "Bir NFC etiketi bekleniyor" dışında hiçbir şey göstermeyecek olan Bilgi sekmesine gidin.

Boş bir NFC etiketi alın. Okuyucuya koyun ve orada bırakın. NFC Araçları, etiketle ilgili bilgileri görüntüler.

Yaz sekmesine gidin ve Kayıt ekle > Metin'i tıklayın. (URL veya URI seçmemeye dikkat edin - Bir URI kopyaladığınız için cazip olduğunu biliyorum, ancak metin istiyorsunuz)

Daha önce kullandığımız yöntemi kullanarak Spotify'dan bir URI alın. Kolay bir örnek istiyorsanız, aşağıdakiler daha önceki John Grant albümümüzdür.

spotify:albüm:2dfTV7CktUEBkZCHiB7VQB

Tamam'ı ve ardından Yaz'ı tıklayın (bu son adımı unutmayın - siz buna tıklayana kadar aslında yazmaz). Size etiketi başarıyla yazdığını söyleyecektir.

Etiketi okuyucudan çıkarın

Adım 20: Raspberry Pi'de NFC Okuyucuyu Kurun

Raspberry Pi'de NFC Okuyucuyu Kurun
Raspberry Pi'de NFC Okuyucuyu Kurun

NFC okuyucunuzu Raspberry Pi'nizdeki USB bağlantı noktalarından birine takın.

NFC okuyucu ile iletişim kurmak için nfcpy Python kitaplığını kullanacağız. Pi komut satırınıza aşağıdakini yazarak kurun:

pip kurulumu -U nfcpy

Ardından, aşağıdakileri yazarak bu kitaplığın NFC okuyucumuzu görüp göremediğini kontrol edebiliriz:

piton -m nfc

İşe yaradıysa, aşağıdakileri göreceksiniz:

Bu, Linux-4.19.97-v7+-armv7l-with-debian-10.3 üzerinde Python 2.7.16'da çalıştırılan nfcpy'nin 1.0.3 sürümüdür.

Şimdi sisteminizde temassız cihazlar arıyorum ** usb:001:011 adresinde ACS ACR122U PN532v1.6 bulundu Seri cihazları denemiyorum çünkü bana söylemediniz -- '--search-tty' seçeneğini ekleyin bakmamı sağlamak için - ama bunun diğer seri geliştiricileri bozabileceğine dikkat edin

Ancak, okuyucunun bulunduğunu, ancak kullanıcınızın (pi) buna erişim izninin olmadığını belirten bir hata mesajı alma ihtimaliniz yüksektir. Bu hata mesajını alırsanız, aşağıdaki gibi görünen iki komut yazarak sorunun nasıl çözüleceğini de açıklayacaktır:

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

sudo udevadm kontrolü -R

Size verdiği komutların her ikisini de kopyalayıp yürütün (sizinki farklı olabileceğinden tam olarak yukarıdakileri değil), ardından NFC okuyucunuzu USB bağlantı noktasından çıkarın ve yeniden takın.

Kontrol komutunu tekrar deneyin:

piton -m nfc

Bu sefer hata mesajları olmadan bulduğunu söylemeli.

Adım 21: Vinylemulator Python Komut Dosyalarını Kurun

Artık tüm yapı taşlarına sahibiz:

  • Raspberry Pi'miz NFC girişini dinleyebilir
  • Raspberry Pi'miz, bir Spotify URI'si verildiğinde Sonos'a Spotify çalma listelerini çalmasını söyleyebilir
  • Üzerinde Spotify URI'si depolanmış bir NFC etiketine sahibiz

Şimdi tüm bu yapı taşlarını faydalı bir şeye çekmemiz gerekiyor. Bu, yazdığım (önceki NFC/Spotify/Sonos projelerinden çok yardım alarak) vinylemulator adı verilen kısa bir python betiği aracılığıyla yapılır.

Dosyaların kaynak kodunu github'da görebilirsiniz:

Bunu Raspberry Pi'mize kurmak için github'dan aşağıdaki komutla klonlamamız gerekiyor:

git klonu

Adım 22: Vinylemulator'ı Özelleştirin

Vinylemulator'ı özelleştirin
Vinylemulator'ı özelleştirin
Vinylemulator'ı özelleştirin
Vinylemulator'ı özelleştirin

Raspberry Pi dosya yöneticisini açın ve ana sayfa > pi > vinylemulator'a gidin

usersettings.py dosyasını açın

Bu dosyadaki satırlardan biri şunları okuyacaktır:

sonosroom="Yemek Odası"

"Yemek Odası"nı, kontrol etmek istediğiniz Sonos odası adı olarak değiştirin.

Bu dosyada ayrıca sonos-http-api'nin IP adresini özelleştirmenize izin veren bir ayar vardır. Bunu "localhost" olarak değiştirmeden bırakabilmelisiniz, bu da üzerinde çalıştığı Raspberry Pi'yi kullanacağı anlamına gelir.

Dosyayı kaydedin ve kapatın.

Adım 23: Vinylemulator'ı Test Edin

Vinil emülatörünü test edin
Vinil emülatörünü test edin
Vinil emülatörünü test edin
Vinil emülatörünü test edin

Raspberry Pi komut isteminize gidin.

Aşağıdaki komutu girin:

python vinylemulator/readnfc.py

Her şey yolundaysa, bu komut dosyasını yükleyecek ve okuyucunun hazır olduğunu söyleyecektir. Okuyucunun üzerindeki ışık yeşile dönmelidir.

NFC etiketini bip sesi çıkaracak olan okuyucuya koyun.

Terminal, NFC etiketinden ne okuduğunu gösterecek ve gönderdiği HTTP istek adresini gösterecektir. Seçtiğiniz albüm, Sonos hoparlörlerinizden çalmalıdır.

Bu komut dosyası, siz terminal penceresini kapatana kadar çalışmaya devam edecektir. Farklı albüm NFC etiketlerine dokunabilirsiniz ve o albüme geçecektir.

Adım 24: Vinylemulator'ın Sürekli Olarak ve Başlangıçta Çalıştırılmasını Sağlayın

Tıpkı sonos-http-api gibi, vinylemülatör'ün sadece çağırdığımızda değil, her zaman çalışmasını istiyoruz. Bunu tekrar yapmak için pm2 kullanabiliriz.

İlk önce, çalıştırdığınız herhangi bir vinylemülatör örneğini terminal pencerelerini kapatarak kapatın.

Ardından yeni bir terminal penceresi açın ve aşağıdaki iki komutu yazın:

pm2 vinylemulator/readnfc.py'yi başlat

pm2 kaydet

Raspberry Pi'yi yeniden başlatarak bunun işe yarayıp yaramadığını kontrol edelim. (Sudo restart yazabilir veya bunu Raspberry menüsünden farenizle yapabilirsiniz.

Pi'nin yeniden başlamasını bekleyin ve okuyucudaki bir NFC etiketine dokunarak çalıştığını görün. Müzik almalısın.

Adım 25: Kendinizi Tebrik Edin

Artık her şey işlevsel. Raspberry Pi'yi yerleştirmeyi planladığınız yere taşıyabilirsiniz. Yeniden başlatacak ve her taktığınızda ayarladığınız şekilde çalışacaktır.

Sıradaki görevleriniz eğlenceli olanlar: her şeyi güzelleştirmek.

Adım 26: Güzelleştirin - Okuyucunuzu Gizleyin

Güzelleştirin - Okuyucunuzu Gizleyin
Güzelleştirin - Okuyucunuzu Gizleyin
Güzelleştirin - Okuyucunuzu Gizleyin
Güzelleştirin - Okuyucunuzu Gizleyin
Güzelleştirin - Okuyucunuzu Gizleyin
Güzelleştirin - Okuyucunuzu Gizleyin
Güzelleştirin - Okuyucunuzu Gizleyin
Güzelleştirin - Okuyucunuzu Gizleyin

Onu güzelleştirmenin ilk kısmı, kötü beyaz plastik NFC okuyucuyu bir yere saklamaktır.

Sonos Play:5'imin yanındaki bir tezgahın alt tarafına bantlamak için kesinlikle düşük teknolojili bir seçenekle gittim. Tezgahın ahşabı NFC'nin geçebileceği kadar ince olduğundan, sihirli ve görünmez bir noktaya bir NFC etiketine dokunarak müzik çalıyorum.

Önerilen: