Micro python и Bluetooth на ESP32 - PullRequest
       78

Micro python и Bluetooth на ESP32

1 голос
/ 18 июня 2020

Я знаю, что поддержка bluetooth все еще находится в разработке, но, похоже, она охватывает все, что мне нужно на данный момент, поэтому я решил попробовать.

Я просто хочу имитировать чтение из источника данных (машина для ЭКГ), поэтому я придумал этот код:

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

Теперь код компилируется и запускается (я вижу вывод на консоли), но я не могу найти устройство в моем приложении bluetooth (я я использую приложение nordi c)

Может ли кто-нибудь с более глубокими знаниями в этой области сказать мне, если я что-то упускаю? Я пытался отключать рекламу, потому что думал, что могу что-то переопределить, но это тоже не помогло ...

1 Ответ

0 голосов
/ 14 июля 2020

Я думаю, в вашем коде не хватает нескольких вещей. Во-первых, вы не устанавливаете (irq), который является (Обработка событий) для Micro python (как вы можете видеть из docs или в их кодах Github. Кроме того, я не вижу, чтобы вы устанавливали буфер или что-то в этом роде, пожалуйста, исправьте примеры в соответствии с тем, что вы просите здесь . Хорошая работа, кстати.

...