Isi kandungan:

Sonos Spotify Vinyl Emulator: 26 Langkah
Sonos Spotify Vinyl Emulator: 26 Langkah

Video: Sonos Spotify Vinyl Emulator: 26 Langkah

Video: Sonos Spotify Vinyl Emulator: 26 Langkah
Video: Vinyl Emulator demo (SOUND ON!) 2024, Julai
Anonim
Image
Image
Sonos Spotify Vinyl Emulator
Sonos Spotify Vinyl Emulator

Harap maklum bahawa ini bukan sekumpulan arahan terbaru untuk projek ini:

Sila lawati https://www.hackster.io/mark-hank/sonos-spotify-vinyl-emulator-3be63d untuk set arahan dan sokongan terkini

Mendengarkan muzik di vinil sangat bagus. Ini fizikal dan taktil. Anda mendengar keseluruhan album dan bukannya trek rawak. Anda perhatikan ketika sudah selesai dan secara sedar memilih sesuatu yang lain. Anda boleh membina koleksi dan melihatnya daripada perlu mencari apa yang anda mahukan.

Ia juga mahal dan besar, terutamanya apabila anda menganggap bahawa wang yang anda belanjakan untuk vinil kemungkinan besar merupakan pendua muzik yang sudah anda akses melalui perkhidmatan streaming yang anda langgani.

Projek ini cuba meniru aspek kebolehgunaan dan koleksi koleksi vinil sambil bergantung pada Spotify untuk benar-benar menyampaikan muzik. Meletakkan objek fizikal pada pembaca NFC yang disambungkan ke Raspberry Pi (keduanya dapat disembunyikan) akan mula memainkan album yang dikaitkan dengan tag itu.

Saya akan memandu anda melalui semua langkah - dari menyiapkan Pi Raspberry hingga pengekodan tag NFC. Ini adalah projek Raspberry Pi pertama saya dan kod Python pertama saya, jadi saya mengajar diri saya berdua semasa mengembangkannya. Oleh yang demikian, arahan ini mengandaikan pengetahuan sebelumnya secara sifar dan membincangkan anda melalui setiap langkah.

Jumlah kos untuk komponen penting untuk membina ini adalah sekitar £ 50-60.

Saya ingin melihat apa yang anda bina!

Langkah 1: Persediaan yang Diperlukan 1: Raspberry Pi

Bahagian belakang yang bersambung dengan rangkaian anda, Sonos dan Spotify akan dijalankan oleh Raspberry Pi. Sebenarnya ada sedikit yang anda perlukan untuk melakukannya.

Yang penting:

Raspberry Pi: Saya menggunakan Raspberry Pi 3 Model B + tetapi ia juga akan berfungsi dengan Raspberry Pi 3 Model A + (£ 23)

Bekalan kuasa USB: Saya ada di sana - ada yang rasmi jika anda tidak (£ 9)

Kad SD mikro: Saya mempunyai kad 32GB, yang banyak untuk aplikasi ini, di Amazon (£ 6)

Beberapa peralatan Sonos berjalan di rangkaian anda (saya rasa anda sudah memilikinya jika anda berada di sini …)

Akaun Spotify Premium

Disyorkan:

Kes untuk Pi: terdapat banyak pilihan, bermula dari £ 5

Sebotol California Zinfandel yang layak: Saya cadangkan Ridge, tetapi yang lain ada

Langkah 2: Persediaan yang Diperlukan 2: Pembaca NFC

Bekalan yang diperlukan 2: Pembaca NFC
Bekalan yang diperlukan 2: Pembaca NFC
Bekalan yang diperlukan 2: Pembaca NFC
Bekalan yang diperlukan 2: Pembaca NFC

Arahan ini dibina untuk pembaca NFC ACR122U yang menghubungkan melalui USB.

ACR122U

Saya membeli yang ini dari Amazon dengan harga £ 38 (kebanyakannya kerana ia mempunyai penghantaran utama) tetapi ada pilihan yang lebih murah untuk membeli pembaca yang sama ini.

Keliru ACR122U nampaknya dijual dengan sebilangan besar jenama yang berbeza (nama saya berada di bawah nama jenama "Yosoo" yang sangat meyakinkan) tetapi dari apa yang dapat saya katakan bahawa semuanya sama dan dibina oleh American Card Systems.

Yang paling murah yang saya dapati ACR122U yang diiklankan ialah £ 21 termasuk penghantaran, tetapi ia datang terus dari China jadi anda mungkin perlu menunggu sedikit untuk itu.

Pilihan lain

Projek ini bergantung pada pustaka python yang disebut nfcpy yang menyimpan senarai peranti yang disokong di sini:

Secara teori projek ini harus berfungsi dengan mana-mana yang ada dalam senarai itu dengan sedikit integrasi.

Salah satu pilihan yang menggoda adalah Adafruit PN532 yang merupakan papan yang harus disambungkan terus ke Raspberry Pi anda menggunakan kabel jumper. Saya mencubanya dan mendapati ia benar-benar hebat. Ia memerlukan pematerian, misalnya.

Satu kelebihannya adalah, secara dangkal, ia lebih kecil tetapi pada hakikatnya papannya berukuran sama dengan keberanian ACR122U. Sekiranya anda benar-benar terdorong ruang untuk aplikasi anda, anda boleh menanggalkan plastik dari ACR122U dan hanya menggunakan papan.

Langkah 3: Bekalan yang Diperlukan 3: NFC Tag

Bekalan yang diperlukan 3: NFC Tag
Bekalan yang diperlukan 3: NFC Tag

Untuk setiap album yang ingin anda buat, anda memerlukan tag NFC yang memenuhi standard NTAG213.

Terdapat banyak tempat untuk membeli ini.

Saya membeli kumpulan pertama saya dari Amazon, di mana saya mendapat bungkusan 10 dengan harga £ 9 (termasuk penghantaran Perdana)

Yang terbaik yang saya dapati di Inggris adalah Seritag - mereka mempunyai pilihan gaya yang sangat luas, nasihat hebat di laman web mereka, anda tahu apa yang anda dapat (tidak selalu benar di Amazon). Mereka tidak mempunyai ukuran pesanan minimum dan banyak pilihan. Teg bermula pada 27p setiap tag

Langkah 4: Muat turun OS Raspberry Pi ke Kad SD

Muat turun Raspberry Pi OS ke Kad SD
Muat turun Raspberry Pi OS ke Kad SD
Muat turun Raspberry Pi OS ke Kad SD
Muat turun Raspberry Pi OS ke Kad SD

Pada PC atau Mac anda, muat turun dan jalankan aplikasi impage Raspberry PI.

Masukkan kad SD yang anda mahu pasang sistem operasi Raspberry Pi.

Klik pada PILIH OS dan pilih Rasbian lalai.

Klik pada PILIH KAD SD dan pilih kad SD yang telah anda pasangkan.

Klik pada MENULIS. Ini mungkin mengambil masa.

Setelah selesai, ia akan memberitahu anda untuk mengeluarkan kad SD, yang harus anda lakukan. Tetapi kemudian pasangkan kembali kerana terdapat beberapa perkara yang perlu anda lakukan terlebih dahulu.

Langkah 5: Aktifkan SSH pada Imej OS Raspberry Pi anda

Dayakan SSH pada Imej OS Raspberry Pi anda
Dayakan SSH pada Imej OS Raspberry Pi anda

Setelah OS ditulis ke kad SD, ada beberapa tugas tambahan yang perlu anda lakukan.

Kami ingin mengakses Raspberry Pi tanpa memasang papan kekunci atau monitor (aka "tanpa kepala"), yang dapat kami lakukan melalui rangkaian tempatan kami menggunakan PC atau Mac kami melalui protokol yang disebut SSH. Walau bagaimanapun, atas sebab keselamatan SSH dilumpuhkan secara lalai. Kita perlu mengaktifkannya.

Kita boleh melakukan ini dengan membuat fail kosong yang dipanggil:

ssh

dalam kad SD yang baru kita buat. Penting bahawa ini tidak mempunyai jenis pelanjutan (mis. Txt). Fail itu sendiri tidak perlu mengandungi kandungan apa pun - hanya dengan keberadaannya akan membolehkan SSH ketika Pi boot.

Langkah 6: Pilihan: Sediakan Wifi pada Pi Raspberry Anda

Pilihan: Sediakan Wifi pada Pi Raspberry Anda
Pilihan: Sediakan Wifi pada Pi Raspberry Anda
Pilihan: Sediakan Wifi pada Pi Raspberry Anda
Pilihan: Sediakan Wifi pada Pi Raspberry Anda

Anda boleh melangkau langkah ini jika anda merancang untuk memasukkan Raspberry Pi ke penghala anda melalui ethernet. (Walaupun anda mungkin ingin berfikir keras tentang keputusan itu - dengan menjalankannya melalui wifi menjadikan hidup lebih mudah dari segi kedudukan ini)

Buat fail teks biasa yang disebut wpa_supplicant.conf di direktori root kad SD.

Masukkan teks di bawah ke dalam fail:

negara = gb

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

Tukar negara mengikut kesesuaian (GB adalah UK, AS adalah AS, DE adalah Jerman, dll.)

Ubah kelayakan wifi di sana untuk menjadi perincian penghala wifi sebenar anda.

Simpan fail.

Keluarkan kad SD dengan selamat.

Langkah 7: Hidupkan Pi Raspberry Anda

Kuasakan Pi Raspberry Anda
Kuasakan Pi Raspberry Anda

Masukkan kad SD yang baru anda buat ke dalam Raspberry Pi anda.

Pasang Raspberry Pi anda ke dalam kuasa melalui kabel USB. Tunggu sebentar untuk boot.

Langkah 8: Cari Alamat IP Raspberry Pi Anda

Anda sekarang perlu mencari alamat IP Raspberry Pi supaya anda dapat menyambung ke sana. Anda boleh melakukannya dengan dua cara:

  • melalui halaman persediaan penghala anda - jika anda mempunyai penghala moden seperti eero maka ini sangat mudah;
  • atau melalui aplikasi telefon pintar yang tersedia untuk iOS dan Android yang disebut "jari" - muat turun, sambungkan ke penghala anda dan imbas peranti - salah satu daripadanya harus disebut "Raspberry" - ini akan menjadi alamat IP yang anda perlukan.

Langkah 9: Sambungkan ke Talian Perintah Raspberry Pi Anda

Sambungkan ke Talian Perintah Raspberry Pi Anda
Sambungkan ke Talian Perintah Raspberry Pi Anda

Buka Terminal pada mac anda (atau jika anda menggunakan Windows, kemudian muat turun dan gunakan Putty).

Masukkan arahan berikut:

ssh pi @ [alamat IP Pi anda]

Terima amaran keselamatan yang anda dapat. Anda akan diminta kata laluan untuk pengguna pi lalai yang

raspberry

Langkah 10: Sediakan GUI Raspberry Pi OS

Sediakan GUI Raspberry Pi OS
Sediakan GUI Raspberry Pi OS
Sediakan GUI Raspberry Pi OS
Sediakan GUI Raspberry Pi OS

Anda sekarang disambungkan ke Pi anda melalui baris perintah, yang bagus tetapi anda juga ingin menyiapkannya sehingga anda dapat mengakses Antaramuka Pengguna Grafik yang akan kami akses melalui VNC (Virtual Network Computing). Boleh diramalkan, kita juga perlu mengaktifkannya.

Pertama sekali periksa perisian Pi anda terkini dengan memasukkan dua arahan berikut (masing-masing diikuti dengan enter) ke dalam baris arahan:

sudo apt kemas kini

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

Seterusnya, buka menu tetapan Raspberry Pi dengan memasukkan:

sudo raspi-config

Navigasi ke Pilihan Antaramuka> VNC> Ya.

Keluar dari aplikasi konfigurasi dengan menekan kekunci melarikan diri dan reboot Pi dari baris perintah dengan mengetik:

rebo sudo

Langkah 11: Sambungkan ke dan Siapkan GUI Raspberry Pi anda

Sambung ke dan Siapkan GUI Raspberry Pi anda
Sambung ke dan Siapkan GUI Raspberry Pi anda
Sambung ke dan Siapkan GUI Raspberry Pi anda
Sambung ke dan Siapkan GUI Raspberry Pi anda

Muat turun dan buka VNC Viewer.

Taipkan alamat IP untuk Raspberry Pi anda dan tekan sambung. Ini akan meminta anda untuk nama pengguna dan kata laluan yang:

Nama pengguna = pi

