esp32 micropython ble_esp32 micropython ble_center初体验

[Python] 纯文本查看 复制代码import gc

import sys

import network as n

import gc

import time

b = n.Bluetooth()

found = {}

complete = True

connectname = ""

mac=b'\x00\x00\x00\x00\x00\x00'

def bcb(b,e,d,u):

global complete

global found

global connectname

global mac

if e == b.CONNECT:

print("CONNECT")

elif e == b.DISCONNECT:

print("DISCONNECT")

elif e == b.SCAN_RES:

if complete:

found = {}

adx, name,ssic= d

if connectname == str(name):

mac = adx

print(d)

if adx not in found:

found[adx] = name

else:

print('else')

print(d)

elif e == b.SCAN_CMPL:

ok = True

print("Scan Complete")

complete = True

print ('\nFinal List:')

for adx, name in found.items():

print ('Found:' + ':'.join(['%02X' % i for i in adx]), name)

print('connect ',name)

else:

print ('Unknown event', e,d)

def cb (cb, event, value, userdata):

print('charcb ', cb, userdata, ' ', end='')

if event == b.READ:

print('Read')

return 'ABCDEFG'

elif event == b.WRITE:

print ('Write', value)

elif event == b.NOTIFY:

print ('Notify', value)

def conn(bda):

b.ble_settings(adv_is_scan_rsp = False)

conn = b.connect(bda)

i=0

while not conn.is_connected():

i=i+1

time.sleep(.1)

print ('Connected')

time.sleep(2) # Wait for services

service = ([s for s in conn.services() if s.uuid()[0:4] == b'\x00\x00\xDF\xB0'] + [None])[0]

if service:

print(service.chars())

char = ([c for c in service.chars() if c.uuid()[0:4] == b'\x00\x00\xDF\xB1'] + [None])[0]

char.callback(cb)

if char:

char.callback(cb)

if i == 10:

print('time out')

break

return conn

def onScanComplete():

time.sleep(2)

def set_connetname(name):

return "b'%s'" % name

def scan():

global connectname

connectname = set_connetname("Bluno")

b.ble_settings(adv_is_scan_rsp = True)

b.scan_start(5)

time.sleep(10)

b.callback(bcb)

scan()

print('mac:',mac)

conn(mac)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值