2014年7月29日 星期二

HC-05 主從一體藍牙模組初體驗 01 ( 硬體接線、從動角色 )

網頁最後修改時間:2014/07/29

關於 "HC-05 主從一體藍牙模組初體驗" 共分為三篇,裡面說明了 HC-05 處於主動角色與從動角色時如何與手機配對與搜尋周邊藍牙裝置的方法,裡面同樣也針對使用到的 AT 指令做深入的探討與實機演示,並且提供了兩個 Android 手機 APP 軟體做為測試之用 ( 一個可由 Play store 下載;另一個則是經過修改 ( 購買套件者提供原始碼 ),擁有 SPP 藍牙 Server 與 Client 功能的 APP ),這幾篇網頁相關連結如下:
*******************************************************************************
這篇網頁是 "HC-05 主從一體藍牙模組初體驗" 的第一篇。主要是說明 HC-05 的硬體接線方式,如何進入 AT 模式以及訊息傳送模式;從動角色與手機 SPP 藍牙 Client 端的連接;以及相關 AT 指令說明與演示。
熟悉 HC-05 ( 主從一體 ) 藍牙模組的 AT 指令模式和藍牙傳送模式切換的方法,以及 AT 指令的操作說明非常重要。藉由安裝藍牙 APP 軟體來輔助測試 HC-05 的傳送模式,可以很方便的在手機以及 HC-05 藍牙模組之間傳送訊息或是自訂按鈕訊息,這軟體在 HC-05 處於從動角色下,可以作為 SPP 藍牙 Client 端是一個非常好用的軟體,強烈建議安裝 ! ( 若沒有手機的話,就請安裝其他系統可用的藍牙 ( SPP ) 軟體來做測試 )


Note: 因為不能直接使用手機以及 HC-05 實際的藍牙位址,因此本網頁使用了下面假設的位址址,( 即便如此,所有的輸出資料都是使用實機測試得到的 ):
  •      Xperia P 手機:12:34:56:78:9A:BC
  •  HC-05 藍牙模組:01:22:03:04:55:06



硬體接線與說明:

首先拿出套件中的下面這幾樣東西,
若不熟悉上面這幾樣東西的話,一定要先上賣場看這些零件的說明,然後照下面這張照片中的接線將兩者接起來。照這樣的接線,HC-05 就是處在配對 / 待配對的狀態,只要雙方配對成功,就可以經由接在 HC-05 那一端的串列介面傳送文字訊息給遠端的藍牙裝置 ( @SPP )。
待配對 / 配對, 文字訊息傳送模式接線

再從套件中拿出 "一條杜邦線" 和 "易剝單芯線",依照下面的照片將線再接上去
AT 指令模式接線

眼尖的應該會看到板子旁邊出現藍色的光線,這是因為我預先插上電源了 ! 但先不要急著插上電源,下面有一些進入到下一階段需要先知道的東西。


** HC-05 藍牙模組出廠預設重要參數

HC-05 藍牙模組內部的參數,在出貨時的預設值與使用 AT+ORGL 回復預設狀態有所不同。

出貨時的預設值,最重要的是串列介面參數以及藍牙裝置名稱 ( 其他就與回復預設狀態時相同 ):
  •         裝置名稱 ( AT+NAME ):HC-05
  • 串列介面參數 ( AT+UART ):9600 bps, 1 stop bit, None parity bit

而使用 AT+ORGL\r\n 指令回復預設值,則至少下面這幾個參數值會被重新設置為 ( HC-05 AT Command.pdf, page 3...4;HC-05指令集.pdf, page 2 ) 
  • (1)裝置類型 ( Device type, AT+CLASS ) : 0 
  • (1)詢問存取碼 ( Inquire access code, AT+IAC ) : 0x009e8b33 
  • 模組工作模式 ( Module work mode, AT+ROLE ) : 從機模式 ( Slave Mode )
  • 連接模式 ( Connection mode, AT+CMODE ) : 0, 指定專用藍芽連接模式 ( Connect to the Bluetooth device specified )
  • 串列介面參數 ( Serial parameter, AT+UART ) : 鮑率 ( Baud rate) : 38400 bits/s; 停止位元 ( Stop bit) : bit; 同位元檢查 ( Parity bit) : None.   
  • 藍牙配對密碼 ( Passkey, AT+PSWD ) : 1234
  • 藍牙裝置名稱 ( Device name, AT+NAME ) : H-C-2010-06-01
  • ... ... ...
(1) 裝置類型與查詢訪問碼除了資料手冊上附錄的說明之外,最詳細的請參考 Bluetooth.org 網頁上的說明 ( 英文中文 )


** USB 轉 TTL 串列介面線驅動程式的安裝

使用這條線可以很方便的使用 USB 埠來設置、測試 HC-05 藍牙模組的功能,也可以直接使用串列介面軟體來傳送文字訊息到遠端藍牙裝置。

這條線可以方便的在 Windows 自動安裝驅動程式和在 Linux 下使用,但在 Windows 8 作業系統中會自動安裝到錯誤的驅動程式,因此請參考雲端硬碟中 Win8 驅動程式安裝方法來做安裝。
USB 轉 TTL 串列介面線驅動程式資料夾


進入 HC-05 的 AT 指令模式:

要與 HC-05 做溝通,不管在哪種模式下都需要序列介面軟體,在套件的雲端硬碟中我們提供SSCOM 作為序列介面通訊的軟體,好處是可以將指令存放在右邊的 EXT 表格中待下次使用
藍牙入門套件 softeware 目錄

SSCOM 是可攜式軟體,解開壓縮後就可以使用,毋須安裝 !

打開 SSCOM 之前,將 USB 先插上去,然後到裝置管理員確認 USB 轉 TTL 序列介面線的 COM Port 位址,被指定到哪一個號碼並記下來。

要注意到的是:剛剛我們已經預先裝上了所有的杜邦線 ( 5 根 ),最後一根插上去的是 KEY。KEY 插上的時機決定了我們要使用的鮑率速度是要多少
  • 通電前就插上去:此時鮑率要選擇 38400 bps,且要回到文字訊息傳送模式,必須要斷開 KEY 再重新通電。
  • 通電之後再插上去:此時鮑率要選擇 9600 bps ( 如果沒變更預設值的話 ),且要回到文字訊息傳送模式,斷開 KEY 的連接就可以了;要用再接上。
另外還有一點重要的,就是在傳送 AT 指令的後面一定要加 \r\n ( 也就是 "SendNew" 選項前面要記得打勾 ),不然不會動作,且指令不分大小寫
KEY 在通電前就為高準位的通訊設定
KEY 在通電後再設為高準位的通訊設定

不管是使用哪一個序列介面通訊軟體,與 HC-05 的通訊參數設定就上面那兩個視窗裡面的東西,可以自己試試 !

接下來將會時常用到 AT 指令,可以打開雲端硬碟中的 AT 指令集在一旁輔助。


手機連線到HC - 05 @ 從機角色 (模式):

要用手機連線到 HC-05 必須要先安裝藍牙 SPP 軟體 ( 這會使得手機變成 SPP 藍牙 Client 端,可以去搜尋與配對 HC-05 @ 從動角色 ),兩者連線成功之後就可以互相傳送文字訊息,因此接下來請安裝下面這個 Android APP ( 或安裝自己喜歡的也行 )

藍牙串口助手增強版 ( Bluetooth spp pro ) Android App Play Store
藍牙串口助手增強版畫面

值得一提的是:使用藍牙串口助手成功連接到 HC-05 藍牙模組之後,有一個鍵盤模式 ( 上圖最右下角 ),進入之後可自行定義 12 個按鈕的輸出值,每個按鈕有 3 個狀態 ( 按下、保持按住和釋放 ),每種狀態可送出一條指令,不用寫 Android 手機程式就可以用來傳送藍牙指令控制外部裝置。

通電後再將 KEY 設為高準位,就進入到 AT 指令模式 ( 9600 bps ),由於 HC-05 須設定為從機,因此輸入下面指令

AT+ROLE? ( 或 at+role? ) 看藍牙模組回的是什麼 ?

+ROLE:0
OK
+ROLE:1
OK
+ROLE:2
OK
Slave ( 從動角色 )
Mater ( 主動角色 )
Slave –loop ( 迴歸迴路 )

AT+ROLE?, 詢問 HC-05 現在的主從模式是哪一種 ?

因為預設是從機,所以回應不意外是 +ROLE:0 和 OK 兩行字。

但若是出現意外不是為 0 的情況時,那就必須輸入指令做修改。為了達到這目的,預先修改成主機模式 AT+ROLE=1 ( 回應 OK ),再輸入 AT+ROLE=0 ( 回應 OK ) 修改成從機模式,此時輸入訊問模式指令 AT+ROLE? 看回應是否為 +ROLE:0 和 OK 兩行字,確認設定為從機模式是否成功,如下圖為一系列的指令輸入結果。
重新設定為從機模式

** 手機端連線 HC-05

打開手機裡的 藍牙串口助手 pro APP,進入畫面之後,若是沒有開啟藍牙程式會訊問是否要開啟;若已經開啟則開始掃描附近的藍牙 SPP 裝置
正在掃描藍牙裝置

掃描完藍牙裝置之後,按下畫面中的 HC-05 ( 或是修改的名字 ) ,會進入另一個更詳細的預連線藍牙裝置訊息的視窗
完成藍牙裝置掃描

在這個視窗中,會列出預連接設備的藍牙訊息,這些訊息對於了解藍芽設備很有幫助,而這些訊息在下面的指令演示以及實機測試時也會特別說明。

按下 "連接設備" 按鈕連接設備
預連接藍芽設備的資訊視窗

一旦連接成功之後,就會在同一個視窗下方出現三個可選擇的工作通訊按鈕。因為我的目的只是為了要互傳訊息,因此選用 "字節流模式" 工作模式進入另一個畫面
藍芽設備連接成功出現選擇工作通訊模式

如果研究過藍牙的話,應該對於 UUID 不陌生。由畫面上 Service's UUID 所出現的 UUID 號碼:00001101-0000-1000-00805f9b34fb,其中

BASE_UUID:00000000-0000-1000-8000-00805F9B34FB
Service Class Name ( 服務類名稱 ):0x1101

由 Bluetooth SIG 已定義的 Profile 其 UUID 產生方法,可得到 UUID :

Profile UUID = BASE_UUID + ( uuid16 << 96 )
             = 00001101-0000-1000-00805F9B34FB
uuid16 : Protocol Identifiers, Service Class Name

更多各種服務協議可到 Bluetooth.org Service Discovery ( 或服務發現 ) 網頁查看。


在字節流模式畫面,在 "輸入待發送的數據" 欄位填入欲發送的訊息
字節流模式畫面

為了區別是由手機發送到 SSCOM 或是由 SSCOM 發送到手機,手機端輸入 i am xperia p 再按下欄位右邊像是郵件的圖示,發送這段文字訊息出去
字節流模式畫面 - 傳送字串出去

SSCOM 收到由手機傳送過來的訊息之後,就會顯示在文字訊息區域裡。
接收到手機串過來的字串 i am xperia p

接著由 SSCOM 發送文字訊息 i am sscom 到手機端。輸入字串後,按下 "SEND" 按鈕送出
發送字串 i am sscom 出去

無意外的 ! 手機裡會看到由 SSCOM 傳送的 i am sscom 字串顯示在剛剛的字節流模式視窗裡
字節流模式畫面 - 接收遠端傳送的字串 i am sscom

以上就是 HC-05 硬體接線以及進入到 AT 模式與文字傳送模式的使用說明。

接著下來,就是進入到 AT 指令的說明與實機演示,更重要的是學習如何讓 HC-05 主動連接到手機端 ( 或其他 SPP 藍牙 Server ) 的步驟,欲知詳情請繼續下一篇的 HC-05 藍牙模組初體驗第二篇。

**************************************
HC-05 主從一體藍牙模組初體驗,第二篇

HC-05 主從一體藍牙模組初體驗 02 ( AT 指令說明與使用演示、主動角色 )

******************************************************************



<< 部落格藍牙相關網頁連結 >>

<<樹莓派編輯環境設置系列文章>>

沒有留言:

張貼留言

留言屬名為"Unknown"或"不明"的用戶,大多這樣的留言都會直接被刪除掉,不會得到任何回覆!

發問問題,請描述清楚你(妳)的問題,別人回答前不會想去 "猜" 問題是什麼?

不知道怎麼發問,請看 [公告] 部落格提問須知 - 如何問問題 !