ESP32学习microPython之(4)--蓝牙应用1--控制LED

注:对于ESP32开源技术感兴趣的可以加群,我们一起探索交流学习,群号:782473783。群名:ESP32开源技术交流群。

前言


       前面已经有多篇文章将在ESP32上使用MicroPython进行开发,并且我们已经看到了其开发的便捷性。但是前面的MicroPython版本有个不小的缺陷,就是无法使用蓝牙模块。ESP32的一个巨大优势就是将蓝牙和WIFI集成到了一块芯片上,没有蓝牙功能无疑是个巨大的损失。
       目前我根据最新国外大神的更新,编译了一个支持Bluetooth库的MicroPython固件,今天这篇文章就简单介绍一下如何使用蓝牙模块。


一、固件更新

最新固件的获取请在群里联系,可以提供尝鲜版本固件。

固件更新下载方法请参考前面的博文。

二、例程

这里放一个简单蓝牙收发的例程。

from machine import Pin
import os
import bluetooth
bt = bluetooth.Bluetooth()
bt.active(1)
bt.advertise(100, 'ESP32_BLE_01')

LED=Pin(2, Pin.OUT) #port 2 is used for led
LED.value(0)

tx = bluetooth.Characteristic('6E400002-B5A3-F393-E0A9-E50E24DCCA9E', bluetooth.FLAG_READ|bluetooth.FLAG_NOTIFY)
rx = bluetooth.Characteristic('6E400003-B5A3-F393-E0A9-E50E24DCCA9E', bluetooth.FLAG_WRITE)
s = bt.add_service('6E400001-B5A3-F393-E0A9-E50E24DCCA9E', [tx, rx])

def callback(char, data):
    print("Get command:",data)
    if(data == b'10'):      
      LED.value(0)
      print("LED OFF")
      tx.write("LED is OFF Now!\n\r")
    if(data == b'11'):
      LED.value(1)
      print("LED ON")
      tx.write("LED is ON Now!\n\r")
    
rx.on_update(callback)


       整个例程中创建了一个蓝牙的service,包含一个监听读取的Characteristic和一个写入的Characteristic。当收到字节‘11’的时候点亮LED,收到‘10’的时候关闭LED,并向控制台返回LED的状态。
       当蓝牙程序运行后,可以在手机上使用蓝牙调试软件连接名为“ESP32_BLE_01”的蓝牙设备,在发送框里输入10或者11。我使用是FreeBlue,在appstore上面直接下载。调试界面如下:
 

ESP32学习microPython之(4)--蓝牙应用1--控制LED_第1张图片

调试界面

当然其他蓝牙APP也可以使用,如nRF Connect和LightBlue。

总结


从例程中可以看出蓝牙开发变得很简单了,在上面如何构建使用就看你自己的想法了。

你可能感兴趣的:(MicroPython,ESP32)