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

Παίξτε Bluetooth στο Sonos χρησιμοποιώντας Raspberry Pi: 25 βήματα
Παίξτε Bluetooth στο Sonos χρησιμοποιώντας Raspberry Pi: 25 βήματα

Βίντεο: Παίξτε Bluetooth στο Sonos χρησιμοποιώντας Raspberry Pi: 25 βήματα

Βίντεο: Παίξτε Bluetooth στο Sonos χρησιμοποιώντας Raspberry Pi: 25 βήματα
Βίντεο: 30 Ultimate Windows 10 Συμβουλές και κόλπα για το 2020 2024, Ιούλιος
Anonim
Image
Image
Παίξτε Bluetooth στο Sonos χρησιμοποιώντας Raspberry Pi
Παίξτε Bluetooth στο Sonos χρησιμοποιώντας Raspberry Pi

Έγραψα προηγουμένως ένα διδακτικό που περιγράφει πώς να προσθέσετε ένα aux ή αναλογικό line-in στο Sonos χρησιμοποιώντας ένα Raspberry Pi. Ένας αναγνώστης ρώτησε αν θα ήταν δυνατή η μετάδοση ήχου bluetooth από το τηλέφωνό του στη Sonos. Είναι εύκολο να το κάνετε αυτό χρησιμοποιώντας ένα dongle bluetooth συνδεδεμένο στη γραμμή του ακριβότερου Sonos Play: 5 ή Sonos CONNECT. Ωστόσο, χάνετε την πιστότητα μετατρέποντας το bluetooth (ψηφιακό) σε αναλογικό και στη συνέχεια πίσω σε ψηφιακό και αν έχετε μόνο ένα από τα λιγότερο ακριβά ηχεία Sonos τότε αυτό δεν είναι επιλογή. Αυτό το εκπαιδευτικό περιγράφει πώς να ρυθμίσετε ένα Raspberry Pi για ροή ήχου bluetooth σε οποιοδήποτε ηχείο Sonos.

ΣΗΜΕΙΩΣΗ: Λάβετε υπόψη ότι θα μεταδώσουμε ήχο bluetooth στο Raspberry Pi και θα τον μετατρέψουμε σε ροή mp3 πριν τον στείλουμε στο Sonos, οπότε θα υπάρξει καθυστέρηση μερικών δευτερολέπτων. Εάν το χρησιμοποιείτε για να παρακολουθήσετε ένα βίντεο, ο ήχος θα είναι εκτός συγχρονισμού.

Βήμα 1:

Τι θα χρειαστείτε:

Raspberry PI 3 Model B (υπάρχει ένα νεότερο, γρηγορότερο μοντέλο B+ διαθέσιμο, αλλά έχω κολλήσει με το κανονικό μοντέλο B επειδή έχω διαβάσει ορισμένα προβλήματα με το κλείδωμα του B+ και επίσης τα ασύρματα wifi και bluetooth του B+ έχουν μεταλλική θωράκιση γύρω τους είναι συμβατά με FCC όταν εγκαθίστανται σε άλλη συσκευή, αλλά ήθελα μέγιστο εύρος bluetooth και φοβόμουν ότι η θωράκιση θα μπορούσε να το εμποδίσει)

Επιτραπέζιος ή φορητός υπολογιστής με συσκευή ανάγνωσης καρτών microSD

Οθόνη ή τηλεόραση με είσοδο HDMI (μόνο για αρχική ρύθμιση)

Πληκτρολόγιο USB και ποντίκι bluetooth (μόνο για αρχική ρύθμιση)

Πλαστική θήκη Raspberry Pi (χρησιμοποιώ μια πλαστική θήκη για αυτό το έργο για να μεγιστοποιήσω το εύρος bluetooth)

Κάρτα μνήμης Flash Card Kingston 8 GB microSDHC Class 4

Τροφοδοτικό 5V

Βήμα 2:

Εικόνα
Εικόνα
Εικόνα
Εικόνα

Μεταβείτε στη διεύθυνση https://www.raspberrypi.org/downloads/raspbian/ στον κανονικό σας υπολογιστή και κάντε λήψη του "RASPBIAN STRETCH WITH DESKTOP".

Μεταβείτε επίσης στη διεύθυνση https://etcher.io/ και κατεβάστε το Etcher και εγκαταστήστε το.

ΣΗΜΕΙΩΣΗ: Στο προηγούμενο οδηγό μου περιέγραψα πώς να κατεβάσετε το NOOBS για να εγκαταστήσετε το Raspbian. Ωστόσο, αυτή η μέθοδος είναι λίγο πιο γρήγορη. Είτε έτσι είτε αλλιώς είναι μια χαρά.

Βήμα 3:

Εικόνα
Εικόνα
Εικόνα
Εικόνα

Εκτελέστε Etcher και κάντε κλικ στην επιλογή Επιλογή εικόνας και περιηγηθείτε στο αρχείο zip. Κάντε κλικ στην επιλογή Επιλογή μονάδας δίσκου και περιηγηθείτε στην κάρτα microSD και, στη συνέχεια, κάντε κλικ στο Flash!

Βήμα 4:

Εικόνα
Εικόνα
Εικόνα
Εικόνα
Εικόνα
Εικόνα
Εικόνα
Εικόνα

ΣΗΜΕΙΩΣΗ: Μερικά από αυτά τα επόμενα βήματα είναι παρόμοια με τα προηγούμενα που μου δόθηκαν οδηγίες, οπότε παραλείψτε εάν έχετε ήδη ρυθμίσει τον κωδικό πρόσβασης root, τη στατική IP και το VNC.

Τοποθετήστε την κάρτα microSD στην υποδοχή κάρτας SD στην κάτω πλευρά του Raspberry Pi. Συνδέστε ένα καλώδιο HDMI από το Raspberry Pi στην οθόνη ή την τηλεόρασή σας. Συνδέστε το πληκτρολόγιο USB, το ποντίκι και τέλος το καλώδιο τροφοδοσίας Micro USB. Μετά την εκκίνηση, θα εμφανιστεί η επιφάνεια εργασίας Raspbian. Θα σας οδηγήσει σε διάφορες ρυθμίσεις, αλλά θα συνιστούσα να ΜΗΝ ελέγξετε για ενημερώσεις. Κάντε κλικ στην επιλογή Παράλειψη. Συνέχισα να λαμβάνω ένα σφάλμα "blueman.bluez.errors. DBusFailedError: Protocol not available" όταν προσπαθούσα να αντιστοιχίσω το bluetooth μετά την εγκατάσταση όλων των ενημερώσεων, οπότε έπρεπε να ξεκινήσω από την αρχή.

ΣΥΜΒΟΥΛΗ: Εάν δεν θέλετε στρατιωτικό χρόνο, κάντε δεξί κλικ στο ρολόι και επιλέξτε Ρυθμίσεις ψηφιακού ρολογιού και αλλάξτε τη μορφή ρολογιού από %R σε %r

Βήμα 5:

Εικόνα
Εικόνα
Εικόνα
Εικόνα
Εικόνα
Εικόνα

Στη συνέχεια, θα ενεργοποιήσουμε τον ενσωματωμένο διακομιστή VNC. Αυτό κάνει τα πράγματα πολύ πιο εύκολα καθώς μπορείτε απλά να αντιγράψετε και να επικολλήσετε εντολές μέσω VNC αντί να τις πληκτρολογήσετε. Επιλέξτε GUI Menu> Preferences> Raspberry Pi Configuration> Interfaces. Κάντε κλικ στην επιλογή Ενεργοποίηση δίπλα στο VNC και, στη συνέχεια, OK. Μετά από λίγα δευτερόλεπτα θα εμφανιστεί ένα εικονίδιο VNC στη γραμμή εργασιών. Κάντε κλικ σε αυτό και, στη συνέχεια, στο εικονίδιο του μενού επάνω δεξιά (πλαίσιο με 3 οριζόντιες γραμμές) και στη συνέχεια Επιλογές. Στις επιλογές ασφάλειας ορίστε την Κρυπτογράφηση σε "Προτιμώμενη απενεργοποίηση" και τον Έλεγχο ταυτότητας ως "Κωδικός πρόσβασης VNC" και, στη συνέχεια, κάντε κλικ στην επιλογή Εφαρμογή. Θα εμφανιστεί ένα πλαίσιο κωδικού πρόσβασης. Εισαγάγετε "βατόμουρο" (χωρίς τα εισαγωγικά) για τον κωδικό πρόσβασης σε κάθε πλαίσιο και κάντε κλικ στο OK.

Βήμα 6:

Εικόνα
Εικόνα
Εικόνα
Εικόνα
Εικόνα
Εικόνα

Πριν προχωρήσουμε περαιτέρω, πρέπει να εκχωρήσουμε μια στατική διεύθυνση IP. Εάν η διεύθυνση IP του Pi σας εκχωρηθεί τυχαία από τον διακομιστή DHCP του δρομολογητή σας, τότε η διεύθυνση IP θα μπορούσε να αλλάξει αργότερα και δεν θα μπορείτε να συνδεθείτε μέσω VNC (ή Sonos για αυτό το θέμα). Κάντε δεξί κλικ στο εικονίδιο συνδέσεων δικτύου στη γραμμή εργασιών (το μικρό εικονίδιο με το επάνω και κάτω βέλος) και επιλέξτε "Ρυθμίσεις ασύρματου και ενσύρματου δικτύου". Αριστερά κάντε κλικ στο επάνω δεξιό πλαίσιο και επιλέξτε "eth0" για να διαμορφώσετε τη σύνδεση ethernet ή "wlan0" για ασύρματο. Θα συνιστούσα να εκχωρήσετε μια στατική IP μόνο στο ένα ή στο άλλο. Είχα ένα πρόβλημα όταν έστησα για πρώτη φορά το Pi μου όπου έδωσα την ίδια στατική διεύθυνση IP και στις δύο συνδέσεις και το ασύρματο Pi μου ήταν κλειδωμένο και δεν μπορούσα να το επαναφέρω να λειτουργεί σωστά, οπότε έπρεπε να ξεκινήσω από την αρχή της εγκατάστασης του λειτουργικού συστήματος. Τέλος πάντων, εισαγάγετε τη διεύθυνση IP που θέλετε στο πεδίο διεύθυνσης IP και εισαγάγετε τη διεύθυνση IP του δρομολογητή σας τόσο στο πεδίο Router όσο και στο DNS Servers. Κάντε κλικ στην επιλογή Εφαρμογή και Κλείσιμο.

ΣΗΜΕΙΩΣΗ: mayσως είναι ευκολότερο να εκχωρήσετε μια στατική διεύθυνση IP χρησιμοποιώντας τη λειτουργία κράτησης DHCP IP του δρομολογητή σας, εάν έχει μία. Μπορεί να χρειαστείτε τη διεύθυνση MAC του Pi ή να εμφανιστεί απλώς σε μια λίστα συνδεδεμένων συσκευών στη σελίδα διαχειριστή του δρομολογητή σας. Εάν χρειάζεστε τη διεύθυνση MAC, πληκτρολογήστε την εντολή "ifconfig eth0" στο παράθυρο τερματικού για ethernet ή "ifconfig wlan0" για WiFi. Είναι αρκετά ενδιαφέρον, η διεύθυνση MAC WiFi θα εμφανιστεί στη γραμμή που ξεκινά με "αιθέρα"

Βήμα 7:

Εικόνα
Εικόνα
Εικόνα
Εικόνα
Εικόνα
Εικόνα

Στη συνέχεια, πρέπει να ορίσουμε την προεπιλεγμένη ανάλυση οθόνης. Αυτό μπορεί να φαίνεται ανόητο με το πώς είμαστε ήδη συνδεδεμένοι με μια οθόνη, αλλά αργότερα όταν συνδέεστε μέσω VNC χωρίς συνδεδεμένη οθόνη (χωρίς ακέφαλο, όπως λένε) θα επιστρέψει στην προεπιλεγμένη ανάλυση 640x480 του Pi, η οποία είναι μια πολύ μικρή οθόνη δουλεύω με! Επιλέξτε GUI Menu> Preferences> Raspberry Pi Configuration> Set Resolution. Ορίστε το σε 1280x720 ή υψηλότερο και κάντε κλικ στο κουμπί OK και Ναι για επανεκκίνηση.

Βήμα 8:

Εικόνα
Εικόνα
Εικόνα
Εικόνα
Εικόνα
Εικόνα

Μπορεί να θέλετε να αλλάξετε το όνομα του Pi σας ειδικά εάν έχετε περισσότερα από ένα στο δίκτυό σας. Μετονόμασα το δικό μου σε "BluetoothPi" για να είναι εύκολα αναγνωρίσιμο. Θα σας ζητήσει να κάνετε επανεκκίνηση αφού το μετονομάσετε.

Βήμα 9:

Εικόνα
Εικόνα
Εικόνα
Εικόνα
Εικόνα
Εικόνα
Εικόνα
Εικόνα

Σε αυτό το σημείο μπορεί να θέλετε να αρχίσετε να χρησιμοποιείτε το VNC για τον έλεγχο του Pi. Ανοίξτε ξανά τον πίνακα ελέγχου VNC στην επιφάνεια εργασίας Raspbian και αναζητήστε τη διεύθυνση IP στην ενότητα "Συνδεσιμότητα". Εγκαταστήστε και εκτελέστε ένα πρόγραμμα προβολής VNC στον κανονικό υπολογιστή σας και χρησιμοποιήστε αυτήν τη διεύθυνση IP για να συνδεθείτε και να εισαγάγετε τον κωδικό "βατόμουρο" (χωρίς τα εισαγωγικά). Χρησιμοποίησα το TightVNC για Windows. Αφού συνδεθείτε, μπορείτε να αποθηκεύσετε τη σύνδεση VNC του Pi ως συντόμευση στην επιφάνεια εργασίας σας για γρήγορη σύνδεση στο μέλλον, παρακάμπτοντας την οθόνη σύνδεσης. Θα λάβετε μια προειδοποίηση σχετικά με την αποθήκευση του κωδικού πρόσβασης στη συντόμευση. Για να αντιγράψετε και να επικολλήσετε στο τερματικό παράθυρο του Pi, επιλέξτε ή επισημάνετε το κείμενο ή τις εντολές στον κανονικό υπολογιστή σας, πατήστε Ctrl-C (κυριολεκτικά πατήστε το πλήκτρο Ctrl και C στο πληκτρολόγιό σας ταυτόχρονα) ή κάντε δεξί κλικ και επιλέξτε "Αντιγραφή ", στη συνέχεια, ενεργοποιήστε το παράθυρο προβολής VNC του Pi και κάντε δεξί κλικ στο παράθυρο τερματικού ακριβώς στον κέρσορα και επιλέξτε Επικόλληση.

Βήμα 10:

Εικόνα
Εικόνα
Εικόνα
Εικόνα

Στη συνέχεια θα εγκαταστήσουμε δύο προγράμματα, το Darkice και το Icecast2. Το Darkice είναι αυτό που θα κωδικοποιήσει την πηγή ήχου bluetooth σε ροή mp3 και το Icecast2 είναι αυτό που θα το εξυπηρετήσει στο Sonos ως ροή Shoutcast. Αντιγράψτε και επικολλήστε κάθε μία από αυτές τις γραμμές στο παράθυρο τερματικού μία κάθε φορά, ακολουθούμενη από το πλήκτρο Enter κάθε φορά:

wget

mv darkice_1.0.1-999 ~ mp3+1_armhf.deb? raw = true darkice_1.0.1-999 ~ mp3+1_armhf.deb

sudo apt-get install libmp3lame0 libtwolame0

sudo dpkg -i darkice_1.0.1-999 ~ mp3+1_armhf.deb

Βήμα 11:

Εικόνα
Εικόνα
Εικόνα
Εικόνα
Εικόνα
Εικόνα
Εικόνα
Εικόνα

Τώρα για να εγκαταστήσετε το Icecast2. Πληκτρολογήστε "sudo apt-get install icecast2" ακολουθούμενο από enter. Αφού εγκατασταθεί, θα εμφανιστεί ένα παράθυρο που θα σας ρωτά εάν θέλετε να ρυθμίσετε τις παραμέτρους του Icecast2. Πατήστε το αριστερό πλήκτρο βέλους και εισαγάγετε για να επιλέξετε Ναι. Στη δεύτερη οθόνη πατήστε το κάτω βέλος και πληκτρολογήστε για να επιλέξετε OK για να χρησιμοποιήσετε το προεπιλεγμένο όνομα κεντρικού υπολογιστή "localhost". Στις επόμενες τρεις οθόνες πατήστε το κάτω βέλος και πληκτρολογήστε το κλειδί για να συμφωνήσετε να χρησιμοποιήσετε το "hackme" ως προεπιλεγμένη πηγή, ρελέ και κωδικό πρόσβασης διαχείρισης. Παρόλο που συμφωνούμε με όλες τις προεπιλεγμένες ρυθμίσεις, αυτά τα βήματα πρέπει να ολοκληρωθούν για να ενεργοποιήσετε τον διακομιστή Icecast2.

sudo apt-get install icecast2

Βήμα 12:

Εικόνα
Εικόνα
Εικόνα
Εικόνα
Εικόνα
Εικόνα

Στη συνέχεια, πρέπει να εκτελέσουμε τον διαχειριστή αρχείων GUI ως root χρήστη. Για να το κάνετε αυτό, επιλέξτε Μενού GUI> Εκτέλεση. Πληκτρολογήστε "sudo pcmanfm" και πατήστε enter. Αυτό θα ανοίξει τον διαχειριστή αρχείων (το ισοδύναμο του εξερευνητή αρχείων για εμάς τους χρήστες των Windows) στον αρχικό κατάλογο (/home/pi) και θα δείτε το υπόλοιπο αρχείο εγκατάστασης darkice που κατεβάσαμε προηγουμένως. Κάντε δεξί κλικ σε έναν κενό χώρο και επιλέξτε Δημιουργία νέου και έπειτα Κενό αρχείο. Ονομάστε το "darkice.cfg" και κάντε κλικ στο OK. Στη συνέχεια, κάντε δεξί κλικ σε αυτό το νέο αρχείο και επιλέξτε να το ανοίξετε με το Leafpad (το ισοδύναμο του σημειωματάριου των Windows). Αντιγράψτε τις παρακάτω γραμμές και επικολλήστε τις στο Leafpad και κάντε κλικ στο Αρχείο και Αποθήκευση. Θα παρατηρήσετε ότι η γραμμή "ποιότητας" σχολιάζεται με ένα # μπροστά. Χρησιμοποιείται μόνο εάν ορίσετε "bitrateMode = vbr" (μεταβλητός ρυθμός bit). Δεν μπορείτε να ορίσετε τιμή ποιότητας όταν χρησιμοποιείτε cbr (σταθερός ρυθμός μετάδοσης bit) διαφορετικά η ροή θα τραυλίζει και θα παραλείπεται. Αντιστρόφως, εάν αποφασίσετε να χρησιμοποιήσετε το vbr, πρέπει να σχολιάσετε τη γραμμή "bitrate = 160" και να σχολιάσετε τη γραμμή "ποιότητας".

ΣΗΜΕΙΩΣΗ: Η υψηλότερη ποιότητα bitrate mp3 που μπορείτε να έχετε είναι 320 kbps. Ωστόσο, τόσο τα ασύρματα WiFi όσο και τα Bluetooth στο Raspberry Pi βρίσκονται στο ίδιο τσιπ, οπότε αν μεγιστοποιήσετε το εύρος ζώνης και των δύο, ο ήχος bluetooth μπορεί να τραυλίζει ή να παγώνει. Θα αλλάξουμε αργότερα μια ρύθμιση που θα το διορθώσει, ωστόσο περιορίζει το εύρος ζώνης WiFi κάπως, οπότε μείωσα το ρυθμό μετάδοσης ήχου για αυτό το έργο στα 160 kbps, καθώς σκοπεύω να το διατηρήσω αποκλειστικά σε WiFi. Εάν χρησιμοποιείτε ethernet, δεν υπάρχει πρόβλημα και μπορείτε να ρυθμίσετε με ασφάλεια το ρυθμό μετάδοσης bit στα 320 kbps.

[γενική] διάρκεια = 0 # διάρκεια σε s, 0 buffer για πάνταSecs = 1 # buffer, σε δευτερόλεπτα επανασύνδεση = ναι # επανασύνδεση αν αποσυνδεθεί

[εισαγωγή]

συσκευή = τηλέφωνο # όνομα δείγματος συσκευής bluetooth

[icecast2-0]

bitrateMode = cbr # σταθερός ρυθμός δυαδικών ψηφίων ('cbr' σταθερά, 'abr' μέσο όρο) #quality = 1.0 # 1.0 είναι η καλύτερη ποιότητα (χρήση μόνο με vbr) format = mp3 # format. Επιλέξτε 'vorbis' για OGG Vorbis bitrate = 160 # bitrate server = localhost # ή IP port = 8000 # port for IceCast2 access password = hackme # source password for the IceCast2 server mountPoint = rapi.mp3 # point mount on the IceCast2 server.mp3 ή.ogg όνομα = BluetoothPi

Βήμα 13:

Εικόνα
Εικόνα
Εικόνα
Εικόνα
Εικόνα
Εικόνα
Εικόνα
Εικόνα

Στη συνέχεια, πρέπει να ακολουθήσουμε τα ίδια βήματα όπως πριν για να δημιουργήσουμε ένα κενό αρχείο που ονομάζεται "darkice.sh". Ένα αρχείο.sh είναι το ισοδύναμο ενός αρχείου.bat ή batch για DOS ή Windows. Ανοίξτε χρησιμοποιώντας το Leafpad, αντιγράψτε και επικολλήστε τις παρακάτω γραμμές και αποθηκεύστε. Εάν ακολουθήσατε την προηγούμενη οδηγία μου, θα παρατηρήσετε ότι η γραμμή που ξεκινά το Darkice φαίνεται λίγο διαφορετική. Έπρεπε να ενσωματώσω τον κώδικα σε έναν βρόχο γιατί κάθε φορά που ο Darkice χάνει το ηχητικό σήμα bluetooth θα σταματήσει να λειτουργεί και δεν θα επανεκκινηθεί αυτόματα ακόμη και όταν γίνει επανεκκίνηση του ήχου. Έψαξα πολύ αυτό το πρόβλημα και ενώ υπάρχουν περίπλοκοι τρόποι για την αυτόματη εκτέλεση ενός σεναρίου κάθε φορά που είναι συνδεδεμένη μια συσκευή bluetooth, το Darkice μερικές φορές σταματάει όταν χάνεται το ηχητικό σήμα ακόμα και αν η συσκευή bluetooth εξακολουθεί να είναι συνδεδεμένη (π.χ. αν κλείσετε το YouTube εφαρμογή στο τηλέφωνό σας), οπότε αυτός είναι ο ευκολότερος και πιο αξιόπιστος τρόπος για να βεβαιωθείτε ότι το Darkice λειτουργεί όταν υπάρχει ήχος bluetooth. Εάν το Darkice εκτελείται ήδη, η εντολή αγνοείται.

#!/bin/bash while:; do sudo/usr/bin/darkice -c /home/pi/darkice.cfg; ύπνος 5? Έγινε

Βήμα 14:

Εικόνα
Εικόνα

Στη συνέχεια, πρέπει να εκτελέσουμε μια εντολή για να κάνουμε το αρχείο darkice.sh εκτελέσιμο. Ανοίξτε το παράθυρο του τερματικού και πληκτρολογήστε "sudo chmod 777 /home/pi/darkice.sh" και πατήστε enter. Τώρα ήρθε η ώρα να ξεκινήσετε την υπηρεσία διακομιστή Icecast2. Πληκτρολογήστε "sudo service icecast2 start" και πατήστε enter.

sudo chmod 777 /home/pi/darkice.sh

υπηρεσία sudo icecast2 έναρξη

Βήμα 15:

Εικόνα
Εικόνα
Εικόνα
Εικόνα
Εικόνα
Εικόνα
Εικόνα
Εικόνα

Στη συνέχεια, πρέπει να πούμε στο Darkice να ξεκινά αυτόματα κάθε φορά που ξεκινά το Pi (ο διακομιστής Icecast2 λειτουργεί ως υπηρεσία και ξεκινά ήδη αυτόματα μετά την εκκίνηση). Πρώτα πρέπει να επιλέξουμε ποιο πρόγραμμα επεξεργασίας κειμένου θα χρησιμοποιήσουμε. Στο παράθυρο τερματικού πληκτρολογήστε "select-editor" και πατήστε enter. Πληκτρολογήστε "2" για να επιλέξετε nano editor και πατήστε enter. Στη συνέχεια, πληκτρολογήστε "crontab -e" και εισαγάγετε. Στη συνέχεια, κρατήστε πατημένο το πλήκτρο κάτω βέλους για κύλιση μέχρι το κάτω μέρος του αρχείου κειμένου που εμφανίζεται και προσθέστε αυτήν τη γραμμή "@reboot sleep 10 && sudo /home/pi/darkice.sh". Στη συνέχεια, πατήστε Ctrl-X για έξοδο και θα σας ζητηθεί "Αποθήκευση τροποποιημένου buffer;". Πατήστε το πλήκτρο Y για Ναι και μετά Enter για να επιβεβαιώσετε αυτόματα όποιο όνομα αρχείου δημιουργείται αυτόματα.

select-editor

crontab -e

@reboot sleep 10 && sudo /home/pi/darkice.sh

Βήμα 16:

Εικόνα
Εικόνα
Εικόνα
Εικόνα
Εικόνα
Εικόνα

Συνδέστε το τηλέφωνό σας με το Raspberry Pi χρησιμοποιώντας το εικονίδιο bluetooth στην επιφάνεια εργασίας. Είναι σημαντικό να θέσετε το bluetooth του Pi σε λειτουργία ανακάλυψης και, στη συνέχεια, να το συνδέσετε από το τηλέφωνό σας. Εάν θέσετε το τηλέφωνό σας σε λειτουργία ανακάλυψης και προσπαθήσετε να το αντιστοιχίσετε ΑΠΟ ΤΟ Pi τότε μπορεί να συνδεθεί αλλά να σας εμφανίσει ένα σφάλμα που λέει ότι δεν υπάρχουν υπηρεσίες στο τηλέφωνό σας που το Pi μπορεί να χρησιμοποιήσει, πράγμα που ισχύει. Προσπαθούμε να στείλουμε ήχο στο Pi, όχι το αντίστροφο. Αφού γίνει σύζευξη, εκτελέστε αυτήν την εντολή στο παράθυρο τερματικού για να αποκαλύψετε τη διεύθυνση MAC bluetooth της συνδεδεμένης συσκευής σας:

sudo bluetoothctl

Βήμα 17:

Εικόνα
Εικόνα
Εικόνα
Εικόνα
Εικόνα
Εικόνα

Για να μπορέσει ο Darkice να χρησιμοποιήσει τη συσκευή bluetooth ως είσοδο ήχου PCM πρέπει να δημιουργήσουμε ένα αρχείο στο φάκελο "etc" που ονομάζεται "asound.conf" (etc/asound.conf). Κάντε κλικ στο επάνω βέλος στον διαχειριστή αρχείων μερικές φορές για να μεταβείτε στον ριζικό κατάλογο και, στη συνέχεια, κάντε διπλό κλικ στο φάκελο "κλπ" για να τον ανοίξετε. Κάντε κύλιση προς τα κάτω και κάντε δεξί κλικ σε έναν κενό χώρο και δημιουργήστε ένα κενό αρχείο που ονομάζεται "asound.conf" και αντιγράψτε και επικολλήστε τις παρακάτω γραμμές με τη διεύθυνση MAC της συσκευής σας, αντικαταστάθηκε φυσικά από τη δική μου και αποθηκεύστε.

pcm.phone {type plug slave.pcm {type bluealsa device "50: F0: D3: 7A: 94: C4" profile "a2dp"}}

Βήμα 18:

Εικόνα
Εικόνα
Εικόνα
Εικόνα
Εικόνα
Εικόνα

Τόσο τα ασύρματα WiFi όσο και τα Bluetooth στο Raspberry Pi βρίσκονται στο ίδιο τσιπ, οπότε αν μεγιστοποιήσετε το εύρος ζώνης και των δύο, ο ήχος bluetooth μπορεί να τραυλίζει ή να παγώνει. Κάποιοι το αποκαλούν σφάλμα και κάποιοι λένε ότι είναι απλώς ένας περιορισμός υλικού. Θα αλλάξουμε μια ρύθμιση που θα το διορθώσει. Το εύσημα για τη δημοσίευση αυτής της επιδιόρθωσης πηγαίνει στο "pelwell" στη διεύθυνση https://github.com/raspberrypi/linux/issues/1402 Εκτελέστε ξανά το sudo pcmanfm για να ανοίξετε τον διαχειριστή αρχείων και να περιηγηθείτε στο/lib/firmware/brcm. Κάντε διπλό κλικ στο αρχείο κειμένου "brcmfmac43430-sdio.txt" για να το ανοίξετε και προσθέστε αυτές τις γραμμές στο κάτω μέρος και αποθηκεύστε.

# Πειραματικές παράμετροι συνύπαρξης Bluetooth από Cypressbtc_mode = 1 btc_params8 = 0x4e20 btc_params1 = 0x7530

Βήμα 19:

Εικόνα
Εικόνα
Εικόνα
Εικόνα
Εικόνα
Εικόνα

Κάντε κλικ στο εικονίδιο του μενού GUI και επιλέξτε Τερματισμός λειτουργίας και επανεκκίνηση. Εάν ακολουθήσατε όλα αυτά τα βήματα με ακρίβεια, ο διακομιστής ήχου bluetooth θα ξεκινήσει αυτόματα οπουδήποτε από 30 δευτερόλεπτα έως ένα λεπτό μετά το κλικ στην επανεκκίνηση. ΠΡΙΝ μπορείτε να το προσθέσετε στο Sonos, πρέπει να συνδέσετε το bluetooth του τηλεφώνου σας στο Pi (απλώς πατώντας το στις ρυθμίσεις bluetooth του τηλεφώνου σας αφού έχει ήδη αντιστοιχιστεί) και να ξεκινήσετε την αναπαραγωγή ήχου κάποιου είδους και να αυξήσετε την ένταση. Θυμηθείτε ότι δεν θα ακούσετε κανέναν ήχο από το ηχείο του τηλεφώνου σας επειδή πιστεύει ότι είναι συνδεδεμένο με εξωτερικό ηχείο bluetooth. Ένας οπτικός τρόπος για να διαπιστώσετε εάν το Icecast λαμβάνει ήχο bluetooth από το Darkice είναι να ανοίξετε το https://192.168.86.107:8000 σε ένα πρόγραμμα περιήγησης ιστού με το IP του Pi σας να αντικατασταθεί από το δικό μου. Το Icecast εκτελείται πάντα, οπότε θα βλέπετε πάντα τη σελίδα κατάστασης, αλλά εάν το Darkice λαμβάνει επίσης ήχο bluetooth, θα δείτε επίσης το σημείο σύνδεσης και τον περιγραφέα ροής. Αποσυνδέστε το bluetooth και ανανεώστε τη σελίδα και θα κενώσει ξανά.

Βήμα 20:

Εικόνα
Εικόνα
Εικόνα
Εικόνα

Πρέπει να χρησιμοποιήσετε την εφαρμογή ελεγκτή επιφάνειας εργασίας Sonos για να προσθέσετε μια προσαρμοσμένη ροή στο Sonos. Κάντε κλικ στο Διαχείριση> Προσθήκη ραδιοφωνικού σταθμού και εισαγάγετε το url για τη ροή που στην περίπτωσή μου ήταν "https://192.168.86.107:8000/rapi.mp3". Εισαγάγετε επίσης ένα όνομα σταθμού και κάντε κλικ στο OK.

Βήμα 21:

Εικόνα
Εικόνα

Για να παίξετε τον προσαρμοσμένο ραδιοφωνικό σταθμό που μόλις προσθέσαμε, επιλέξτε "Radio by Tunein" και στη συνέχεια "My Radio Stations". ΑΡΙΣΤΕΡΟ ΔΙΠΛΟ κλικ για αναπαραγωγή ή ΔΕΞΙ κλικ για επεξεργασία ή προσθήκη του σταθμού στα αγαπημένα σας Sonos.

Βήμα 22:

Εικόνα
Εικόνα
Εικόνα
Εικόνα

Αφού προσθέσετε τον προσαρμοσμένο ραδιοφωνικό σταθμό, θα είναι άμεσα διαθέσιμος στην εφαρμογή Sonos. Ανοίξτε την εφαρμογή, πατήστε "My Sonos" στο κάτω μέρος, μετακινηθείτε προς τα κάτω στους "Σταθμούς" και πατήστε "Εμφάνιση όλων". Κάντε κύλιση προς τα κάτω μέχρι να δείτε τον πρόσφατα δημιουργημένο σταθμό σας. Αγγίξτε το και θα αρχίσει να παίζει στα επιλεγμένα δωμάτια σας. Θυμηθείτε, ̶ αν αποσυνδέσετε σας Bluetooth από τη ΡΙ τότε η Icecast Stream θα ̶d̶i̶s̶c̶o̶n̶n̶e̶c̶t̶.̶ Αν αλλάξετε ήχου εφαρμογές μπορεί να ̶d̶i̶s̶c̶o̶n̶n̶e̶c̶t̶.̶ να επαναλάβει ακρόαση στη Sonos εσείς θα χρειαστεί η επανεκκίνηση αναπαραγωγή ήχου στο τηλέφωνο και πάλι και Push Play σε T̶h̶e̶ ̶S̶o̶n̶o̶s̶ ̶a̶p̶p̶ ̶a̶g̶a̶i̶n̶.̶ <--- Αυτό διορθώθηκε. δείτε την ενημέρωση παρακάτω. Καλή επιτυχία και ευχαριστώ που διαβάσατε!

Βήμα 23: ΕΝΗΜΕΡΩΣΗ: ΣΥΝΔΕΣΗ ΣΤΑΘΕΡΗΣ ΚΡΑΤΗΣΗΣ ΔΙΑΤΗΡΗΣΗΣ ΟΤΑΝ ΤΟ BLUETOOTH ΑΠΟΣΥΝΔΕΘΕΙ

Έτσι, η ροή bluetooth λειτουργούσε άψογα με αυτήν τη ρύθμιση ΕΚΤΟΣ Ο Sonos αποσυνδέονταν από τον διακομιστή Icecast όποτε ο Darkice έχανε ήχο bluetooth, όπως όταν αλλάζατε εφαρμογές ήχου ή απλώς αποσυνδέατε το bluetooth που ήταν πόνος γιατί θα έπρεπε να λάβετε ξανά ροή ήχου bluetooth πριν θα μπορούσατε ακόμη και να πατήσετε το κουμπί αναπαραγωγής στην εφαρμογή Sonos. Αυτό έγινε τεράστιο πρόβλημα όταν προσπαθούσα να μεταδώσω ήχο στο Sonos από την εφαρμογή WatchESPN του τηλεφώνου μου, η οποία είναι πλήρους οθόνης μόνο, ώστε να μην μπορώ να πατήσω το κουμπί αναπαραγωγής στην εφαρμογή Sonos μετά την εκκίνηση του ήχου bluetooth, αλλά όταν έκλεισα την εφαρμογή WatchESPN Η ροή Sonos δεν θα ξεκινούσε αν δεν είχατε ξεκινήσει πρώτα τον ήχο bluetooth! Ουφ! Έβγαλα τα μαλλιά μου προσπαθώντας να βρω μια κομψή λύση για αυτό. Δοκίμασα έναν διαφορετικό κωδικοποιητή mp3 που ονομάζεται liquidsoap που έχει την επιλογή να στέλνει αθόρυβο ήχο όταν χάνει τη σύνδεση, αλλά δεν κατάφερα να λειτουργήσει με το bluealsa. Προσπάθησα να συνδυάσω τη ροή bluealsa με μια δευτερεύουσα εικονική κάρτα ήχου alsa χρησιμοποιώντας dsnoop και asym για να προσπαθήσω να εξαπατήσω το Icecast να σκεφτεί ότι υπήρχε ακόμα ένα ηχητικό σήμα, αλλά η alsa πραγματικά δεν σας επιτρέπει να χειρίζεστε πολύ τον ήχο bluetooth. Στη συνέχεια άρχισα να ερευνώ χρησιμοποιώντας ένα εφεδρικό σημείο σύνδεσης χρησιμοποιώντας ένα σιωπηλό αρχείο mp3 στο Icecast, αλλά ο Sonos θα έβλεπε το όνομα του σημείου σύνδεσης να αλλάζει και να αποσυνδέεται. Χρησιμοποίησα ένα αρχείο test.mp3 και το χαρακτήρισα κατά λάθος ως το κύριο όνομα σημείου τοποθέτησης μία φορά αντί για το εναλλακτικό και παρατήρησα ότι ο Sonos απλώς άλλαξε να παίζει αυτό το αρχείο όταν αποσυνδέθηκε από τη ροή bluetooth "rapi.mp3". Εύρηκα! Δεν θα επέστρεφε αυτόματα στη ροή bluetooth όταν έγινε ξανά διαθέσιμο, έτσι με έκανε να σκεφτώ γιατί να μην χρησιμοποιήσω το ίδιο όνομα σημείου σύνδεσης; Έτσι, αυτό που πρέπει να κάνετε είναι να δημιουργήσετε ένα σιωπηλό αρχείο mp3 και να του δώσετε το ίδιο όνομα με τη ροή Darkice mp3, "rapi.mp3" και να το κωδικοποιήσετε ως κύριο σημείο σύνδεσης στο αρχείο διαμόρφωσης Icecast2. Αυτό που συμβαίνει είναι ότι κάθε φορά που ο Sonos χάνει τη σύνδεση με τη ροή Darkice/bluetooth rapi.mp3, αρχίζει να περιτυλίγει το άλλο σιωπηλό αρχείο rapi.mp3 έως ότου η ροή bluetooth επανέλθει στο διαδίκτυο. Με αυτόν τον τρόπο δεν χρειάζεται να έχετε τον ήχο bluetooth πριν πατήσετε το play στο Sonos. Δείτε πώς να το κάνετε…

Βήμα 24:

Εικόνα
Εικόνα
Εικόνα
Εικόνα
Εικόνα
Εικόνα

Πρώτα πρέπει να εγκαταστήσουμε το ffmpeg για να δημιουργήσουμε ένα σιωπηλό αρχείο mp3. Θα μπορούσατε να ηχογραφήσετε ένα σιωπηλό αρχείο.wav από μια εξωτερική κάρτα ήχου και να μετατρέψετε σε mp3 χρησιμοποιώντας lame, αλλά επειδή δεν έχω εξωτερική είσοδο κάρτας ήχου για αυτό το έργο, η χρήση του ffmpeg ήταν η ευκολότερη λύση. Ανοίξτε το παράθυρο του τερματικού και πληκτρολογήστε "sudo apt-get install ffmpeg" και πατήστε Enter:

sudo apt-get install ffmpeg

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

sudo ffmpeg -f lavfi -i anullsrc = channel_layout = stereo: sample_rate = 44100 -b: a 160k -t 1 /usr/share/icecast2/web/rapi.mp3

Ανοίξτε τη Διαχείριση αρχείων ως root χρησιμοποιώντας το "sudo pcmanfm" και περιηγηθείτε στο "/etc/icecast2". Κάντε δεξί κλικ στο "icecast.xml" και ανοίξτε χρησιμοποιώντας το Leafpad και επικολλήστε αυτές τις γραμμές ακριβώς κάτω από τη γραμμή "":

/rapi.mp3

Αποθηκεύστε και επανεκκινήστε και τώρα θα πρέπει να μπορείτε να ξεκινήσετε τον προσαρμοσμένο σταθμό bluetooth Sonos πριν καν συνδέσετε το τηλέφωνό σας με bluetooth!

Βήμα 25: Προσθήκη

Προσθήκη
Προσθήκη
Προσθήκη
Προσθήκη
Προσθήκη
Προσθήκη
Προσθήκη
Προσθήκη

Iθελα το τροφοδοτικό Raspberry Pi και 110V AC σε 5V DC να είναι αυτόνομο σε μία θήκη, ώστε να μπορώ να το μετακινώ εύκολα στο σπίτι, αλλά με έκπληξη διαπίστωσα ότι δεν υπάρχει τέτοια θήκη. Μπορεί να εκτυπώσω 3D αργότερα, αλλά εν τω μεταξύ άλλαξα τη χρήση μιας διαφορετικής θήκης Raspberry Pi και βρήκα έναν λεπτό φορτιστή τοίχου USB και κοντό καλώδιο. Ο φορτιστής είχε επίστρωση από καουτσούκ στην οποία δεν μπορούσα να κολλήσω με καθαρή ταινία VHB, αλλά αποδείχθηκε ότι ήταν ένα αυτοκόλλητο που ήταν εύκολα αφαιρούμενο. Ωστόσο, αυτό δημιούργησε μια μικρή εσοχή που έκανε την ταινία VHB πολύ λεπτή, οπότε χρησιμοποίησα velcro.

Συνιστάται: