Daftar Isi:

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, Juli
Anonim
Image
Image
Sonos Spotify Vinyl Emulator
Sonos Spotify Vinyl Emulator

Harap dicatat bahwa ini bukan set instruksi terbaru untuk proyek ini:

Silakan kunjungi https://www.hackster.io/mark-hank/sonos-spotify-vinyl-emulator-3be63d untuk rangkaian instruksi dan dukungan terbaru

Mendengarkan musik di vinyl sangat bagus. Ini fisik dan taktil. Anda mendengarkan seluruh album daripada trek acak. Anda memperhatikan ketika itu berakhir dan secara sadar memilih sesuatu yang lain. Anda dapat membuat koleksi dan menelusurinya daripada harus mencari apa yang Anda inginkan.

Ini juga mahal dan besar, terutama ketika Anda mempertimbangkan bahwa uang yang Anda keluarkan untuk vinyl kemungkinan besar merupakan duplikat musik yang sudah Anda akses melalui layanan streaming yang Anda berlangganan.

Proyek ini mencoba untuk mereplikasi aspek taktilitas dan pengembangan koleksi dari vinil sambil mengandalkan Spotify untuk benar-benar menghadirkan musik. Menempatkan objek fisik pada pembaca NFC yang terhubung ke Raspberry Pi (keduanya dapat disembunyikan) akan mulai memutar album yang terkait dengan tag tersebut.

Saya akan memandu Anda melalui semua langkah - mulai dari menyiapkan Raspberry Pi hingga menyandikan tag NFC. Ini adalah proyek Raspberry Pi pertama saya dan kode Python pertama saya, jadi saya belajar sendiri keduanya saat mengembangkan ini. Dengan demikian, instruksi ini secara harfiah mengasumsikan nol pengetahuan sebelumnya dan memandu Anda melalui setiap langkah.

Total biaya untuk komponen penting untuk membangun ini adalah sekitar £50-60.

Saya ingin melihat apa yang Anda bangun!

Langkah 1: Persediaan yang Diperlukan 1: Raspberry Pi

Bagian belakang yang berinteraksi dengan jaringan Anda, Sonos dan Spotify akan dijalankan oleh Raspberry Pi. Sebenarnya sangat sedikit yang Anda butuhkan untuk menjalankan ini.

Penting:

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

Catu daya USB: Saya punya satu yang tergeletak di sekitar - ada yang resmi tersedia jika Anda tidak (£ 9)

Kartu Micro SD: Saya mendapat yang 32gb, yang cukup untuk aplikasi ini, di Amazon (£ 6)

Beberapa peralatan Sonos berjalan di jaringan Anda (saya kira Anda sudah memilikinya jika Anda di sini…)

Akun Spotify Premium

Direkomendasikan:

Kasing untuk Pi: ada banyak pilihan, mulai dari £5

Sebotol Zinfandel California yang layak: Saya merekomendasikan Ridge, tetapi yang lain tersedia

Langkah 2: Persediaan yang Diperlukan 2: Pembaca NFC

Persediaan yang Diperlukan 2: Pembaca NFC
Persediaan yang Diperlukan 2: Pembaca NFC
Persediaan yang Diperlukan 2: Pembaca NFC
Persediaan yang Diperlukan 2: Pembaca NFC

Instruksi ini dibuat untuk pembaca NFC ACR122U yang terhubung melalui USB.

ACR122U

Saya membeli yang ini dari Amazon seharga £ 38 (kebanyakan karena pengirimannya prima) tetapi ada opsi yang lebih murah untuk membeli pembaca yang sama ini.

Membingungkan ACR122U tampaknya dijual di bawah sekelompok nama merek yang berbeda (milik saya berada di bawah nama merek yang jauh dari meyakinkan "Yosoo") tetapi dari apa yang saya tahu mereka semua sama dan dibangun oleh Sistem Kartu Amerika.

Yang termurah yang saya temukan adalah ACR122U yang diiklankan adalah £ 21 termasuk pengiriman, tetapi itu datang langsung dari China sehingga Anda mungkin perlu menunggu sedikit untuk itu.

