因为Raspberry Pi Pico没有WIFI功能也没有蓝牙(无论是普通还是低功耗的BLE), 如果要和它建立无线通信必须外加蓝牙模块或者WIFI模块. 通过和外加模块之间的串口数据交换控制外设. 这里我们先使用蓝牙控制一个5V继电器, 继电器模块控制着一盏灯.
1. 硬件连接
继电器的VCC连接Pico 的Pin40(VBUS 即5V Out), 蓝牙模块VCC也连接这个VBUS引脚, GND互联, 继电器的信号端连接GPIO3, 蓝牙HC05的RX和GPIO0(Tx), TX和GPIO1(Rx)连接. 电灯或者LED灯连接继电器的常闭端.
这种HC05蓝牙模块是通用的蓝牙模块, 不是低功耗的BLE.
手头缺一个继电器,用LED暂代啦.
2. 编写代码
from machine import UART,Pin
rxData = bytes()
uart1 = UART(0,baudrate=9600,tx=Pin(0),rx=Pin(1))
relay = Pin(3,Pin.OUT)
relay.value(0)
uart1.write("Starting Application\r\n")
while True:
if uart1.any() > 0:
rxData = uart1.read(1);
if "1" in rxData:
uart1.write("Turning ON\r\n")
print("Turning ON\r\n")
relay.value(1)
elif "0" in rxData:
uart1.write("Turning OFF\r\n")
print("Turning OFF\r\n")
relay.value(0)
其中 uart1 = UART(0,baudrate=9600,tx=Pin(0),rx=Pin(1)) 就是定义蓝牙连接的串口的.
这个程序的测试需要用软件连接蓝牙模块的, 可以使用使用手机的"蓝牙调试器"这个APP, 通过这个蓝牙软件发送1, 则开灯, 发送 0 则关灯.
这里的串口发送0和1用于切换亮灭.
3. 用继电器
买了一个低电平触发的5V继电器做实验. 但是按照上面的连接图测试结果只能接通继电器, 但是不能切断. 仔细研究发现, 单片机的引脚及时拉到高电平也才3.3V,不足以把继电器切断. 为此又使用了电平转换模块TXS0108E模块,
接线图 TXS0108 的A端电压范围不超过3.3V, 所以连接单片机的Pin36, GND连接起来. 还有OE引脚通常要接单片机的IO口, 高电平有效, 这里连接单片机的GPIO2. 模块TXS0108 B端电压可以承受范围比较大, 所以接5V端, 和继电器的5V连接, GND互通. 这里把继电器的 IN端连接单片机 的GPIO2, 然后修改程序如下
from machine import UART,Pin
rxData = bytes()
uart1 = UART(0,baudrate=9600,tx=Pin(0),rx=Pin(1))
OE = Pin(3,Pin.OUT)
OE.value(1)
relay = Pin(2,Pin.OUT)
relay.value(0)
uart1.write("Starting Application\r\n")
while True:
if uart1.any() > 0:
rxData = uart1.read(1);
if "0" in rxData:
uart1.write("Turning ON\r\n")
print("Turning ON\r\n")
relay.value(1)
elif "1" in rxData:
uart1.write("Turning OFF\r\n")
print("Turning OFF\r\n")
relay.value(0)
这里就实现了用蓝牙遥控继电器开关强电电路的目的. 这里的继电器没有连接电器.
版权声明:本文为CSDN博主「leotzf」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_45616112/article/details/122038314
暂无评论