Სარჩევი:

Sonos Spotify ვინილის ემულატორი: 26 ნაბიჯი
Sonos Spotify ვინილის ემულატორი: 26 ნაბიჯი

ვიდეო: Sonos Spotify ვინილის ემულატორი: 26 ნაბიჯი

ვიდეო: Sonos Spotify ვინილის ემულატორი: 26 ნაბიჯი
ვიდეო: How To Link And Play Spotify Music To Sonos 2024, ივლისი
Anonim
Image
Image
Sonos Spotify ვინილის ემულატორი
Sonos Spotify ვინილის ემულატორი

გთხოვთ გაითვალისწინოთ, რომ ეს არ არის ამ პროექტის ინსტრუქციის უახლესი ნაკრები:

გთხოვთ ეწვიოთ https://www.hackster.io/mark-hank/sonos-spotify-vinyl-emulator-3be63d უახლესი ინსტრუქციებისა და მხარდაჭერისთვის

ვინილზე მუსიკის მოსმენა მშვენიერია. ეს არის ფიზიკური და ტაქტილური. თქვენ უსმენთ მთელ ალბომს, ვიდრე შემთხვევით ჩანაწერებს. თქვენ შეამჩნევთ, როდესაც ის დასრულდება და შეგნებულად ირჩევთ სხვას. თქვენ შეგიძლიათ შექმნათ კოლექცია და დაათვალიეროთ ის, ვიდრე უნდა მოძებნოთ ზუსტად ის, რაც გსურთ.

ის ასევე ძვირი და მოცულობითია, განსაკუთრებით მაშინ, როდესაც მიიჩნევთ, რომ ვინილზე დახარჯული თანხა დიდი ალბათობით არის მუსიკის დუბლიკატი, რომელზეც თქვენ უკვე გაქვთ წვდომა სტრიმინგის სერვისის მეშვეობით, რომელსაც თქვენ გამოიწერთ.

ეს პროექტი ცდილობს გაიმეოროს ვინილის ტაქტიზმი და შეგროვების შემქმნელი ასპექტები, ხოლო Spotify– ს ეყრდნობა მუსიკის რეალურად გადმოსაცემად. NFC მკითხველზე Raspberry Pi- ზე მიერთებული ფიზიკური ობიექტის განთავსება (ორივე შეიძლება დამალული იყოს) დაიწყება ამ ტეგთან დაკავშირებული ალბომის დაკვრა.

მე გაგივლით ყველა საფეხურს - Raspberry Pi- ს დაყენებიდან დაწყებული NFC ტეგების კოდირებით. ეს არის ჩემი პირველი Raspberry Pi პროექტი და ჩემი პირველი პითონის კოდი, ასე რომ, მე ვასწავლე მე თვითონ ორივე ამის შემუშავებისას. ამრიგად, ეს ინსტრუქციები ითვალისწინებს ფაქტიურად ნულოვან ცოდნას და გესაუბრებით ყოველ ნაბიჯზე.

მთლიანი ღირებულება ამ კომპონენტის ასაშენებლად არის დაახლოებით 50-60 ფუნტი.

სიამოვნებით ვნახავ რას აშენებ!

ნაბიჯი 1: საჭირო მასალები 1: ჟოლო პი

უკანა ნაწილს, რომელიც ინტერფეისს უწევს თქვენს ქსელს, Sonos და Spotify გაუშვებს Raspberry Pi. სინამდვილეში, ძალიან ცოტა გჭირდებათ ამის მისაღწევად.

არსებითი:

Raspberry Pi: მე გამოვიყენე Raspberry Pi 3 Model B+, მაგრამ ის ასევე იმუშავებს Raspberry Pi 3 Model A+ - თან (£ 23)

USB დენის წყარო: მე მქონდა ერთი ტყუილი - არის ოფიციალური, თუ არა (£ 9)

მიკრო SD ბარათი: მე მივიღე 32 გბ, რომელიც ამ პროგრამისთვის საკმარისია, ამაზონზე (£ 6)

Sonos– ის ზოგიერთი მოწყობილობა მუშაობს თქვენს ქსელში (ვხვდები, რომ ეს უკვე გაქვთ, თუ აქ ხართ …)

Spotify Premium ანგარიში

რეკომენდირებულია:

საქმე Pi- სთან დაკავშირებით: არსებობს უამრავი ვარიანტი, დაწყებული 5 ფუნტიდან

ბოთლი ღირსეული კალიფორნიული ზინფანდელი: მე გირჩევთ ქედს, მაგრამ სხვები ხელმისაწვდომია

ნაბიჯი 2: საჭირო მასალები 2: NFC Reader

საჭირო მასალები 2: NFC Reader
საჭირო მასალები 2: NFC Reader
საჭირო მასალები 2: NFC Reader
საჭირო მასალები 2: NFC Reader

ეს ინსტრუქციები შექმნილია ACR122U NFC მკითხველისთვის, რომელიც აკავშირებს USB- ის საშუალებით.

ACR122U

მე ეს ვიყიდე ამაზონიდან 38 ფუნტად (ძირითადად იმიტომ, რომ მას ჰქონდა მთავარი მიწოდება), მაგრამ არსებობს უფრო იაფი ვარიანტი, რომ შეიძინოთ იგივე მკითხველი.

დამაბნეველია, რომ ACR122U, როგორც ჩანს, იყიდება რამოდენიმე განსხვავებული ბრენდის სახელწოდებით (ჩემი ბრენდი იყო "Yosoo"), მაგრამ რაც შემიძლია გითხრათ, ისინი ყველა ერთნაირია და შექმნილია American Card Systems- ის მიერ.

ყველაზე იაფი, რაც მე ვიპოვე რეკლამირებული ACR122U არის 21 ფუნტი, გადაზიდვის ჩათვლით, მაგრამ ეს პირდაპირ ჩინეთიდან მოდის, ასე რომ თქვენ შეიძლება დაგჭირდეთ ცოტაოდენი ლოდინი.

სხვა ვარიანტები

ეს პროექტი ეყრდნობა პითონის ბიბლიოთეკას, სახელწოდებით nfcpy, რომელიც ინარჩუნებს აქ მხარდაჭერილი მოწყობილობების ჩამონათვალს:

თეორიულად ეს პროექტი უნდა იმუშაოს რომელიმე იმ სიაში, ვინც მცირე ინტეგრაციით სარგებლობს.

ერთი მაცდური ვარიანტია Adafruit PN532, რომელიც არის დაფა, რომელიც პირდაპირ უნდა დაუკავშირდეს თქვენს ჟოლოს Pi- ს ჯუმბერის კაბელების გამოყენებით. მე ვცადე და აღმოვაჩინე, რომ ეს არის ნამდვილი შეცდომა. ის მოითხოვს შედუღებას, მაგალითად.

მისი ერთი უპირატესობა არის, ზედაპირულად, რომ ის უფრო პატარაა, მაგრამ სინამდვილეში დაფა დაახლოებით იგივე ზომისაა, როგორც ACR122U– ს ნაწლავები. თუ თქვენ ნამდვილად გიბიძგებთ სივრცეში თქვენი განაცხადისათვის, მაშინ შეგიძლიათ პლასტმასის ჩამოშორება ACR122U– დან და უბრალოდ გამოიყენოთ დაფა.

ნაბიჯი 3: საჭირო მასალები 3: NFC ტეგები

საჭირო მასალები 3: NFC ტეგები
საჭირო მასალები 3: NFC ტეგები

თითოეული ალბომისთვის, რომლის შექმნა გსურთ, დაგჭირდებათ NFC ტეგი, რომელიც აკმაყოფილებს NTAG213 სტანდარტს.

ამ ადგილების შესაძენად ბევრი ადგილია.

მე ვიყიდე ჩემი პირველი პარტია ამაზონიდან, სადაც მივიღე 10 პაკეტი 9 ფუნტად (პრემიერ მიწოდების ჩათვლით)

საუკეთესოდ მომარაგებული, რაც მე ვიპოვე აქ გაერთიანებულ სამეფოში არის Seritag - მათ აქვთ სხვადასხვა სტილის მართლაც ფართო არჩევანი, დიდი რჩევა მათ ვებგვერდზე, თქვენ ზუსტად იცით რას იღებთ (ყოველთვის ასე არ არის ამაზონზე). მათ არ აქვთ შეკვეთის მინიმალური ზომა და უამრავი ვარიანტი. ტეგები იწყება თითო ტეგზე 27p

ნაბიჯი 4: ჩამოტვირთეთ Raspberry Pi OS SD ბარათზე

ჩამოტვირთეთ Raspberry Pi OS SD ბარათზე
ჩამოტვირთეთ Raspberry Pi OS SD ბარათზე
ჩამოტვირთეთ Raspberry Pi OS SD ბარათზე
ჩამოტვირთეთ Raspberry Pi OS SD ბარათზე

თქვენს კომპიუტერზე ან Mac– ზე, ჩამოტვირთეთ და გაუშვით Raspberry PI გამოსახულების პროგრამა.

ჩადეთ SD ბარათი, რომელზეც გსურთ Raspberry Pi ოპერაციული სისტემის დაყენება.

დააწკაპუნეთ CHOOSE OS- ზე და აირჩიეთ ნაგულისხმევი Rasbian.

დააწკაპუნეთ CHOOSE SD CARD და შეარჩიეთ SD ბარათი, რომელიც ჩართული გაქვთ.

დააწკაპუნეთ WRITE. ამას შეიძლება გარკვეული დრო დასჭირდეს.

დასრულების შემდეგ ის გეტყვით, რომ ამოიღეთ SD ბარათი, რაც თქვენ უნდა გააკეთოთ. მაგრამ შემდეგ ისევ შეაერთეთ, რადგან სახლის მოვლის რამდენიმე პუნქტია საჭირო.

ნაბიჯი 5: ჩართეთ SSH თქვენს Raspberry Pi OS გამოსახულებაზე

ჩართეთ SSH თქვენს Raspberry Pi OS გამოსახულებაზე
ჩართეთ SSH თქვენს Raspberry Pi OS გამოსახულებაზე

მას შემდეგ, რაც ოპერაციული სისტემა ჩაწერილია SD ბარათზე, თქვენ უნდა შეასრულოთ რამდენიმე დამატებითი ამოცანა.

ჩვენ გვსურს Raspberry Pi– ზე წვდომა კლავიატურისა და მონიტორის ჩართვის გარეშე (იგივე „უთავო“), რისი გაკეთებაც შეგვიძლია ჩვენს ადგილობრივ ქსელში ჩვენი კომპიუტერის ან Mac– ის გამოყენებით პროტოკოლით SSH. თუმცა, უსაფრთხოების მიზეზების გამო SSH გამორთულია სტანდარტულად. ჩვენ უნდა მივცეთ საშუალება.

ჩვენ შეგვიძლია ამის გაკეთება ცარიელი ფაილის შექმნით, სახელწოდებით:

სშ

SD ბარათში, რომელიც ჩვენ შევქმენით. მნიშვნელოვანია, რომ მას არ გააჩნდეს რაიმე სახის გაფართოება (მაგ.. Txt). ფაილი თავისთავად არ საჭიროებს რაიმე შინაარსის შემცველობას - უბრალოდ მისი არსებობა საშუალებას მისცემს SSH- ს Pi- ს ჩატვირთვისას.

ნაბიჯი 6: სურვილისამებრ: დააყენეთ Wifi თქვენს ჟოლოს პიზე

სურვილისამებრ: დააყენეთ Wifi თქვენს ჟოლოს პიზე
სურვილისამებრ: დააყენეთ Wifi თქვენს ჟოლოს პიზე
სურვილისამებრ: დააყენეთ Wifi თქვენს ჟოლოს პიზე
სურვილისამებრ: დააყენეთ Wifi თქვენს ჟოლოს პიზე

თქვენ შეგიძლიათ გამოტოვოთ ეს ნაბიჯი, თუ თქვენ აპირებთ Raspberry Pi– ს თქვენს როუტერზე მიერთებას ethernet– ით. (მიუხედავად იმისა, რომ თქვენ შეიძლება გინდათ დაფიქრდეთ ამ გადაწყვეტილებაზე - მისი გადართვის Wi -Fi ცხოვრებას ბევრად აადვილებს ამ პოზიციონირების თვალსაზრისით)

შექმენით უბრალო ტექსტური ფაილი სახელწოდებით wpa_supplicant.conf SD ბარათის ძირეულ დირექტორიაში.

ჩადეთ ქვემოთ მოცემული ტექსტი ფაილში:

ქვეყანა = გბ

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

შეცვალეთ ქვეყანა საჭიროებისამებრ (GB არის დიდი ბრიტანეთი, აშშ არის აშშ, DE არის გერმანია და ა. შ.)

შეცვალეთ wifi სერთიფიკატები იქ, რომ იყოს თქვენი რეალური wifi როუტერის დეტალები.

შეინახეთ ფაილი.

უსაფრთხოდ ამოიღეთ SD ბარათი.

ნაბიჯი 7: გაამდიდრეთ თქვენი ჟოლო პი

გაამდიდრეთ თქვენი ჟოლო პი
გაამდიდრეთ თქვენი ჟოლო პი

განათავსეთ SD ბარათი, რომელიც თქვენ შექმენით თქვენს Raspberry Pi- ში.

შეაერთეთ თქვენი Raspberry Pi დენის USB კაბელის საშუალებით. დაელოდეთ ერთ წუთს, სანამ ის ჩატვირთდება.

ნაბიჯი 8: იპოვეთ თქვენი ჟოლოს პიის IP მისამართი

ახლა თქვენ უნდა იპოვოთ Raspberry Pi– ს IP მისამართი, რათა შეძლოთ მასთან დაკავშირება. ამის გაკეთება შეგიძლიათ ორი გზით:

  • თქვენი როუტერის დაყენების გვერდის საშუალებით - თუ თქვენ გაქვთ თანამედროვე როუტერი, როგორიცაა eero, მაშინ ეს ძალიან ადვილია;
  • ან iOS- ისა და Android- ისთვის ხელმისაწვდომი სმარტფონის პროგრამის საშუალებით სახელწოდებით "fing" - გადმოწერეთ, დაუკავშირდით თქვენს როუტერს და დაათვალიერეთ მოწყობილობები - ერთ მათგანს უნდა დაერქვას "ჟოლო" - ეს იქნება თქვენთვის საჭირო IP მისამართი.

ნაბიჯი 9: დაუკავშირდით თქვენს Raspberry Pi ბრძანების ხაზს

დაუკავშირდით თქვენს Raspberry Pi ბრძანების ხაზს
დაუკავშირდით თქვენს Raspberry Pi ბრძანების ხაზს

გახსენით ტერმინალი თქვენს Mac– ზე (ან თუ Windows– ს იყენებთ, ჩამოტვირთეთ და გამოიყენეთ Putty).

შეიყვანეთ შემდეგი ბრძანება:

ssh pi@[თქვენი Pi- ს IP მისამართი]

მიიღეთ უსაფრთხოების ნებისმიერი გაფრთხილება. თქვენ მოგეთხოვებათ ნაგულისხმევი pi მომხმარებლის პაროლი

ჟოლო

ნაბიჯი 10: შექმენით Raspberry Pi OS GUI

დააყენეთ Raspberry Pi OS GUI
დააყენეთ Raspberry Pi OS GUI
დააყენეთ Raspberry Pi OS GUI
დააყენეთ Raspberry Pi OS GUI

თქვენ ახლა დაუკავშირდით თქვენს Pi- ს ბრძანების ხაზის საშუალებით, რაც შესანიშნავია, მაგრამ თქვენ ასევე გსურთ მისი დაყენება, რათა გქონდეთ წვდომა გრაფიკული მომხმარებლის ინტერფეისზე, რომელსაც ჩვენ შევიძენთ VNC (ვირტუალური ქსელის გამოთვლა) საშუალებით. როგორც მოსალოდნელი იყო, ჩვენ ასევე უნდა შევძლოთ ამის შესაძლებლობა.

უპირველეს ყოვლისა, შეამოწმეთ, რომ თქვენი Pi პროგრამული უზრუნველყოფა განახლებულია, ბრძანების სტრიქონში შეიყვანეთ შემდეგი ორი ბრძანება (თითოეულს მოჰყვება enter):

sudo apt განახლება

sudo apt დააინსტალირეთ realvnc-vnc-server realvnc-vnc-viewer

შემდეგი, გახსენით Raspberry Pi პარამეტრების მენიუ შესვლით:

sudo raspi-config

გადადით ინტერფეისის პარამეტრებზე> VNC> დიახ.

გამოდით კონფიგურაციის პროგრამიდან გაქცევის ღილაკზე დაჭერით და გადატვირთეთ Pi ბრძანების სტრიქონიდან აკრეფით:

sudo გადატვირთვა

ნაბიჯი 11: დაუკავშირდით და დააინსტალირეთ თქვენი Raspberry Pi GUI

დაუკავშირდით და დააინსტალირეთ თქვენი Raspberry Pi GUI
დაუკავშირდით და დააინსტალირეთ თქვენი Raspberry Pi GUI
დაუკავშირდით და დააინსტალირეთ თქვენი Raspberry Pi GUI
დაუკავშირდით და დააინსტალირეთ თქვენი Raspberry Pi GUI

ჩამოტვირთეთ და გახსენით VNC Viewer.

ჩაწერეთ IP მისამართი თქვენი Raspberry Pi და დააჭირეთ დაკავშირებას. ის მოგთხოვთ მომხმარებლის სახელსა და პაროლს, რომლებიც არის:

მომხმარებლის სახელი = pi

პაროლი = ჟოლო

ეს უნდა ჩაგიტვირთოთ GUI– მდე.

ის მოგთხოვთ დაადასტუროთ თქვენი გეოგრაფია და კლავიატურის განლაგება.

შემდეგ ის მოგთხოვთ შეცვალოთ თქვენი პაროლი (კარგი იდეაა).

ის მოგთხოვთ დააყენოთ თქვენი wifi დეტალები, მაგრამ შეგიძლიათ გამოტოვოთ, რადგან ისინი უკვე მუშაობენ. (თუმცა, თუ თქვენ მუშაობთ Ethernet– ზე და მეორე აზრს იღებთ, ახლა თქვენი შანსია … მაგრამ გაითვალისწინეთ, რომ თქვენი IP მისამართი შეიძლება შეიცვალოს)

შემდეგ ის შეამოწმებს, ჩამოტვირთავს და დააინსტალირებს განახლებებს (შეიძლება გარკვეული დრო დასჭირდეს).

როდესაც დაასრულებთ დაყენების ოსტატს, მე გირჩევთ შეცვალოთ ეკრანის გარჩევადობა, რადგან ნაგულისხმევი საკმაოდ მცირეა. ამის გაკეთება შეგიძლიათ ჟოლოს დაჭერით ზედა მარცხნივ> პარამეტრები> Raspberry Pi კონფიგურაცია> ჩვენება> რეზოლუციის დაყენება

თქვენ უნდა გადატვირთოთ Pi კიდევ ერთხელ, რომ ეს ამოქმედდეს.

ნაბიჯი 12: დააინსტალირეთ Node.js და NPM

დააინსტალირეთ Node.js და NPM
დააინსტალირეთ Node.js და NPM

შემდეგ თქვენ გსურთ ჩატვირთოთ Raspberry Pi ბრძანების სტრიქონი, რომ დააინსტალიროთ ჩვენთვის საჭირო დამოკიდებულებები.

ამის გაკეთება შეგიძლიათ ან VNC- ს საშუალებით დაკავშირებით და ზედა ღილაკზე დაჭერით, რომელიც ბრძანების ხაზს ჰგავს; ან შეგიძლიათ დაუკავშირდეთ პირდაპირ თქვენი Mac/PC– დან ტერმინალისა და Putty– ს გამოყენებით, როგორც ამას ადრე ვაკეთებდით. თუ თქვენ ნაკლებად ხართ მიჩვეული Raspberry Pi– სთან მუშაობას, მაშინ უფრო ადვილია პირველის გაკეთება.

(რჩევა: თქვენ შეგიძლიათ დააკოპიროთ ტექსტი თქვენი Mac/PC– დან და ჩასვათ იგი Raspberry Pi– ში VNC– ით CONTROL-V დაჭერით, მაგრამ თუ თქვენ ცდილობთ ჩასვათ ტერმინალში, თქვენ უნდა დააჭიროთ CONTROL-SHIFT-V)

პირველი სამუშაოა შეამოწმოთ თქვენი პროგრამული უზრუნველყოფის განახლება შემდეგი ორი ბრძანების აკრეფით. მათ შეიძლება გარკვეული დრო დასჭირდეს ჩამოტვირთვას და ინსტალაციას.

sudo apt-get განახლება

sudo apt-get განახლება

შემდეგ გსურთ ჩამოტვირთოთ და დააინსტალიროთ node.js და NPM (არ ინერვიულოთ ძალიან იმაზე, თუ რა არის ისინი, ისინი გამოსადეგი და აუცილებელია ჩვენი შემდგომი ამოცანებისათვის) შემდეგი აკრეფით:

sudo apt-get დააინსტალირეთ nodejs npm

ის რამდენჯერმე გკითხავთ, სიამოვნებით იკავებთ დისკზე ამ ადგილს - თქვენ ასე დააჭირეთ Y- ს

ნაბიჯი 13: დააინსტალირეთ SONOS HTTP API

დააინსტალირეთ SONOS HTTP API
დააინსტალირეთ SONOS HTTP API
დააინსტალირეთ SONOS HTTP API
დააინსტალირეთ SONOS HTTP API

ჩვენი პროექტის უკანა ნაწილის საფუძველია ჯიშის მიერ შექმნილი node-sonos-http-api პაკეტი. თქვენ შეგიძლიათ ყველაფერი წაიკითხოთ აქ:

ჩვენ გადმოვტვირთავთ github– დან ბრძანების ხაზში შეყვანილი შემდეგი ბრძანებით:

git კლონი

და ჩვენ დავაყენებთ მას შემდეგი ბრძანებებით

cd კვანძი-sonos-http-api

npm ინსტალაცია -წარმოება

ამის შემდეგ შეგვიძლია მისი გაშვება შემდეგი ბრძანებით:

npm დაწყება

ამის დასრულების შემდეგ ჩვენ უნდა შევამოწმოთ რომ მუშაობს.

უპირველეს ყოვლისა, გახსენით ინტერნეტ ბრაუზერი ჩვენს Raspberry Pi– ზე და გადადით https:// localhost: 5005/. ლამაზი ინტერფეისი უნდა გაიხსნას Sonos– ის ლოგოთი და დოკუმენტაციით, თუ როგორ მუშაობს API.

შემდეგი, მოდით შევამოწმოთ, რომ ეს მუშაობს უფრო ფართო ქსელიდან ბრაუზერის გამოყენებით სხვა კომპიუტერზე ან Mac– ზე იმავე ქსელში და ნავიგაცია https:// [theIPaddressofyourPi]: 5005/და ვნახოთ მივიღებთ თუ არა იგივე შედეგს. Ჩვენ უნდა.

ახლა ჩვენ რეალურად ვაიძულებთ სისტემას რაღაც გააკეთოს. გამოიყენეთ ბრაუზერი და ნავიგაცია:

192.168.4.102:5005/ სასადილო ოთახი/სათამაშო მოედანი

თქვენ უნდა შეცვალოთ ზემოაღნიშნული IP მისამართი თქვენი Raspberry Pi მისამართით და "სასადილო ოთახი" თქვენი Sonos ზონების ერთ -ერთი სახელით. ის უნდა დაკრავდეს ან შეჩერდეს (იმისდა მიხედვით, უკვე უკრავს თუ არა მუსიკა) მუსიკა იმ ოთახში. ცხადია, რომ რაღაც უნდა იყოს Sonos რიგში, რომ იმუშაოს.

წინსვლისას, მე ვაპირებ გამოვიყენო ზემოხსენებული IP მისამართი და სასადილო ოთახი, როგორც მაგალითები ამ გაკვეთილის განმავლობაში. ცხადია, თქვენ უნდა შეცვალოთ ისინი თქვენი IP მისამართით და თქვენი ზონის სახელით ყოველ ჯერზე.

ნაბიჯი 14: გახადეთ Sonos HTTP API მუდმივად გაშვებული

გახადეთ Sonos HTTP API მუდმივად გაშვებული
გახადეთ Sonos HTTP API მუდმივად გაშვებული

მშვენიერია, რომ ჩვენ გვაქვს Sonos HTTP API გაშვებული, მაგრამ რა მოხდება, თუ ის ჩავარდება? ან დაკარგავთ ძალას ან გჭირდებათ თქვენი Raspberry Pi გადატვირთვა?

თქვენ ხედავთ ეფექტს ტერმინალის ფანჯრის დახურვით და ხელახლა ვცდილობთ იმას, რაც ჩვენ შევეცადეთ. ის არ იმუშავებს, რადგან HTTP API შეჩერებულია ტერმინალის ფანჯარასთან ერთად.

ჩვენ ნამდვილად გვსურს, რომ ეს მუდმივად იმუშაოს და ყოველ ჯერზე გავაკეთოთ ეს. ჩვენ ამას ვაკეთებთ მაგარი რამით, სახელწოდებით PM2.

ახალი ტერმინალის ფანჯარაში დააინსტალირეთ და გაუშვით შემდეგნაირად:

sudo npm ინსტალაცია -g pm2

pm2 სტატუსი

ახლა მოდით მივიღოთ ის ჩვენი Sonos HTTP API- ს გასაშვებად:

cd კვანძი-sonos-http-api

pm2 დაწყება npm - დაწყება pm2 გაშვების სისტემა

ეს უკანასკნელი ბრძანება ქმნის რაღაცას, რომელიც ცოტათი გამოიყურება:

sudo env PATH = $ PATH:/usr/bin/usr/local/lib/node_modules/pm2/bin/pm2 გაშვების სისტემა d -u pi --hp/home/pi

დააკოპირეთ ის, რასაც თქვენი Pi წარმოქმნის (არა ზუსტი ტექსტი ზემოთ - თქვენი შეიძლება იყოს განსხვავებული) და შეიყვანეთ იგი ბრძანების ხაზში. ეს ავალებს სისტემას გაუშვას PM2 ჩატვირთვისას ყოველ ჯერზე.

ბოლოს შეიყვანეთ:

pm2 შენახვა

რომელიც ზოგავს ყველაფერს.

ახლა შეამოწმეთ მუშაობს თუ არა ეს თქვენი Respberry Pi ბრძანების გადატვირთვით

sudo გადატვირთვა

ვიმედოვნებთ, რომ როდესაც Pi გადატვირთავს, ის ასევე დაიწყებს PM2- ს და, თავის მხრივ, Sonos HTTP API- ს. ამის შემოწმება შეგიძლიათ ბრაუზერის გამოყენებით იმავე ქსელში ნავიგაციით იმ მისამართზე, რომელიც ჩვენ ადრე გამოვიყენეთ და Sonos– ის ლოგო და ინსტრუქცია იხილეთ:

192.168.4.102:5005/

არის ის, რაც ჩემთვის არის, მაგრამ შენი დამოკიდებული იქნება IP მისამართზე.

ნაბიჯი 15: ითამაშეთ Spotify

შევამოწმოთ, რომ სერვისს შეუძლია წვდომა Spotify– ზე.

გახსენით ბრაუზერი და გადადით შემდეგ მისამართზე (აშკარად შეცვალეთ თქვენი IP მისამართი და ოთახის სახელი):

192.168.4.102:5005/ სასადილო ოთახი/spotify/ახლა/spotify/spotify: ალბომი: 2dfTV7CktUEBkZCHiB7VQB

თქვენ უნდა მოისმინოთ ჯონ გრანტი. მიირთვით.

ნაბიჯი 16: იპოვნეთ Spotify URI

იპოვნეთ Spotify URI
იპოვნეთ Spotify URI

უცნაურია, ვიცი, მაგრამ ყველას არ მოსწონს ჯონ გრანტი. იქნებ გსურთ სხვა რამის მოსმენა?

თქვენ შეგიძლიათ მიიღოთ Spotify ბმულები დესკტოპის, ვებსა და მობილური პროგრამებიდან, მაგრამ სამუშაო მაგიდა ბევრად უფრო ადვილია, რადგან ის აწვდის URI ზუსტად იმ ფორმატში, რაც გსურთ, ასე რომ დაიწყეთ ამით.

Spotify– ის დესკტოპის აპლიკაციაში გადადით ალბომზე, რომლის მოსმენა გსურთ (იქნებ ბიონსეს ლიმონათი?)

დააწკაპუნეთ სამ პატარა წერტილზე გულის ღილაკის გვერდით.

გადადით მენიუში გაზიარებისთვის და აირჩიეთ Copy Spotify URI

ეს დააკოპირებს რაღაც მსგავსს

spotify: ალბომი: 7dK54iZuOxXFarGhXwEXfF

თქვენს ბუფერში, რომელიც არის Spotify URI ბიონსეს Lemondade ალბომისთვის.

კვლავ გააქტიურეთ თქვენი ბრაუზერი და გადადით შემდეგ მისამართზე (აშკარად შეცვალეთ IP მისამართი და ოთახი და ჩასვით თქვენს მიერ გადაწერილი URI):

192.168.4.102:5005/ სასადილო ოთახი/spotify/ახლა/[Spotify URI, რომლის თამაშიც გსურთ]

თქვენ უნდა მოისმინოთ თქვენი არჩევანის თამაში.

თუ თქვენ გირჩევნიათ გამოიყენოთ ვებ აპლიკაცია, ის მოგცემთ ვებ ბმულს (ქვემოთ მოყვანილი რაღაცის მსგავსი):

open.spotify.com/album/7dK54iZuOxXFarGhXwEXfF

თქვენ უნდა გადააკეთოთ ეს spotify: ალბომში: კოდის ფორმატი ზემოთ რომ ის იმუშაოს.

ნაბიჯი 17: შენიშვნა Spotify URI– ებზე

Spotify URI და ისინი ისე, როგორც ისინი კავშირშია node-sonos-http-api– სთან, უმეტესწილად ინტუიციურია.

თქვენ შეგიძლიათ პირდაპირ დაუკავშიროთ ალბომები, ჩანაწერები და დასაკრავი სიები.

ალბომის URI ასე გამოიყურება:

spotify: ალბომი: 6agCM9GJcebduMddgFmgsO

სიმღერის URI ასე გამოიყურება:

spotify: სიმღერა: 4fNDKbaeEjk2P4GrRE1UbW

დასაკრავი სიები ცოტა სხვანაირად მუშაობს. როდესაც თქვენ დააკოპირებთ URI– ს Spotify– დან, ის გამოიყურება:

spotify: დასაკრავი სია: 5huIma0YU4iusLcT2reVEU

თუმცა, იმისთვის, რომ ის რეალურად იმუშაოს API– ზე, თქვენ უნდა დაამატოთ spotify: user: ზემოაღნიშნულის დასაწყისში. ეს ეხება საჯარო დასაკრავ სიებსაც კი და, დიახ, ეს იმას ნიშნავს, რომ თქვენ ორჯერ ამბობთ spotify.

ძალიან მკაფიოდ რომ ვთქვათ, მომხმარებელი არ უნდა იყოს კონკრეტული მომხმარებლის სახელი, მხოლოდ ტექსტის მომხმარებელი. ამრიგად, ზემოაღნიშნული დასაკრავი სიის მუშაობის სწორი URI იქნება:

spotify: მომხმარებელი: spotify: დასაკრავი სია: 5huIma0YU4iusLcT2reVEU

ნაბიჯი 18: შექმენით Raspberry Pi HTTP მოთხოვნების გასაგზავნად

დააყენეთ Raspberry Pi HTTP მოთხოვნების გასაგზავნად
დააყენეთ Raspberry Pi HTTP მოთხოვნების გასაგზავნად

იმის ნაცვლად, რომ ხელით ჩაწეროთ HTTP მოთხოვნები ვებ ბრაუზერში, ჩვენ გვსურს მისი ავტომატიზირება ისე, რომ Raspberry Pi აკეთებს ამას, როდესაც მას აქვს გარკვეული სტიმული (NFC მკითხველი გააქტიურებულია).

ჩვენ გამოვიყენებთ ბიბლიოთეკას სახელწოდებით მოთხოვნები, რათა ჩვენი Raspberry Pi ამის საშუალება მიეცეს. მოდით შევამოწმოთ ის დაინსტალირებულია.

გახსენით ტერმინალი თქვენს Pi- ზე და ჩაწერეთ შემდეგი:

sudo pip ინსტალაციის მოთხოვნა

სავარაუდოა, რომ ის ბრუნდება და ამბობს, რომ ის უკვე დამონტაჟებულია, ამ შემთხვევაში შესანიშნავია. თუ არა, ის დააინსტალირებს.

ნაბიჯი 19: შექმენით NFCC ტეგები (ები) Spotify მონაცემებით

შექმენით NFCC ტეგები (ები) Spotify მონაცემებით
შექმენით NFCC ტეგები (ები) Spotify მონაცემებით
შექმენით NFCC ტეგები (ები) Spotify მონაცემებით
შექმენით NFCC ტეგები (ები) Spotify მონაცემებით
შექმენით NFCC ტეგები (ები) Spotify მონაცემებით
შექმენით NFCC ტეგები (ები) Spotify მონაცემებით
შექმენით NFCC ტეგები (ები) Spotify მონაცემებით
შექმენით NFCC ტეგები (ები) Spotify მონაცემებით

ახლა ჩვენ გვინდა დავწეროთ Spotify ალბომის URI NFC ტეგზე. თითოეული ეს წარწერა არის ის, რასაც თქვენ გამოიყენებთ Raspberry Pi– ს კონკრეტული ალბომის დაკვრის სათქმელად.

თქვენ შეგიძლიათ ჩაწეროთ NFC ტეგზე Android ტელეფონის გამოყენებით, მაგრამ მე ყველაზე მარტივად ვაკეთებ ამას mac- ის ან კომპიუტერის საშუალებით, რადგან მაშინ ყველაზე ადვილად მიიღებთ Spotify URI- ებს Spotify დესკტოპის აპლიკაციიდან.

შეაერთეთ თქვენი USB NFC წამკითხველი თქვენს კომპიუტერში ან Mac- ში. მე ვიყენებ ACR122U– ს American Card Systems– ის მიერ.

ჩამოტვირთეთ NFC ინსტრუმენტები თქვენს კომპიუტერში ან Mac- ში. დააინსტალირეთ და გახსენით.

შეიძლება ოდნავ ნელი იყოს ზოგჯერ მკითხველთან დაკავშირება და შეიძლება თქვას, რომ ის საერთოდ ვერ პოულობს მკითხველს. გადადით სხვა ჩანართზე NFC ინსტრუმენტებში და დააწკაპუნეთ ყოველ ჯერზე დაკავშირებულ NFC მკითხველის ღილაკზე. შეიძლება მოგიწიოთ რამოდენიმეჯერ გამორთვა და ხელახლა გამორთვა მკითხველისგან, სანამ ის იპოვის მას.

საბოლოოდ ის მოგცემთ შესაძლებლობას აირჩიოთ თქვენი მკითხველი სიიდან და თქვათ, რომ ის დაკავშირებულია. გადადით ინფორმაციის ჩანართზე, რომელიც არაფერს აჩვენებს გარდა "ველოდები NFC ტეგს".

მიიღეთ ცარიელი NFC ტეგი. განათავსეთ იგი მკითხველზე და დატოვეთ იქ. NFC ინსტრუმენტები აჩვენებს ინფორმაციას ტეგის შესახებ.

გადადით ჩაწერის ჩანართზე და დააჭირეთ ჩანაწერის დამატება> ტექსტს. (ფრთხილად იყავით, რომ არ აირჩიოთ URL ან URI - მე ვიცი, რომ ეს მაცდურია, რადგან თქვენ კოპირებთ URI– ს, მაგრამ გსურთ ტექსტი)

აიღეთ URI Spotify– დან იმ მეთოდის გამოყენებით, რომელიც ჩვენ ადრე გამოვიყენეთ. თუ გსურთ მარტივი მაგალითი, ქვემოთ მოცემულია ჩვენი ადრეული ჯონ გრანტის ალბომი.

spotify: ალბომი: 2dfTV7CktUEBkZCHiB7VQB

დააწკაპუნეთ OK და შემდეგ დააწკაპუნეთ ჩაწერაზე (არ დაივიწყოთ ეს ბოლო ნაბიჯი - ის რეალურად არ წერს მანამ, სანამ ამას არ დააწკაპუნებთ). ის გეტყვით, რომ წარწერა წარმატებით დაიწერა.

ამოიღეთ წარწერა მკითხველიდან

ნაბიჯი 20: დააყენეთ NFC მკითხველი Raspberry Pi– ზე

დააინსტალირეთ NFC მკითხველი Raspberry Pi– ზე
დააინსტალირეთ NFC მკითხველი Raspberry Pi– ზე

შეაერთეთ თქვენი NFC წამკითხველი თქვენს Raspberry Pi- ს ერთ USB პორტში.

ჩვენ გამოვიყენებთ nfcpy პითონის ბიბლიოთეკას NFC მკითხველთან დასაკავშირებლად. დააინსტალირეთ შემდეგი თქვენი Pi ბრძანების ხაზზე აკრეფით:

პიპის დაყენება -U nfcpy

შემდეგ ჩვენ შეგვიძლია შევამოწმოთ შეძლებს თუ არა ამ ბიბლიოთეკას ჩვენი NFC მკითხველის ნახვა შემდეგი აკრეფით:

პითონი -m nfc

თუ ის მუშაობს, მაშინ ნახავთ შემდეგს:

ეს არის 1.0.3 ვერსია nfcpy გაშვებული Python 2.7.16 Linux-4.19.97-v7+-armv7l-with-debian-10.3

მე ახლა თქვენს სისტემას ვეძებ უკონტაქტო მოწყობილობებზე ** აღმოვაჩინე ACS ACR122U PN532v1.6 usb: 001: 011 მე არ ვცდილობ სერიულ მოწყობილობებს, რადგან თქვენ არ მითხარით-დაამატეთ ვარიანტი '--search-tty' რომ დამენახა - მაგრამ გაფრთხილდით, რომ ამან შეიძლება დაარღვიოს სხვა სერიული შემქმნელები

თუმცა დიდი შანსია მიიღოთ შეცდომის შეტყობინება, რომ მკითხველი ნაპოვნია, მაგრამ თქვენს მომხმარებელს (pi) არ აქვს მასზე წვდომის ნებართვა. თუ თქვენ მიიღებთ ამ შეცდომის შეტყობინებას, ის ასევე განმარტავს, თუ როგორ უნდა მოგვარდეს პრობლემა, ეს არის ორი ბრძანების აკრეფა, რომელიც ცოტათი გამოიყურება შემდეგნაირად:

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

sudo udevadm კონტროლი -R

დააკოპირეთ და შეასრულეთ ორივე ბრძანება, რომელიც მას გაძლევთ (არა ზუსტად ის, რაც ზემოთ არის, რადგან თქვენი შეიძლება განსხვავებული იყოს), შემდეგ გათიშეთ და გამორთეთ თქვენი NFC წამკითხველი USB პორტიდან.

ხელახლა სცადეთ შემოწმების ბრძანება:

პითონი -m nfc

ამჯერად უნდა ითქვას, რომ ის ნაპოვნია შეცდომის შეტყობინებების გარეშე.

ნაბიჯი 21: დააინსტალირეთ Vinylemulator პითონის სკრიპტები

ჩვენ ახლა გვაქვს ყველა სამშენებლო ბლოკი:

  • ჩვენს Raspberry Pi– ს შეუძლია მოისმინოს NFC შეყვანა
  • ჩვენს Raspberry Pi– ს შეუძლია უთხრას Sonos– ს Spotify დასაკრავი სიების დაკვრისას Spotify URI– ს მიღებისას
  • ჩვენ გვაქვს NFC ტეგი, რომელზეც ინახება Spotify URI

ახლა ჩვენ გვჭირდება ყველა ეს სამშენებლო ბლოკი რაღაც სასარგებლოში. ეს კეთდება ჩემს მიერ დაწერილი პითონის მოკლე სკრიპტის საშუალებით (წინა NFC/Spotify/Sonos პროექტების დიდი დახმარებით), რომელსაც ეწოდება ვინილემულატორი.

თქვენ შეგიძლიათ ნახოთ ფაილების საწყისი კოდი github– ზე:

ამის დასაყენებლად Raspberry Pi– ზე ჩვენ გვჭირდება მისი კლონირება github– დან შემდეგი ბრძანებით:

git კლონი

ნაბიჯი 22: დააინსტალირეთ Vinylemulator

დააინსტალირეთ Vinylemulator
დააინსტალირეთ Vinylemulator
დააინსტალირეთ Vinylemulator
დააინსტალირეთ Vinylemulator

გახსენით Raspberry Pi ფაილის მენეჯერი და გადადით სახლში> pi> vinylemulator

გახსენით ფაილი usersettings.py

ამ ფაილის ერთ -ერთი სტრიქონი წაიკითხავს:

sonosroom = "სასადილო ოთახი"

შეცვალეთ "სასადილო ოთახი", როგორც რომელი Sonos ოთახის სახელი გსურთ გააკონტროლოთ.

ამ ფაილში ასევე არის პარამეტრი, რომელიც საშუალებას გაძლევთ დააკონფიგურიროთ sonos-http-api– ს IP მისამართი. თქვენ უნდა შეგეძლოთ დატოვოთ ეს უცვლელი, როგორც "localhost", რაც ნიშნავს იმას, რომ ის გამოიყენებს Raspberry Pi, რომელზეც ის მუშაობს.

შეინახეთ ფაილი და დახურეთ.

ნაბიჯი 23: შეამოწმეთ ვინილემულატორი

ტესტი Vinylemulator
ტესტი Vinylemulator
ტესტი Vinylemulator
ტესტი Vinylemulator

გადადით თქვენს Raspberry Pi ბრძანების ხაზზე.

შეიყვანეთ შემდეგი ბრძანება:

პითონის ვინილემულატორი/readnfc.py

თუ ყველაფერი კარგად არის, ეს იტვირთება სკრიპტზე და იტყვის, რომ მკითხველი მზად არის. მკითხველის შუქი მწვანე უნდა იყოს.

განათავსეთ NFC ტეგი მკითხველზე, რომელიც აისახება.

ტერმინალი აჩვენებს იმას, რაც წაიკითხა NFC ტეგიდან და აჩვენებს HTTP მოთხოვნის მისამართს, რომელიც მან გაგზავნა. თქვენი არჩეული ალბომი უნდა დაკრავდეს თქვენი Sonos სპიკერებიდან.

ეს სკრიპტი გაგრძელდება მანამ, სანამ არ დახურავთ ტერმინალის ფანჯარას. შეგიძლიათ დააჭიროთ სხვადასხვა ალბომის NFC ტეგებს და ის გადავა ამ ალბომზე.

ნაბიჯი 24: მიიღეთ ვინილემულატორი მუდმივად და გაშვებისას

ისევე, როგორც sonos-http-api, ჩვენ გვსურს, რომ vinylemulator გაუშვას ყველა დროის და არა მხოლოდ მაშინ, როდესაც ჩვენ მას ვუწოდებთ. ჩვენ შეგვიძლია გამოვიყენოთ pm2 ამის გასაკეთებლად.

ჯერ დახურეთ ვინილემულატორის ნებისმიერი შემთხვევა, რომელსაც თქვენ იყენებთ მათი ტერმინალის ფანჯრების დახურვით.

შემდეგ გახსენით ახალი ტერმინალის ფანჯარა და ჩაწერეთ შემდეგი ორი ბრძანება:

pm2 დაწყება vinylemulator/readnfc.py

pm2 შენახვა

მოდით შევამოწმოთ მუშაობს თუ არა ეს Raspberry Pi- ს გადატვირთვით. (შეგიძლიათ ჩაწეროთ sudo reboot ან გააკეთეთ ეს ჟოლოს მენიუდან თქვენი მაუსით.

დაელოდეთ სანამ Pi კვლავ დაიწყება და ნახეთ, რომ ის მუშაობს მკითხველზე NFC ტეგის დაჭერით. თქვენ უნდა მიიღოთ მუსიკა.

ნაბიჯი 25: გილოცავთ საკუთარ თავს

ახლა ყველაფერი ფუნქციონირებს. თქვენ შეგიძლიათ Raspberry Pi გადაიტანოთ იქ, სადაც აპირებთ მის განთავსებას. ის განახლდება და იმუშავებს ისე, როგორც თქვენ გაქვთ დაყენებული ნებისმიერ დროს, როცა შეაერთებთ მას.

თქვენი შემდეგი ამოცანები სახალისოა: გახადეთ ეს ყველაფერი ლამაზი.

ნაბიჯი 26: გახადე ის ლამაზი - დამალე შენი მკითხველი

გახადე ის ლამაზი - დამალე შენი მკითხველი
გახადე ის ლამაზი - დამალე შენი მკითხველი
გახადე ის ლამაზი - დამალე შენი მკითხველი
გახადე ის ლამაზი - დამალე შენი მკითხველი
გახადე ის ლამაზი - დამალე შენი მკითხველი
გახადე ის ლამაზი - დამალე შენი მკითხველი
გახადე ის ლამაზი - დამალე შენი მკითხველი
გახადე ის ლამაზი - დამალე შენი მკითხველი

მისი გალამაზების პირველი ნაწილი იმალება საზიზღარი თეთრი პლასტიკური NFC მკითხველი სადღაც.

მე გამოვიყენე უაღრესად დაბალი ტექნოლოგიური ვარიანტი, რომ გამოვიყენო ის დახლის ქვედა მხარეს ჩემი Sonos Play– ის გვერდით: 5. დახლის ხე იმდენად თხელია, რომ NFC- ს გავლა შეუძლია, ამიტომ მე ვთამაშობ მუსიკას NFC ტეგზე ჯადოსნურ და უხილავ ადგილზე შეხებით.

გირჩევთ: