雖然已經考回母校北科大,但目前還是中正大學的教學助理,負責物聯網應用系統的實作課程,個人的背景知識沒有很雄厚,也是邊做邊學。
這次的實作課進度是藍芽模組,有鑒於前人留下的課程簡報有些許的不足,我自己在備課中也把這次的上課簡報重修製作,過程中有學到一些東西,順手寫在部落格留個記錄。
※是說還沒寫今年的考試心得,有空的時候會寫上來,不過今年的考試是裸考,如果沒有基礎的請不要參考,你會因此落榜;有基礎的人而且想考的人可以稍微參考一下,我會寫快速準備考試的小技巧(當然這還牽扯到投考組合,有機會再分享)。
正文開始:
藍芽(Bluetooth)
一種無線技術標準,用來讓固定與行動裝置,在短距離間交換資料,以形成個人區域網路(PAN)。
其使用短波特高頻(UHF)無線電波,經由2.4至2.485 GHz的ISM頻段來進行通訊。1994年由電信商愛利信(Ericsson)發展出這個技術。
它最初的設計,是希望建立一個RS-232資料線的無線通訊替代版本。它能夠連結多個裝置,克服同步的問題。
Arduino常用的藍芽模組有HC-05和HC-06,以下為其長相:
藍芽模組HC-05 |
藍芽模組HC-05背面 |
其Pin角都一樣,總共有六根,分別是:
● EN( KEY )
● EN( KEY )
● VCC
● GND
● TXD
● RXD
● STATUE
又HC-05和HC-06有些差異:
1. 藍芽模組有主從之分( Master & Slave) ,HC-05可為Master 或 Slave、但是HC-06只可為Slave
2. 藍芽模組有兩種操作模式
(1.) 自動連線(automatic connection),又稱透通模式,預設Baud為9600。→實作2和3用此模式
(2.) 命令回應(order-response),又稱AT模式,預設Baud為38400。→實作1用此模式
3. HC-05支援的指令高達35條;HC-06支援的指令只有少少5條。
藍芽模組上有LED燈,也有相對代表的意思:
1. 連續快閃:藍芽等待配對中。
2. 連續快閃2下後停1下:藍芽已配對成功,運作中。
3. 連續慢速閃爍:藍芽已進入AT模式,準備設定。
HC-05支援之指令集:
編號
|
指令
|
功能
|
1
|
AT
|
Test UART Connection
|
2
|
AT+RESET
|
Reset Device
|
3
|
AT+VERSION
|
Query firmware version
|
4
|
AT+ORGL
|
Restore settings to Factory Defaults
|
5
|
AT+ADDR
|
Query Device Bluetooth Address
|
6
|
AT+NAME
|
Query/Set Device Name
|
7
|
AT+RNAME
|
Query Remote Bluetooth Device’s Name
|
8
|
AT+ROLE
|
Query/Set Device Role
|
9
|
AT+CLASS
|
Query/Set Class of Device CoD
|
10
|
AT+IAC
|
Query/Set Inquire Access Code
|
11
|
AT+INQM
|
Query/Set Inquire Access Mode
|
12
|
AT+PSWD
|
Query/Set Pairing Passkey
|
13
|
AT+UART
|
Query/Set UART parameter
|
14
|
AT+CMODE
|
Query/Set Connection Mode
|
15
|
AT+BIND
|
Query/Set Binding Bluetooth Address
|
16
|
AT+POLAR
|
Query/Set LED Output Polarity
|
17
|
AT+PIO
|
Set/Reset a User I/O pin
|
18
|
AT+MPIO
|
Set/Reset multiple User I/O pin
|
19
|
AT+MPIO?
|
Query User I/O pin
|
20
|
AT+IPSCAN
|
Query/Set Scanning Parameters
|
21
|
AT+SNIFF
|
Query/Set SNIFF Energy Savings Parameters
|
22
|
AT+SENM
|
Query/Set Security & Encryption Modes
|
23
|
AT+RMSAD
|
Delete Authenticated Device from List
|
24
|
AT+FSAD
|
Find Device from Authenticated Device
List
|
25
|
AT+ADCN
|
Query Total Number of Device from
Authenticated Device List
|
26
|
AT+MRAD
|
Query Most Recently Used Authenticated
Device
|
27
|
AT+STATE
|
Query Current Status of the Device
|
28
|
AT+INIT
|
Initialize SPP Profile
|
29
|
AT+INQ
|
Query Nearby Discoverable Devices
|
30
|
AT+INQC
|
Cancel Search for Discoverable Devices
|
31
|
AT+PAIR
|
Device Pairing
|
32
|
AT+LINK
|
Connect to a Remote Device
|
33
|
AT+DISC
|
Disconnect from a Remote Device
|
34
|
AT+ENSNIFF
|
Enter Energy Saving mode
|
35
|
AT+EXSNIFF
|
Exit Energy Saving mode
|
HC-06支援之指令集:
編號
|
指令
|
功能
|
1
|
AT
|
Test UART Connection
|
2
|
AT+VERSION
|
Query firmware version
|
3
|
AT+NAME
|
Query/Set Device Name
|
4
|
AT+PIN
|
Set PASSKEY
|
5
|
AT+BAUD#
|
Set Baud Rate
|
編號
|
指令
|
功能
|
1
|
AT+BAUD1
|
Baud Rate 設為1200
|
2
|
AT+BAUD2
|
Baud Rate 設為2400
|
3
|
AT+BAUD3
|
Baud Rate 設為4800
|
4
|
AT+BAUD4
|
Baud Rate 設為9600
|
5
|
AT+BAUD5
|
Baud Rate 設為19200
|
6
|
AT+BAUD6
|
Baud Rate 設為38400
|
7
|
AT+BAUD7
|
Baud Rate 設為57600
|
8
|
AT+BAUD8
|
Baud Rate 設為115200
|
9
|
AT+BAUD9
|
Baud Rate 設為230400
|
10
|
AT+BAUDA
|
Baud Rate 設為460800
|
11
|
AT+BAUDB
|
Baud Rate 設為921600
|
12
|
AT+BAUDC
|
Baud Rate 設為1382400
|
【實作1 藍芽模組之AT Mode】
最基本的Arduino藍芽模組實驗是將藍芽模組進入AT模式,我們實作採用的是HC-05的藍芽模組,當然HC-06也可以做,指令的多寡不影響這次的實作,此時可以在Arduino IDE的Serial Monitor下指令去查詢或是設定藍芽模組:
HC-05 AT模式 接線圖 |
結果 |
實作步驟:
Step 1. 先接好Arduino主版,不可以連接藍芽模組,進行燒錄。
Step 2. 連接藍芽模組,這時候藍芽模組的燈會慢速閃爍,代表藍芽已進入AT Mode。
Step 3. 開啟Monitor下指令。
【實作2 使用Blue term APP 控制LED】
接線圖 |
實作步驟:
Step 1. 先去Google play下載”Blue term” APP
Step 2. 不可接藍芽模組燒錄程式碼
Step 3. 接上藍芽模組,藍芽不停閃爍其燈等待配對
Step 4. 設定Blue term
Blue term之設定
Blue term APP 開啟 |
進入Preferences設定,把Local echo和Allow insecure connections打勾 |
開啟Connect
Device,案下Scan for devices,會找到你的藍芽模組 (藍芽模組名稱可用AT Mode的“ AT+NAME ?”查詢) |
根據程式碼內容,案下1為LED開啟,案下0為LED關閉 (LED的開啟關閉在Arduino主版上) |
Code:
※也可以使用『SoftwareSerial』函式去模擬TX / RX端口,此範例是直接使用硬體上的TX/RX端口,所以可以不必使用SoftwareSerial函式,此一函式只限定在不使用硬體本身的Digital Pin 1(TX) & Pin 0(RX),專門提供給其他的Digital Port去使用軟體(SoftwareSerial)函式去模擬TX/RX端口
【實作3 藍芽和APP傳訊息】
藍芽和APP傳訊息 接線圖 |
實作步驟:
Step 1. 不可接藍芽模組燒錄程式碼
Step 2. 接上藍芽模組,藍芽不停閃爍其燈等待配對
Step 3. 使用Blue term連上藍芽模組HC-05
Step 4. 開啟Serial Monitor傳訊息,手機可顯示
Code:
※此實做不可以只宣告一個Serial的Baud Rate,這會導致藍芽晶片跟電腦判斷使用Baud Rate的錯誤,在通常的情況下,是藍芽使用此Baud Rate並直接進入透通模式(測出來的),變成藍芽可以跟電腦溝通,但是電腦沒辦法跟藍芽溝通;所以針對Serial本身要宣告一個Baud Rate給電腦外,藍芽也要一個Baud Rate做切割,就如同使用『Serial Monitor』要針對Code中的Baud Rate做調整,調整成跟Code相同的Baud Rate才可以顯示。
沒有留言:
張貼留言