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

树莓派3b连接Polar心率带读心率报Connection Refused(111)求助

Polar心率带树莓派连接排障方案

适用场景:Raspberry Pi 3B 运行Raspbian系统,bluetoothctl可发现设备、获取UUID,但GATT连接报Connection Refused(111),gatttool、bleak、pygatt均无法正常建立连接读取心率数据。

  • 第一步:修正基础配置错误
    树莓派3B板载蓝牙默认接口为hci0,之前gatttool指定hci1属于接口选择错误,先执行hciconfig -a确认当前可用蓝牙适配器的接口编号,后续操作不要填错接口。
    执行以下命令将当前用户加入蓝牙用户组,避免权限不足导致的连接拒绝,执行完成后必须重启树莓派生效:

    sudo usermod -aG bluetooth $USER
    

    注意:Polar心率带必须贴身佩戴、电极处沾少量水激活才会进入可连接状态,未佩戴时设备仅发送广播、拒绝所有GATT连接请求,这是新手最高发的问题。

  • 第二步:清理损坏的蓝牙配对缓存
    旧的配对缓存损坏是导致能扫到设备、但无法建立GATT连接的常见原因,按顺序执行以下命令清理:

    sudo systemctl stop bluetooth
    sudo rm -rf /var/lib/bluetooth/*
    sudo systemctl start bluetooth
    

    清理完成后重新在bluetoothctl中完成完整配对流程,不要跳过pair/trust步骤:

    bluetoothctl
    power on
    agent on
    default-agent
    scan on
    # 等待终端输出你的心率带MAC地址 00:22:D0:33:1E:0F 后执行后续命令
    pair 00:22:D0:33:1E:0F
    trust 00:22:D0:33:1E:0F
    connect 00:22:D0:33:1E:0F
    

    配对完成后输入exit退出bluetoothctl,BLE设备同一时间仅支持一个客户端连接,bluetoothctl占用连接时,其他脚本/工具都会报连接拒绝。

  • 第三步:弃用过时工具,使用bleak读取心率数据
    hcitool、gatttool属于BlueZ已废弃的旧工具,在新系统上兼容性极差,pygatt对旧工具依赖度高,不推荐使用。直接使用bleak库连接即可:
    先安装依赖:

    sudo apt update
    sudo apt install python3-pip libglib2.0-dev -y
    pip3 install bleak
    

    心率服务为蓝牙标准服务,不需要手动查UUID,直接使用以下测试脚本读取数据即可:

    import asyncio
    from bleak import BleakClient
    
    DEVICE_MAC = "00:22:D0:33:1E:0F"
    HR_CHAR_UUID = "00002a37-0000-1000-8000-00805f9b34fb"
    
    def parse_hr(sender, data):
        hr_flag = data[0] & 0x01
        hr = data[1] if hr_flag == 0 else int.from_bytes(data[1:3], byteorder="little")
        print(f"实时心率: {hr} bpm")
    
    async def main():
        async with BleakClient(DEVICE_MAC) as client:
            print("连接成功")
            await client.start_notify(HR_CHAR_UUID, parse_hr)
            await asyncio.sleep(60) # 采集60秒数据
            await client.stop_notify(HR_CHAR_UUID)
    
    if __name__ == "__main__":
        asyncio.run(main())
    
  • 第四步:版本兼容问题处理
    如果以上操作完成后仍然报错,先执行bluetoothd -v查看BlueZ版本,版本低于5.65时直接升级BlueZ到最新稳定版即可,Raspbian旧软件源自带的BlueZ版本对低功耗蓝牙的支持存在已知bug。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.02 03:24:28