1 设置
USB转TTL-蓝牙模块
vcc-vcc
gnd-gnd
rx-rx (你没看错我也没打错 就是这个)
tx-tx
两种进入设置模式
1 先按住蓝牙按键 然后上电 进入2秒一闪 (不要使用)
波特率 默认38400
发消息选择 追加新行 回车
这个模式下串口改变波特率没反应
-------------------------------------
2 先上电,按下按键,还是快速闪烁模式
波特率 默认38400
发消息选择 追加新行 回车
这个模式修改了波特率,就得用真实的波特率而不是38400
设置蓝牙基本信息
AT+NAME=XXX 修改蓝牙模块名称为XXX
AT+ROLE=0 蓝牙模式为从模式 主模式会自动搜索连接
AT+CMODE=1 蓝牙连接模式为任意地址连接模式,也就是说 该模块可以被任意蓝牙设备连接
AT+PSWD=1234 蓝牙配对密码为1234
AT+UART=9600,0,0 蓝牙通信串口波特率为9600,停止位1位, 无校验位
2 连接通信
单片机-蓝牙模块
VCC-VCC
GND-GND
RX-TX (恢复正常了 不同于设置模式的连接)
TX-RX
然后手机连接蓝牙
波特率 默认38400
密码 默认 1234
名字 自己修改
下载手机蓝牙调试助手
讲道理正常的话 假设蓝牙名字改成1 就会出现1
问题
但是 第一次不显示 我直接刷新列表 挨着手动连接一边只显示mac的名字蓝牙 没反应??
拔掉蓝牙的tx 和 rx的线 只上电
手机重新在列表挨着连接可能的蓝牙
成功!
蓝牙名字自动由mac变为真实的名字 1
之后再次插上 tx和tx进行发送消息通信
之后直接直接插着RX和TX直接上电,手机直接连接这个蓝牙就行了
(连接着RX和TX可能初始化的消息会扰乱蓝牙初始化而导致失败)
我已经修改了波特率
手机蓝牙
电脑串口
树莓派连接
树莓派好像不容易直接看到名字,需要知道蓝牙mac
手机蓝牙调试助手
https://blog.csdn.net/ReCclay/article/details/104671734
一、树莓派的蓝牙与HC-05配对
打开树莓派的VNC桌面,单击右上角的蓝牙图标,选择Add Device
进而,进入蓝牙搜索界面,稍等片刻,便可以查找到对应的HC-05模块,点击Pair进行配对
按照提示,输入蓝牙配对密码
之后若出现下图所示错误,可直接忽略。
sudo apt-get install python-serial
打开树莓派的命令行,输入hcitool scan,扫描蓝牙(附带MAC地址)
接着输入,sudo rfcomm connect 1 98:D3:32:71:30:7A (其中1可以自定义为其他数字【如果被占用的话】,98:D3:32:71:30:7A这个是HC-05对应的MAC地址),即可连接成功。
这种连接方式,不能关闭当前终端。 并且当拔掉蓝牙的时候,还需要重新输入指令连接。那么有没有自己绑定的办法呢? 当然有的,在终端输入sudo rfcomm bind 1 98:D3:32:71:30:7A,相当于在/dev目录下注册了一个名字为rfcomm1的设备。当拔掉蓝牙时,对应的设备号rfcomm1依然存在。 下次插上蓝牙可以直接在程序中使用rfcomm1设备,无需再次注册。 当然解绑也有对应的命令,这里不再赘述,有兴趣可以参考这里
再打开一个终端,输入sudo ls /dev -l
,会发现多了rfcomm1
,就是我们刚刚注册的HC-05设备。
二、安装 python-serial 库
树莓派蓝牙传输数据可以用python的pyserial模块
三、编写python程序
1、PC发送数据并在PC回显
终于到了,最激动人心的环节了 — 测试。
- USB-TTL连接HC-05
- 打开PC端的串口助手,设置波特率为9600.
树莓派上,编写4.py
,代码如下所示。
# -*- coding: utf-8 -* import serial import time def main(): while True: # 获得接收缓冲区字符 count = ser.inWaiting() if count != 0: # 读取内容并显示 recv = ser.read(count) print recv # 清空接收缓冲区 ser.flushInput() # 必要的软件延时 time.sleep(0.1) if __name__ == '__main__': try: # 打开串口 ser = serial.Serial('/dev/rfcomm1', 9600) if ser.isOpen == False: ser.open() # 打开串口 ser.write(b"Raspberry pi is ready") main() except KeyboardInterrupt: if ser != None: ser.close()
树莓派运行4.py
文件,同时开启PC端串口助手,并注意观察接收框变化
-
上面PC端串口助手成功打印
Raspberry pi is ready
,说明树莓派发送到PC端没得问题。 -
接着测试树莓派接收PC端的消息
注意:当ctrl+C结束掉程序的时候,此时HC-05蓝牙会断开连接。无需惊慌,无需重新配对,因为我们绑定蓝牙为rfcomm1
设备,所以直接再次运行程序,变会自动连接。哪怕拔掉蓝牙,再重新插上,依旧会自动连接配对!
至此,树莓派4B蓝牙与HC-05串口通信测试,便成功实现!