Pilihan lain

Proyek ini bergantung pada pustaka python yang disebut nfcpy yang menyimpan daftar perangkat yang didukung di sini:

Secara teori, proyek ini harus bekerja dengan salah satu dari mereka yang ada di daftar itu dengan sedikit integrasi.

Salah satu opsi yang menggoda adalah Adafruit PN532 yang merupakan papan yang harus terhubung langsung ke Raspberry Pi Anda menggunakan kabel jumper. Saya mencobanya dan menemukan itu faff nyata. Ini membutuhkan penyolderan, misalnya.

Salah satu keuntungannya adalah, secara dangkal, itu lebih kecil tetapi pada kenyataannya papan berukuran hampir sama dengan nyali ACR122U. Jika Anda benar-benar membutuhkan ruang untuk aplikasi Anda, maka Anda dapat melepaskan plastik dari ACR122U dan cukup gunakan papannya.

Langkah 3: Persediaan yang Diperlukan 3: Tag NFC

Persediaan yang Diperlukan 3: Tag NFC
Persediaan yang Diperlukan 3: Tag NFC

Untuk setiap album yang ingin Anda buat, Anda memerlukan tag NFC yang memenuhi standar NTAG213.

Ada banyak tempat untuk membeli ini.

Saya membeli batch pertama saya dari Amazon, di mana saya mendapat paket 10 seharga £ 9 (termasuk pengiriman Perdana)

Yang terbaik yang saya temukan di sini di Inggris adalah Seritag - mereka memiliki banyak pilihan gaya yang berbeda, saran bagus di situs web mereka, Anda tahu persis apa yang Anda dapatkan (tidak selalu benar di Amazon). Mereka tidak memiliki ukuran pesanan minimum dan banyak pilihan. Tag mulai dari 27p per tag

Langkah 4: Unduh Raspberry Pi OS ke Kartu SD

Unduh Raspberry Pi OS ke Kartu SD
Unduh Raspberry Pi OS ke Kartu SD
Unduh Raspberry Pi OS ke Kartu SD
Unduh Raspberry Pi OS ke Kartu SD

Di PC atau Mac Anda, unduh dan jalankan aplikasi imager Raspberry PI.

Masukkan kartu SD tempat Anda ingin menginstal sistem operasi Raspberry Pi.

Klik PILIH OS dan pilih Rasbian default.

Klik PILIH KARTU SD dan pilih kartu SD yang telah Anda pasang.

Klik TULIS. Ini mungkin memakan waktu cukup lama.

Setelah selesai, Anda akan diminta untuk mengeluarkan kartu SD, yang harus Anda lakukan. Tapi kemudian pasang kembali karena ada beberapa hal yang perlu Anda lakukan terlebih dahulu.

Langkah 5: Aktifkan SSH pada Gambar OS Raspberry Pi Anda

Aktifkan SSH pada Gambar OS Raspberry Pi Anda
Aktifkan SSH pada Gambar OS Raspberry Pi Anda

Setelah OS ditulis ke kartu SD, ada beberapa tugas tambahan yang perlu Anda lakukan.

Kami ingin mengakses Raspberry Pi tanpa mencolokkan keyboard atau monitor (alias "tanpa kepala"), yang dapat kami lakukan melalui jaringan lokal kami menggunakan PC atau Mac melalui protokol yang disebut SSH. Namun, untuk alasan keamanan SSH dinonaktifkan secara default. Kita perlu mengaktifkannya.

Kita dapat melakukan ini dengan membuat file kosong bernama:

ssh

di kartu SD yang baru saja kita buat. Penting bahwa ini tidak memiliki ekstensi apa pun (mis..txt). File itu sendiri tidak perlu berisi konten apa pun - hanya keberadaannya yang akan mengaktifkan SSH saat Pi boot.

Langkah 6: Opsional: Siapkan Wifi di Raspberry Pi Anda

