# HC-05 藍牙模組 ![](https://i.imgur.com/9JpT3IC.png) ## 基礎小知識 > ### HC-05 藍牙模組 > * 支援藍牙 2.1 + EDR 規範 > * 為主 ∕ 從( master / slave )一體型,出廠預設為「從端」 > * 未連接裝置時,HC-05板子上的LED將快速閃爍 > * 進入AT模式時,LED將慢速閃爍(兩秒閃爍一次) > * HC-05的AT命令,採用38400bps的速率傳送 > > 技術規格 > * 供電電壓:5 V > * 發射功率:3 dBm > * 可調輸出功率:-4 ~ 6 dBm > * 藍牙 2.0 帶 EDR, 2 Mbps ~ 3 Mbps 調制度 > * 內置 2.4 GHz 天線, 用戶無需調整天線 > * 外置 8M bit FLASH > * 可選 PIO 控制、標準 HCI 端口( UART or USB ) 、具有跳頻技術 > * USB協議:Full Speed USB1.1, Compliant With 2.0 > * 工作電流:配對中 : 30 ~ 40 mA、配對完畢未通信 : 2 ~ 8 mA、通信中:8 mA 無休眠 > * 通訊距離:空曠條件下 10 M ,正常使用環境 8 M 左右 > * 適用: GPS 導航系統、水電煤氣抄表系統、工業現場採控系統、可以與藍牙筆電,電腦加藍牙適配器、PDA > > 預設參數 > * UART:9600,0,0 (鮑率, 停止位元, 同位位元) > * NAME:HC-05 (藍牙模組名稱) > * ROLE:0 (藍牙角色:0=從/1=主) > * CMODE:1 (配對模式:0=指定配對/1=任意配對) > * PSWD:1234 (配對密碼) ## 簡單實作 ### 接腳說明 ![](https://i.imgur.com/EnEeged.png) ### 接線圖 ![](https://i.imgur.com/erTzA88.png) ### 程式碼 ``` c = #include <SoftwareSerial.h> // 引用程式庫 // 定義連接藍牙模組的序列埠 SoftwareSerial BT(8, 9); // 接收腳, 傳送腳 char val; // 儲存接收資料的變數 void setup() { Serial.begin(9600); // 與電腦序列埠連線 Serial.println("BT is ready!"); // 設定藍牙模組的連線速率 BT.begin(38400); } void loop() { // 若收到「序列埠監控視窗」的資料,則送到藍牙模組 if (Serial.available()) { val = Serial.read(); BT.print(val); } // 若收到藍牙模組的資料,則送到「序列埠監控視窗」 if (BT.available()) { val = BT.read(); Serial.print(val); } } ``` ## 進入 AT 模式 #### 讓HC-05模組進入AT模式,需要在通電之前,先按著板子上的開關,再通電,即可讓此藍牙模組進入AT模式(通電之後,即可放開開關)。如此,一通電,它就進入AT模式 ## AT 指令集(分大小寫) * 測試指令:AT --> OK * 重啟模組:AT+RESET --> OK * 查詢版本:AT+VERSION? --> +VERSION:<版本號> OK * 初始模組:AT+ORGL --> OK * 藍牙地址:AT+ADDR? --> +ADDR:<地址> OK * 設置名稱:AT+NAME=<名稱> --> OK * 查詢名稱:AT+NAME? --> +NAME:<名稱> OK ( 查詢名稱 ) * 設置密碼:AT+PSWD=<密碼> --> OK ( 設置密碼 ) * 查詢密碼:AT+PSWD? --> +PSWD:<密碼> OK ( 查詢密碼 ) * 設置參數:AT+UART=<鮑率>,<停止位元>,<同位位元> --> OK * 查詢參數:AT+UART? --> +UART:<鮑率>,<停止位元>,<同位位元> OK > 註1:HC-05模組的AT指令需要加上 \n \r 行結尾,下圖是執行“AT+VERSION”命令,查看韌體版本的結果: > ![](https://i.imgur.com/YbVzbpt.png) > 註2:HC-05模組修改識別名稱的AT命令是:”AT+NAME=識別名稱” > ![](https://i.imgur.com/x7llERW.png) > > 註3:AT+NAME? 此AT指令很可能沒有回饋,直接設置名稱就好了 > > 註4:AT+UART? 的初始值為( 9600,0,0 )