Kata Laluan = raspberry

Ini akan memacu anda ke GUI.

Ini akan meminta anda untuk mengesahkan susunan geografi dan papan kekunci anda.

Ini kemudian akan mendorong anda untuk menukar kata laluan anda (idea bagus).

Ia akan meminta anda menetapkan butiran wifi anda, tetapi anda boleh melupakannya kerana mereka sudah berfungsi. (Walaupun jika anda menggunakan ethernet dan mempunyai pemikiran kedua maka sekarang adalah peluang anda … tetapi perhatikan alamat IP anda mungkin berubah)

Ia kemudian akan memeriksa, memuat turun dan memasang kemas kini (mungkin memerlukan sedikit masa).

Sebaik sahaja anda melalui wizard persediaan, saya akan mengesyorkan menukar resolusi skrin kerana lalai cukup kecil. Anda boleh melakukannya dengan mengklik Raspberry di kiri atas> Pilihan> Konfigurasi Raspberry Pi> Paparan> Tetapkan Resolusi

Anda perlu menghidupkan semula Pi sekali lagi agar ini dapat dilaksanakan.

Langkah 12: Pasang Node.js dan NPM

Pasang Node.js dan NPM
Pasang Node.js dan NPM

Seterusnya anda ingin memuatkan baris arahan Raspberry Pi untuk memasang kebergantungan yang kami perlukan.

Anda boleh melakukannya dengan menyambung melalui VNC dan mengklik butang di bahagian atas yang kelihatan seperti baris perintah; atau anda boleh berhubung terus dari Mac / PC anda menggunakan Terminal dan Putty seperti yang kami lakukan sebelumnya. Sekiranya anda kurang terbiasa bekerja dengan Raspberry Pi maka lebih mudah untuk membuat yang pertama.

(Petua: Anda boleh menyalin teks dari Mac / PC dan menempelkannya ke Raspberry Pi melalui VNC dengan menekan CONTROL-V, tetapi jika anda cuba menampal ke Terminal maka anda perlu menekan CONTROL-SHIFT-V)

Tugas pertama adalah memeriksa semula perisian anda yang terkini dengan menaip dua arahan berikut. Mereka mungkin mengambil masa untuk memuat turun dan memasang.

sudo apt-get kemas kini

sudo apt-get peningkatan

Seterusnya anda ingin memuat turun dan memasang node.js dan NPM (jangan terlalu bimbang tentang apa itu, ia berguna dan diperlukan untuk tugas kami yang seterusnya) dengan menaip perkara berikut:

sudo apt-get install nodejs npm

Ia akan bertanya kepada anda beberapa kali jika anda senang menggunakan ruang cakera dengan ini - anda begitu menekan Y

Langkah 13: Pasang API HTTP SONOS

Pasang API HTTP SONOS
Pasang API HTTP SONOS
Pasang API HTTP SONOS
Pasang API HTTP SONOS

Asas belakang projek kami adalah pakej node-sonos-http-api yang dibuat oleh jishi. Anda boleh membaca semua tentangnya di sini:

Kami akan memuat turunnya dari github dengan arahan berikut dimasukkan ke dalam baris arahan:

git klon

dan kami akan memasangnya dengan arahan berikut

cd node-sonos-http-api

pemasangan npm --produk

Kita kemudian boleh menjalankannya dengan arahan berikut:

npm bermula

Setelah selesai, kita harus menguji bahawa ia berfungsi.

Pertama sekali, buka penyemak imbas internet di Raspberry Pi kami dan arahkan ke https:// localhost: 5005 /. Antaramuka yang bagus harus dibuka dengan logo Sonos dan beberapa dokumentasi mengenai bagaimana API berfungsi.

Seterusnya, mari kita periksa bahawa ini berfungsi dari rangkaian yang lebih luas dengan menggunakan penyemak imbas pada PC atau Mac lain pada rangkaian yang sama dan menavigasi ke https:// [theIPaddressofyourPi]: 5005 / dan melihat apakah kita mendapat hasil yang sama. Kita perlu.

Sekarang kita akan membuat sistem melakukan sesuatu. Gunakan penyemak imbas dan arahkan ke:

192.168.4.102:5005/ Ruang Makan / jeda permainan

