[BlueZ] 2、使用bluetoothctl搜索、连接、配对、读写、使能notify蓝牙低功耗设备 |
您所在的位置:网站首页 › 宇宙类电影有哪些名字的小说 › [BlueZ] 2、使用bluetoothctl搜索、连接、配对、读写、使能notify蓝牙低功耗设备 |
星期三, 05. 九月 2018 02:03上午 - beautifulzzzz 目录1、前言2、gatttool —— 老工具趟坑3、bluetoothctl——NB的新工具LINKS上一篇讲了如何编译安装BlueZ-5,本篇主要在于玩BlueZ,用命令行去操作BLE设备: [BlueZ] 1、Download install and use the BlueZ and hcitool on PI 3B+刚开始跟着 Get Started with Bluetooth Low Energy on Linux 操作gatttool,发现坑太多(主要原因是工具老了): 采用sudo gatttool -b 4D:69:98:0E:91:5E -I 去连接 发现会报错:Error: connect error: Connection refused (111) 最终参考LINK-11发现需要加random选项(#1): ➜ ~ sudo gatttool -b 4D:69:98:0E:91:5E -I [4D:69:98:0E:91:5E][LE]> connect Attempting to connect to 4D:69:98:0E:91:5E Error: connect error: Connection refused (111) [4D:69:98:0E:91:5E][LE]> exit ➜ ~ sudo gatttool -t random -b 4D:69:98:0E:91:5E -I [4D:69:98:0E:91:5E][LE]> connect Attempting to connect to 4D:69:98:0E:91:5E Connection successful [4D:69:98:0E:91:5E][LE]> (gatttool:3104): GLib-WARNING **: Invalid file descriptor.过一回会10S自动断开,网上说这个工具老了,不建议用了(#2): There are new tools to use with GATT, bluetoothctl/bluetoothd is the preferred since with that you have GAP, etc, but if want to use a stand alone tool then I suggest you use btgatt-client.命令行进入bluetoothctl操作环境(#6): bluetoothctl我在手机上用lightblue模拟一个BLE设备ty_prod,之后对其service进行修改,调用scan on进行搜索还是老的, 最终发现要先用remove移除之前的设备,之后再scan就会出现[NEW] Device 72:3B:E1:81:4E:4F ty_prod设备 注: 用lightblue模拟的设备的MAC不是固定的 注: 我发现在lightblue中无论怎么模拟BLE设备,一旦被连上搜索到的service都是IPone的 [bluetooth]# devices Device 28:ED:6A:A0:26:B7 ty_prod Device 58:71:33:00:00:24 Bluetooth Keyboard Device 00:1A:7D:DA:71:0A SHEN-PC Device 94:87:E0:B3:AC:6F Mi Phone [bluetooth]# remove 28:ED:6A:A0:26:B7 ... [bluetooth]# scan on Discovery started [NEW] Device 72:3B:E1:81:4E:4F ty_prod [bluetooth]# scan off ... Discovery stopped [bluetooth]# connect 72:3B:E1:81:4E:4F Attempting to connect to 72:3B:E1:81:4E:4F [CHG] Device 72:3B:E1:81:4E:4F Connected: yes Connection successful [ty_prod]索性就用IPhone自带的服务做测试了~ [ty_prod]# info Device 28:ED:6A:A0:26:B7 (public) Name: tuya_mdev_test Alias: tuya_mdev_test Appearance: 0x0040 Icon: phone Paired: yes Trusted: no Blocked: no Connected: yes LegacyPairing: no UUID: Fax (00001111-0000-1000-8000-00805f9b34fb) UUID: Generic Access Profile (00001800-0000-1000-8000-00805f9b34fb) UUID: Generic Attribute Profile (00001801-0000-1000-8000-00805f9b34fb) UUID: Current Time Service (00001805-0000-1000-8000-00805f9b34fb) UUID: Device Information (0000180a-0000-1000-8000-00805f9b34fb) UUID: Battery Service (0000180f-0000-1000-8000-00805f9b34fb) UUID: Vendor specific (7905f431-b5ce-4e99-a40f-4b1e122d00d0) UUID: Vendor specific (89d3502b-0f36-433a-8ef4-c502ad55f8dc) UUID: Vendor specific (9fa480e0-4967-4542-9390-d343dc5d04ae) UUID: Vendor specific (d0611e78-bbb4-4591-a5f8-487910ae4366) [CHG] Device 28:ED:6A:A0:26:B7 ServicesResolved: no [CHG] Device 28:ED:6A:A0:26:B7 Connected: no我们用Current Time Service,列出所有attributes操作如下: [tuya_mdev_test]# menu gatt [tuya_mdev_test]# list-attributes 28:ED:6A:A0:26:B7 ... Primary Service /org/bluez/hci0/dev_47_B1_26_C1_81_18/service0041 00001805-0000-1000-8000-00805f9b34fb Current Time Service Characteristic /org/bluez/hci0/dev_47_B1_26_C1_81_18/service0041/char0045 00002a0f-0000-1000-8000-00805f9b34fb Local Time Information Characteristic /org/bluez/hci0/dev_47_B1_26_C1_81_18/service0041/char0042 00002a2b-0000-1000-8000-00805f9b34fb Current Time Descriptor /org/bluez/hci0/dev_47_B1_26_C1_81_18/service0041/char0042/desc0044 00002902-0000-1000-8000-00805f9b34fb Client Characteristic Configuration ...上面Current Time Service对应的服务如下图: 我们选择Current Time进行操作UUID:0x2A2B [ty_prod]# select-attribute /org/bluez/hci0/dev_47_B1_26_C1_81_18/service0041/char0042 [tuya_mdev_test:/service0041/char0042]# read Attempting to read /org/bluez/hci0/dev_47_B1_26_C1_81_18/service0041/char0042 [CHG] Attribute /org/bluez/hci0/dev_47_B1_26_C1_81_18/service0041/char0042 Value: e2 07 09 05 01 24 11 03 f1 02 .....$.... e2 07 09 05 01 24 11 03 f1 02 .....$.... [tuya_mdev_test:/service0041/char0042]# attribute-info Characteristic - Current Time UUID: 00002a2b-0000-1000-8000-00805f9b34fb Service: /org/bluez/hci0/dev_47_B1_26_C1_81_18/service0041 Value: e2 07 09 05 01 2e 01 03 f5 02 .......... Notifying: yes Flags: read Flags: notify读出结果大致意思应该是:2018-9/5-1:36:17 周三 读取一下0x180A的Device Information: [tuya_mdev_test:/service0006/char0007]# select-attribute /org/bluez/hci0/dev_47_B1_26_C1_81_18/service0047/char004a [tuya_mdev_test:/service0047/char004a]# attribute-info Characteristic - Model Number String UUID: 00002a24-0000-1000-8000-00805f9b34fb Service: /org/bluez/hci0/dev_47_B1_26_C1_81_18/service0047 Flags: read [tuya_mdev_test:/service0047/char004a]# read Attempting to read /org/bluez/hci0/dev_47_B1_26_C1_81_18/service0047/char004a [CHG] Attribute /org/bluez/hci0/dev_47_B1_26_C1_81_18/service0047/char004a Value: 69 50 68 6f 6e 65 36 2c 32 iPhone6,2 69 50 68 6f 6e 65 36 2c 32 iPhone6,2当然写、使能notify也很简单,看help即可。最后断开连接、并退出!!! [tuya_mdev_test:/service0047/char004a]# disconnect 28:ED:6A:A0:26:B7 Attempting to disconnect from 28:ED:6A:A0:26:B7 [CHG] Device 28:ED:6A:A0:26:B7 ServicesResolved: no Successful disconnected [CHG] Device 28:ED:6A:A0:26:B7 Connected: no [bluetooth]# quit[1].Cannot connect to BLE device on Raspberry Pi [2].Invalid file descriptor gatttool of bluez 5.32 [3].Get Started with Bluetooth Low Energy on Linux [4].Reverse Engineering a Bluetooth Low Energy Light Bulb [5].Doing Bluetooth Low Energy on Linux [6].Tutorial: BLE Pairing the Raspberry Pi 3 Model B with Hexiwear |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |