语言 micropython_MicroPython蓝牙BLE例程实操(一)

本文介绍了如何在MicroPython中利用蓝牙BLE接口进行通信,重点是ESP32平台上的实现。通过一个实例展示了如何让ESP32作为蓝牙BLE外设设备广播并连接到中心设备,如手机,进行数据交换。使用uPyCraft作为交互工具,并配合Nordic的nRF Connect软件进行测试。后续教程将进一步解析代码细节。
摘要由CSDN通过智能技术生成

蓝牙作为一种短距通信系统,无疑是十分优秀,也是十分成功的,特别是随着近年物联网的发展,各种智能设备广泛应用,蓝牙BLE以其鲁棒性、低功耗、低成本等特点,逐渐成为各种智能设备的标准配置。如今,借助于ESP32平台,MicroPython中也能够使用蓝牙BLE协议进行通信。这对MicroPython平台而言,自然丰富了其生态,增强了其技能,反过来讲,蓝牙BLE能够在MicroPython中得以集成,借助Python语言的易用性,亦将大大降低其入门门槛。

MicroPython中目前只实现了蓝牙BLE的低阶接口。所谓低阶接口,是指其只实现了蓝牙BLE架构链路层中所涉及的广播者/扫描者/中心设备和外设设备的功能接口,也实现了属性协议层中的客户端和服务器的功能接口,但更上层的各种具体的应用配置规范(Profile),则没有实现,甚至广播时的广播包的内容,都需要自己进行组织。这对于一个蓝牙系统,当然不够直接与直观,但考虑到MicroPython作为一个通用平台,且运行于资源有限的微控制器/单片机上,其只负责最底层功能接口的构建,用户可以基于此进行具体场景,具体应用的实现,又是可以理解的。如果过多的涉及具体设备的业务场景,对于不需要蓝牙功能的用户来说,反而是一种负担,消耗了不必要的资源。

下面,我们以一个实例来看看在MicoPython中具体怎样操作蓝牙BLE的各个低阶接口。此实例运行于ESP32平台,其作为一个蓝牙BLE外设设备,可首先进行广播以供中心设备,比如手机,进行连接。一旦建立起连接,其可以周期性的向中心设备上报消息,反过来,中心设备也可以向其发送消息,其会将接收到的消息简单打印出来。这里,手机上运行Nodic的nRF Connect软件进行操作。

完整代码如下:

import bluetoothimport randomimport structimport timefrom ble_advertising import advertising_payloadfrom micropython import const_IRQ_CENTRAL_CONNECT = const(1)_IRQ_CENTRAL_DISCONNECT = const(2)_IRQ_GATTS_WRITE = const(3)_FLAG_READ = const(0x0002)_FLAG_WRITE_NO_RESPONSE = const(0x0004)_FLAG_WRITE = const(0x0008)_FLAG_NOTIFY = const(0x0010)_UART_UUID = bluetooth.UUID("6E400001-B5A3-F393-E0A9-E50E24DCCA9E")_UART_TX = (    bluetooth.UUID("6E400003-B5A3-F393-E0A9-E50E24DCCA9E"),    _FLAG_READ | _FLAG_NOTIFY,)_UART_RX = (    bluetooth.UUID("6E400002-B5A3-F393-E0A9-E50E24DCCA9E"),    _FLAG_WRITE | _FLAG_WRITE_NO_RESPONSE,)_UART
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值