ESP_32 BLE client.connect 方法失败

ESP_32 BLE client.connect method fail

提问人:armsosad 提问时间:11/15/2023 最后编辑:armsosad 更新时间:11/16/2023 访问量:32

问:

import asyncio
from bleak import BleakClient

address = '7867867'
address2 = '786786'
hex_data = '7867867' #send data 
notity_charcteristic_uuid = '78667867'
uuid_tx = '786786878'
service_uuid = "45646786"

def on_disconnect(client):
    print("Client with address {} got disconnected!".format(client.address))

async def run(address):
    client = BleakClient(address,disconnected_callback=on_disconnect,timeout=5.0)
    print(client.is_connected)
    await client.connect()
    print(client.is_connected)

loop = asyncio.get_event_loop()
loop.run_until_complete(run(address2))

我在 Windows 上运行此代码。我正在尝试与 esp32 建立低功耗蓝牙连接。

问题是在“await client.connect()”之后什么也没发生。

当我在 Windows 设置中查看蓝牙设备和状态时,我看到它已从配对更改为已连接,但等待后,没有可用的服务,也没有任何反应。有人可以告诉我为什么吗?

解决。。。

哇。。。我刚刚解决了它。您无法在 Python 虚拟环境中运行它。怎么了。。。我浪费了 24 小时。我会把它留给像我这样的穷人。

低功耗蓝牙 -PYTHON-Asyncio ESP32

评论

1赞 Michael Kotzjan 11/15/2023
你从哪里得到地址?你确定它是正确的吗?您是否尝试过使用 nRF Connect 等通用 BLE 探索工具连接到 ESP32 以确保其正常工作?
0赞 armsosad 11/16/2023
@MichaelKotzjan 如您所述,该地址是通过 nRF Connect 找到的。我确认 uuid 也有写入和通知。我已通过 Windows 蓝牙将其配对,每次运行代码时状态都显示为已连接。但是,我尝试在等待后使用 print 检查client_is_connected状态,但它停在等待处并且什么也没做。
0赞 armsosad 11/16/2023
@MichaelKotzjan 创建 esp32 的人说它允许通过串行通信进行调试,所以我检查了打开蓝牙并连接的终端。因此,终端中会出现lld_pdu_get_tx_flush_nb HCI 数据包计数不匹配 (0, 1)。但是,创建 esp32 的人确认它在通过程序执行数据交换时运行正常。我应该问问制作它的人吗?
0赞 armsosad 11/16/2023
哇。。。我刚刚解决了它。您无法在 Python 虚拟环境中运行它。怎么了。。。我浪费了 24 小时。我会把它留给像我这样的穷人。
0赞 Michael Kotzjan 11/16/2023
嘿,太好了,恭喜!除了将答案编辑到您的问题中,您还可以简单地回答自己的问题并将其标记为已解决。这样一来,这包含答案就更明显了

答: 暂无答案