esp32 micropython ble_center初体验
2017-07-231.2万
AI 快速预览详细
本例程介绍了如何使用ESP32和Bluno主控板通过MicroPython实现BLE通信。首先列出了所需的硬件和软件,然后提供了详细的代码示例。通过扫描、连接和读写操作,实现了ESP32与Bluno之间的数据传输。整个过程适合零基础新手,无需复杂前置技能即可完成。
|
本例程所需å�Ÿæ–™ 硬件 1. FireBeetle-ESP32主æ�¿ 2. Bluno主æ�¿ 软件 1. uPyCraft esp32端代ç �如下: [mw_shl_code=python,true]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) [/mw_shl_code] 1. 使用uPyCraft下载到æ�¿å�上并è¿�行 ![]() 2. BLE开始扫æ��å¹¶è¿�æ�¥è®¾å¤‡ ![]() 3. æˆ�功è¿�æ�¥ä¸Šè®¾å¤‡ ![]() 4. 打开串å�£è°ƒè¯•工具,å�‘BLUNO串å�£å�‘é€�æ•°æ�® ![]() 5ã€�Esp32收到的数æ�® ![]() 这个例程在è¿�æ�¥è¿‡ç¨‹ä¸æœ‰æ—¶ä¼šå‡ºç�°ä¸�稳定ç�°è±¡ï¼Œæœ›å�„ä½�大ç¥�指æ£ã€‚ 该例程ä¸ä½¿ç”¨çš„ä»�机模å�—是bluno,å�„ä½�师兄å�¯ä»¥ä½¿ç”¨å…¶ä»–çš„ble模å�—,å�ªéœ€è¦�在esp32程åº�ä¸çš„æ›´æ”¹ç›¸åº”的设备å��以å�Šéœ€è¦�监å�¬çš„uuidå�³å�¯ã€‚ |










0;31mE (996959) BT: btm_sec_clr_temp_auth_service() - no dev CB
[0m
[0;31mE (996959) BT: bta_gattc_conn_cback() - cif=4 connected=0 conn_id=4 reason=0x0008[0m
[0;31mE (996959) BT: Device not found
[0m
[0;31mE (996959) BT: bta_gattc_mark_bg_conn unable to find the bg connection mask for: ff:ff:97:01:cd:64[0m