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串口通信測試,便成功實現!