Anda harus mengganti alamat IP di atas dengan alamat Raspberry Pi dan "Ruang Makan" anda dengan salah satu nama zon Sonos anda. Ia mesti dimainkan atau dijeda (bergantung pada apakah muzik sudah dimainkan atau tidak) muzik di ruangan itu. Jelas ada sesuatu yang perlu ada di barisan Sonos agar ia berfungsi.

Ke depan, saya akan menggunakan alamat IP di atas dan Ruang Makan sebagai contoh sepanjang tutorial ini. Jelas sekali anda harus menggantinya dengan alamat IP dan nama zon anda pada setiap kesempatan.

Langkah 14: Jadikan API Sonos HTTP Dijalankan Dengan Tetap

Jadikan Sonos HTTP API Dijalankan Sentiasa
Jadikan Sonos HTTP API Dijalankan Sentiasa

Hebatnya kami menjalankan Sonos HTTP API, tetapi bagaimana jika crash? Atau anda kehilangan kuasa atau perlu menghidupkan semula Raspberry Pi anda?

Anda dapat melihat kesannya dengan menutup tetingkap terminal dan mencuba semula apa yang baru kami cuba. Ia tidak akan berfungsi kerana HTTP API telah berhenti bersama dengan tetingkap terminal.

Kami sebenarnya mahu ini terus berjalan dan melakukannya dari permulaan setiap kali. Kami melakukan ini dengan perkara yang dinamakan PM2.

Di tetingkap terminal baru, pasang dan jalankan seperti berikut:

sudo npm pasang -g pm2

status pm2

Sekarang mari kita jalankan untuk menjalankan API HTTP Sonos kami:

cd node-sonos-http-api

pm2 mula npm - mula sistem permulaan pm2d

Perintah terakhir ini menghasilkan sesuatu yang kelihatan seperti:

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

Salin apa yang dihasilkan oleh Pi anda (bukan teks yang tepat di atas - teks anda mungkin berbeza) dan masukkan ke dalam baris arahan. Ini memerintahkan sistem untuk menjalankan PM2 semasa boot setiap masa.

Akhirnya, masukkan:

simpan pm2

yang menjimatkan semuanya.

Sekarang uji apakah ini berjaya dengan menghidupkan semula Raspberry Pi anda dengan arahan

rebo sudo

Mudah-mudahan setelah Pi reboot, ia juga akan memulakan PM2 dan seterusnya Sonos HTTP API. Anda boleh menyemaknya dengan menavigasi menggunakan penyemak imbas di rangkaian yang sama ke alamat yang kami gunakan sebelumnya dan melihat logo dan arahan Sonos:

192.168.4.102:5005/

adalah yang sesuai untuk saya, tetapi alamat anda bergantung pada alamat IP.

Langkah 15: Mainkan Beberapa Spotify

Mari kita periksa bahawa perkhidmatan tersebut dapat mengakses Spotify.

Buka penyemak imbas dan arahkan ke alamat berikut (jelas diganti dengan alamat IP dan nama bilik anda):

192.168.4.102:5005/Dining Room / spotify / now / spotify / spotify: album: 2dfTV7CktUEBkZCHiB7VQB

Anda mesti mendengar beberapa John Grant. Nikmati.

Langkah 16: Cari URI Spotify

Cari URI Spotify
Cari URI Spotify

Pelik, saya tahu, tetapi tidak semua orang menyukai John Grant. Mungkin anda mahu mendengar perkara lain?

Anda boleh mendapatkan pautan Spotify dari aplikasi desktop, web atau mudah alih tetapi Desktop sejauh ini paling mudah kerana memberikan URI dalam format yang anda mahukan, mulailah dengan itu.

Di aplikasi desktop Spotify, arahkan ke album yang ingin anda dengarkan (mungkin Lemonade by Beyonce?)

Klik pada tiga titik kecil di sebelah butang jantung.

Turun menu untuk Kongsi dan pilih Salin URI Spotify

Ini akan menyalin sesuatu seperti

spotify: album: 7dK54iZuOxXFarGhXwEXfF

ke papan keratan anda, yang merupakan Spotify URI untuk album Lemondade Beyonce.

Nyalakan semula penyemak imbas anda dan arahkan ke alamat berikut (jelas mengganti alamat IP dan ruangan dan menampal di URI yang baru anda salin):

