14. [Micropython]TPYBoard F407 手机远程控制板载LED(蓝牙通信)

版权声明:翻译整理属于TPYBoard,转载时请以超链接形式标明文章原始出处和作者信息及本声明

14.1. 实验目的

  • 学习在PC机系统中扩展简单I/O 接口的方法。
  • 进一步学习编制数据输出程序的设计方法。
  • 通过 TPYBoard F407开发板实现与蓝牙模块之间的串口通信。

14.2. 所需元器件

  • HC-06 蓝牙模块 一个
  • TPYBoard F407 开发板一块
  • 数据线一条
  • 杜邦线若干

14.3. HC-06蓝牙模块的介绍

(HC-06蓝牙模块是主从一体的蓝牙串口模块。简单的说,当蓝牙设备与蓝牙设备配对连接成功后,我们可以忽视蓝牙内部的通信协议,直接将蓝牙当做串口用。 当建立连接,两设备共同使用一通道也就是同一串口,一个设备发送数据到通道中,另一个设备便可以接收到通道中的数据。

14.4. 程序设计

我们使用TPYBoard F407的串口2连接HC-06蓝牙模块。使用手机打开蓝牙与HC-06蓝牙模块进行配对、连接。当它们之间成功建立链接后, 手机与TPYBoard F407之间就建立了一个透明的数据传输通道,HC-06蓝牙模块是手机和开发板之间的数据中转站,我们不用去管蓝牙的通信协议是什么, 只需要把想要发送的数据通过串口给HC-06蓝牙模块就可以,HC-06蓝牙模块会将数据原封不动的传递给手机;同样,手机发送的数据传递给HC-06蓝牙模块后, HC-06蓝牙模块再通过串口将数据原封不动的传递给开发板。所以对于开发板来说,我们只需要进行串口的读写操作即可。

14.5. 硬件的连接

TPYBoard F407与HC-06蓝牙模块的接线方法,如下:

TPYBoard F407 HC-06
GND GND
5V +5V
PC7 TX
PC6 RX

接线OK后,编写main.py。

14.6. 源代码

import pyb
from pyb import UART

#定义HC-05/06蓝牙模块连接的串口
#串口编号6 波特率9600 收发数据超时时间100ms
uart = UART(6,9600,timeout=100)

while True:
    #判断串口缓存区是否有数据
    if uart.any() > 0:
        #读取全部数据,返回的是bytes
        data = uart.read()
        #字节数组转字符串
        id = data.decode()
        #字符串转整型
        id = int(id)
        #板载的LED编号是1 or 2,判断数据是否符合,防止程序异常
        if id == 1 or id == 2:
            pyb.LED(id).toggle()

14.7. 效果演示

1、开发板上电后,你会看到蓝牙模块上的LED快速闪烁,说明当前没有蓝牙设备连接。

2、手机打开【蓝牙串口调试助手】,搜索并连接蓝牙设备,HC-06蓝牙模块的蓝牙名称是HC-06,配对密码是1234。

3、连接成功后,手机发送1或2之间的数字,板载对应的LED就会进行亮/灭操作。

蓝牙串口调试助手(Android版) 点击下载