在 Raspberry Pi OS 上使用藍芽
-
在 Raspberry Pi 中使用
bluetoothctl
命令列控制工具 - 在 Raspberry Pi 上管理多個控制器
-
使用
bluetoothctl
刪除 Raspberry Pi 中已儲存的裝置 -
使用
bluetoothctl
讓你的樹莓派無法被發現
本文將介紹 Raspberry Pi OS 上用於藍芽連線的命令列介面。
在 Raspberry Pi 中使用 bluetoothctl
命令列控制工具
bluetoothctl
是一個方便的命令列實用程式,用於連線 Raspberry Pi OS 中的藍芽功能。
該實用程式通常在當前的 Pi OS 版本中提供,但如果由於某種原因你的系統找不到該命令,請嘗試安裝它:
sudo apt install bluez bluez-utils
如果你已成功執行 bluetoothctl
命令,應該會出現代理已註冊
這樣的訊息並顯示 [bluetooth]#
提示:
Agent registered
[bluetooth]#
此時,我們可以在提示符下執行 scan on
命令,開始掃描可達裝置。
scan on
成功執行應產生類似於以下幾行的輸出,並將控制權轉移到 bluetoothctl
命令提示符。
Discovery started
[CHG] Controller B8:27:EB:ff:ff:ff Discovering: yes
[bluetooth]#
此外,它將列出可用的藍芽裝置以及相應的 MAC 地址和名稱。看到所需的裝置後,你可以執行以下命令來啟動配對:
pair ff:ff:ff:ff:ff:ff
如果你已經信任給定的裝置,Raspberry Pi 可能會自動連線它。但是,你也可以使用以下命令強制連線:
connect ff:ff:ff:ff:ff:ff
請注意,我們在上述示例中使用了通用 MAC 地址,但你應該使用要配對的裝置地址來替換它。
可以使用 disconnect
命令終止連線,並將相應的地址作為引數傳遞。
在 Raspberry Pi 上管理多個控制器
如果你有其他 USB 藍芽介面卡連線到 Pi,你應該在執行之前的命令之前選擇其中一個。
控制器(控制藍芽無線電通訊的硬體)具有唯一的 MAC 地址,可以使用 bluetoothctl
命令提示符下的 list
命令檢索。
一旦你確定了當前藍芽連線的控制器,使用相應的 MAC 地址作為引數執行 select
命令。
請注意,下一個命令將列出系統中所有可用的控制器:
list
在此之後,你可以根據需要繼續執行其他命令。通常,內建的 Raspberry Pi 控制器地址以 B8:27:EB
開頭。
bluetoothctl
提供了使用 help
命令列出的其他幾個命令。
請注意,如果你想從預設 shell 執行,這些命令必須在 bluetoothctl
命令提示符下執行或附加到 bluetoothctl
命令本身。
list
// ALTERNATIVELY
bluetoothctl list
使用 bluetoothctl
刪除 Raspberry Pi 中已儲存的裝置
使用 Pi 控制器配對或信任的藍芽裝置在 bluetoothctl
命令提示符中與 paired-devices
命令一起列出。
如果要從列表中刪除特定裝置,請使用相應的 MAC 地址執行 remove
命令,如下所示:
remove ff:ff:ff:ff:ff:ff
使用 bluetoothctl
讓你的樹莓派無法被發現
有時,你可能希望停止廣播 Pi 控制器藍芽廣告資訊。後者可以通過 discoverable
命令完成。
它根據控制器的當前狀態接受 on
或 off
引數。在這種情況下,我們需要下一個命令來使 Pi 無法被發現。
discoverable off
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn