Sommario:

Riproduci Bluetooth su Sonos utilizzando Raspberry Pi: 25 passaggi
Riproduci Bluetooth su Sonos utilizzando Raspberry Pi: 25 passaggi

Video: Riproduci Bluetooth su Sonos utilizzando Raspberry Pi: 25 passaggi

Video: Riproduci Bluetooth su Sonos utilizzando Raspberry Pi: 25 passaggi
Video: Come non pagare l'acqua. #shorts #bollette 2024, Novembre
Anonim
Image
Image
Riproduci Bluetooth su Sonos utilizzando Raspberry Pi
Riproduci Bluetooth su Sonos utilizzando Raspberry Pi

In precedenza ho scritto un'istruzione che descrive come aggiungere un line-in aux o analogico a Sonos utilizzando un Raspberry Pi. Un lettore ha chiesto se fosse possibile trasmettere l'audio bluetooth dal suo telefono a Sonos. È facile farlo utilizzando un dongle bluetooth collegato al line-in del più costoso Sonos Play:5 o Sonos CONNECT; tuttavia, perdi fedeltà convertendo il bluetooth (digitale) in analogico e poi di nuovo in digitale e se possiedi solo uno degli altoparlanti Sonos meno costosi, questa non è un'opzione. Questa istruzione descrive come configurare un Raspberry Pi per trasmettere l'audio bluetooth a qualsiasi altoparlante Sonos.

NOTA: tieni presente che trasmetteremo l'audio bluetooth al Raspberry Pi e lo convertiremo in un flusso mp3 prima di inviarlo a Sonos, quindi ci sarà un ritardo di un paio di secondi. Se lo stai usando per guardare un video, l'audio non sarà sincronizzato.

Passo 1:

Di cosa avrai bisogno:

Raspberry PI 3 Modello B (è disponibile un modello B+ più recente e più veloce, ma sono rimasto bloccato con il modello B normale perché ho letto di alcuni problemi con il blocco B+ e anche le radio wifi e bluetooth del B+ hanno una schermatura metallica intorno a loro per rendere sono conformi a FCC se installati all'interno di un altro dispositivo, ma volevo la massima portata del bluetooth e temevo che la schermatura potesse ostacolarlo)

Un computer desktop o laptop con un lettore di schede microSD

Monitor o TV con ingresso HDMI (solo per la configurazione iniziale)

Tastiera e mouse USB o bluetooth (solo per la configurazione iniziale)

Custodia in plastica Raspberry Pi (sto usando una custodia in plastica per questo progetto per massimizzare la portata del bluetooth)

Scheda di memoria flash Kingston da 8 GB microSDHC classe 4

Alimentazione 5V

Passo 2:

Immagine
Immagine
Immagine
Immagine

Vai su https://www.raspberrypi.org/downloads/raspbian/ sul tuo normale computer e scarica "RASPBIAN STRETCH WITH DESKTOP".

Vai anche su https://etcher.io/ e scarica Etcher e installalo.

NOTA: nella mia precedente istruzione ho descritto come scaricare NOOBS per installare Raspbian; tuttavia, questo metodo è un po' più veloce. Va bene comunque.

Passaggio 3:

Immagine
Immagine
Immagine
Immagine

Esegui Etcher e fai clic su Seleziona immagine e cerca il file zip. Fare clic su Seleziona unità e cercare la scheda microSD, quindi fare clic su Flash!

Passaggio 4:

Immagine
Immagine
Immagine
Immagine
Immagine
Immagine
Immagine
Immagine

NOTA: alcuni di questi passaggi successivi sono simili al mio precedente tutorial, quindi salta avanti se hai già la password di root, l'IP statico e la configurazione VNC.

Inserisci la scheda microSD nello slot per schede SD sul lato inferiore del Raspberry Pi. Collega un cavo HDMI dal Raspberry Pi al monitor o alla TV. Collega la tastiera USB, il mouse e infine il cavo di alimentazione Micro USB. Dopo l'avvio apparirà il desktop Raspbian. Ti guiderà attraverso diverse impostazioni, ma ti consiglio di NON controllare gli aggiornamenti. Fare clic su Salta. Continuavo a ricevere un errore "blueman.bluez.errors. DBusFailedError: protocollo non disponibile" quando cercavo di accoppiare il bluetooth dopo che tutti gli aggiornamenti erano stati installati, quindi ho dovuto ricominciare tutto da capo.

SUGGERIMENTO: se non si desidera l'ora militare, fare clic con il pulsante destro del mouse sull'orologio e selezionare Impostazioni orologio digitale e modificare il formato dell'orologio da %R a %r

Passaggio 5:

Immagine
Immagine
Immagine
Immagine
Immagine
Immagine

Successivamente abiliteremo il server VNC integrato. Ciò rende le cose molto più semplici in quanto puoi semplicemente copiare e incollare i comandi tramite VNC anziché digitarli. Seleziona Menu GUI > Preferenze > Configurazione Raspberry Pi > Interfacce. Fare clic su Abilitato accanto a VNC e quindi su OK. Dopo pochi secondi apparirà un'icona VNC sulla barra delle applicazioni. Cliccalo e poi l'icona del menu in alto a destra (riquadro con 3 linee orizzontali) e poi Opzioni. Nelle opzioni di sicurezza imposta la crittografia su "preferisci disattivata" e l'autenticazione su "password VNC", quindi fai clic su Applica. Apparirà una finestra di password. Immettere "raspberry" (senza virgolette) per la password in ciascuna casella e fare clic su OK.

Passaggio 6:

Immagine
Immagine
Immagine
Immagine
Immagine
Immagine

Prima di andare oltre, dobbiamo assegnare un indirizzo IP statico. Se l'indirizzo IP del tuo Pi viene assegnato casualmente dal server DHCP del tuo router, l'indirizzo IP potrebbe cambiare in seguito e non saresti in grado di connetterti tramite VNC (o Sonos per quella materia). Fare clic con il pulsante destro del mouse sull'icona delle connessioni di rete sulla barra delle applicazioni (la piccola icona con la freccia su e giù) e selezionare "Impostazioni di rete wireless e cablata". Fare clic con il tasto sinistro del mouse sulla casella in alto a destra e selezionare "eth0" per configurare la connessione ethernet o "wlan0" per il wireless. Consiglierei di assegnare un IP statico solo all'uno o all'altro. Ho avuto un problema quando ho configurato per la prima volta il mio Pi, dove ho assegnato lo stesso indirizzo IP statico a entrambe le connessioni e il wireless del mio Pi è bloccato e non sono riuscito a farlo funzionare correttamente, quindi ho dovuto ricominciare da capo l'installazione del sistema operativo. Ad ogni modo, inserisci l'indirizzo IP che desideri nel campo Indirizzo IP e inserisci l'indirizzo IP del tuo router sia nel campo Router che in Server DNS. Fare clic su Applica e chiudi.

NOTA: potrebbe essere più semplice assegnare un indirizzo IP statico utilizzando la funzione di prenotazione IP DHCP del router, se presente. Potrebbe essere necessario l'indirizzo MAC del Pi o potrebbe essere visualizzato in un elenco di dispositivi collegati nella pagina di amministrazione del router. Se hai bisogno dell'indirizzo MAC, digita il comando "ifconfig eth0" nella finestra del terminale per ethernet o "ifconfig wlan0" per WiFi. È interessante notare che l'indirizzo MAC WiFi verrà visualizzato sulla riga che inizia con "ether"

Passaggio 7:

Immagine
Immagine
Immagine
Immagine
Immagine
Immagine

Quindi dobbiamo impostare la risoluzione dello schermo predefinita. Questo può sembrare sciocco visto che siamo già collegati a un monitor, ma in seguito quando ti connetti tramite VNC senza un monitor collegato (senza testa, come si suol dire) tornerà alla risoluzione 640x480 predefinita del Pi che è uno schermo molto piccolo per lavorare con! Seleziona Menu GUI > Preferenze > Configurazione Raspberry Pi > Imposta risoluzione. Impostalo su 1280x720 o superiore e fai clic su OK e Sì per riavviare.

Passaggio 8:

Immagine
Immagine
Immagine
Immagine
Immagine
Immagine

Potresti voler cambiare il nome del tuo Pi, specialmente se ne hai più di uno sulla tua rete. Ho rinominato il mio "BluetoothPi" per renderlo facilmente identificabile. Ti chiederà di riavviare dopo averlo rinominato.

Passaggio 9:

Immagine
Immagine
Immagine
Immagine
Immagine
Immagine
Immagine
Immagine

A questo punto potresti voler iniziare a usare VNC per controllare il Pi. Apri nuovamente il pannello di controllo VNC sul desktop Raspbian e cerca l'indirizzo IP in "Connettività". Installa ed esegui un visualizzatore VNC sul tuo normale computer e usa quell'indirizzo IP per connetterti e inserisci "raspberry" (senza le virgolette) come password. Ho usato TightVNC per Windows. Dopo esserti connesso, puoi salvare la connessione VNC di Pi come collegamento sul desktop per connetterti rapidamente in futuro ignorando la schermata di accesso. Riceverai un avviso sul salvataggio della password all'interno del collegamento. Per copiare e incollare nella finestra del terminale del Pi, seleziona o evidenzia il testo o i comandi sul tuo normale computer, premi Ctrl-C (premi letteralmente Ctrl e C sulla tastiera contemporaneamente) o fai clic con il pulsante destro del mouse e seleziona "Copia ", quindi attiva la finestra del visualizzatore VNC di Pi e fai clic con il pulsante destro del mouse all'interno della finestra del terminale a destra sul cursore e seleziona Incolla.

Passaggio 10:

Immagine
Immagine
Immagine
Immagine

Successivamente installeremo due programmi, Darkice e Icecast2. Darkice è ciò che codificherà la nostra sorgente audio bluetooth in un flusso mp3 e Icecast2 è ciò che lo servirà a Sonos come flusso Shoutcast. Copia e incolla ciascuna di queste righe nella finestra del terminale una alla volta, seguita ogni volta dal tasto Invio:

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

Passaggio 11:

Immagine
Immagine
Immagine
Immagine
Immagine
Immagine
Immagine
Immagine

Ora per installare Icecast2. Digita "sudo apt-get install icecast2" seguito da invio. Dopo l'installazione apparirà una finestra che chiede se si desidera configurare Icecast2. Premi il tasto freccia sinistra e invio per selezionare Sì. Nella seconda schermata premi il tasto freccia giù e invio per selezionare OK per utilizzare il nome host predefinito "localhost". Nelle tre schermate successive premi la freccia verso il basso e il tasto Invio per accettare di utilizzare "hackme" come sorgente predefinita, inoltro e password di amministrazione. Anche se accettiamo tutte le impostazioni predefinite, questi passaggi devono essere completati per attivare il server Icecast2.

sudo apt-get install icecast2

Passaggio 12:

Immagine
Immagine
Immagine
Immagine
Immagine
Immagine

Quindi dobbiamo eseguire il file manager della GUI come utente root. Per farlo, seleziona Menu GUI > Esegui. Digita "sudo pcmanfm" e premi invio. Questo aprirà il file manager (l'equivalente di file explorer per noi utenti Windows) nella directory home (/home/pi) e vedrai il file di installazione di darkice rimasto che abbiamo scaricato in precedenza. Fare clic con il pulsante destro del mouse in uno spazio vuoto e selezionare Crea nuovo e poi File vuoto. Chiamalo "darkice.cfg" e fai clic su OK. Quindi fai clic con il pulsante destro del mouse sul file appena creato e scegli di aprirlo con Leafpad (l'equivalente del blocco note di Windows). Copia le righe sottostanti e incollale in Leafpad, quindi fai clic su File e Salva. Noterai che la riga "qualità" è commentata con un # davanti. Viene utilizzato solo se si imposta "bitrateMode = vbr" (bitrate variabile). Non è possibile impostare un valore di qualità quando si utilizza cbr (bitrate costante) o il flusso balbetterà e salterà. Al contrario, se decidi di utilizzare vbr, devi commentare la riga "bitrate = 160" e decommentare la riga "qualità".

NOTA: il bitrate mp3 di massima qualità che puoi avere è 320 kbps; tuttavia, entrambe le radio WiFi e Bluetooth sul Raspberry Pi si trovano sullo stesso chip, quindi se si massimizza la larghezza di banda di entrambe, l'audio bluetooth può balbettare o bloccarsi. In seguito cambieremo un'impostazione che risolverà questo problema, tuttavia limita in qualche modo la larghezza di banda WiFi, quindi ho ridotto il bitrate audio per questo progetto a 160 kbps poiché ho intenzione di mantenerlo esclusivamente su WiFi. Se stai usando ethernet non è un problema e puoi tranquillamente impostare il bitrate a 320 kbps.

[general]duration = 0 # durata in s, 0 per sempre bufferSecs = 1 # buffer, in secondi reconnect = yes # reconnect se disconnesso

[ingresso]

device = phone # nome del dispositivo bluetooth sampleRate = 44100 # sample rate 11025, 22050 o 44100 bitsPerSample = 16 # bit canale = 2 # 2 = stereo

[icecast2-0]

bitrateMode = cbr # bit rate costante (costante 'cbr', media 'abr') #qualità = 1.0 # 1.0 è la migliore qualità (usare solo con vbr) formato = formato mp3 #. Scegli 'vorbis' per OGG Vorbis bitrate = 160 # bitrate server = localhost # o porta IP = 8000 # porta per IceCast2 password di accesso = hackme # password sorgente per il server IceCast2 mountPoint = rapi.mp3 # punto di montaggio sul server IceCast2.mp3 o.ogg name = BluetoothPi

Passaggio 13:

Immagine
Immagine
Immagine
Immagine
Immagine
Immagine
Immagine
Immagine

Quindi dobbiamo seguire gli stessi passaggi di prima per creare un file vuoto chiamato "darkice.sh". Un file.sh è l'equivalente di un file.bat o batch per DOS o Windows. Apri utilizzando Leafpad, copia e incolla le righe sottostanti e salva. Se hai seguito la mia precedente istruzione, noterai che la linea che inizia Darkice sembra leggermente diversa. Ho dovuto incorporare il codice in un loop perché ogni volta che Darkice perde il segnale audio bluetooth smetterà di funzionare e non si riavvierà automaticamente anche quando l'audio viene riavviato. Ho studiato molto questo problema e mentre ci sono modi complicati per eseguire automaticamente uno script ogni volta che un dispositivo bluetooth è connesso, Darkice a volte si ferma ogni volta che il segnale audio viene perso anche se il dispositivo bluetooth è ancora connesso (ad esempio se chiudi YouTube app sul tuo telefono), quindi questo è il modo più semplice e affidabile per assicurarti che Darkice sia in esecuzione ogni volta che è presente l'audio bluetooth. Se Darkice è già in esecuzione, il comando viene ignorato.

#!/bin/bashwhile:; do sudo /usr/bin/darkice -c /home/pi/darkice.cfg; dormire 5; fatto

Passaggio 14:

Immagine
Immagine

Successivamente dobbiamo eseguire un comando per rendere eseguibile il file darkice.sh. Apri la finestra del terminale e digita "sudo chmod 777 /home/pi/darkice.sh" e premi invio. Ora è il momento di avviare il servizio server Icecast2. Digita "sudo service icecast2 start" e premi invio.

sudo chmod 777 /home/pi/darkice.sh

sudo service icecast2 start

Passaggio 15:

Immagine
Immagine
Immagine
Immagine
Immagine
Immagine
Immagine
Immagine

Successivamente dobbiamo dire a Darkice di avviarsi automaticamente ogni volta che il Pi viene avviato (il server Icecast2 viene eseguito come servizio e si avvia già automaticamente dopo l'avvio). Per prima cosa dobbiamo selezionare quale editor di testo utilizzare. Nella finestra del terminale digita "select-editor" e premi invio. Digita "2" per selezionare l'editor nano e premi invio. Quindi digita "crontab -e" e inserisci. Quindi tieni premuto il tasto Freccia giù per scorrere fino in fondo al file di testo che appare e aggiungi questa riga "@reboot sleep 10 && sudo /home/pi/darkice.sh". Quindi premi Ctrl-X per uscire e verrà richiesto "Salva buffer modificato?". Premi il tasto Y per Sì, quindi Invio per confermare il nome del file generato automaticamente.

select-editor

crontab -e

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

Passaggio 16:

Immagine
Immagine
Immagine
Immagine
Immagine
Immagine

Associa il tuo telefono al Raspberry Pi utilizzando l'icona bluetooth sul desktop. È importante mettere il bluetooth del Pi in modalità di rilevamento e quindi associarlo dal telefono. Se metti il telefono in modalità di rilevamento e provi ad accoppiarlo DAL Pi, potrebbe connettersi ma darti un errore dicendo che non ci sono servizi sul tuo telefono che il Pi può usare, il che è vero. Stiamo cercando di inviare l'audio al Pi, non il contrario. Dopo che è stato accoppiato, esegui questo comando nella finestra del terminale per rivelare l'indirizzo MAC bluetooth del tuo dispositivo connesso:

sudo bluetoothctl

Passaggio 17:

Immagine
Immagine
Immagine
Immagine
Immagine
Immagine

Affinché Darkice possa utilizzare il dispositivo bluetooth come ingresso audio PCM dobbiamo creare un file nella cartella "etc" chiamato "asound.conf" (etc/asound.conf). Fare clic sulla freccia su nel file manager un paio di volte per accedere alla directory principale, quindi fare doppio clic sulla cartella "etc" per aprirla. Scorri verso il basso e fai clic con il pulsante destro del mouse in uno spazio vuoto e crea un file vuoto chiamato "asound.conf" e copia e incolla le righe sottostanti con l'indirizzo MAC del tuo dispositivo sostituito ovviamente con il mio e salva.

pcm.phone { digitare plug slave.pcm { digitare dispositivo bluealsa "50:F0:D3:7A:94:C4" profilo "a2dp" } }

Passaggio 18:

Immagine
Immagine
Immagine
Immagine
Immagine
Immagine

Sia la radio WiFi che quella Bluetooth sul Raspberry Pi sono sullo stesso chip, quindi se massimizzi la larghezza di banda di entrambe, l'audio bluetooth può balbettare o bloccarsi. Alcuni lo chiamano un bug e alcuni dicono che è solo una limitazione hardware. Modificheremo un'impostazione che risolverà questo problema. Il merito per la pubblicazione di questa correzione va a "pelwell" su https://github.com/raspberrypi/linux/issues/1402 Esegui di nuovo sudo pcmanfm per aprire il file manager e accedere a /lib/firmware/brcm. Fare doppio clic sul file di testo "brcmfmac43430-sdio.txt" per aprirlo e aggiungere queste righe in fondo e salvare.

# Parametri sperimentali di coesistenza Bluetooth da Cypressbtc_mode=1 btc_params8=0x4e20 btc_params1=0x7530

Passaggio 19:

Immagine
Immagine
Immagine
Immagine
Immagine
Immagine

Fare clic sull'icona del menu della GUI e selezionare Spegni e riavvia. Se hai seguito esattamente tutti questi passaggi, il tuo server audio bluetooth si avvierà automaticamente da 30 secondi a un minuto dopo aver fatto clic su Riavvia. PRIMA di poterlo aggiungere a Sonos è necessario connettere il bluetooth del telefono al Pi (basta toccarlo nelle impostazioni bluetooth del telefono poiché è già accoppiato) e iniziare a riprodurre audio di qualche tipo e alzare il volume. Ricorda che non sentirai alcun audio proveniente dall'altoparlante del telefono perché pensa di essere collegato a un altoparlante bluetooth esterno. Un modo visivo per sapere se Icecast sta ricevendo l'audio bluetooth da Darkice è aprire https://192.168.86.107:8000 in un browser web con l'IP del tuo Pi sostituito dal mio. Icecast è sempre in esecuzione, quindi vedrai sempre la pagina di stato, ma se Darkice riceve anche l'audio bluetooth, vedrai anche il punto di montaggio e il descrittore del flusso. Disconnetti il tuo bluetooth e aggiorna la pagina e diventerà di nuovo vuota.

Passaggio 20:

Immagine
Immagine
Immagine
Immagine

È necessario utilizzare l'app controller desktop Sonos per aggiungere uno stream personalizzato a Sonos. Fare clic su Gestisci > Aggiungi stazione radio e inserire l'URL per lo stream che nel mio caso era "https://192.168.86.107:8000/rapi.mp3". Immettere anche un nome stazione e fare clic su OK.

Passo 21:

Immagine
Immagine

Per riprodurre la stazione radio personalizzata che abbiamo appena aggiunto, seleziona "Radio by Tunein" e poi "My Radio Stations". Doppio clic SINISTRO per riprodurre o clic DESTRO per modificare o aggiungere la stazione ai preferiti Sonos.

Passaggio 22:

Immagine
Immagine
Immagine
Immagine

Dopo aver aggiunto la stazione radio personalizzata, sarà immediatamente disponibile nell'app Sonos. Apri l'app, tocca "Il mio Sonos" in basso, scorri verso il basso fino a "Stazioni" e tocca "Vedi tutto". Scorri verso il basso finché non vedi la tua stazione appena creata. Toccalo e inizierà a giocare nelle stanze selezionate. C'é, ̶ si scollega il Bluetooth dal PI allora il IceCast Stream ̶d̶i̶s̶c̶o̶n̶n̶e̶c̶t̶.̶ se si passa audio Applicazioni esso può ̶d̶i̶s̶c̶o̶n̶n̶e̶c̶t̶.̶ Per riprendere l'ascolto su Sonos --hai deve riavviare riprodurre file audio sul vostro telefono e spingere Play On t̶h̶e̶ ̶S̶o̶n̶o̶s̶ ̶a̶p̶p̶ ̶a̶g̶a̶i̶n̶.̶ <---Questo è stato corretto; vedi aggiornamento sotto. Buona fortuna e grazie per la lettura!

Passaggio 23: AGGIORNAMENTO: FISSO MANTENERE LO STREAM CONNESSO QUANDO BLUETOOTH SI DISCONNES

Quindi lo streaming bluetooth funzionava perfettamente con questa configurazione TRANNE Sonos si disconnetteva dal server Icecast ogni volta che Darkice perdeva l'audio bluetooth, ad esempio quando si cambiava app audio o semplicemente si disconnetteva il bluetooth, il che era un problema perché avresti dovuto ottenere di nuovo lo streaming audio bluetooth prima potresti anche premere il pulsante di riproduzione nell'app Sonos. Questo è diventato un grosso problema quando stavo cercando di trasmettere l'audio a Sonos dall'app WatchESPN del mio telefono che è solo a schermo intero, quindi non potevo premere il pulsante di riproduzione nell'app Sonos dopo aver avviato l'audio bluetooth, ma quando ho chiuso l'app WatchESPN il Lo streaming Sonos non si avviava se prima non si avviava l'audio bluetooth! uff! Mi sono strappato i capelli cercando di trovare una soluzione elegante per questo. Ho provato un codificatore mp3 diverso chiamato liquidsoap che ha l'opzione di inviare audio silenzioso quando perde la connessione ma non sono riuscito a farlo funzionare con bluealsa. Ho provato a mescolare il flusso bluealsa con un flusso alsa secondario della scheda audio fittizia usando dsnoop e asym per cercare di indurre Icecast a pensare che fosse ancora presente un segnale audio, ma alsa in realtà non ti consente di manipolare molto l'audio bluetooth. Ho quindi iniziato a indagare utilizzando un punto di montaggio di fallback utilizzando un file mp3 silenzioso in Icecast, ma Sonos avrebbe visto il nome del punto di montaggio cambiare e disconnettersi. Stavo usando un file test.mp3 e l'ho designato accidentalmente come nome del punto di montaggio principale una volta invece di quello di fallback e ho notato che Sonos è semplicemente passato alla riproduzione di quel file quando è stato disconnesso dal flusso bluetooth "rapi.mp3". Eureka! Non tornava automaticamente al flusso bluetooth quando diventava di nuovo disponibile, quindi questo mi ha portato a pensare perché non usare semplicemente lo stesso nome del punto di montaggio? Quindi quello che devi fare è creare un file mp3 silenzioso e dargli lo stesso nome del flusso mp3 di Darkice, "rapi.mp3", e codificarlo come punto di montaggio principale nel file di configurazione di Icecast2. Quello che succede è che ogni volta che Sonos perde la connessione al flusso Darkice/bluetooth rapi.mp3 inizia a riprodurre in loop l'altro file silenzioso rapi.mp3 fino a quando il flusso bluetooth non torna online. In questo modo non è necessario attivare l'audio bluetooth prima di avviare la riproduzione in Sonos. Ecco come farlo…

Passaggio 24:

Immagine
Immagine
Immagine
Immagine
Immagine
Immagine

Per prima cosa dobbiamo installare ffmpeg per creare un file mp3 silenzioso. Potresti registrare un file.wav silenzioso da una scheda audio esterna e convertirlo in mp3 usando lame ma poiché non ho un ingresso per scheda audio esterna per questo progetto, usare ffmpeg è stata la soluzione più semplice. Apri la finestra del terminale e digita "sudo apt-get install ffmpeg" e premi Invio:

sudo apt-get install ffmpeg

Dopo l'installazione, copia e incolla questa lunga riga per codificare un file mp3 silenzioso che dura solo un secondo:

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

Apri il File Manager come root usando "sudo pcmanfm" e vai a "/etc/icecast2". Fare clic con il pulsante destro del mouse su "icecast.xml" e aprire utilizzando Leafpad e incollare queste righe appena sotto la riga "" in alto:

/rapi.mp3

Salva e riavvia e ora dovresti essere in grado di avviare la tua stazione bluetooth Sonos personalizzata prima ancora di aver collegato il telefono al bluetooth!

Passo 25: Addendum

Addendum
Addendum
Addendum
Addendum
Addendum
Addendum
Addendum
Addendum

Volevo che il Raspberry Pi e l'alimentatore da 110 V CA a 5 V CC fossero autonomi in un caso in modo da poterlo spostare facilmente in casa, ma sono rimasto sorpreso di scoprire che un caso del genere non esiste. Potrei stamparne uno in 3D in un secondo momento, ma nel frattempo sono passato a utilizzare una custodia Raspberry Pi diversa e ho trovato un sottile caricatore da parete USB e un cavo corto. Il caricabatterie aveva un rivestimento gommato a cui non riuscivo a far aderire un nastro VHB trasparente, ma si è scoperto che era un adesivo facilmente rimovibile; tuttavia, ciò ha creato un piccolo incavo che ha reso il nastro VHB troppo sottile, quindi ho usato il velcro.

Consigliato: