藍牙調試


 

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