192.168.4.102:5005/Dining Room / spotify / now / [Spotify URI yang anda mahu mainkan]

Anda mesti mendengar permainan pilihan anda.

Sekiranya anda lebih suka menggunakan aplikasi web maka ia akan memberi anda pautan web (seperti di bawah):

open.spotify.com/album/7dK54iZuOxXFarGhXwEXfF

anda perlu menukarnya ke format spotify: album: code di atas agar berfungsi.

Langkah 17: Catatan mengenai URI Spotify

URI Spotify dan cara mereka berinteraksi dengan simpul-sonos-http-api adalah intuitif, sebahagian besarnya.

Anda boleh membuat pautan terus ke album, trek dan senarai main.

URI album kelihatan seperti:

spotify: album: 6agCM9GJcebduMddgFmgsO

URI trek kelihatan seperti:

spotify: track: 4fNDKbaeEjk2P4GrRE1UbW

Senarai main berfungsi sedikit berbeza. Apabila anda menyalin URI dari Spotify, ia akan kelihatan seperti:

spotify: senarai main: 5huIma0YU4iusLcT2reVEU

Walau bagaimanapun, untuk benar-benar berfungsi pada API, anda perlu menambahkan spotify: user: hingga awal perkara di atas. Ini berlaku walaupun untuk senarai main awam dan, ya, ini bermaksud bahawa anda mengatakan spotify dua kali.

Untuk menjadi sangat jelas, pengguna tidak perlu menjadi nama pengguna tertentu, hanya pengguna teks. Jadi URI yang betul untuk senarai main di atas untuk membuatnya berfungsi:

spotify: user: spotify: senarai main: 5huIma0YU4iusLcT2reVEU

Langkah 18: Sediakan Raspberry Pi untuk Menghantar Permintaan

Sediakan Raspberry Pi untuk Menghantar Permintaan HTTP
Sediakan Raspberry Pi untuk Menghantar Permintaan HTTP

Daripada mengetik permintaan HTTP secara manual ke dalam penyemak imbas web, kami ingin mengautomasikannya agar Raspberry Pi melakukan itu sendiri ketika disajikan dengan rangsangan tertentu (pembaca NFC sedang dipicu).

Kami akan menggunakan perpustakaan yang disebut permintaan untuk membolehkan Raspberry Pi kami melakukan ini. Mari periksa ia dipasang.

Buka terminal pada Pi anda dan taipkan yang berikut:

permintaan pemasangan sudo pip

Kemungkinan ia kembali dan mengatakan ia sudah dipasang, dalam hal ini bagus. Sekiranya tidak, ia akan memasangnya.

Langkah 19: Hasilkan Tag NFCC Dengan Data Spotify

Hasilkan Tag NFCC Dengan Data Spotify
Hasilkan Tag NFCC Dengan Data Spotify
Hasilkan Tag NFCC Dengan Data Spotify
Hasilkan Tag NFCC Dengan Data Spotify
Hasilkan Tag NFCC Dengan Data Spotify
Hasilkan Tag NFCC Dengan Data Spotify
Hasilkan Tag NFCC Dengan Data Spotify
Hasilkan Tag NFCC Dengan Data Spotify

Sekarang kami ingin menulis URI album Spotify ke tag NFC. Setiap tag ini adalah yang anda akan gunakan untuk memberitahu Raspberry Pi memainkan album tertentu.

Anda boleh menulis ke tag NFC menggunakan telefon Android, tetapi saya merasa paling mudah untuk melakukannya melalui mac atau PC kerana anda boleh mendapatkan yang paling mudah untuk mendapatkan URI Spotify dari aplikasi desktop Spotify.

Pasang pembaca NFC USB ke PC atau Mac anda. Saya menggunakan ACR122U oleh American Card Systems.

Muat turun Alat NFC ke PC atau Mac anda. Pasang dan buka.

Kadang-kadang agak lambat untuk berhubung dengan pembaca dan mungkin mengatakan bahawa ia sama sekali tidak menemui pembaca. Pergi ke tab Lain dalam alat NFC dan klik sekali sekala pada butang Connected NFC Reader. Anda mungkin perlu mencabut dan memasang semula pembaca beberapa kali sebelum menjumpainya.

Akhirnya ia akan memberi anda pilihan untuk memilih pembaca anda dari senarai dan mengatakan bahawa ia bersambung. Pergi ke tab Maklumat yang tidak akan menunjukkan apa-apa kecuali "Menunggu tag NFC".

Ambil teg NFC kosong. Letakkan pada pembaca dan biarkan di sana. Alat NFC akan memaparkan maklumat mengenai teg.

Pergi ke tab Tulis dan klik Tambah rekod> Teks. (Hati-hati untuk tidak memilih URL atau URI - Saya tahu itu menggoda kerana anda menyalin URI, tetapi anda mahukan teks)

Dapatkan URI dari Spotify menggunakan kaedah yang kami gunakan sebelumnya. Sekiranya anda mahukan contoh yang mudah maka berikut adalah album John Grant kami dari sebelumnya.

spotify: album: 2dfTV7CktUEBkZCHiB7VQB

Klik OK dan kemudian klik Tulis (jangan lupa langkah terakhir ini - sebenarnya tidak menulisnya sehingga anda mengklik ini). Ini akan memberitahu anda bahawa tulisan itu berjaya ditulis.

Tanggalkan tag dari pembaca

Langkah 20: Sediakan Pembaca NFC pada Raspberry Pi

Sediakan Pembaca NFC pada Raspberry Pi
Sediakan Pembaca NFC pada Raspberry Pi

Pasang pembaca NFC anda ke salah satu port USB pada Raspberry Pi anda.

Kami akan menggunakan pustaka nfcpy Python untuk berkomunikasi dengan pembaca NFC. Pasang dengan menaip yang berikut pada baris perintah Pi anda:

pasang pip -U nfcpy

Kami kemudian dapat memeriksa sama ada perpustakaan ini dapat melihat pembaca NFC kami dengan menaip perkara berikut:

python -m nfc

Sekiranya ia berjaya, anda akan melihat perkara berikut:

Ini adalah versi 1.0.3 dari nfcpy yang dijalankan di Python 2.7.16 pada Linux-4.19.97-v7 + -armv7l-with-debian-10.3

Saya sekarang mencari sistem anda untuk peranti tanpa sentuh ** dijumpai ACS ACR122U PN532v1.6 di usb: 001: 011 Saya tidak mencuba peranti bersiri kerana anda belum memberitahu saya - tambahkan pilihan '--search-tty' agar saya mencari - tetapi berhati-hatilah bahawa ini boleh mematahkan devs bersiri yang lain

Walau bagaimanapun, ada kemungkinan anda mendapat mesej ralat yang mengatakan bahawa pembaca telah dijumpai tetapi pengguna anda (pi) tidak mempunyai kebenaran untuk mengaksesnya. Sekiranya anda mendapat mesej ralat ini, maka ia juga akan menjelaskan cara menyelesaikan masalah, iaitu dengan mengetik dua arahan yang kelihatan seperti berikut:

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

sudo udevadm control -R

Salin dan laksanakan kedua-dua perintah yang diberikannya kepada anda (tidak seperti yang di atas, kerana perintah anda mungkin berbeza), kemudian cabut dan pasang semula pembaca NFC anda dari port USB.

Cuba arahan cek sekali lagi:

python -m nfc

Kali ini ia harus mengatakan bahawa ia dijumpai tanpa mesej ralat.

Langkah 21: Pasang Skrip Python Vinylemulator

Kami sekarang mempunyai semua blok bangunan di tempat:

  • Raspberry Pi kami dapat mendengar input NFC
  • Raspberry Pi kami dapat memberitahu Sonos untuk memainkan senarai main Spotify apabila diberi Spotify URI
  • Kami mempunyai tag NFC dengan URI Spotify yang tersimpan di dalamnya

Sekarang kita perlu menarik semua blok bangunan ini menjadi sesuatu yang berguna. Ini dilakukan melalui skrip python pendek yang saya tulis (dengan banyak bantuan dari projek NFC / Spotify / Sonos sebelumnya) yang dipanggil vinylemulator.

Anda boleh melihat kod sumber untuk fail di github:

Untuk memasangnya ke Raspberry Pi kami, kami perlu mengklonnya dari github dengan arahan berikut:

klon git

Langkah 22: Sesuaikan Vinylemulator

Sesuaikan Vinylemulator
Sesuaikan Vinylemulator
Sesuaikan Vinylemulator
Sesuaikan Vinylemulator

Buka pengurus fail Raspberry Pi dan pergi ke rumah> pi> vinylemulator

Buka fail usersettings.py

Salah satu baris dalam fail ini akan berbunyi:

sonosroom = "Ruang Makan"

Tukar "Ruang Makan" menjadi nama bilik Sonos mana sahaja yang ingin anda kendalikan.

Terdapat juga pengaturan dalam file ini yang memungkinkan anda menyesuaikan alamat IP sonos-http-api. Anda harus membiarkan ini tidak berubah sebagai "localhost" yang bermaksud ia akan menggunakan Raspberry Pi yang sedang dijalankan.

Simpan fail dan tutup.

Langkah 23: Uji Vinylemulator

Uji Vinylemulator
Uji Vinylemulator
Uji Vinylemulator
Uji Vinylemulator

Pergi ke prompt arahan Raspberry Pi anda.

Masukkan arahan berikut:

python vinylemulator / readnfc.py

Sekiranya semuanya baik, ini akan memuatkan skrip dan mengatakan bahawa pembaca sudah bersedia. Lampu pada pembaca harus berwarna hijau.

Letakkan tag NFC pada pembaca, yang akan berbunyi.

Terminal akan menunjukkan apa yang telah dibaca dari tag NFC dan menunjukkan alamat permintaan HTTP yang telah dihantar. Album pilihan anda harus dimainkan dari pembesar suara Sonos anda.

Skrip ini akan terus berjalan sehingga anda menutup tetingkap terminal. Anda boleh mengetuk label NFC album yang berbeza dan ia akan beralih ke album itu.

Langkah 24: Dapatkan Vinylemulator untuk Berjalan dengan berterusan dan pada Permulaan

Sama seperti sonos-http-api, kami mahu vinylemulator berjalan sepanjang masa dan bukan hanya ketika kami memanggilnya. Kita boleh menggunakan pm2 untuk melakukannya sekali lagi.

Pertama, tutup mana-mana contoh vinylemulator yang anda jalankan dengan menutup tingkap terminal mereka.

Kemudian buka tetingkap terminal baru dan ketik dua arahan berikut:

pm2 mulakan vinylemulator / readnfc.py

simpan pm2

Mari kita periksa apakah itu berjaya dengan menghidupkan semula Raspberry Pi. (Anda boleh menaip rebo sudo atau melakukannya dari menu Raspberry dengan tetikus anda.

Tunggu Pi untuk memulakan semula dan lihat ia berfungsi dengan mengetuk tag NFC pada pembaca. Anda mesti mendapat muzik.

Langkah 25: Tahniah kepada Diri

Semuanya kini berfungsi. Anda boleh memindahkan Raspberry Pi ke mana sahaja anda merancang untuk meletakkannya. Ia akan dimulakan semula dan beroperasi dengan cara anda menyiapkannya pada bila-bila masa anda memasangnya.

Tugas anda seterusnya adalah tugas yang menyeronokkan: menjadikan semuanya cantik.

Langkah 26: Jadikannya Cantik - Sembunyikan Pembaca Anda

Jadikannya Cantik - Sembunyikan Pembaca Anda
Jadikannya Cantik - Sembunyikan Pembaca Anda
Jadikannya Cantik - Sembunyikan Pembaca Anda
Jadikannya Cantik - Sembunyikan Pembaca Anda
Jadikannya Cantik - Sembunyikan Pembaca Anda
Jadikannya Cantik - Sembunyikan Pembaca Anda
Jadikannya Cantik - Sembunyikan Pembaca Anda
Jadikannya Cantik - Sembunyikan Pembaca Anda

Bahagian pertama untuk menjadikannya cantik adalah menyembunyikan pembaca NFC plastik putih yang menjijikkan di suatu tempat.

Saya telah memilih dengan pilihan teknologi rendah untuk mengetuknya ke bahagian bawah kaunter di sebelah Sonos Play saya: 5. Kayu kaunter cukup tipis sehingga NFC dapat dilalui, jadi saya memainkan muzik dengan mengetuk tag NFC di tempat yang ajaib dan tidak kelihatan.

Disyorkan: