esp32 micropython ble初体验
2017-07-212.1万
AI 快速预览详细
本文介绍了如何使用FireBeetle-ESP32主板和MicroPython实现BLE功能。所需硬件包括FireBeetle-ESP32主板和支持BLE功能的手机(如iPhone 5s)。软件方面需要uPyCraft-0.22和lightblue。通过提供的代码示例,可以实现BLE的连接、读写数据等功能。该教程适合零基础新手入门,详细步骤包括代码下载、设备连接和数据读写。
|
micropython有大神已经移植了ble,但是他们还没有merge完成。楼主便迫不及待的想使用了,自己搞了micropython-esp32来维护,用来同步这些新鲜功能吧。 已经将代码上传到了服务器上,大家更新的时候烧录的就是最新的了。(已经测试,之前的其他功能不受影响。但ble感觉还不是特别稳定) ble就不多介绍了,低功耗蓝牙,可以完成速率不快的数据传输 本例程所需原料 硬件 1. FireBeetle-ESP32主板 2. 支持BLE功能的手机(楼主用的是iphone 5s) 软件 1. uPyCraft-0.22 2. lightblue(苹果商店自行下载) esp32端代码如下 代码如下 [mw_shl_code=python,true]import gc import sys import network as n import gc import time b = n.Bluetooth() found = {} complete = True def bcb(b,e,d,u): global complete global found if e == b.CONNECT: print("CONNECT") b.ble_settings(adv_man_name = "firebeetle-esp32", adv_dev_name="firebeetle-esp32") b.ble_adv_enable(True) elif e == b.DISCONNECT: print("DISCONNECT") 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) def gatts(): s1 = b.Service(0xaabb) s2 = b.Service(0xDEAD) c1 = s1.Char(0xccdd) c2 = s2.Char(0xccdd) c1.callback(cb, 'c1 data') c2.callback(cb, 'c2 data') s1.start() s2.start() b.ble_settings(adv_man_name = "firebeetle-esp32", adv_dev_name="firebeetle-esp32") b.ble_adv_enable(True) b.callback(bcb) gatts() while(True): pass[/mw_shl_code] 1. 使用uPyCraft下载到板子上并运行 ![]() 2. 然后打开手机的lightblue软件,发现已经扫描到了设备 ![]() 3. 点击设备,连接成功,可以发现AABB和DEAD 两个service ![]() 4. 点击任意的Char(这里我们使用CCDD),Read可以从esp32读到数据(ascii码0x41-0x47对应的字符就是A-G) ![]() 5. Write可以向esp32写入数据(写入abc(ascii码为0x61 0x62 0x63)) ![]() 6. esp32接收到啦 ![]() 嘿嘿,是不是很爽,esp32端一个简单的ble_peripheral (也可以称为gattserver)就实现了 更多内容,明天再更新了 |
-
connect.png (154.1 KB, 下载次数: 4162)












b = network.Bluetooth()
b.CONNECT(83880225336413)
完成连接后应该怎么做....完全懵逼 了(连都没连上 NameError: name '83880225336413' is not defined)
我在出差,回家后试试,感谢分享!