【樹莓派4B學習】十三、樹莓派4B藍牙與HC-05串口通信測試

  • 藍牙模塊使用HC-05,波特率9600,插入PC,使用串口助手收發消息
  • 樹莓派使用自身藍牙與HC05配對。

HC-05的配置這裏不再贅述,可參考這裏


一、樹莓派的藍牙與HC-05配對

打開樹莓派的VNC桌面,單擊右上角的藍牙圖標,選擇Add Device

在這裏插入圖片描述

進而,進入藍牙搜索界面,稍等片刻,便可以查找到對應的HC-05模塊,點擊Pair進行配對

在這裏插入圖片描述
按照提示,輸入藍牙配對密碼
在這裏插入圖片描述

之後若出現下圖所示錯誤,可直接忽略。

在這裏插入圖片描述

打開樹莓派的命令行,輸入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模塊

sudo apt-get install python-serial

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


參考

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章