Opsional: Atur Wifi di Raspberry Pi Anda
Opsional: Atur Wifi di Raspberry Pi Anda
Opsional: Atur Wifi di Raspberry Pi Anda
Opsional: Atur Wifi di Raspberry Pi Anda

Anda dapat melewati langkah ini jika Anda berencana untuk menghubungkan Raspberry Pi ke router Anda melalui ethernet. (Meskipun Anda mungkin ingin berpikir keras tentang keputusan itu - menjalankannya melalui wifi membuat hidup jauh lebih mudah dalam hal memposisikan ini)

Buat file teks biasa bernama wpa_supplicant.conf di direktori root kartu SD.

Masukkan teks di bawah ini ke dalam file:

negara=gb

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

Ubah negara yang sesuai (GB adalah Inggris, AS adalah AS, DE adalah Jerman, dll)

Ubah kredensial wifi di sana menjadi detail router wifi Anda yang sebenarnya.

Simpan file.

Keluarkan kartu SD dengan aman.

Langkah 7: Nyalakan Raspberry Pi Anda

Nyalakan Pi Raspberry Anda
Nyalakan Pi Raspberry Anda

Masukkan kartu SD yang baru saja Anda buat ke dalam Raspberry Pi Anda.

Colokkan Raspberry Pi Anda ke daya melalui kabel USB. Tunggu sebentar untuk boot.

Langkah 8: Temukan Alamat IP Raspberry Pi Anda

Anda sekarang perlu menemukan alamat IP Raspberry Pi sehingga Anda dapat terhubung dengannya. Anda dapat melakukan ini dengan dua cara:

  • melalui halaman pengaturan router Anda - jika Anda memiliki router modern seperti eero maka ini sangat mudah;
  • atau melalui aplikasi smartphone yang tersedia untuk iOS dan Android yang disebut "fing" - unduh, sambungkan ke router Anda dan pindai perangkat - salah satunya harus disebut "Raspberry" - ini akan menjadi alamat IP yang Anda butuhkan.

Langkah 9: Hubungkan ke Baris Perintah Raspberry Pi Anda

Hubungkan ke Baris Perintah Raspberry Pi Anda
Hubungkan ke Baris Perintah Raspberry Pi Anda

Buka Terminal di mac Anda (atau jika Anda menggunakan Windows, unduh dan gunakan Putty).

Masukkan perintah berikut:

ssh pi@[alamat IP Pi Anda]

Terima peringatan keamanan apa pun yang Anda dapatkan. Anda akan dimintai kata sandi untuk pengguna pi default yaitu

frambos

Langkah 10: Siapkan GUI OS Raspberry Pi

Siapkan GUI OS Raspberry Pi
Siapkan GUI OS Raspberry Pi
Siapkan GUI OS Raspberry Pi
Siapkan GUI OS Raspberry Pi

Anda sekarang terhubung ke Pi Anda melalui baris perintah, yang bagus tetapi Anda juga ingin mengaturnya sehingga Anda dapat mengakses Antarmuka Pengguna Grafis yang akan kami akses melalui VNC (Virtual Network Computing). Bisa ditebak, kita juga perlu mengaktifkan ini.

Pertama-tama periksa perangkat lunak Pi Anda mutakhir dengan memasukkan dua perintah berikut (masing-masing diikuti dengan enter) ke dalam baris perintah:

sudo apt update

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

Selanjutnya, buka menu pengaturan Raspberry Pi dengan memasukkan:

sudo raspi-config

Arahkan ke Opsi Antarmuka > VNC > Ya.

Keluar dari aplikasi konfigurasi dengan menekan tombol escape dan reboot Pi dari baris perintah dengan mengetik:

sudo reboot

Langkah 11: Hubungkan ke dan Atur GUI Raspberry Pi Anda

Hubungkan ke dan Atur GUI Raspberry Pi Anda
Hubungkan ke dan Atur GUI Raspberry Pi Anda
Hubungkan ke dan Atur GUI Raspberry Pi Anda
Hubungkan ke dan Atur GUI Raspberry Pi Anda

Unduh dan buka VNC Viewer.

Ketik alamat IP untuk Raspberry Pi Anda dan tekan connect. Ini akan meminta Anda untuk nama pengguna dan kata sandi yaitu:

Nama pengguna = pi

Kata sandi = raspberry

Ini akan mem-boot Anda ke GUI.

Ini akan meminta Anda untuk mengonfirmasi geografi dan tata letak keyboard Anda.

Ini kemudian akan meminta Anda untuk mengubah kata sandi Anda (ide bagus).

Ini akan meminta Anda untuk mengatur detail wifi Anda, tetapi Anda dapat melewati ini karena sudah berfungsi. (Meskipun jika Anda menggunakan ethernet dan berpikir dua kali maka sekarang adalah kesempatan Anda … tetapi perhatikan alamat IP Anda mungkin berubah)

Ini kemudian akan memeriksa, mengunduh, dan menginstal pembaruan (mungkin memakan waktu cukup lama).

Setelah Anda melalui wizard pengaturan, saya akan merekomendasikan mengubah resolusi layar karena defaultnya cukup kecil. Anda dapat melakukan ini dengan mengklik Raspberry di kiri atas > Preferensi > Konfigurasi Raspberry Pi > Tampilan > Atur Resolusi

Anda perlu me-reboot Pi lagi agar ini berlaku.

Langkah 12: Instal Node.js dan NPM

Instal Node.js dan NPM
Instal Node.js dan NPM

Selanjutnya Anda ingin memuat baris perintah Raspberry Pi untuk menginstal dependensi yang kita butuhkan.

Anda dapat melakukan ini dengan menghubungkan melalui VNC dan mengklik tombol di dekat bagian atas yang terlihat seperti baris perintah; atau Anda dapat terhubung langsung dari Mac/PC Anda menggunakan Terminal dan Putty seperti yang kami lakukan sebelumnya. Jika Anda kurang terbiasa bekerja dengan Raspberry Pi maka lebih mudah untuk melakukan yang pertama.

(Tips: Anda dapat menyalin teks dari Mac/PC dan menempelkannya ke Raspberry Pi melalui VNC dengan menekan CONTROL-V, tetapi jika Anda mencoba menempelkannya ke Terminal maka Anda perlu menekan CONTROL-SHIFT-V)

Pekerjaan pertama adalah memeriksa kembali perangkat lunak Anda yang terbaru dengan mengetikkan dua perintah berikut. Mereka mungkin memerlukan beberapa saat untuk mengunduh dan menginstal.

sudo apt-get update

sudo apt-get upgrade

Selanjutnya Anda ingin mengunduh dan menginstal node.js dan NPM (jangan terlalu khawatir tentang apa itu, mereka berguna dan diperlukan untuk tugas kita selanjutnya) dengan mengetikkan yang berikut:

sudo apt-get install nodejs npm

Ini akan menanyakan Anda beberapa kali apakah Anda senang menggunakan ruang disk dengan ini - Anda jadi tekan Y

Langkah 13: Instal SONOS HTTP API

Instal SONOS HTTP API
Instal SONOS HTTP API
Instal SONOS HTTP API
Instal SONOS HTTP API

Dasar dari back end untuk proyek kami adalah paket node-sonos-http-api yang dibuat oleh jishi. Anda dapat membaca semuanya di sini:

Kami akan mengunduh ini dari github dengan perintah berikut dimasukkan ke dalam baris perintah:

git clone

dan kami akan menginstalnya dengan perintah berikut

cd node-sonos-http-api

instal npm --produksi

Kemudian kita dapat menjalankannya dengan perintah berikut:

npm mulai

Setelah selesai, kita harus menguji apakah itu berfungsi.

Pertama-tama, buka browser internet di Raspberry Pi kami dan arahkan ke https://localhost:5005/. Antarmuka yang bagus harus dibuka dengan logo Sonos dan beberapa dokumentasi tentang cara kerja API.

Selanjutnya, mari kita periksa apakah ini berfungsi dari jaringan yang lebih luas dengan menggunakan browser di PC atau Mac lain di jaringan yang sama dan menavigasi ke https://[theIPaddressofyourPi]:5005/ dan melihat apakah kita mendapatkan hasil yang sama. Kita harus.

Sekarang kita benar-benar akan membuat sistem melakukan sesuatu. Gunakan browser dan navigasikan ke:

192.168.4.102:505/Ruang Makan/playpause

Anda harus mengganti alamat IP di atas dengan alamat Raspberry Pi Anda dan "Ruang Makan" dengan salah satu nama zona Sonos Anda. Itu harus memutar atau menjeda (tergantung apakah musik sudah diputar atau tidak) musik di ruangan itu. Jelas ada sesuatu yang harus ada di antrean Sonos agar itu berfungsi.

Ke depannya, saya akan menggunakan alamat IP dan Ruang Makan di atas sebagai contoh di sepanjang tutorial ini. Jelas Anda harus menggantinya dengan alamat IP dan nama zona Anda pada setiap kesempatan.

Langkah 14: Jadikan Sonos HTTP API Berjalan Terus-menerus

Jadikan Sonos HTTP API Berjalan Terus-menerus
Jadikan Sonos HTTP API Berjalan Terus-menerus

Sangat bagus bahwa kami menjalankan Sonos HTTP API, tetapi bagaimana jika crash? Atau Anda kehilangan daya atau perlu me-reboot Raspberry Pi Anda?

Anda dapat melihat efeknya dengan menutup jendela terminal dan mencoba kembali apa yang baru saja kita coba. Ini tidak akan berfungsi karena API HTTP telah berhenti bersama dengan jendela terminal.

Kami sebenarnya ingin ini berjalan terus-menerus dan melakukannya dari startup setiap kali. Kami melakukan ini dengan hal keren yang disebut PM2.

Di jendela terminal baru, instal dan jalankan sebagai berikut:

sudo npm install -g pm2

status pm2

Sekarang mari kita jalankan Sonos HTTP API kami:

cd node-sonos-http-api

pm2 start npm -- start pm2 startup systemd

Perintah terakhir ini menghasilkan sesuatu yang terlihat seperti:

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

Salin apa yang dihasilkan Pi Anda (bukan teks persis di atas - milik Anda mungkin berbeda) dan masukkan ke dalam baris perintah. Ini menginstruksikan sistem untuk menjalankan PM2 saat boot setiap saat.

Akhirnya, masukkan:

pm2 simpan

yang menyimpan semuanya.

Sekarang uji apakah ini berhasil dengan me-reboot Raspberry Pi Anda dengan perintah

sudo reboot

Mudah-mudahan setelah Pi reboot, itu juga akan memulai PM2 dan pada gilirannya Sonos HTTP API. Anda dapat memeriksanya dengan menavigasi menggunakan browser di jaringan yang sama ke alamat yang kami gunakan sebelumnya dan melihat logo dan instruksi Sonos:

192.168.4.102:505/

adalah apa untuk saya, tetapi milik Anda akan tergantung pada alamat IP.

Langkah 15: Mainkan Beberapa Spotify

Mari kita periksa apakah layanan tersebut dapat mengakses Spotify.

Buka browser dan arahkan ke alamat berikut (jelas diganti dengan alamat IP dan nama ruangan Anda):

192.168.4.102:505/Ruang Makan/spotify/sekarang/spotify/spotify:album:2dfTV7CktUEBkZCHiB7VQB

Anda harus mendengar beberapa John Grant. Menikmati.

Langkah 16: Temukan URI Spotify

Temukan URI Spotify
Temukan URI Spotify

Aneh, saya tahu, tapi tidak semua orang menyukai John Grant. Mungkin Anda ingin mendengarkan yang lain?

Anda bisa mendapatkan tautan Spotify dari desktop, web, atau aplikasi seluler, tetapi Desktop sejauh ini adalah yang termudah karena memberikan URI persis dalam format yang Anda inginkan, jadi mulailah dengan itu.

Di aplikasi desktop Spotify, navigasikan ke album yang ingin Anda dengarkan (mungkin Lemonade oleh Beyonce?)

Klik pada tiga titik kecil di sebelah tombol hati.

Buka menu untuk Berbagi dan pilih Salin URI Spotify

Ini akan menyalin sesuatu seperti

spotify:album:7dK54iZuOxXFarGhXwEXfF

ke papan klip Anda, yang merupakan URI Spotify untuk album Lemondade Beyonce.

Jalankan browser Anda lagi dan arahkan ke alamat berikut (jelas mengganti alamat IP dan ruang dan menempelkan di URI yang baru saja Anda salin):

192.168.4.102:505/Ruang Makan/spotify/sekarang/[URI Spotify yang ingin kamu mainkan]

Anda harus mendengar permainan pilihan Anda.

Jika Anda lebih suka menggunakan aplikasi web maka itu akan memberi Anda tautan web (seperti di bawah):

open.spotify.com/album/7dK54iZuOxXFarGhXwEXfF

Anda perlu mengonversi ini ke format spotify:album:code di atas agar bisa berfungsi.

Langkah 17: Catatan tentang URI Spotify

Spotify URI dan cara mereka berinteraksi dengan node-sonos-http-api adalah intuitif, untuk sebagian besar.

Anda dapat menautkan langsung ke album, trek, dan daftar putar.

URI album terlihat seperti:

spotify:album:6agCM9GJcebduMddgFmgsO

URI trek terlihat seperti:

spotify:track:4fNDKbaeEjk2P4GrRE1UbW

Daftar putar bekerja sedikit berbeda. Saat Anda menyalin URI dari Spotify, itu akan terlihat seperti:

spotify:playlist:5huIma0YU4iusLcT2reVEU

Namun, untuk benar-benar membuatnya berfungsi di API, Anda perlu menambahkan spotify:user: ke awal di atas. Ini berlaku bahkan untuk daftar putar publik dan, ya, itu berarti Anda mengatakan spotify dua kali.

Untuk lebih jelasnya, pengguna tidak perlu nama pengguna tertentu, cukup pengguna teks. Jadi URI yang benar untuk daftar putar di atas agar berfungsi adalah:

spotify:pengguna:spotify:daftar putar:5huIma0YU4iusLcT2reVEU

Langkah 18: Siapkan Raspberry Pi untuk Mengirim Permintaan

Siapkan Raspberry Pi untuk Mengirim Permintaan HTTP
Siapkan Raspberry Pi untuk Mengirim Permintaan HTTP

Daripada mengetik permintaan HTTP secara manual ke browser web, kami ingin mengotomatiskannya sehingga Raspberry Pi melakukannya sendiri saat disajikan dengan stimulus tertentu (pembaca NFC dipicu).

Kami akan menggunakan perpustakaan yang disebut permintaan untuk memungkinkan Raspberry Pi kami melakukan ini. Mari kita periksa sudah terpasang.

Buka terminal pada Pi Anda dan ketik berikut ini:

sudo pip permintaan instal

Kemungkinan itu kembali dan mengatakan itu sudah diinstal, dalam hal ini bagus. Jika tidak, itu akan menginstalnya.

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. Masing-masing tag ini adalah apa yang akan Anda gunakan untuk memberitahu Raspberry Pi untuk memainkan album tertentu.

Anda dapat menulis ke tag NFC menggunakan ponsel Android, tetapi saya merasa paling mudah melakukannya melalui mac atau PC karena Anda bisa mendapatkan URI Spotify yang paling mudah dari aplikasi desktop Spotify.

Colokkan pembaca NFC USB Anda ke PC atau Mac Anda. Saya menggunakan ACR122U oleh American Card Systems.

Unduh Alat NFC ke PC atau Mac Anda. Instal dan buka.

Kadang-kadang bisa agak lambat untuk terhubung ke pembaca dan mungkin mengatakan bahwa itu tidak dapat menemukan pembaca sama sekali. Buka tab Lainnya di alat NFC dan klik sesering mungkin pada tombol Pembaca NFC yang Terhubung. Anda mungkin harus mencabut dan memasang kembali pembaca beberapa kali sebelum menemukannya.

Akhirnya itu akan memberi Anda pilihan untuk memilih pembaca Anda dari daftar dan mengatakan bahwa itu terhubung. Buka tab Informasi yang tidak akan menampilkan apa pun kecuali "Menunggu tag NFC".

Ambil tag NFC kosong. Letakkan di pembaca dan biarkan di sana. Alat NFC akan menampilkan informasi tentang tag.

Buka tab Tulis dan klik Tambahkan catatan > Teks. (Hati-hati untuk tidak memilih URL atau URI - Saya tahu ini menggoda karena Anda menyalin URI, tetapi Anda menginginkan teks)

Ambil URI dari Spotify menggunakan metode yang kami gunakan sebelumnya. Jika Anda ingin contoh yang mudah maka berikut ini adalah album John Grant kami dari sebelumnya.

spotify:album:2dfTV7CktUEBkZCHiB7VQB

Klik OK dan kemudian klik Tulis (jangan lupa langkah terakhir ini - itu tidak benar-benar menulisnya sampai Anda mengklik ini). Ini akan memberi tahu Anda bahwa tag telah berhasil ditulis.

Lepaskan tag dari pembaca

Langkah 20: Siapkan Pembaca NFC di Raspberry Pi

Mengatur Pembaca NFC di Raspberry Pi
Mengatur Pembaca NFC di Raspberry Pi

Colokkan pembaca NFC Anda ke salah satu port USB di Raspberry Pi Anda.

Kami akan menggunakan pustaka nfcpy Python untuk berkomunikasi dengan pembaca NFC. Instal dengan mengetikkan yang berikut di baris perintah Pi Anda:

instal pip -U nfcpy

Kami kemudian dapat memeriksa apakah perpustakaan ini dapat melihat pembaca NFC kami dengan mengetikkan yang berikut:

python -m nfc

Jika sudah berhasil maka akan muncul tampilan sebagai berikut:

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

Saya sekarang mencari perangkat tanpa kontak di sistem Anda ** menemukan ACS ACR122U PN532v1.6 di usb:001:011 Saya tidak mencoba perangkat serial karena Anda belum memberi tahu saya -- tambahkan opsi '--search-tty' agar saya mencari -- tetapi berhati-hatilah karena ini dapat merusak pengembang serial lainnya

Namun ada kemungkinan besar Anda mendapatkan pesan kesalahan yang mengatakan bahwa pembaca telah ditemukan tetapi pengguna Anda (pi) tidak memiliki izin untuk mengaksesnya. Jika Anda mendapatkan pesan kesalahan ini, maka akan dijelaskan juga cara memperbaiki masalah, yaitu dengan mengetikkan dua perintah yang terlihat seperti berikut ini:

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

sudo udevadm kontrol -R

Salin dan jalankan kedua perintah yang diberikannya (tidak persis seperti di atas, karena perintah Anda mungkin berbeda), lalu cabut dan pasang kembali pembaca NFC Anda dari port USB.

Coba perintah cek lagi:

python -m nfc

Kali ini seharusnya dikatakan bahwa itu ditemukan tanpa pesan kesalahan.

Langkah 21: Instal Skrip Python Vinylemulator

Kami sekarang memiliki semua blok bangunan di tempat:

  • Raspberry Pi kami dapat mendengarkan input NFC
  • Raspberry Pi kami dapat memberi tahu Sonos untuk memutar daftar putar Spotify saat diberikan URI Spotify
  • Kami memiliki 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 proyek NFC/Spotify/Sonos sebelumnya) yang disebut vinylemulator.

Anda dapat melihat kode sumber untuk file di github:

Untuk menginstal ini ke Raspberry Pi kami, kami perlu mengkloningnya dari github dengan perintah berikut:

git clone

Langkah 22: Sesuaikan Vinylemulator

Sesuaikan Vinylemulator
Sesuaikan Vinylemulator
Sesuaikan Vinylemulator
Sesuaikan Vinylemulator

Buka file manager Raspberry Pi dan arahkan ke home > pi > vinylemulator

Buka file usersettings.py

Salah satu baris dalam file ini akan berbunyi:

sonosroom="Ruang Makan"

Ubah "Ruang Makan" menjadi nama kamar Sonos mana pun yang ingin Anda kendalikan.

Ada juga pengaturan dalam file ini yang memungkinkan Anda untuk menyesuaikan alamat IP dari file sonos-http-api. Anda harus dapat membiarkan ini tidak berubah sebagai "localhost" yang berarti ia akan menggunakan Raspberry Pi yang dijalankannya.

Simpan file dan tutup.

Langkah 23: Uji Vinylemulator

Uji Vinylemulator
Uji Vinylemulator
Uji Vinylemulator
Uji Vinylemulator

Buka prompt perintah Raspberry Pi Anda.

Masukkan perintah berikut:

python vinylemulator/readnfc.py

Jika semuanya baik-baik saja, ini akan memuat skrip dan mengatakan bahwa pembaca sudah siap. Lampu pembaca harus menyala hijau.

Letakkan tag NFC pada pembaca, yang akan berbunyi bip.

Terminal akan menunjukkan apa yang telah dibaca dari tag NFC dan menunjukkan alamat permintaan HTTP yang telah dikirim. Album pilihan Anda harus diputar dari speaker Sonos Anda.

Script ini akan terus berjalan sampai Anda menutup jendela terminal. Anda dapat mengetuk tag NFC album yang berbeda dan itu akan beralih ke album itu.

Langkah 24: Dapatkan Vinylemulator untuk Berjalan Terus-menerus dan di Startup

Sama seperti sonos-http-api, kami ingin vinylemulator berjalan sepanjang waktu, bukan hanya saat kami memanggilnya. Kita dapat menggunakan pm2 untuk melakukan ini lagi.

Pertama-tama tutup semua instance vinylemulator yang Anda jalankan dengan menutup jendela terminalnya.

Kemudian buka jendela terminal baru dan ketik dua perintah berikut:

pm2 mulai vinylemulator/readnfc.py

pm2 simpan

Mari kita periksa apakah itu berhasil dengan me-reboot Raspberry Pi. (Anda dapat mengetik sudo reboot atau melakukannya dari menu Raspberry dengan mouse Anda.

Tunggu Pi untuk memulai lagi dan lihat itu berfungsi dengan mengetuk tag NFC pada pembaca. Anda harus mendapatkan musik.

Langkah 25: Ucapkan Selamat untuk Diri Sendiri

Semuanya sekarang berfungsi. Anda dapat memindahkan Raspberry Pi ke mana pun Anda berencana menempatkannya. Ini akan restart dan beroperasi dengan cara Anda mengaturnya setiap kali Anda mencolokkannya.

Tugas Anda selanjutnya adalah yang menyenangkan: membuat semuanya indah.

Langkah 26: Jadikan Ini Indah - Sembunyikan Pembaca Anda

Make It Beautiful - Sembunyikan Pembaca Anda
Make It Beautiful - Sembunyikan Pembaca Anda
Make It Beautiful - Sembunyikan Pembaca Anda
Make It Beautiful - Sembunyikan Pembaca Anda
Make It Beautiful - Sembunyikan Pembaca Anda
Make It Beautiful - Sembunyikan Pembaca Anda
Make It Beautiful - Sembunyikan Pembaca Anda
Make It Beautiful - Sembunyikan Pembaca Anda

Bagian pertama dari membuatnya cantik adalah menyembunyikan pembaca NFC plastik putih yang buruk di suatu tempat.

Saya telah menggunakan opsi teknologi yang sangat rendah untuk menempelkannya ke bagian bawah meja di sebelah Sonos Play:5 saya. Kayu penghitung cukup tipis sehingga NFC dapat dilalui, jadi saya memutar musik dengan mengetuk tag NFC di tempat ajaib dan tak terlihat.

Direkomendasikan: