如何製作自動連接的藍牙從設備

如何製作自動連接的藍牙從設備

我想做的概念很簡單:讓 Linux 電腦成為自動接受連接(來自手機)的藍牙從裝置。總體目標是自動連接並將資料從手機應用程式傳輸到 Linux 電腦上的 python。以下是我認為需要的步驟:

我首先使用 hciconfig 設定藍牙適配器:

sudo hciconfig hci0 noauth
sudo hciconfig hci0 name thisdevice
sudo hciconfig hci0 lm SLAVE
sudo hciconfig hci0 lm ACCEPT
sudo hciconfig hci0 sspmode 1
sudo hciconfig hci0 reset
sudo hciconfig hci0 piscan

然後我需要一個使用 Bluetoothctl 的藍牙代理來進行身份驗證:

bluetoothctl
discoverable on
pairable on
agent NoInputNoOutput

然後我需要使用手機進行連線。但是,為了連接,我仍然必須在 bluetoothctl 的終端機中輸入 YES。 (它要求確認正確的 Pin)。這是一個問題,並且違背了 NoInputNoOutput 設定的全部目的。

然後我可以執行使用 Pybluez 和advertise_service 函數的python 程式。然後我可以從手機應用程式連接到該服務。

這是正確的事件順序嗎?如何讓藍牙自動驗證? (修改bluez中的代理程式碼?)

謝謝

答案1

我絕對不是這個主題的專家,我寧願說我已經連續三天嘗試同樣的事情了。我現在放棄了,把我的樹莓派扔到了所有其他未完成項目的堆上。

不過,我認為我穿越這個地獄的旅程可能對你有價值。agent off在註冊新代理之前嘗試輸入:

bluetoothctl
agent off
agent NoInputNoOutput
discoverable on
pairable on

在輸入這些命令時在第二個終端機上運行btmon應該會顯示正在註冊的新 NoInputNoOutput 代理程式。

答案2

嘗試這個:

bt-agent -c NoInputNoOutput -d

相關內容