Oto bardzo szczegółowe wyjaśnienie:
Den3243
Oto rozwiązanie wiersza poleceń:
Najpierw zeskanujmy, sparujmy, zaufaj swojemu urządzeniu z „bluetoothctl”. Aby to zrobić, uruchom to w wierszu polecenia, terminal:
bluetoothctl -a
Powinieneś otrzymać inny wiersz polecenia, taki jak:
[bluetooth]
Przy włączonym głośniku BT wpisz:
scan on
Za chwilę powinieneś zobaczyć dostępne urządzenia BT. Obok urządzenia będzie jego adres MAC, na przykład: 00: AA: 22: BB: 33. Teraz wpisz to:
info <your mac address>
Wyklucz większe i mniejsze niż znaki. To, czego szukasz, to jakieś wcześniejsze skojarzenie z głośnikiem BT. Dowiesz się, że istniało poprzednie skojarzenie, ponieważ bluetoothctl wyświetli informacje o twoim urządzeniu BT. Niektóre z tych informacji dotyczą sparowania i zaufania urządzenia. To jest dobre.
Jeśli bluetoothctl narzeka, że nie ma urządzenia, musimy to skonfigurować w tym momencie. Aby to zrobić, wpisz:
pair <your mac address>
Powinien zostać wyświetlony komunikat o powodzeniu powiązania urządzenia. Teraz zaufajmy naszemu nowemu urządzeniu BT. Wpisz to:
trust <your mac address>
Ponownie powinieneś zobaczyć komunikat o powodzeniu zaufania. Pozwól, że cię uprzedzę. Twoje urządzenie BT może się połączyć, a następnie może nie. Nie bój się, nie chcemy, żeby się połączyło. Śmiało, wyjdźmy z „bluetoothctl”. Aby to zrobić, wpisz:
quit
Teraz nastąpi powrót do wiersza polecenia. W poprzednim poście zasugerowałem utworzenie katalogu skryptów w katalogu domowym. Jeśli nie, zrób to teraz. Wpisz to w wierszu polecenia:
mkdir -p ~/scripts
Naciśnij Enter, a teraz stwórzmy nasz skrypt bash autopair. Wpisz to:
nano ~/scripts/autopair
Wpisz ten kod do skryptu:
#!/bin/bash
bluetoothctl << EOF
connect [enter your MAC add]
EOF
Wyklucz nawiasy!
Teraz naciśnij jednocześnie klawisze CTRL + x, a następnie naciśnij klawisz Enter, aby zapisać skrypt. Musimy sprawić, by był wykonywalny. Aby to zrobić, wpisz:
chmod +x ~/scripts/autopair
Zakładam, że nie używasz zewnętrznych głośników analogowych do gniazda 3,5 mm. Jeśli to prawda, wyłączmy alsa. Aby to zrobić, edytujmy plik w katalogu / boot o nazwie config.txt. Aby to zrobić, wpisz to w swoim terminalu:
sudo nano /boot/config.txt
Przewiń do dołu pliku i poszukaj dwóch wierszy:
# Enable audio (loads snd_bcm2835)
dtparam=audio=on
Umieść (znak funta #) przed wierszem o treści:
dtparam=audio=on
Wygladać jak:
#dtparam=audio=on
Naciśnij klawisze CTRL + x, a następnie naciśnij klawisz Enter, aby zapisać plik.
Zakładam, że masz zainstalowany pulseaudio? Jeśli nie, śmiało i uruchom to polecenie z wiersza poleceń:
sudo apt-get update && sudo apt-get install pulseaudio -y
Dzięki temu otrzymasz bardzo ważny komponent do działania bluetooth! Teraz edytujmy nasz plik .bashrc w naszym katalogu domowym. Wpisz to:
nano ~/.bashrc
Przewiń w dół i dodaj ten wiersz:
pulseaudio --start
Naciśnij CTRL + x, a teraz naciśnij Enter, aby zapisać plik.
OK! Musimy wejść w świat Pythona. Napisałem program w języku Python, który będzie obserwował urządzenie Bluetooth. Krótko mówiąc, aktywuje połączenie między RPi a głośnikiem bluetooth, gdy głośnik bluetooth zostanie włączony. I wzajemnie. Utwórzmy katalog o nazwie python w katalogu domowym Aby to zrobić, wpisz:
mkdir -p ~/python
Teraz stwórzmy plik programu python. Aby to zrobić, wpisz:
nano ~/python/on.py
Wewnątrz tego pliku musimy skopiować i wkleić następujące elementy:
#!/usr/bin/python
#
# Monitor removal of bluetooth reciever
import os
import sys
import subprocess
import time
def blue_it():
status = subprocess.call('ls /dev/input/event0 2>/dev/null', shell=True)
while status == 0:
print("Bluetooth UP")
print(status)
time.sleep(15)
status = subprocess.call('ls /dev/input/event0 2>/dev/null', shell=True)
else:
waiting()
def waiting():
subprocess.call('killall -9 pulseaudio', shell=True)
time.sleep(3)
subprocess.call('pulseaudio --start', shell=True)
time.sleep(2)
status = subprocess.call('ls /dev/input/event0 2>/dev/null', shell=True)
while status == 2:
print("Bluetooth DOWN")
print(status)
subprocess.call('~/scripts/autopair', shell=True)
time.sleep(15)
status = subprocess.call('ls /dev/input/event0 2>/dev/null', shell=True)
else:
blue_it()
blue_it()
Teraz naciśnij CTRL + x, a następnie naciśnij Enter, aby zapisać plik programu Python. Teraz musimy uczynić ten plik wykonywalnym. Aby to zrobić, wpisz:
chmod +x ~/python/on.py
Na koniec dodajmy to do naszego skryptu .bashrc w naszym katalogu domowym:
nano ~/.bashrc
Przewiń do dołu pliku i dodaj te dwa wiersze:
wait
~/python/on.py
Teraz naciśnij CTRL + x, a następnie naciśnij Enter, aby zapisać. Włącz głośnik bluetooth i uruchom ponownie Raspberry Pi.
Powodzenia!
-nitrolinux