“How to scan BLE devices”的版本间的差异
来自百问网嵌入式Linux wiki
Zhouyuebiao(讨论 | 贡献) |
|||
(未显示同一用户的1个中间版本) | |||
第1行: | 第1行: | ||
+ | {{DISPLAYTITLE:如何扫描BLE设备}} | ||
+ | |||
+ | =如何扫描 BLE 设备= | ||
+ | : 本页列出了扫描、连接和显示 BLE 设备信息的操作示例。 BLE代表低功耗蓝牙 | ||
+ | ==需要的软件包== | ||
+ | * bluez5 | ||
+ | ==配置== | ||
+ | : 修改配置文件 /etc/udev/rules.d/10-local.rules 让蓝牙自动启动: | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | # Set bluetooth power up | ||
+ | ACTION=="add", KERNEL=="hci0", RUN+="/usr/bin/hciconfig hci0 up | ||
+ | </syntaxhighlight> | ||
+ | ==一些实用命令== | ||
+ | : '''Bluez''' 默认提供一些工具来分析蓝牙网络。 | ||
+ | : '''hciconfig''' 配置hci连接 | ||
+ | : '''hcitool''' 进行扫描、查找设备、连接到设备、管理设备列表。设备可能是正常或低能耗模式。 | ||
+ | : '''gatttool''' 用于BLE设备管理 | ||
+ | |||
+ | ===连接BLE设备的步骤=== | ||
+ | : 扫描附近所有可见的低功耗蓝牙设备的命令: | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | Board $> hciconfig hci0 up | ||
+ | Board $> hcitool lescan | ||
+ | </syntaxhighlight> | ||
+ | : 扫描可用的BLE设备: | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | Board $> hcitool lewladd <BLE_MAC_ADDRRESS> | ||
+ | </syntaxhighlight> | ||
+ | : 将 BLE 设备添加到白名单中(可选): | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | Board $> hcitool lecc <BLE_MAC_ADDRESS> | ||
+ | </syntaxhighlight> | ||
+ | : 连接 BLE 设备: | ||
+ | :: 一旦识别出BLE设备,就可以使用 [https://wiki.st.com/stm32mpu/wiki/Network_tools#gatttool GATTTOOL] 发现,读取和修改其特性(见附件)。 | ||
+ | :: [https://wiki.st.com/stm32mpu/wiki/Network_tools#gatttool GATTTOOL] 提供两种工作模式:交互式和非交互式 | ||
+ | ==== GATTTOOL 交互模式==== | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | Board $> gatttool -b <MAC Address> --interactive | ||
+ | </syntaxhighlight> | ||
+ | : 在交互模式下,可以使用下面的命令: | ||
+ | :: connect:连接到指定的设备 | ||
+ | :: primary:禁用所有主要属性 | ||
+ | :: char-read-hnd <handle> 读取指定的句柄/属性值 | ||
+ | :: char-write-cmd <handle> <value>修改句柄值 | ||
+ | |||
+ | ====GATTTOOL 非交互模式:==== | ||
+ | : 在非交互模式下,命令是一一发出的。在每个命令中,GATTTOOL 都会尝试连接设备、操作和断开与设备的连接。 | ||
+ | : 以下是几个示例: | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | Board $> gatttool -b <Mac Address> --primary | ||
+ | Board $> gatttool -b <MAC Address> --characteristics | ||
+ | Board $> gatttool -b <MAC Address> --char-read | ||
+ | Board $> gatttool -b <MAC Address> --char-desc | ||
+ | </syntaxhighlight> | ||
+ | |||
[[Category:Linux_Operating_System]] | [[Category:Linux_Operating_System]] | ||
[[Category:Networking]] | [[Category:Networking]] | ||
[[Category:Bluetooth]] | [[Category:Bluetooth]] |
2020年1月6日 (一) 15:00的最新版本
目录
如何扫描 BLE 设备
- 本页列出了扫描、连接和显示 BLE 设备信息的操作示例。 BLE代表低功耗蓝牙
需要的软件包
- bluez5
配置
- 修改配置文件 /etc/udev/rules.d/10-local.rules 让蓝牙自动启动:
# Set bluetooth power up
ACTION=="add", KERNEL=="hci0", RUN+="/usr/bin/hciconfig hci0 up
一些实用命令
- Bluez 默认提供一些工具来分析蓝牙网络。
- hciconfig 配置hci连接
- hcitool 进行扫描、查找设备、连接到设备、管理设备列表。设备可能是正常或低能耗模式。
- gatttool 用于BLE设备管理
连接BLE设备的步骤
- 扫描附近所有可见的低功耗蓝牙设备的命令:
Board $> hciconfig hci0 up
Board $> hcitool lescan
- 扫描可用的BLE设备:
Board $> hcitool lewladd <BLE_MAC_ADDRRESS>
- 将 BLE 设备添加到白名单中(可选):
Board $> hcitool lecc <BLE_MAC_ADDRESS>
GATTTOOL 交互模式
Board $> gatttool -b <MAC Address> --interactive
- 在交互模式下,可以使用下面的命令:
- connect:连接到指定的设备
- primary:禁用所有主要属性
- char-read-hnd <handle> 读取指定的句柄/属性值
- char-write-cmd <handle> <value>修改句柄值
GATTTOOL 非交互模式:
- 在非交互模式下,命令是一一发出的。在每个命令中,GATTTOOL 都会尝试连接设备、操作和断开与设备的连接。
- 以下是几个示例:
Board $> gatttool -b <Mac Address> --primary
Board $> gatttool -b <MAC Address> --characteristics
Board $> gatttool -b <MAC Address> --char-read
Board $> gatttool -b <MAC Address> --char-desc