本文章的目的是用手机连接蓝牙模块,给蓝牙模块发送简单的命令,控制Pico板上的LED灯的开关。
从某多平台买了一个蓝牙模块HC-06,它的模样:
这种蓝牙芯片应该是比较旧的型号,但学习技术原理,用它应该够了。从网上看了HC-05和HC-06模块的主要区别,好像HC-05支持主从机,而HC-06只能用作从机,也就是只能用手机或PC连接这个蓝牙模块,基本符合我的需求。
HC-06有六个引脚,商家说最左、最右的引脚好像无效,只看中间的4根。VCC接3.3V,GND接地,TXD是发送,RXD是接收,标准的串口连接方式。
再来看树莓派Pico的引脚官方图:
树莓派Pico只支持2组串口连接,为了面包板上连线方便,我准备用GP16和GP17,这里GP16(TX)接蓝牙的RXD,GP17(RX)接蓝牙的TXD。
突然发现芯片上面一排字,Power:3.6V-6V,我接到了3.3V输出口,也能工作。实际连线:
现在可以给Pico加电了,HC-06背后的一个小灯开始闪烁。现在需要在手机上安装“蓝牙串口助手”APP,用手机连接到蓝牙模块,发送指令。
在APP的Dashboard里搜索蓝牙设备,可以发现附近的所有蓝牙设备,我这里显示的名称为“HC-05”,连接它。
我定制了几个按钮,“开”按钮的发送命令是on,“关”按钮的发送命令是off,还测试了一下中文情况。
可以开始写MicroPython程序了:
import machine
import utime
uart = machine.UART(0, baudrate=9600, tx=machine.Pin(16), rx=machine.Pin(17))
print(uart)
led = machine.Pin(25, machine.Pin.OUT)
while True:
if uart.any():
cmd = uart.readline().decode()
print(cmd)
if cmd == 'on':
led.value(1)
if cmd == 'off':
led.value(0)
utime.sleep(0.1)
程序里输出了串口信息,我这里的显示是:
UART(0, baudrate=9600, bits=8, parity=None, stop=1, tx=16, rx=17, txbuf=256, rxbuf=256, timeout=0, timeout_char=2, invert=None)
如果对异步串口的基本概念不了解,还要补一下课,感觉这个视频教程讲得还不错。
现在拿起手机,点击屏幕上自己设置的几个按钮,就可以控制Pico板上的LED亮、灭了。
最后的视频:https://v.qq.com/x/page/c3303ouulgi.html
手机连接蓝牙,树莓派Pico连接蓝牙模块,用手机控制LED小灯的开关
推荐阅读:
树莓派Pico开发系列文章