You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取与Arduino连接的HC-06蓝牙模块的已连接设备名称?

获取HC-06蓝牙模块已连接设备列表的可行方案

刚接触Arduino+HC-06的话,确实会遇到这类模块功能边界的问题——先给你明确一点:HC-06作为蓝牙从模块,本身没有内置指令能直接返回已连接设备的列表,但我们可以通过两种思路来实现你的需求:

方法1:通过安卓APP获取列表并转发到Arduino/电脑

这是最直接可行的方案,因为HC-06的核心是串口透传,它本身不存储配对/连接设备的信息,所以得让作为蓝牙主设备的安卓APP来主动获取已连接设备,再把数据传给Arduino,最后转发到电脑。

具体步骤:

  • 在你的安卓APP里,用Android蓝牙API(比如BluetoothAdapter相关类)获取已配对或已连接的蓝牙设备列表,过滤出串口类型的设备(HC-06属于SPP串口蓝牙)
  • 把设备名称、MAC地址等信息打包成易解析的字符串格式,比如:HC-06_1,AA:BB:CC:DD:EE:FF;MyPhone,GG:HH:II:JJ:KK:LL
  • 通过蓝牙串口把这个字符串发送给HC-06,模块会自动透传给Arduino
  • 用Arduino代码读取串口数据,再通过USB串口打印到电脑的串口监视器里

给你一段简单的Arduino代码示例:

#include <SoftwareSerial.h>
// 假设HC-06接在D2(RX)和D3(TX)引脚,用软串口
SoftwareSerial hc06(2, 3);

void setup() {
  Serial.begin(9600); // 电脑USB串口,用于输出到监视器
  hc06.begin(9600);   // HC-06的串口波特率,默认9600
  Serial.println("Waiting for device list from Android...");
}

void loop() {
  if (hc06.available()) {
    String deviceList = hc06.readStringUntil('\n');
    Serial.println("=== Received connected device list ===");
    Serial.println(deviceList);
    Serial.println("=====================================");
  }
}

方法2:用AT指令检测连接状态(仅判断是否连接,无法获取列表)

如果你的需求只是确认HC-06当前是否有设备连接,而非具体的设备列表,可以用HC-06的AT+STATE指令:

  • 先把HC-06切换到AT指令模式:多数模块需要在未连接状态下,将KEY引脚接高电平后重启;部分模块也支持在连接状态下直接发送AT指令(波特率默认9600)
  • 发送AT+STATE,模块会返回以下状态之一:
    • INITIALIZED:未连接任何设备
    • CONNECTED:已连接到某个设备
    • PAIRED:已配对但未建立连接

但要注意,这个指令只能告诉你连接状态,拿不到具体的设备信息。

额外小提醒

HC-06本质是从设备,只能被其他主设备(比如你的手机、电脑)连接,它没有主动扫描或存储设备列表的能力,所以核心还是得靠主设备端(安卓APP或电脑)来提供设备信息。如果想直接在电脑端获取,也可以让电脑作为蓝牙主设备连接HC-06,然后用电脑的蓝牙工具(比如Linux的bluez、Windows的蓝牙设置API)来查询已连接设备,这样就不用经过Arduino了。

内容的提问来源于stack exchange,提问作者MissPaper

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 04:16:39