Πίνακας περιεχομένων:

Sonos Spotify Vinyl Emulator: 26 Βήματα
Sonos Spotify Vinyl Emulator: 26 Βήματα

Βίντεο: Sonos Spotify Vinyl Emulator: 26 Βήματα

Βίντεο: Sonos Spotify Vinyl Emulator: 26 Βήματα
Βίντεο: Котенка просто оставили на обочине. Котенок по имени Роки 2024, Ιούλιος
Anonim
Image
Image
Sonos Spotify Vinyl Emulator
Sonos Spotify Vinyl Emulator

Λάβετε υπόψη ότι αυτό δεν είναι το πιο πρόσφατο σύνολο οδηγιών για αυτό το έργο:

Επισκεφτείτε τη διεύθυνση https://www.hackster.io/mark-hank/sonos-spotify-vinyl-emulator-3be63d για το πιο πρόσφατο σύνολο οδηγιών και υποστήριξης

Το να ακούς μουσική σε βινύλιο είναι υπέροχο. Είναι σωματικό και απτικό. Ακούτε ολόκληρο άλμπουμ παρά τυχαία κομμάτια. Παρατηρείτε όταν τελειώνει και συνειδητά επιλέγετε κάτι άλλο. Μπορείτε να δημιουργήσετε μια συλλογή και να την περιηγηθείτε αντί να χρειαστεί να αναζητήσετε ακριβώς αυτό που θέλετε.

Είναι επίσης ακριβό και ογκώδες, ειδικά όταν σκεφτείτε ότι τα χρήματα που ξοδεύετε σε βινύλιο είναι πιθανότατα ένα αντίγραφο της μουσικής στην οποία έχετε ήδη πρόσβαση μέσω μιας υπηρεσίας ροής στην οποία έχετε εγγραφεί.

Αυτό το έργο προσπαθεί να αναπαράγει την ευαισθησία και τη συλλογή πτυχών του βινυλίου ενώ βασίζεται στο Spotify για να παραδώσει πραγματικά τη μουσική. Η τοποθέτηση ενός φυσικού αντικειμένου σε έναν αναγνώστη NFC συνδεδεμένο με ένα Raspberry Pi (και τα δύο μπορούν να κρυφτούν) θα ξεκινήσει την αναπαραγωγή του άλμπουμ που σχετίζεται με αυτήν την ετικέτα.

Θα σας καθοδηγήσω σε όλα τα βήματα - από τη ρύθμιση του Raspberry Pi έως την κωδικοποίηση των ετικετών NFC. Αυτό είναι το πρώτο μου έργο Raspberry Pi και ο πρώτος μου κώδικας Python, οπότε δίδαξα τον εαυτό μου και τα δύο κατά την ανάπτυξη αυτού. Ως εκ τούτου, αυτές οι οδηγίες υποθέτουν κυριολεκτικά μηδενικές προηγούμενες γνώσεις και σας μιλούν για κάθε βήμα.

Το συνολικό κόστος για την κατασκευή των βασικών εξαρτημάτων είναι περίπου 50-60 £.

Θα ήθελα πολύ να δω τι χτίζετε!

Βήμα 1: Απαιτούμενα αναλώσιμα 1: Raspberry Pi

Το πίσω άκρο που διασυνδέεται με το δίκτυό σας, Sonos και Spotify θα εκτελείται από ένα Raspberry Pi. Στην πραγματικότητα, πολύ λίγα χρειάζεστε για να το κάνετε αυτό.

Ουσιώδης:

Raspberry Pi: Χρησιμοποίησα ένα Raspberry Pi 3 Model B+ αλλά θα λειτουργήσει επίσης με ένα Raspberry Pi 3 Model A+ (23 £)

Τροφοδοσία USB: Είχα ένα ξαπλωμένο - υπάρχει επίσημο διαθέσιμο αν δεν το κάνετε (9 λίρες Αγγλίας)

Κάρτα Micro SD: Πήρα ένα 32gb, το οποίο είναι αρκετό για αυτήν την εφαρμογή, στο Amazon (£ 6)

Κάποιος εξοπλισμός Sonos που λειτουργεί στο δίκτυό σας (υποθέτω ότι το έχετε ήδη αν είστε εδώ …)

Ένας λογαριασμός Spotify Premium

Συνιστάται:

Μια περίπτωση για το Pi: υπάρχουν πολλές επιλογές, ξεκινώντας από 5 £

Ένα μπουκάλι αξιοπρεπές California Zinfandel: Προτείνω το Ridge, αλλά άλλα είναι διαθέσιμα

Βήμα 2: Απαιτούμενα αναλώσιμα 2: NFC Reader

Απαιτούμενα αναλώσιμα 2: NFC Reader
Απαιτούμενα αναλώσιμα 2: NFC Reader
Απαιτούμενα αναλώσιμα 2: NFC Reader
Απαιτούμενα αναλώσιμα 2: NFC Reader

Αυτές οι οδηγίες έχουν σχεδιαστεί για έναν αναγνώστη NFC ACR122U που συνδέεται μέσω USB.

ACR122U

Αγόρασα αυτό από την Amazon για £ 38 (κυρίως επειδή είχε την πρώτη παράδοση), αλλά υπάρχουν φθηνότερες επιλογές για να αγοράσετε τον ίδιο αναγνώστη.

Με σύγχυση, το ACR122U φαίνεται να πωλείται με μια σειρά διαφορετικών εμπορικών σημάτων (το δικό μου ήταν κάτω από το καθόλου καθησυχαστικό εμπορικό σήμα "Yosoo"), αλλά από ό, τι μπορώ να πω είναι όλα τα ίδια και κατασκευασμένα από την American Card Systems.

Το φθηνότερο που βρήκα το ACR122U που διαφημίζεται είναι 21 λίρες, συμπεριλαμβανομένων των μεταφορικών, αλλά αυτό έρχεται απευθείας από την Κίνα, οπότε ίσως χρειαστεί να περιμένετε λίγο για αυτό.

Αλλες επιλογές

Αυτό το έργο βασίζεται σε μια βιβλιοθήκη python που ονομάζεται nfcpy η οποία διατηρεί μια λίστα με υποστηριζόμενες συσκευές εδώ:

Θεωρητικά, αυτό το έργο θα πρέπει να συνεργαστεί με οποιονδήποτε από αυτούς στη λίστα με μικρή ενσωμάτωση.

Μια δελεαστική επιλογή είναι το Adafruit PN532, το οποίο είναι ένας πίνακας που πρέπει να συνδεθεί απευθείας στο Raspberry Pi σας χρησιμοποιώντας καλώδια jumper. Το δοκίμασα και το βρήκα πραγματικό. Απαιτεί συγκόλληση, για παράδειγμα.

Ένα πλεονέκτημά του είναι, επιφανειακά, ότι είναι μικρότερο, αλλά στην πραγματικότητα ο πίνακας έχει περίπου το ίδιο μέγεθος με τα κότσια του ACR122U. Εάν σας πιέζει πραγματικά ο χώρος για την εφαρμογή σας, τότε μπορείτε να αφαιρέσετε το πλαστικό από το ACR122U και απλά να χρησιμοποιήσετε τον πίνακα.

Βήμα 3: Απαιτούμενα αναλώσιμα 3: Ετικέτες NFC

Απαιτούμενα αναλώσιμα 3: Ετικέτες NFC
Απαιτούμενα αναλώσιμα 3: Ετικέτες NFC

Για κάθε άλμπουμ που θέλετε να δημιουργήσετε, θα χρειαστείτε μια ετικέτα NFC που πληροί το πρότυπο NTAG213.

Υπάρχουν πολλά μέρη για να τα αγοράσετε.

Αγόρασα την πρώτη μου παρτίδα από την Amazon, όπου πήρα ένα πακέτο 10 για 9 £ (συμπεριλαμβανομένης της παράδοσης Prime)

Το καλύτερο που έχω βρει εδώ στο Ηνωμένο Βασίλειο είναι το Seritag - έχουν μια πραγματικά μεγάλη ποικιλία διαφορετικών στυλ, εξαιρετικές συμβουλές στον ιστότοπό τους, γνωρίζετε ακριβώς τι παίρνετε (δεν ισχύει πάντα στο Amazon). Δεν έχουν ελάχιστο μέγεθος παραγγελίας και έναν τόνο επιλογών. Οι ετικέτες ξεκινούν από 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 είναι απενεργοποιημένο από προεπιλογή. Πρέπει να το ενεργοποιήσουμε.

Αυτό μπορούμε να το κάνουμε δημιουργώντας ένα κενό αρχείο που ονομάζεται:

ssh

στην κάρτα SD που μόλις δημιουργήσαμε. Είναι σημαντικό να μην έχει καμία επέκταση (π.χ..txt). Το ίδιο το αρχείο δεν χρειάζεται να περιέχει καθόλου περιεχόμενο - απλώς η ύπαρξή του θα ενεργοποιήσει το SSH όταν ξεκινήσει το Pi.

Βήμα 6: Προαιρετικό: Ρυθμίστε το Wifi στο Raspberry Pi σας

Προαιρετικά: Ρυθμίστε το Wifi στο Raspberry Pi σας
Προαιρετικά: Ρυθμίστε το Wifi στο Raspberry Pi σας
Προαιρετικά: Ρυθμίστε το Wifi στο Raspberry Pi σας
Προαιρετικά: Ρυθμίστε το Wifi στο Raspberry Pi σας

Μπορείτε να παραλείψετε αυτό το βήμα εάν σκοπεύετε να συνδέσετε το Raspberry Pi στο δρομολογητή σας μέσω ethernet. (Παρόλο που μπορεί να θέλετε να σκεφτείτε καλά αυτήν την απόφαση - η εκτέλεση του Wi -Fi κάνει τη ζωή πολύ πιο εύκολη από την άποψη της τοποθέτησης αυτής)

Δημιουργήστε ένα απλό αρχείο κειμένου που ονομάζεται wpa_supplicant.conf στον ριζικό κατάλογο της κάρτας SD.

Εισαγάγετε το παρακάτω κείμενο στο αρχείο:

χώρα = gb

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

Αλλάξτε τη χώρα κατά περίπτωση (GB είναι το Ηνωμένο Βασίλειο, οι ΗΠΑ είναι οι ΗΠΑ, η DE είναι η Γερμανία κλπ)

Αλλάξτε τα διαπιστευτήρια wifi εκεί για να είναι τα πραγματικά στοιχεία του δρομολογητή wifi.

Αποθηκεύστε το αρχείο.

Εξαγάγετε με ασφάλεια την κάρτα SD.

Βήμα 7: Ενεργοποιήστε το Raspberry Pi σας

Ενεργοποιήστε το Raspberry Pi σας
Ενεργοποιήστε το Raspberry Pi σας

Τοποθετήστε την κάρτα SD που μόλις δημιουργήσατε στο Raspberry Pi.

Συνδέστε το Raspberry Pi σε ισχύ μέσω καλωδίου USB. Περιμένετε ένα λεπτό για να ξεκινήσει.

Βήμα 8: Βρείτε τη διεύθυνση IP του Raspberry Pi σας

Τώρα πρέπει να βρείτε τη διεύθυνση IP του Raspberry Pi, ώστε να μπορείτε να συνδεθείτε σε αυτό. Μπορείτε να το κάνετε με δύο τρόπους:

  • μέσω της σελίδας ρύθμισης του δρομολογητή σας - εάν έχετε ένα σύγχρονο δρομολογητή όπως το eero, τότε αυτό είναι εξαιρετικά εύκολο.
  • ή μέσω μιας εφαρμογής smartphone διαθέσιμη για iOS και Android που ονομάζεται "fing" - κατεβάστε την, συνδεθείτε στο δρομολογητή σας και σαρώστε για συσκευές - μία από αυτές θα πρέπει να ονομάζεται "Raspberry" - αυτή θα είναι η διεύθυνση IP που χρειάζεστε.

Βήμα 9: Συνδεθείτε στη γραμμή εντολών Raspberry Pi

Συνδεθείτε στη γραμμή εντολών Raspberry Pi
Συνδεθείτε στη γραμμή εντολών Raspberry Pi

Ανοίξτε το Terminal στο mac σας (ή εάν χρησιμοποιείτε Windows, κάντε λήψη και χρησιμοποιήστε το Putty).

Εισαγάγετε την ακόλουθη εντολή:

ssh pi@[η διεύθυνση IP του Pi σας]

Αποδεχτείτε τυχόν προειδοποιήσεις ασφαλείας που λαμβάνετε. Θα σας ζητηθεί ο κωδικός πρόσβασης για τον προεπιλεγμένο χρήστη pi που είναι

βατόμουρο

Βήμα 10: Ρύθμιση του Raspberry Pi OS GUI

Ρυθμίστε το Raspberry Pi OS GUI
Ρυθμίστε το Raspberry Pi OS GUI
Ρυθμίστε το Raspberry Pi OS GUI
Ρυθμίστε το Raspberry Pi OS GUI

Είστε τώρα συνδεδεμένοι στο Pi σας μέσω της γραμμής εντολών, η οποία είναι υπέροχη, αλλά θέλετε επίσης να το ρυθμίσετε ώστε να έχετε πρόσβαση στο Γραφικό περιβάλλον εργασίας χρήστη στο οποίο θα έχουμε πρόσβαση μέσω VNC (Virtual Network Computing). Προφανώς, πρέπει επίσης να το ενεργοποιήσουμε αυτό.

Πρώτα απ 'όλα, ελέγξτε ότι το λογισμικό Pi είναι ενημερωμένο, εισάγοντας τις ακόλουθες δύο εντολές (καθεμία ακολουθούμενη από εισαγωγή) στη γραμμή εντολών:

sudo apt ενημέρωση

sudo apt εγκατάσταση realvnc-vnc-server realvnc-vnc-viewer

Στη συνέχεια, ανοίξτε το μενού ρυθμίσεων Raspberry Pi εισάγοντας:

sudo raspi-config

Μεταβείτε στις Επιλογές διασύνδεσης> VNC> Ναι.

Βγείτε από την εφαρμογή διαμόρφωσης πατώντας το πλήκτρο διαφυγής και επανεκκινήστε το Pi από τη γραμμή εντολών πληκτρολογώντας:

sudo επανεκκίνηση

Βήμα 11: Συνδεθείτε και ρυθμίστε το Raspberry Pi GUI

Συνδεθείτε και ρυθμίστε το GUI του Raspberry Pi
Συνδεθείτε και ρυθμίστε το GUI του Raspberry Pi
Συνδεθείτε και ρυθμίστε το GUI του Raspberry Pi
Συνδεθείτε και ρυθμίστε το GUI του Raspberry Pi

Κατεβάστε και ανοίξτε το VNC Viewer.

Πληκτρολογήστε τη διεύθυνση IP για το Raspberry Pi και πατήστε Connect. Θα σας ζητήσει όνομα χρήστη και κωδικό πρόσβασης που είναι:

Όνομα χρήστη = pi

Κωδικός πρόσβασης = βατόμουρο

Αυτό θα σας εκκινήσει μέχρι το GUI.

Θα σας ζητήσει να επιβεβαιώσετε τη γεωγραφία και τη διάταξη του πληκτρολογίου σας.

Στη συνέχεια, θα σας ζητήσει να αλλάξετε τον κωδικό πρόσβασής σας (καλή ιδέα).

Θα σας ζητήσει να ορίσετε τα στοιχεία Wi -Fi, αλλά μπορείτε να το παραλείψετε καθώς λειτουργούν ήδη. (Αν και αν τρέχετε σε ethernet και έχετε δεύτερες σκέψεις, τότε τώρα έχετε την ευκαιρία … αλλά σημειώστε ότι η διεύθυνση IP σας μπορεί να αλλάξει)

Στη συνέχεια, θα ελέγξει για, θα κατεβάσει και θα εγκαταστήσει ενημερώσεις (μπορεί να χρειαστεί λίγος χρόνος).

Μόλις ολοκληρώσετε τον οδηγό εγκατάστασης, θα συνιστούσα να αλλάξετε την ανάλυση της οθόνης, καθώς η προεπιλογή είναι αρκετά μικρή. Μπορείτε να το κάνετε αυτό κάνοντας κλικ στο Raspberry επάνω αριστερά> Προτιμήσεις> Διαμόρφωση Raspberry Pi> Οθόνη> Ορισμός ανάλυσης

Θα χρειαστεί να κάνετε επανεκκίνηση του Pi ξανά για να τεθεί σε ισχύ.

Βήμα 12: Εγκαταστήστε το Node.js και το NPM

Εγκαταστήστε το Node.js και το NPM
Εγκαταστήστε το Node.js και το NPM

Στη συνέχεια, θέλετε να φορτώσετε τη γραμμή εντολών Raspberry Pi για να εγκαταστήσετε τις εξαρτήσεις που χρειαζόμαστε.

Μπορείτε είτε να το κάνετε αυτό συνδέοντας μέσω VNC και κάνοντας κλικ στο κουμπί κοντά στο επάνω μέρος που μοιάζει με γραμμή εντολών. ή μπορείτε να συνδεθείτε απευθείας από το Mac/PC σας χρησιμοποιώντας το Terminal και το 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 install nodejs npm

Θα σας ρωτήσει μερικές φορές εάν είστε ευτυχείς να καταλαμβάνετε χώρο στο δίσκο με αυτά - πατάτε έτσι το Y

Βήμα 13: Εγκαταστήστε το SONOS HTTP API

Εγκαταστήστε το SONOS HTTP API
Εγκαταστήστε το SONOS HTTP API
Εγκαταστήστε το SONOS HTTP API
Εγκαταστήστε το SONOS HTTP API

Η βάση του back end για το έργο μας είναι το πακέτο node-sonos-http-api που δημιουργήθηκε από τον jishi. Μπορείτε να τα διαβάσετε όλα εδώ:

Θα το κατεβάσουμε από το github με την ακόλουθη εντολή που έχει εισαχθεί στη γραμμή εντολών:

git clone

και θα το εγκαταστήσουμε με τις ακόλουθες εντολές

cd node-sonos-http-api

npm εγκατάσταση --παραγωγή

Στη συνέχεια, μπορούμε να το εκτελέσουμε με την ακόλουθη εντολή:

npm έναρξη

Μόλις γίνει αυτό, πρέπει να ελέγξουμε ότι λειτουργεί.

Πρώτα απ 'όλα, ανοίξτε το πρόγραμμα περιήγησης στο Διαδίκτυο στο Raspberry Pi και μεταβείτε στη διεύθυνση https:// localhost: 5005/. Θα πρέπει να ανοίξει μια ωραία διεπαφή με το λογότυπο Sonos και κάποια τεκμηρίωση για το πώς λειτουργεί το API.

Στη συνέχεια, ας ελέγξουμε ότι αυτό λειτουργεί από το ευρύτερο δίκτυο χρησιμοποιώντας ένα πρόγραμμα περιήγησης σε άλλο υπολογιστή ή Mac στο ίδιο δίκτυο και μεταβαίνοντας στο https:// [theIPaddressofyourPi]: 5005/και βλέποντας αν έχουμε το ίδιο αποτέλεσμα. Θα έπρεπε.

Τώρα θα κάνουμε το σύστημα να κάνει κάτι. Χρησιμοποιήστε ένα πρόγραμμα περιήγησης και πλοηγηθείτε στα:

192.168.4.102:5005/ Τραπεζαρία/playpause

Θα πρέπει να αντικαταστήσετε την παραπάνω διεύθυνση IP με τη διεύθυνση του Raspberry Pi και το "Dining Room" με ένα από τα ονόματα των ζωνών Sonos. Θα πρέπει είτε να παίζει είτε να διακόπτεται (ανάλογα με το αν παίζει ήδη μουσική ή όχι) τη μουσική σε αυτό το δωμάτιο. Προφανώς κάτι πρέπει να βρίσκεται στην ουρά Sonos για να λειτουργήσει.

Προχωρώντας, θα χρησιμοποιήσω την παραπάνω διεύθυνση IP και την Τραπεζαρία ως παραδείγματα σε αυτό το σεμινάριο. Προφανώς θα πρέπει να τα αντικαθιστάτε με τη διεύθυνση IP και το όνομα της ζώνης σας σε κάθε περίσταση.

Βήμα 14: Κάντε το Sonos HTTP API να εκτελείται συνεχώς

Κάντε το Sonos HTTP API να εκτελείται συνεχώς
Κάντε το Sonos HTTP API να εκτελείται συνεχώς

Είναι υπέροχο που έχουμε το Sonos HTTP API σε λειτουργία, αλλά τι γίνεται αν κολλάει; Or χάνετε την ισχύ ή χρειάζεστε επανεκκίνηση του Raspberry Pi;

Μπορείτε να δείτε το αποτέλεσμα κλείνοντας το παράθυρο του τερματικού και προσπαθώντας ξανά αυτό που μόλις δοκιμάσαμε. Δεν θα λειτουργήσει επειδή το HTTP API έχει σταματήσει μαζί με το παράθυρο τερματικού.

Στην πραγματικότητα θέλουμε να λειτουργεί συνεχώς και να το κάνουμε από την εκκίνηση κάθε φορά. Το κάνουμε αυτό με ένα δροσερό πράγμα που ονομάζεται PM2.

Σε ένα νέο παράθυρο τερματικού, εγκαταστήστε και εκτελέστε το ως εξής:

sudo npm εγκατάσταση -g pm2

κατάσταση pm2

Τώρα ας το κάνουμε να τρέξει το Sonos HTTP API:

cd node-sonos-http-api

pm2 start npm - start pm2 startup systemd

Αυτή η τελευταία εντολή δημιουργεί κάτι που μοιάζει λίγο:

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

Αντιγράψτε αυτό που δημιουργεί το Pi σας (όχι το ακριβές κείμενο παραπάνω - το δικό σας μπορεί να είναι διαφορετικό) και εισαγάγετε το στη γραμμή εντολών. Αυτό δίνει εντολή στο σύστημα να εκτελεί PM2 κατά την εκκίνηση κάθε φορά.

Τέλος, πληκτρολογήστε:

pm2 αποθήκευση

που εξοικονομεί τα πάντα.

Τώρα ελέγξτε αν αυτό λειτούργησε με επανεκκίνηση του Raspberry 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

Πρέπει να ακούσεις κάποιον John Grant. Απολαμβάνω.

Βήμα 16: Βρείτε URIs Spotify

Βρείτε URIs Spotify
Βρείτε URIs Spotify

Περίεργο, το ξέρω, αλλά δεν αρέσει σε όλους ο Τζον Γκραντ. Maybeσως θέλετε να ακούσετε κάτι άλλο;

Μπορείτε να λάβετε τους συνδέσμους Spotify από την επιφάνεια εργασίας, τον ιστό ή τις εφαρμογές για κινητά, αλλά το Desktop είναι μακράν το πιο εύκολο, καθώς παρέχει το URI με τη μορφή ακριβώς που θέλετε, οπότε ξεκινήστε με αυτό.

Στην εφαρμογή επιφάνειας εργασίας Spotify, μεταβείτε στο άλμπουμ που θέλετε να ακούσετε (ίσως Lemonade by Beyonce;)

Κάντε κλικ στις τρεις μικρές κουκκίδες δίπλα στο κουμπί καρδιάς.

Κατεβείτε στο μενού για κοινή χρήση και επιλέξτε Αντιγραφή URI Spotify

Αυτό θα αντιγράψει κάτι σαν

spotify: άλμπουμ: 7dK54iZuOxXFarGhXwEXfF

στο πρόχειρό σας, το οποίο είναι το Spotify URI για το άλμπουμ της Beyonce Lemondade.

Εκκινήστε ξανά το πρόγραμμα περιήγησής σας και μεταβείτε στην ακόλουθη διεύθυνση (προφανώς αντικαθιστώντας τη διεύθυνση IP και το δωμάτιο και επικολλήστε στο URI που μόλις αντιγράψατε):

192.168.4.102:5005/ Τραπεζαρία/spotify/τώρα/[Spotify URI που θέλετε να παίξετε]

Πρέπει να ακούσετε το παιχνίδι της επιλογής σας.

Εάν προτιμάτε να χρησιμοποιείτε την εφαρμογή ιστού, τότε θα σας δώσει έναν σύνδεσμο ιστού (κάτι σαν το παρακάτω):

open.spotify.com/album/7dK54iZuOxXFarGhXwEXfF

πρέπει να το μετατρέψετε σε spotify: άλμπουμ: μορφή κώδικα παραπάνω για να λειτουργήσει.

Βήμα 17: Σημείωση για τα URI του Spotify

Τα URIs Spotify και ο τρόπος που διασυνδέονται με τον κόμβο-sonos-http-api είναι διαισθητικά, ως επί το πλείστον.

Μπορείτε να συνδεθείτε απευθείας με άλμπουμ, κομμάτια και λίστες αναπαραγωγής.

Ένα άλμπουμ URI μοιάζει με:

spotify: άλμπουμ: 6agCM9GJcebduMddgFmgsO

Ένα URI κομματιού μοιάζει με:

spotify: κομμάτι: 4fNDKbaeEjk2P4GrRE1UbW

Οι λίστες αναπαραγωγής λειτουργούν λίγο διαφορετικά. Όταν αντιγράφετε το URI από το Spotify θα μοιάζει με:

spotify: playlist: 5huIma0YU4iusLcT2reVEU

Ωστόσο, για να λειτουργήσει πραγματικά στο API πρέπει να προσθέσετε το spotify: user: στην αρχή των παραπάνω. Αυτό ισχύει ακόμη και για δημόσιες λίστες αναπαραγωγής και, ναι, σημαίνει ότι λέτε spotify δύο φορές.

Για να είναι πολύ σαφής, ο χρήστης δεν χρειάζεται να είναι όνομα συγκεκριμένου χρήστη, μόνο ο χρήστης κειμένου. Έτσι, το σωστό URI για να λειτουργήσει η παραπάνω λίστα αναπαραγωγής θα ήταν:

spotify: χρήστης: spotify: playlist: 5huIma0YU4iusLcT2reVEU

Βήμα 18: Ρυθμίστε το Raspberry Pi για αποστολή αιτημάτων

Ρυθμίστε το 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

Τώρα θέλουμε να γράψουμε ένα URI άλμπουμ Spotify σε μια ετικέτα NFC. Κάθε μία από αυτές τις ετικέτες είναι αυτό που θα χρησιμοποιήσετε για να πείτε στο Raspberry Pi να παίξει ένα συγκεκριμένο άλμπουμ.

Μπορείτε να γράψετε σε μια ετικέτα NFC χρησιμοποιώντας ένα τηλέφωνο Android, αλλά το βρίσκω πιο εύκολο να το κάνετε μέσω mac ή υπολογιστή, καθώς τότε μπορείτε να αποκτήσετε το πιο εύκολο να λάβετε τα URIs Spotify από την εφαρμογή επιφάνειας εργασίας Spotify.

Συνδέστε τον αναγνώστη USB NFC στον υπολογιστή ή το Mac σας. Χρησιμοποιώ το ACR122U της American Card Systems.

Λήψη εργαλείων NFC στον υπολογιστή ή το Mac σας. Εγκαταστήστε και ανοίξτε το.

Μπορεί να είναι λίγο αργή η σύνδεση με τον αναγνώστη μερικές φορές και μπορεί να πει ότι δεν μπορεί να βρει καθόλου τον αναγνώστη. Μεταβείτε στην καρτέλα Άλλα στα εργαλεία NFC και κάντε κλικ κάθε τόσο στο κουμπί Συνδεδεμένος αναγνώστης NFC. Youσως χρειαστεί να αποσυνδέσετε και να επανασυνδέσετε τον αναγνώστη μερικές φορές πριν τον εντοπίσει.

Τελικά θα σας δώσει την επιλογή να επιλέξετε τον αναγνώστη σας από μια λίστα και να πείτε ότι είναι συνδεδεμένος. Μεταβείτε στην καρτέλα Πληροφορίες, η οποία δεν θα εμφανίζει τίποτα εκτός από το "Αναμονή για μια ετικέτα NFC".

Πάρτε μια κενή ετικέτα NFC. Βάλτε το στον αναγνώστη και αφήστε το εκεί. Τα Εργαλεία NFC θα εμφανίσουν τις πληροφορίες σχετικά με την ετικέτα.

Μεταβείτε στην καρτέλα Γράψτε και κάντε κλικ στην επιλογή Προσθήκη εγγραφής> Κείμενο. (Προσέξτε να μην επιλέξετε URL ή URI - ξέρω ότι είναι δελεαστικό επειδή αντιγράφετε ένα URI, αλλά θέλετε κείμενο)

Πιάστε ένα URI από το Spotify χρησιμοποιώντας τη μέθοδο που χρησιμοποιήσαμε προηγουμένως. Αν θέλετε ένα εύκολο παράδειγμα, το παρακάτω είναι το άλμπουμ John Grant από παλαιότερα.

spotify: άλμπουμ: 2dfTV7CktUEBkZCHiB7VQB

Κάντε κλικ στο κουμπί OK και, στη συνέχεια, κάντε κλικ στην επιλογή Γράψτε (μην ξεχάσετε αυτό το τελευταίο βήμα - στην πραγματικότητα δεν το γράφει μέχρι να κάνετε κλικ σε αυτό). Θα σας πει ότι γράφτηκε με επιτυχία η ετικέτα.

Αφαιρέστε την ετικέτα από τον αναγνώστη

Βήμα 20: Ρύθμιση του NFC Reader στο Raspberry Pi

Ρυθμίστε το NFC Reader στο Raspberry Pi
Ρυθμίστε το NFC Reader στο Raspberry Pi

Συνδέστε τον αναγνώστη NFC σε μία από τις θύρες USB του Raspberry Pi.

Θα χρησιμοποιήσουμε τη βιβλιοθήκη nfcpy Python για επικοινωνία με τον αναγνώστη NFC. Εγκαταστήστε το πληκτρολογώντας τα ακόλουθα στη γραμμή εντολών Pi:

pip install -U nfcpy

Στη συνέχεια, μπορούμε να ελέγξουμε αν αυτή η βιβλιοθήκη είναι σε θέση να δει τον αναγνώστη NFC πληκτρολογώντας τα ακόλουθα:

python -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" για να με κοιτάξετε - αλλά προσέξτε ότι αυτό μπορεί να σπάσει άλλους σειριακούς devs

Ωστόσο, υπάρχει μια καλή πιθανότητα να λάβετε ένα μήνυμα σφάλματος που λέει ότι ο αναγνώστης βρέθηκε αλλά ο χρήστης σας (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.

Δοκιμάστε ξανά την εντολή ελέγχου:

python -m nfc

Αυτή τη φορά θα πρέπει να πει ότι το βρήκε χωρίς μηνύματα σφάλματος.

Βήμα 21: Εγκαταστήστε τα Vinylemulator Python Scripts

Έχουμε τώρα όλα τα δομικά στοιχεία στη θέση τους:

  • Το Raspberry Pi μας είναι σε θέση να ακούει για είσοδο NFC
  • Το Raspberry Pi μας είναι σε θέση να πει στον Sonos να παίξει λίστες αναπαραγωγής Spotify όταν τους δοθεί ένα URI Spotify
  • Έχουμε μια ετικέτα NFC με αποθηκευμένο ένα URI Spotify

Τώρα πρέπει να τραβήξουμε όλα αυτά τα δομικά στοιχεία σε κάτι χρήσιμο. Αυτό γίνεται μέσω ενός σύντομου σεναρίου python που έγραψα (με πολλή βοήθεια από προηγούμενα έργα NFC/Spotify/Sonos) το οποίο ονομάζεται vinylemulator.

Μπορείτε να δείτε τον πηγαίο κώδικα για τα αρχεία στο github:

Για να το εγκαταστήσουμε στο Raspberry Pi, πρέπει να το κλωνοποιήσουμε από το github με την ακόλουθη εντολή:

git clone

Βήμα 22: Προσαρμογή του Vinylemulator

Προσαρμόστε το Vinylemulator
Προσαρμόστε το Vinylemulator
Προσαρμόστε το Vinylemulator
Προσαρμόστε το Vinylemulator

Ανοίξτε το πρόγραμμα διαχείρισης αρχείων Raspberry Pi και μεταβείτε στο σπίτι> pi> vinylemulator

Ανοίξτε το αρχείο usersettings.py

Μία από τις γραμμές σε αυτό το αρχείο θα διαβάσει:

sonosroom = "Τραπεζαρία"

Αλλάξτε το "Τραπεζαρία" σε όποιο όνομα δωματίου Sonos θέλετε να ελέγξετε.

Υπάρχει επίσης μια ρύθμιση σε αυτό το αρχείο που σας επιτρέπει να προσαρμόσετε τη διεύθυνση IP του sonos-http-api. Θα πρέπει να μπορείτε να το αφήσετε αμετάβλητο ως "localhost" που σημαίνει απλώς ότι θα χρησιμοποιήσει το Raspberry Pi στο οποίο εκτελείται.

Αποθηκεύστε το αρχείο και κλείστε το.

Βήμα 23: Δοκιμάστε τον εξομοιωτή βινυλίου

Δοκιμή εξομοιωτή βινυλίου
Δοκιμή εξομοιωτή βινυλίου
Δοκιμή εξομοιωτή βινυλίου
Δοκιμή εξομοιωτή βινυλίου

Μεταβείτε στη γραμμή εντολών Raspberry Pi.

Εισαγάγετε την ακόλουθη εντολή:

python vinylemulator/readnfc.py

Εάν όλα είναι καλά, αυτό θα φορτώσει το σενάριο και θα πει ότι ο αναγνώστης είναι έτοιμος. Το φως στον αναγνώστη πρέπει να γίνει πράσινο.

Τοποθετήστε την ετικέτα NFC στον αναγνώστη, η οποία θα ηχήσει.

Το τερματικό θα δείξει τι έχει διαβάσει από την ετικέτα NFC και θα δείξει τη διεύθυνση αιτήματος HTTP που έχει στείλει. Το άλμπουμ της επιλογής σας πρέπει να αναπαράγεται από τα ηχεία Sonos.

Αυτό το σενάριο θα συνεχίσει να λειτουργεί μέχρι να κλείσετε το παράθυρο του τερματικού. Μπορείτε να πατήσετε διαφορετικές ετικέτες NFC άλμπουμ και θα μεταβεί σε αυτό το άλμπουμ.

Βήμα 24: Βάλτε το Vinylemulator να εκτελείται συνεχώς και κατά την εκκίνηση

Ακριβώς όπως το sonos-http-api, θέλουμε το vinylemulator να λειτουργεί συνεχώς και όχι μόνο όταν το λέμε. Μπορούμε να χρησιμοποιήσουμε το pm2 για να το κάνουμε ξανά.

Πρώτα κλείστε τυχόν περιπτώσεις vinylemulator που εκτελείτε κλείνοντας τα παράθυρα των τερματικών τους.

Στη συνέχεια, ανοίξτε ένα νέο παράθυρο τερματικού και πληκτρολογήστε τις ακόλουθες δύο εντολές:

pm2 εκκίνηση vinylemulator/readnfc.py

pm2 αποθήκευση

Ας ελέγξουμε αν αυτό λειτούργησε με επανεκκίνηση του Raspberry Pi. (Μπορείτε είτε να πληκτρολογήσετε sudo reboot είτε να το κάνετε από το μενού Raspberry με το ποντίκι σας.

Περιμένετε να ξεκινήσει ξανά το Pi και δείτε ότι λειτουργεί πατώντας μια ετικέτα NFC στον αναγνώστη. Πρέπει να πάρεις μουσική.

Βήμα 25: Συγχαίρετε τον εαυτό σας

Όλα είναι πλέον λειτουργικά. Μπορείτε να μετακινήσετε το Raspberry Pi όπου κι αν σκοπεύετε να το τοποθετήσετε. Θα επανεκκινήσει και θα λειτουργήσει με τον τρόπο που το έχετε ρυθμίσει κάθε φορά που το συνδέετε.

Οι επόμενες εργασίες σας είναι οι διασκεδαστικές: να τα κάνετε όλα όμορφα.

Βήμα 26: Κάντε το όμορφο - Κρύψτε τον αναγνώστη σας

Κάντε το όμορφο - Κρύψτε τον αναγνώστη σας
Κάντε το όμορφο - Κρύψτε τον αναγνώστη σας
Κάντε το όμορφο - Κρύψτε τον αναγνώστη σας
Κάντε το όμορφο - Κρύψτε τον αναγνώστη σας
Κάντε το όμορφο - Κρύψτε τον αναγνώστη σας
Κάντε το όμορφο - Κρύψτε τον αναγνώστη σας
Κάντε το όμορφο - Κρύψτε τον αναγνώστη σας
Κάντε το όμορφο - Κρύψτε τον αναγνώστη σας

Το πρώτο μέρος για να το κάνετε όμορφο είναι να κρύψετε κάπου τον άσχημο λευκό πλαστικό αναγνώστη NFC.

Έχω πάει με μια σίγουρα χαμηλής τεχνολογίας επιλογή να το κολλήσω στην κάτω πλευρά ενός πάγκου δίπλα στο Sonos Play: 5. Το ξύλο του πάγκου είναι αρκετά λεπτό ώστε να μπορεί να περάσει το NFC, οπότε παίζω μουσική πατώντας μια ετικέτα NFC σε ένα μαγικό και αόρατο σημείο.

Συνιστάται: