Mündəricat:

Sonos Spotify Vinil Emulator: 26 addım
Sonos Spotify Vinil Emulator: 26 addım

Video: Sonos Spotify Vinil Emulator: 26 addım

Video: Sonos Spotify Vinil Emulator: 26 addım
Video: Vinyl Emulator 2024, Iyul
Anonim
Image
Image
Sonos Spotify Vinil Emulatoru
Sonos Spotify Vinil Emulatoru

Unutmayın ki, bu layihə üçün ən son təlimat deyil:

Ən son təlimat və dəstək üçün https://www.hackster.io/mark-hank/sonos-spotify-vinyl-emulator-3be63d ünvanına daxil olun

Vinil üzərində musiqi dinləmək çox gözəldir. Fiziki və toxunma qabiliyyətlidir. Təsadüfi parçaları deyil, bütöv bir albomu dinləyirsiniz. İş bitdikdə fərqinə varırsınız və şüurlu olaraq başqa bir şey seçirsiniz. İstədiyiniz şeyi axtarmağa yox, bir kolleksiya yarada və ona baxa bilərsiniz.

Xüsusilə vinilə xərclədiyiniz hər hansı bir pulun çox güman ki, abunə olduğunuz bir axın xidməti vasitəsi ilə əldə edə biləcəyiniz bir musiqi dublikatı olduğunu düşündüyünüz zaman həm bahalı, həm də həcmlidir.

Bu layihə, əslində musiqini çatdırmaq üçün Spotify-a güvənərkən vinilin toxunma qabiliyyətini və kolleksiya qurma aspektlərini təkrarlamağa çalışır. Raspberry Pi -yə (hər ikisi də gizlənə bilər) bağlanmış NFC oxuyucusuna fiziki bir obyekt yerləşdirmək həmin etiketlə əlaqəli albomu çalmağa başlayacaq.

Raspberry Pi qurmağından NFC etiketlərinin kodlaşdırılmasına qədər bütün addımları keçəcəyəm. Bu mənim ilk Raspberry Pi layihəm və ilk Python kodumdur, buna görə də bunu inkişaf etdirərkən həm özümə öyrətdim. Bu şəkildə, bu təlimatlar sözün əsl mənasında sıfırdan əvvəlki bilikləri qəbul edir və hər addımda sizə danışır.

Bunu hazırlamaq üçün əsas komponentlərin ümumi dəyəri təxminən 50-60 funt sterlinqdir.

Nə tikdiyinizi görmək istərdim!

Addım 1: Lazımi Təchizat 1: Raspberry Pi

Sonos və Spotify şəbəkənizlə əlaqəli arxa ucu bir Raspberry Pi tərəfindən idarə olunacaq. Əslində bunu davam etdirmək üçün çox az şey lazımdır.

Əsas:

Raspberry Pi: Mən Raspberry Pi 3 Model B+ istifadə etdim, amma eyni zamanda Raspberry Pi 3 Model A+ ilə işləyəcək (23 funt)

USB enerji təchizatı: Ətrafımda yatan biri vardı - etməsəniz rəsmi bir var (9 funt)

Micro SD kart: Amazonda bu tətbiq üçün kifayət qədər olan 32 gb yaddaşım var (6 funt sterlinq)

Şəbəkənizdə işləyən bəzi Sonos avadanlıqları (təxmin edirəm ki, buradasınızsa …

Spotify Premium hesabı

Tövsiyə:

Pi üçün bir dava: 5 funtdan başlayaraq bir çox variant var

Bir şüşə Kaliforniya Zinfandel: Ridge'i tövsiyə edirəm, amma başqaları mövcuddur

Addım 2: Lazımi Təchizatlar 2: NFC Reader

Lazımi Təchizat 2: NFC Reader
Lazımi Təchizat 2: NFC Reader
Lazımi Təchizat 2: NFC Reader
Lazımi Təchizat 2: NFC Reader

Bu təlimatlar USB vasitəsilə bağlanan ACR122U NFC oxuyucusu üçün hazırlanmışdır.

ACR122U

Mən bunu Amazon -dan 38 funt sterlinqə aldım (əsasən çatdırılma olduğu üçün), amma eyni oxucunu almaq üçün daha ucuz variantlar var.

Çaşqınlıq yaradan ACR122U, bir çox fərqli marka adı altında satılır (mənimki "Yosoo" inandırıcı olmayan bir marka adı ilə gəlir), amma deyə bildiyimə görə hamısı eynidir və Amerika Kart Sistemləri tərəfindən hazırlanmışdır.

ACR122U reklamını tapdığım ən ucuz qiymət, çatdırılma daxil olmaqla 21 funtdur, lakin bu birbaşa Çindən gəlir, buna görə bir az gözləmək lazım ola bilər.

Digər variantlar

Bu layihə burada dəstəklənən cihazların siyahısını saxlayan nfcpy adlı bir python kitabxanasına əsaslanır:

Teorik olaraq bu layihə, az inteqrasiya ilə siyahıda olanlardan hər hansı biri ilə işləməlidir.

Cazibədar bir seçim, tullanan kabellərdən istifadə edərək birbaşa Raspberry Pi -yə bağlanmalı olan bir lövhə olan Adafruit PN532 -dir. Mən sınadım və əsl zövq tapdım. Məsələn, lehimləmə tələb olunur.

Bunun bir üstünlüyü, səthi olaraq daha kiçik olmasıdır, amma əslində lövhə ACR122U -nun bağırsaqları ilə eyni ölçüdədir. Tətbiqiniz üçün həqiqətən yer ayırırsınızsa, plastikdən ACR122U çıxarın və lövhədən istifadə edin.

Addım 3: Lazımi Təchizatlar 3: NFC Etiketləri

Lazımi Təchizat 3: NFC Etiketləri
Lazımi Təchizat 3: NFC Etiketləri

Yaratmaq istədiyiniz hər albom üçün NTAG213 standartına cavab verən bir NFC etiketinə ehtiyacınız olacaq.

Bunları almaq üçün bir çox yer var.

İlk partiyamı Amazondan aldım, burada 10 funt sterlinqə 9 sterlinqə aldım (Prime çatdırılması daxil olmaqla)

İngiltərədə burada tapdığım ən yaxşı şey Seritagdır - həqiqətən fərqli üslub seçimlərinə malikdirlər, veb saytlarında əla məsləhətlər alırsınız, nə əldə etdiyinizi dəqiq bilirsiniz (Amazonda həmişə doğru deyil). Minimum sifariş ölçüsü və bir çox variantları yoxdur. Etiketlər etiket başına 27p -dən başlayır

Addım 4: Raspberry Pi OS -ni SD Karta yükləyin

Raspberry Pi OS -ni SD karta yükləyin
Raspberry Pi OS -ni SD karta yükləyin
Raspberry Pi OS -ni SD karta yükləyin
Raspberry Pi OS -ni SD karta yükləyin

PC və ya Mac -da Raspberry PI görüntü cihazı tətbiqini yükləyin və işlədin.

Raspberry Pi əməliyyat sistemini qurmaq istədiyiniz SD kartı daxil edin.

OS SEÇİN düyməsini basın və standart Rasbian seçin.

SD KART SEÇİN düyməsini vurun və qoşduğunuz SD kartı seçin.

YAZIN düyməsini basın. Bu bir müddət çəkə bilər.

Bitirdikdən sonra, etməli olduğunuz SD kartı çıxarmağınızı söyləyəcək. Ancaq sonra yenidən bağlayın, çünki əvvəlcə ev işlərinin aparılması üçün bir neçə nöqtə var.

Addım 5: Raspberry Pi OS Görüntünüzdə SSH aktivləşdirin

Raspberry Pi OS Şəkilinizdə SSH aktiv edin
Raspberry Pi OS Şəkilinizdə SSH aktiv edin

Əməliyyat sistemi SD karta yazıldıqdan sonra etməli olduğunuz bir neçə əlavə vəzifə var.

SSH adlı bir protokol üzərindən PC və ya Mac istifadə edərək yerli şəbəkəmiz üzərindən edə biləcəyimiz bir klaviatura və ya monitoru (aka "başsız") bağlamadan Raspberry Pi -yə daxil olmaq istəyirik. Bununla birlikdə, təhlükəsizlik səbəbindən SSH standart olaraq əlil olur. Bunu aktivləşdirməliyik.

Bunu boş bir fayl yaradaraq edə bilərik:

ssh

yeni yaratdığımız SD kartda. Bunun hər hansı bir uzantının olmaması vacibdir (məsələn.txt). Faylın heç bir məzmun ehtiva etməsinə ehtiyac yoxdur - Pi açıldıqda onun mövcudluğu SSH -ni təmin edəcək.

Addım 6: İsteğe bağlı: Raspberry Pi -də WiFi qurun

İsteğe bağlı: Raspberry Pi -də Wifi qurun
İsteğe bağlı: Raspberry Pi -də Wifi qurun
İsteğe bağlı: Raspberry Pi -də Wifi qurun
İsteğe bağlı: Raspberry Pi -də Wifi qurun

Raspberry Pi -ni marşrutlaşdırıcınıza ethernet ilə bağlamağı planlaşdırırsınızsa bu addımı atlaya bilərsiniz. (Bu qərar haqqında çox düşünmək istəyə bilsəniz də - wifi üzərindən işləməsi, bu işi yerləşdirmək baxımından həyatı çox asanlaşdırır)

SD kartın kök qovluğunda wpa_supplicant.conf adlı düz mətn faylı yaradın.

Aşağıdakı mətni fayla daxil edin:

ölkə = gb

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

Ölkəni uyğun olaraq dəyişdirin (GB İngiltərə, ABŞ ABŞ, DE Almaniya və s.)

Həqiqi wifi yönlendiricinizin təfərrüatları olmaq üçün oradakı WiFi məlumatlarını dəyişdirin.

Faylı qeyd edin.

SD kartı etibarlı şəkildə çıxarın.

Addım 7: Raspberry Pi -ni gücləndirin

Raspberry Pi -ni gücləndirin
Raspberry Pi -ni gücləndirin

Yeni yaratdığınız SD kartı Raspberry Pi -yə daxil edin.

Raspberry Pi -ni USB kabel vasitəsilə gücə qoşun. Yüklənməsini bir dəqiqə gözləyin.

Addım 8: Raspberry Pi -nin IP ünvanını tapın

İndi Raspberry Pi -nin IP ünvanını tapmalısınız, ona qoşula bilərsiniz. Bunu iki şəkildə edə bilərsiniz:

  • yönlendiricinizin quraşdırma səhifəsi vasitəsilə - eero kimi müasir bir yönlendiriciniz varsa, bu çox asandır;
  • və ya iOS və Android üçün "barmaq" adlı bir smartfon tətbiqi vasitəsi ilə - yükləyin, yönlendiricinizə qoşulun və cihazları tarayın - bunlardan birinə "Moruq" adı verilməlidir - bu sizə lazım olan IP ünvanı olacaq.

Addım 9: Raspberry Pi əmr satırınıza qoşulun

Raspberry Pi əmr satırınıza qoşulun
Raspberry Pi əmr satırınıza qoşulun

Mac -da Terminalı açın (və ya Windows istifadə edirsinizsə, Putty proqramını yükləyin və istifadə edin).

Aşağıdakı əmri daxil edin:

ssh pi@[Pi -nin IP ünvanı]

Aldığınız hər hansı bir təhlükəsizlik xəbərdarlığını qəbul edin. Varsayılan pi istifadəçisi üçün parol istənəcəkdir

moruq

Addım 10: Raspberry Pi OS GUI qurun

Raspberry Pi OS GUI qurun
Raspberry Pi OS GUI qurun
Raspberry Pi OS GUI qurun
Raspberry Pi OS GUI qurun

İndi Pi -yə komanda xətti ilə qoşulursunuz, bu da əladır, ancaq VNC (Virtual Şəbəkə Hesablama) vasitəsi ilə əldə edəcəyimiz Qrafik İstifadəçi İnterfeysinə daxil olmaq üçün onu da qurmaq istəyirsiniz. Proqnozlaşdırıldığı kimi, bunu da aktivləşdirməliyik.

Əvvəlcə əmr satırına aşağıdakı iki əmri (hər birini daxil edərək daxil edin) daxil edərək Pi proqram təminatının yeniləndiyini yoxlayın:

sudo apt yeniləmə

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

Sonra daxil edərək Raspberry Pi parametrləri menyusunu açın:

sudo raspi-config

Arayüz Seçimləri> VNC> Bəli bölməsinə keçin.

Qaçış düyməsini basaraq konfiqurasiya tətbiqindən çıxın və yazaraq əmr satırından Pi -ni yenidən başladın:

sudo yenidən başladın

Addım 11: Raspberry Pi GUI -yə qoşulun və qurun

Raspberry Pi GUI -yə qoşulun və qurun
Raspberry Pi GUI -yə qoşulun və qurun
Raspberry Pi GUI -yə qoşulun və qurun
Raspberry Pi GUI -yə qoşulun və qurun

VNC Viewer proqramını yükləyin və açın.

Raspberry Pi üçün IP ünvanını yazın və "Bağlan" düyməsini basın. İstifadəçi adı və şifrənizi soruşacaq:

İstifadəçi adı = pi

Şifrə = moruq

Bu sizi GUI -yə yükləməlidir.

Coğrafiyanızı və klaviatura düzəninizi təsdiqləməyinizi istəyəcək.

Daha sonra parolunuzu dəyişdirməyinizi istəyəcək (yaxşı fikir).

Wi -Fi məlumatlarınızı təyin etməyinizi xahiş edəcək, ancaq artıq işlədikləri üçün bunu atlaya bilərsiniz. (Ethernetdə işləyirsinizsə və ikinci düşüncələriniz varsa, indi şansınızdır … ancaq IP ünvanınızın dəyişə biləcəyini unutmayın)

Daha sonra yeniləmələri yoxlayacaq, yükləyəcək və quraşdıracaq (bir müddət çəkə bilər).

Quraşdırma sihirbazından keçdikdən sonra, ekran qətnaməsini dəyişdirməyi məsləhət görürəm, çünki default olduqca kiçikdir. Bunu etmək üçün yuxarı sol tərəfdəki Raspberry> Tercihlər> Raspberry Pi Konfiqurasiyası> Ekran> Çözünürlüyü Ayarla seçimlərini edə bilərsiniz.

Bunun qüvvəyə minməsi üçün Pi -ni yenidən başlatmalısınız.

Addım 12: Node.js və NPM qurun

Node.js və NPM qurun
Node.js və NPM qurun

Sonra ehtiyac duyduğumuz asılılıqları qurmaq üçün Raspberry Pi əmr satırını yükləmək istəyirsiniz.

Bunu ya VNC vasitəsi ilə bağlayaraq, həm də yuxarıdakı əmr satırına bənzəyən düyməni basaraq edə bilərsiniz; və ya əvvəllər etdiyimiz kimi Terminal və Putty istifadə edərək birbaşa Mac/PC -dən qoşula bilərsiniz. Raspberry Pi ilə işləməyə daha az öyrəşmisinizsə, əvvəlkisini etmək daha asandır.

(İpucu: CONTROL-V düyməsini basaraq mətni Mac/PC-dən kopyalayıb VNC vasitəsi ilə Raspberry Pi-yə yapışdıra bilərsiniz, ancaq Terminala yapışdırmağa çalışırsınızsa, CONTROL-SHIFT-V düyməsini basmalısınız)

İlk iş, aşağıdakı iki əmri yazaraq proqramınızın yeniləndiyini yenidən yoxlamaqdır. Yükləmək və quraşdırmaq bir müddət çəkə bilər.

sudo apt-get yeniləməsi

sudo apt-get yeniləmə

Aşağıdakıları yazaraq node.js və NPM -ni yükləmək və qurmaq istəyirsiniz (nə olduqları barədə çox narahat olmayın, bunlar növbəti vəzifələrimiz üçün faydalıdır və zəruridir):

sudo apt-get nodejs npm quraşdırın

Bunlarla diskdə yer tutmaqdan xoşbəxt olub -olmadığınızı bir neçə dəfə soruşacaq - Y düyməsini sıxın

Addım 13: SONOS HTTP API -ni quraşdırın

SONOS HTTP API -ni quraşdırın
SONOS HTTP API -ni quraşdırın
SONOS HTTP API -ni quraşdırın
SONOS HTTP API -ni quraşdırın

Layihəmizin arxa tərəfinin əsası, jishi tərəfindən yaradılan node-sonos-http-api paketidir. Hər şeyi burada oxuya bilərsiniz:

Bunu github -dan əmr satırına daxil edilmiş aşağıdakı əmrlə yükləyəcəyik:

git klonu

və aşağıdakı əmrlərlə quraşdıracağıq

cd node-sonos-http-api

npm quraşdırma -istehsal

Daha sonra aşağıdakı əmrlə işlədə bilərik:

npm başlanğıcı

Bunu etdikdən sonra bunun işlədiyini yoxlamalıyıq.

Əvvəlcə Raspberry Pi -də internet brauzerini açın və https:// localhost: 5005/ünvanına gedin. Sonos loqotipi və API -nin necə işlədiyinə dair bəzi sənədlərlə gözəl bir interfeys açılmalıdır.

Sonra, eyni şəbəkədəki başqa bir PC və ya Mac -da bir brauzerdən istifadə edərək və https:// [theIPaddressofyourPi]: 5005/ünvanına gedərək və eyni nəticəni əldə edib -etmədiyimizi görərək bunun daha geniş şəbəkədən işlədiyini yoxlayaq. Etməliyik.

İndi əslində sistemi bir şey etməyə məcbur edəcəyik. Brauzerdən istifadə edin və bura gedin:

192.168.4.102:5005/ Yemək otağı/pauza

Yuxarıdakı IP ünvanını Raspberry Pi ünvanınızla və "Yemək otağı" ilə Sonos zonalarınızın adlarından biri ilə əvəz etməlisiniz. Bu otaqdakı musiqini ya çalmalı, ya da fasilə verməlidir (musiqinin artıq çalınmasından asılı olaraq). Aydındır ki, işləmək üçün Sonos növbəsində bir şey olmalıdır.

Gələcəkdə, yuxarıdakı IP ünvanını və Yemək otağını bu dərsdə nümunə olaraq istifadə edəcəyəm. Aydındır ki, hər dəfə onları IP ünvanınız və bölgə adınızla əvəz etməlisiniz.

Addım 14: Sonos HTTP API -ni Daimi Çalışdırın

Sonos HTTP API -ni Daimi Çalışdırın
Sonos HTTP API -ni Daimi Çalışdırın

Sonos HTTP API -ni işə salmağımız çox gözəldir, amma çökərsə nə olar? Yoxsa gücünüzü itirirsiniz və ya Raspberry Pi -ni yenidən başlatmalısınız?

Terminal pəncərəsini bağlayaraq cəhd etdiyimizi yenidən sınayaraq təsirini görə bilərsiniz. HTTP API terminal pəncərəsi ilə birlikdə dayandığı üçün işləməyəcək.

Əslində bunun davamlı olaraq davam etməsini və hər dəfə başlanğıcdan bunu etməsini istəyirik. Bunu PM2 adlı sərin bir şeylə edirik.

Yeni bir terminal pəncərəsində aşağıdakı kimi quraşdırın və işləyin:

sudo npm quraşdırma -g pm2

pm2 vəziyyəti

İndi Sonos HTTP API -ni işə salaq:

cd node-sonos-http-api

pm2 start npm - pm2 başlanğıc sistemi d

Bu son əmr bir az bənzəyən bir şey yaradır:

sudo env PATH = $ PATH:/usr/bin/usr/local/lib/node_modules/pm2/bin/pm2 başlanğıc sistemid -u pi --hp/home/pi

Pi'nizin yaratdıqlarını kopyalayın (yuxarıdakı mətni deyil - sizinki fərqli ola bilər) və əmr satırına daxil edin. Bu sistemə hər dəfə açılışda PM2 -ni işə salmağı əmr edir.

Sonda daxil edin:

pm2 saxla

bu da hər şeyi aşağı salır.

İndi bunun Raspberry Pi -ni əmrlə yenidən başlataraq işlədiyini yoxlayın

sudo yenidən başladın

Ümid edirik ki, Pi yenidən başladıqdan sonra PM2 -ni və öz növbəsində Sonos HTTP API -ni işə salacaq. Bunu eyni şəbəkədəki bir brauzerdən istifadə edərək əvvəl istifadə etdiyimiz ünvana gedərək yoxlaya bilərsiniz və Sonos loqotipini və təlimatlarını görə bilərsiniz:

192.168.4.102:5005/

mənim üçün olan şeydir, ancaq sizin IP ünvanınızdan asılı olacaq.

Addım 15: Bəzi Spotify oynayın

Xidmətin Spotify -a daxil olub olmadığını yoxlayaq.

Bir brauzer açın və aşağıdakı ünvana gedin (açıq şəkildə IP ünvanınızı və otaq adınızı əvəz edin):

192.168.4.102:5005/ Yemək otağı/spotify/now/spotify/spotify: albom: 2dfTV7CktUEBkZCHiB7VQB

Bir az John Grant eşitməlidir. Zövq alın.

Addım 16: Spotify URI -lərini tapın

Spotify URI -lərini tapın
Spotify URI -lərini tapın

Qəribədir, bilirəm, amma hamı Con Qrantı bəyənmir. Bəlkə başqa bir şey dinləmək istəyirsən?

Spotify bağlantılarını masaüstündən, vebdən və ya mobil tətbiqlərdən əldə edə bilərsiniz, ancaq URI -ni tam olaraq istədiyiniz formatda təqdim etdiyinə görə Masaüstü ən asandır.

Spotify masa üstü tətbiqetməsində dinləmək istədiyiniz alboma gedin (bəlkə də Limonade by Beyonce?)

Ürək düyməsinin yanındakı üç kiçik nöqtəni vurun.

Paylaşmaq üçün menyudan aşağı gedin və Spotify URI -ni kopyalayın

Bu kimi bir şeyi kopyalayacaq

spotify: albom: 7dK54iZuOxXFarGhXwEXfF

Beyonce'nin Lemondade albomu üçün Spotify URI olan panoya.

Brauzerinizi yenidən yandırın və aşağıdakı ünvana gedin (açıq şəkildə IP ünvanını və otağı əvəz edərək yeni kopyaladığınız URI -yə yapışdırın):

192.168.4.102:5005/ Yemək otağı/spotify/now/[Oynamaq istədiyiniz URI spotify]

Seçdiyiniz oyunu dinləməlisiniz.

Veb tətbiqindən istifadə etmək istəsəniz, sizə bir veb bağlantısı verəcəkdir (aşağıdakı kimi):

open.spotify.com/album/7dK54iZuOxXFarGhXwEXfF

Bunun işləməsi üçün bunu spotify: album: kod formatına çevirməlisiniz.

Addım 17: Spotify URI -ləri haqqında bir qeyd

Spotify URI-ləri və node-sonos-http-api ilə əlaqə qurma tərzi əksər hallarda intuitivdir.

Albomlara, parçalara və çalğı siyahılarına birbaşa keçid edə bilərsiniz.

Bir URI albomu belə görünür:

spotify: albom: 6agCM9GJcebduMddgFmgsO

Bir URI izi belə görünür:

spotify: track: 4fNDKbaeEjk2P4GrRE1UbW

Çalğı siyahıları bir az fərqli işləyir. URI -ni Spotify -dan kopyaladığınız zaman belə bir şey görünəcək:

spotify: pleylist: 5huIma0YU4iusLcT2reVEU

Ancaq API -də işləməsini təmin etmək üçün yuxarıdakıların əvvəlinə spotify: user: əlavə etməlisiniz. Bu hətta ictimai çalğı siyahılarına da aiddir və bəli, bu, iki dəfə spotify dediyiniz deməkdir.

Çox aydın olmaq üçün istifadəçinin müəyyən bir istifadəçi adı olması lazım deyil, yalnız mətn istifadəçisi. Beləliklə, yuxarıdakı çalğı siyahısının işləməsi üçün doğru URI:

spotify: istifadəçi: spotify: pleylist: 5huIma0YU4iusLcT2reVEU

Addım 18: HTTP İstəkləri Göndərmək üçün Raspberry Pi qurun

HTTP İstəkləri Göndərmək üçün Raspberry Pi qurun
HTTP İstəkləri Göndərmək üçün Raspberry Pi qurun

HTTP istəklərini veb brauzerə əl ilə yazmaq əvəzinə, müəyyən bir stimul verildikdə (NFC oxuyucusu işə salındıqda) Raspberry Pi -nin bunu etməsi üçün onu avtomatlaşdırmaq istəyirik.

Raspberry Pi -nin buna icazə verməsi üçün sorğu adlanan kitabxanadan istifadə edəcəyik. Quraşdırıldığını yoxlayaq.

Pi -də terminal açın və aşağıdakıları yazın:

sudo pip quraşdırma istəkləri

Çox güman ki, geri qayıdır və artıq quraşdırıldığını söyləyir, bu halda əladır. Əks təqdirdə onu quraşdıracaq.

Addım 19: Spotify Məlumatları ilə NFCC Etiketləri yaradın

Spotify Məlumatları ilə NFCC Etiketləri yaradın
Spotify Məlumatları ilə NFCC Etiketləri yaradın
Spotify Məlumatları ilə NFCC Etiketləri yaradın
Spotify Məlumatları ilə NFCC Etiketləri yaradın
Spotify Məlumatları ilə NFCC Etiketləri yaradın
Spotify Məlumatları ilə NFCC Etiketləri yaradın
Spotify Məlumatları ilə NFCC Etiketləri yaradın
Spotify Məlumatları ilə NFCC Etiketləri yaradın

İndi bir NFC etiketinə bir Spotify albom URI yazmaq istəyirik. Bu etiketlərin hər biri, Raspberry Pi -yə müəyyən bir albom çalmasını söyləmək üçün istifadə edəcəyiniz şeylərdir.

Bir Android telefonu istifadə edərək NFC etiketinə yaza bilərsiniz, amma bunu Mac və ya PC vasitəsilə yazmağın ən asan olduğunu düşünürəm, çünki Spotify URI -lərini Spotify masa üstü tətbiqindən əldə etməyin ən asan yolu.

USB NFC oxuyucunuzu PC və ya Mac -a qoşun. American Card Systems tərəfindən ACR122U istifadə edirəm.

NFC Alətlərini PC və ya Mac -a yükləyin. Qurun və açın.

Bəzən oxucu ilə əlaqə qurmaq bir az gec ola bilər və oxucunu ümumiyyətlə tapa bilmədiyini söyləyə bilər. NFC alətlərindəki Digər sekmesine keçin və Bağlı NFC Oxucu düyməsini tez -tez vurun. Oxucunu tapmadan əvvəl onu bir neçə dəfə ayırıb yenidən bağlamalı ola bilərsiniz.

Nəhayət, siyahıdan oxucunuzu seçmək və bağlı olduğunu söyləmək imkanı verəcək. "NFC etiketini gözləmək" dən başqa heç nə göstərməyəcək Məlumat sekmesine keçin.

Boş bir NFC etiketi götürün. Oxucunun üzərinə qoyun və orada buraxın. NFC Tools etiket haqqında məlumatları göstərəcək.

Yazın sekmesine gedin və Qeyd əlavə et> Mətn vurun. (URL və ya URI seçməmək üçün diqqətli olun - URI kopyaladığınız üçün cazibədar olduğunu bilirəm, ancaq mətn istəyirsiniz)

Daha əvvəl istifadə etdiyimiz metoddan istifadə edərək Spotify -dən URI alın. Asan bir nümunə istəyirsinizsə, aşağıda əvvəlki John Grant albomumuz var.

spotify: albom: 2dfTV7CktUEBkZCHiB7VQB

Tamam'ı və sonra Yaz'ı basın (bu son addımı unutmayın - bunu tıklamayınca əslində yazmaz). Etiketi uğurla yazdığını söyləyəcək.

Etiketi oxucudan çıxarın

Addım 20: Raspberry Pi üzərində NFC Reader qurun

Raspberry Pi üzərində NFC Reader qurun
Raspberry Pi üzərində NFC Reader qurun

NFC oxuyucunuzu Raspberry Pi -dəki USB portlarından birinə qoşun.

NFC oxucu ilə ünsiyyət qurmaq üçün nfcpy Python kitabxanasından istifadə edəcəyik. Pi əmr satırına aşağıdakıları yazaraq quraşdırın:

pip quraşdırma -U nfcpy

Aşağıdakıları yazaraq bu kitabxananın NFC oxuyucumuzu görə biləcəyini yoxlaya bilərik:

python -m nfc

İşləyibsə, aşağıdakıları görəcəksiniz:

Bu Linux-4.19.97-v7+-armv7l-debian-10.3 ilə Python 2.7.16-da işləyən nfcpy-nin 1.0.3 versiyasıdır.

İndi sisteminizdə təmassız qurğular axtarıram ** usb: 001: 011-də ACS ACR122U PN532v1.6 tapdım, mənə demədiyiniz üçün serial cihazları sınamıram-'--search-tty' seçimini əlavə edin baxmağım üçün - amma diqqətli olun ki, bu digər serial qurğularını qıra bilər

Bununla birlikdə oxucunun tapıldığını söyləyən bir səhv mesajı almaq şansınız var, ancaq istifadəçinizin (pi) ona daxil olmaq üçün icazəsi yoxdur. Bu səhv mesajını alsanız, bir az aşağıdakı kimi görünən iki əmri yazaraq problemi necə həll edəcəyinizi də izah edəcək:

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

sudo udevadm nəzarət -R

Sizə verdiyi hər iki əmri kopyalayın və yerinə yetirin (yuxarıdakı kimi deyil, çünki sizinki fərqli ola bilər), sonra NFC oxuyucunuzu USB portundan ayırın və yenidən qoşun.

Yenidən yoxlama əmrini sınayın:

python -m nfc

Bu dəfə səhv mesajları olmadan tapıldığını söyləməlidir.

Addım 21: Vinylemulator Python Skriptlərini quraşdırın

İndi bütün tikinti bloklarımız var:

  • Bizim Raspberry Pi NFC girişini dinləyə bilir
  • Bizim Raspberry Pi, bir Spotify URI verildikdə Sonosa Spotify çalğı siyahıları çalmağı söyləyə bilər
  • Saxlanılan bir Spotify URI ilə NFC etiketimiz var

İndi bütün bu blokları faydalı bir şeyə çəkməliyik. Bu, yazdığım qısa bir python skripti vasitəsi ilə (əvvəlki NFC/Spotify/Sonos layihələrinin köməyi ilə) vinylemulator adlanır.

Faylların mənbə kodunu github -da görə bilərsiniz:

Bunu Raspberry Pi -yə quraşdırmaq üçün github -dan aşağıdakı əmrlə klonlamalıyıq:

git klonu

Addım 22: Vinylemulatoru fərdiləşdirin

Vinylemulatoru fərdiləşdirin
Vinylemulatoru fərdiləşdirin
Vinylemulatoru fərdiləşdirin
Vinylemulatoru fərdiləşdirin

Raspberry Pi fayl menecerini açın və ev> pi> vinylemulator -a gedin

Usersettings.py faylını açın

Bu fayldakı sətirlərdən biri oxuyacaq:

sonosroom = "Yemək otağı"

"Yemək otağı" nı idarə etmək istədiyiniz Sonos otağının adı olaraq dəyişdirin.

Bu faylda sonos-http-apinin IP ünvanını fərdiləşdirməyə imkan verən bir parametr də var. Bunu "localhost" olaraq dəyişmədən tərk etməlisiniz ki, bu da işlədiyi Raspberry Pi -dən istifadə edəcək.

Faylı qeyd edin və bağlayın.

Addım 23: Vinylemulatoru sınayın

Vinylemulator testi
Vinylemulator testi
Vinylemulator testi
Vinylemulator testi

Raspberry Pi əmr satırına gedin.

Aşağıdakı əmri daxil edin:

python vinylemulator/readnfc.py

Hər şey qaydasındadırsa, bu ssenarini yükləyəcək və oxucunun hazır olduğunu söyləyəcək. Oxucunun işığı yaşıl olmalıdır.

NFC etiketini oxucunun üzərinə qoyun ki, bu da bip səsi verəcək.

Terminal NFC etiketindən oxuduqlarını və göndərdiyi HTTP sorğu ünvanını göstərəcək. Seçdiyiniz albom Sonos dinamiklərindən səslənməlidir.

Bu skript terminal pəncərəsini bağlayana qədər işləməyə davam edəcək. Fərqli albom NFC etiketlərinə toxuna bilərsiniz və o alboma keçəcək.

Addım 24: Vinylemulatoru Daimi və Başlanğıcda Çalışdırın

Eynilə sonos-http-api kimi, vinylemulator-un çağırdığımız vaxtdan daha çox çalışmasını istəyirik. Bunu yenidən etmək üçün pm2 -dən istifadə edə bilərik.

Əvvəlcə işlədiyiniz vinylemulator nümunələrini terminal pəncərələrini bağlayaraq bağlayın.

Sonra yeni bir terminal pəncərəsi açın və aşağıdakı iki əmri yazın:

pm2 vinylemulator/readnfc.py başlayın

pm2 saxla

Bunun Raspberry Pi -ni yenidən başlataraq işlədiyini yoxlayaq. (Ya sudo reboot yaza bilərsiniz, ya da siçan ilə Raspberry menyusundan edə bilərsiniz.

Pi -nin yenidən başlamasını gözləyin və oxucunun üzərinə NFC etiketinə vuraraq işlədiyini görün. Musiqi almalısan.

Addım 25: Özünüzü təbrik edin

İndi hər şey funksionaldır. Raspberry Pi -ni yerləşdirməyi planlaşdırdığınız yerə köçürə bilərsiniz. Yenidən başlayacaq və qoşduğunuz zaman qurduğunuz şəkildə işləyəcək.

Növbəti vəzifələriniz əyləncəlidir: hər şeyi gözəl etmək.

Addım 26: Gözəlləşdirin - Oxucunuzu gizləyin

Gözəlləşdirin - Oxucunuzu gizləyin
Gözəlləşdirin - Oxucunuzu gizləyin
Gözəlləşdirin - Oxucunuzu gizləyin
Gözəlləşdirin - Oxucunuzu gizləyin
Gözəlləşdirin - Oxucunuzu gizləyin
Gözəlləşdirin - Oxucunuzu gizləyin
Gözəlləşdirin - Oxucunuzu gizləyin
Gözəlləşdirin - Oxucunuzu gizləyin

Gözəl hala gətirməyin ilk hissəsi pis ağ plastik NFC oxuyucusunu bir yerdə gizlətməkdir.

Sonos Play -in yanındakı bir tezgahın altına yapışdırmaq üçün qətiliklə aşağı texnologiyalı bir seçim etdim: 5. Tezgahın ağacı NFC -nin keçə biləcəyi qədər incədir, buna görə sehrli və görünməz bir yerə NFC etiketinə vuraraq musiqi oynayıram.

Tövsiyə: