Raspberry Pi trådlös Bluetooth Audio FM radiosändare (4 / 5 steg)
Steg 4: Skript
Skapa följande skript
sudo nano /usr/lib/udev/bluetooth
Skriv allt detta in i tomma redaktör och spara
Notera och justera radiofrekvensen och volym till dina önskemål
#! / bin/bash
AUDIOSINK = "alsa_output.platform-bcm2835_AUD0.0.analog-stereo"
ACTION = $(expr "$ACTION": "\([a-zA-Z]\+\).*")
ECHO "köra bluetooth script... | $ACTION| ">> /var/log/bluetooth_dev
om ["$ACTION" = "Lägg till"]
sedan
# Inaktivera BT Upptäck läge innan du ansluter befintlig BT enhet till audio
hciconfig hci0 noscan
# Inaktivera BT auto ansluta om du fortfarande kör
sudo killall bluetooth-auto
# ställa in ljudet till HDMI-
amixer avskiljs numid = 3 2
# Ställ in volymnivån till 100 procent
amixer ange Master 100%
# Ställ in handfat volym till 125%
pacmd set-sink-volym 0 0x12500
för dev i $(hitta /sys/devices/virtual/input / - namn input *)
göra
om [-f "$dev/namn"]
sedan
Mac = $(cat "$dev/name")
# Lägga till mac adressen till listan över betrodda adresser
TRUST = $(grep "$mac" /usr/lib/udev/bluetooth-trust)
om [- z "$TRUST"]
sedan
ECHO "Att lägga till $mac till betrodda adresser" >> /var/log/bluetooth_dev
ECHO $mac >> /usr/lib/udev/bluetooth-trust
Fi
mac_underscore = $(cat "$dev/name" | sed 's/:/_/g')
bluez_dev = bluez_source. $mac_underscore
# Set källvolymen till 125%
pacmd set-källa-volym $bluez_dev 0x12500
sova 1
CONFIRM ='sudo -u pi pactl lista kort | grep $bluez_dev "
om [! - z "$CONFIRM"]
sedan
ECHO "Ange bluez_source: $bluez_dev" >> /var/log/bluetooth_dev
ECHO pactl last-modul modul-loopback källa = $bluez_dev diskbänk = $AUDIOSINK ränta = 44100 adjust_time = 0 >> /var/log/bluetooth_dev
sudo -u pi pactl last-modul modul-loopback källa = $bluez_dev diskbänk = $AUDIOSINK ränta = 44100 adjust_time = 0 >> /var/log/bluetooth_dev
ECHO "Döda alla befintliga anslutningar" >> /var/log/bluetooth_dev
sudo killall pifm >> /var/log/bluetooth_dev
ECHO "Ansluta bluetooth utdata till radio ingång, spelar på 87,7" >> /var/log/bluetooth_dev
# Använda $AUDIOSINK i stället för 0 här verkar inte fungera, inte säker varför
ECHO pacat - r -d 0--latens-msec = 50 | Sox -t rå - r 44100 -e undertecknat heltal - b 16 - c 2 - -t wav - vinna -l 10 | sudo /home/pi/fm/pifm - 87,9 44100 stereo >> /var/log/bluetooth_dev
sudo -u pi pacat - r -d 0--latens-msec = 50 | sudo -u pi sox -t rå - r 44100 -e undertecknat heltal - b 16 - c 2 - -t wav - vinna -l 10 | sudo /home/pi/fm/pifm - 87,7 44100 stereo >> /var/log/bluetooth_dev
Fi
Fi
gjort
Fi
om ["$ACTION" = "ta bort"]
sedan
# Slå på bluetooth upptäckten om enheten kopplas från
sudo hciconfig hci0 piscan
# Slå på bluetooth automatisk upptäckt
sudo /usr/lib/udev/bluetooth-auto &
Fi
Slutligen, bevilja behörighet till skriptet
sudo chmod 774 /usr/lib/udev/bluetooth
sudo nano /usr/lib/udev/bluetooth-auto
Skriv allt detta in i tomma redaktör och spara
#! / bin/bash
medan [sann]
göra
sova 1
ECHO "Scanning för betrodda enheter" >> /var/log/bluetooth_dev
för mac i $(sudo hcitool scan | grep ":" | awk '{print $1}')
göra
Trust = $(grep "$mac" /usr/lib/udev/bluetooth-trust)
om [! - z "$trust"]
sedan
_BT_ADAPTER ='dbus-skicka--system - print-svar--dest=org.bluez / org.bluez.Manager.DefaultAdapter|awk "/ objekt sökvägen / {skriva ut $3}''
BT_ADAPTER = ${_BT_ADAPTER / / \ "/}
mac_underscore = $(katt "$mac" | sed's /: / _ / g ")
ECHO "ansluter till enheten vid: $mac" >> /var/log/bluetooth_dev
sudo dbus-skicka--print-svar--system--dest=org.bluez $BT_ADAPTER/dev_$ mac_underscore org.bluez.AudioSource.Connect >> /var/log/bluetooth_dev
utgång 0
Fi
gjort
gjort
Slutligen, bevilja behörighet till skriptet, och skapa förtroende-filen
sudo chmod 774 /usr/lib/udev/bluetooth-auto
sudo touch /usr/lib/udev/bluetooth-trust
sudo nano /etc/init.d/bluetooth-agent
Skriv allt detta in i tomma redaktör och spara
#! / bin/sh
#/etc/init.d/bluetooth-agent
### BÖRJA INIT INFORMATION
# Innehåller: bluetooth-agent
# Krävs-Start: $remote_fs $syslog bluetooth pulseaudio
# Krävs-Stop: $remote_fs $syslog
# Standard-Start: 2 3 4 5
# Standard-Stop: 0 1 6
# Kort beskrivning: gör Bluetooth upptäckbar och anslutas till 0000
# Beskrivning: Starta Bluetooth-Agent vid uppstarten.
### AVSLUTA INIT INFO
ANVÄNDARE = root
HEM = / root
exportera användare hem
fallet "$1" i
Start)
ECHO "initierar pulseaudio"
sudo pactl info
ECHO "inställningen bluetooth upptäckbar"
sudo hciconfig hci0 piscan
start-stop-daemon - S - x /usr/bin/bluetooth-agent - c pi -b--0000
ECHO "bluetooth-agent startat pw: 0000"
sudo /usr/lib/udev/bluetooth-auto &
ECHO "bluetooth-auto-discovery började"
sudo /home/pi/fm/pifm /home/pi/fm/silence 87,7 44100 stereo
ECHO "pifm började på 87,7, spela tystnad"
;;
Stop)
ECHO "Stoppa bluetooth-agent"
start-stop-daemon - K - x /usr/bin/bluetooth-agent
;;
*)
ECHO "användning: /etc/init.d/bluetooth-agent {start|stop}"
utgång 1
;;
ESAC
utgång 0
Slutligen skapa filen tystnad, bevilja behörighet till skriptet och lägga till den i listan över program som körs vid start
sudo touch /home/pi/fm/silence
sudo chmod 755 /etc/init.d/bluetooth-agent
sudo uppdatera-rc.d bluetooth-agent försummelsen