蓝牙调试


 

1 设置 

https://blog.csdn.net/ReCclay/article/details/79572109?ops_request_misc=%7B%22request_id%22:%22158338240019725256716544%22,%22scm%22:%2220140713.130056874..%22%7D&request_id=158338240019725256716544&biz_id=0&utm_source=distribute.pc_search_result.none-task

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串口通信测试,便成功实现!

 

参考


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM