当前位置: 首页 > news >正文

linux蓝牙模块和手机配对

在 Linux 系统下,将蓝牙模块与手机配对和连接通常涉及以下几个步骤。以下是详细的步骤和命令,帮助你实现蓝牙模块与手机的配对和连接。

1. 确认蓝牙服务已启动

首先,确保蓝牙服务已在 Linux 系统上运行。

systemctl status bluetooth

如果服务未运行,启动它:

sudo systemctl start bluetooth

为了使蓝牙服务在系统启动时自动运行,可以启用它:

sudo systemctl enable bluetooth

2. 检查系统是否有 Bluetooth 适配器

使用 hciconfig 命令检查系统中是否有可用的 Bluetooth 适配器:

hciconfig

输出示例:

hci0:   Type: BR/EDR  Bus: USBBD Address: 00:1A:7D:DA:71:13  ACL MTU: 1021:8  SCO MTU: 64:1UP RUNNING PSCAN ISCAN RX bytes:1024 acl:2 sco:0 events:36 errors:0TX bytes:512 acl:1 sco:0 commands:17 errors:0Features: 0xbf 0xfe 0xcf 0xfe 0xdb 0xff 0x7b 0x87Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3 Link policy: RSWITCH SNIFF 

如果 hci0 显示为 UP RUNNING,则表示蓝牙适配器已准备好。

3. 使用 bluetoothctl 管理 Bluetooth 设备

bluetoothctl 是一个交互式的命令行工具,用于管理 Bluetooth 设备。

进入 bluetoothctl 交互模式
bluetoothctl

打开适配器并设置为可发现

在 bluetoothctl 中,确保适配器已打开,并且处于可发现模式:

power on
discoverable on
pairable on

这将使你的 Bluetooth 设备可见,并且允许其他设备进行配对。

4. 扫描附近的蓝牙设备

在 bluetoothctl 中,扫描附近的蓝牙设备:

scan on

扫描开始后,你会看到附近的蓝牙设备列表,类似于:

[CHG] Controller 00:1A:7D:DA:71:13 Discovering: yes
[NEW] Device XX:XX:XX:XX:XX:XX MyPhone

其中 XX:XX:XX:XX:XX:XX 是手机的蓝牙地址,MyPhone 是手机的名称。

5. 配对手机

找到手机的蓝牙地址后,使用 pair 命令进行配对:

pair XX:XX:XX:XX:XX:XX

配对过程可能需要你确认手机上的配对请求,或者输入配对码(Pin Code)。

6. 信任设备

为了方便以后的连接,可以将手机设备设置为信任设备:

trust XX:XX:XX:XX:XX:XX

7. 连接手机

配对成功后,使用 connect 命令连接手机:

connect XX:XX:XX:XX:XX:XX

连接成功后,你的 Linux 系统和手机之间将会建立 Bluetooth 连接。

8. 验证连接状态

你可以使用 info 命令查看设备的连接状态:

info XX:XX:XX:XX:XX:XX

输出示例:

Device XX:XX:XX:XX:XX:XXName: MyPhoneAlias: MyPhoneClass: 0x5a020cIcon: phonePaired: yesTrusted: yesBlocked: noConnected: yesLegacyPairing: noUUID: 00001101-0000-1000-8000-00805f9b34fb (Generic Access Profile)...

如果 Connected: yes,表示连接成功。

9. 断开连接

如果需要断开连接,可以使用 disconnect 命令:

disconnect XX:XX:XX:XX:XX:XX

总结

通过上述步骤,你可以成功在 Linux 系统下将蓝牙模块与手机配对和连接。主要步骤包括启动 Bluetooth 服务、使用 bluetoothctl 工具进行设备扫描、配对和连接。

http://www.lryc.cn/news/508712.html

相关文章:

  • dockerfile文档编写(1):基础命令
  • 在 Go 中利用 ffmpeg 进行视频和音频处理
  • 【机器学习】探索机器学习与人工智能:驱动未来创新的关键技术
  • React Refs 完整使用指南
  • 程控电阻箱应用中需要注意哪些安全事项?
  • C/C++基础知识复习(43)
  • 苍穹外卖-day05redis 缓存的学习
  • VSCode搭建Java开发环境 2024保姆级安装教程(Java环境搭建+VSCode安装+运行测试+背景图设置)
  • PHP MySQL 插入多条数据
  • Oracle安装报错:将配置数据上载到资料档案库时出错
  • JavaScript 中通过Array.sort() 实现多字段排序、排序稳定性、随机排序洗牌算法、优化排序性能,JS中排序算法的使用详解(附实际应用代码)
  • Deformable DETR:Deformable Transformers for End-to-End Object Detection论文学习
  • 机器学习-43-可解释性机器学习库LIME
  • 【Unity功能集】TextureShop纹理工坊(五)选区
  • Spring Cloud OpenFeign快速入门demo
  • 研发效能DevOps: Vite 使用 Element Plus
  • sfnt-pingpong -测试网络性能和延迟的工具
  • Kubernetes、Docker 和 Docker Registry 关系是是什么?
  • docker部署微信小程序自动构建发布和更新
  • 模仿elementui的Table,实现思路
  • Unity中使用环形缓冲区平滑抖动值
  • 【Yonghong 企业日常问题 06】上传的文件不在白名单,修改allow.jar.digest属性添加允许上传的文件SH256值?
  • SpringBoot使用 AOP 实现自定义日志记录并保存在Mysql
  • 谷歌开源最强天气预报AI模型 GenCast
  • C++打造局域网聊天室第十课: 客户端编程及数据发送
  • Nginx整合Lua脚本
  • 【C++】C++11 STL容器emplace方法原理剖析
  • QT-简单视觉框架代码
  • AI新书推荐:深度学习和大模型原理与实践(清华社)
  • [spring]处理器