Bluetooth ESP32上的Micropython和蓝牙

Bluetooth ESP32上的Micropython和蓝牙,bluetooth,esp32,micropython,Bluetooth,Esp32,Micropython,我知道对蓝牙的支持仍在开发中,但目前它似乎涵盖了我所需要的一切,所以我决定尝试一下 我只想模拟从数据源(心电图机)读取数据,因此我产生了以下代码: from ubluetooth import BLE from ubluetooth import FLAG_READ, FLAG_NOTIFY, FLAG_WRITE import time ekg_data = [-305,-431,-131,440 ,1158,1424,1445,1623,1500,1018,142 ,-384,-324,-

我知道对蓝牙的支持仍在开发中,但目前它似乎涵盖了我所需要的一切,所以我决定尝试一下

我只想模拟从数据源(心电图机)读取数据,因此我产生了以下代码:

from ubluetooth import BLE
from ubluetooth import FLAG_READ, FLAG_NOTIFY, FLAG_WRITE
import time

ekg_data = [-305,-431,-131,440 ,1158,1424,1445,1623,1500,1018,142 ,-384,-324,-414,-77 ,334 ,-372,-154,366 ,7613,1461,1403,6133,-179,-381,-224,-135,-168,-208,-187,-181,-180,-160,-160,-151,-150,-151,-138,-141,-128,-118,-106,-798,-677,-430,-253,-122,98  ,133 ,281 ,354 ,390 ,519 ,475 ,558 ,565 ,533 ,593 ,458 ,377 ,107 ,-335,-719,-116,-129,-132,-131,-119,-122,-111,-106,-105,-935,-971,-877,-841,-841,-725,-757,-660,-641,-660,-554,-592,-496,-473,-486,-387,-431,-350,-364,-347,-208,-365,-362]


bt = BLE()
bt.active(True)


print('----')
print(bt.config('mac'))
print(bt.config('gap_name'))

HR_UUID = bluetooth.UUID(0x180D)
HR_CHAR = (bluetooth.UUID(0x2A37), bluetooth.FLAG_READ | bluetooth.FLAG_NOTIFY,)
HR_SERVICE = (HR_UUID, (HR_CHAR,),)


SERVICES = (HR_SERVICE,)
((ekg,),) = bt.gatts_register_services(SERVICES)


# bt.gap_advertise(100, 'MicroPython EKG')


count = 0
while True:
    if count >= len(ekg_data):
        count = 0

    bt.gatts_write(ekg, ekg_data[count].to_bytes(2, 'big'))
    print(ekg_data[count])
    time.sleep_ms(1000)
    count += 1
现在代码已编译并运行(我可以在控制台上看到输出),但在我的蓝牙应用程序中找不到设备(我正在使用nordic应用程序)


如果我忽略了什么,有没有人能告诉我在这方面有更多的知识?我试图断断续续地播放广告,因为我认为我可能会用它覆盖某些内容,但这也没有帮助…

我认为您的代码缺少多个内容。 首先,您没有为Micropython设置(irq),这是(事件处理)(正如您可以从或的Github代码中看到的)。
另外,我看不到您设置缓冲区或任何类似的东西,请根据您的要求修改示例。顺便说一句,做得好。

我认为您的代码缺少多个内容。 首先,您没有为Micropython设置(irq),这是(事件处理)(正如您可以从或的Github代码中看到的)。
另外,我看不到您设置缓冲区或任何类似的东西,请根据您的要求修改示例。顺便说一句,做得好。

您没有从bt.gap_advertive(100,'MicroPython EKG')获得返回代码吗?此外,我建议您首先尝试从命令行进行广告(可能使用hciconfig hci0 leadv)在尝试使用micropython之前,只是为了确保硬件和堆栈方面一切正常。您没有从bt.gap_advision(100,'micropython EKG')获得返回代码吗?此外,我建议首先尝试从命令行进行广告(可能使用hciconfig hci0 leadv)在尝试使用micropython之前,请确保在硬件和堆栈方面一切正常。