藍 芽 模 組

蓝牙模块是指集成蓝牙功能的芯片基本电路集合,用于无线网络通讯,大致可分为三大类型:数据传输模块远程控制模块等。

1.什么是蓝牙模组

藍 芽 模 組

(来源于网络)

蓝牙模块,是一种集成蓝牙功能的PCBA板,用于短距离无线通讯,按功能分为蓝牙数据模块和蓝牙语音模块。蓝牙模块是指集成蓝牙功能的芯片基本电路集合,用于无线网络通讯,大致可分为三大类型:数据传输模块、蓝牙音频模块、蓝牙音频+数据二合一模块等等。一般模块具有半成品的属性,是在芯片的基础上进行过加工,以使后续应用更为简单。

2.蓝牙模组原理

蓝牙信号的收发采用蓝牙模块实现。此蓝牙模块是公司最近推出的遵循蓝牙V1.1标准的无线信号收发芯片,主要特性有:具有片内数字无线处理器DRP(DigitalRadioProcessor)、数控振荡器,片内射频收发开关切换,内置ARM7嵌入式处理器等。接收信号时,收发开关置为收状态,射频信号从天线接收后,经过蓝牙收发器直接传输到基带信号处理器。

基带信号处理包括下变频和采样,采用零中频结构。数字信号存储在RAM(容量为32KB)中,供ARM7处理器调用和处理,ARM7将处理后的数据从编码接口输出到其他设备,信号发过程是信号收的逆过程,此外,还包括时钟和电源管理模块以及多个通用I/O口,供不同的外设使用。它的主机接口可以提供双工的通用串口,可以方便地和PC机的RS232通信,也可以和DSP的缓冲串口通信。

3.蓝牙模组作用

1.无线PC外设

2.无线游戏手柄

3.无线音频


4.远程控制

5.电子消费品

6.家庭自动化
 

版权声明:网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。侵权投诉

延續上一篇貼文,本文將補充藍牙模組的AT命令模式與設定方法。

藍牙模組的兩種操作模式

  • 自動連線(automatic connection),又稱為透通模式( transparent communication)
  • 命令回應(order-response),又稱為AT模式(AT mode)

平時使用的「自動連線」模式只是把RxD腳傳入的資料,轉成藍牙無線訊號傳遞出去;或者將接收到的無線資料,從TxD腳傳給Arduino,模組本身不會解讀資料,也不接受控制。

操控藍牙模組的指令統稱AT命令(AT-command)。AT命令並非透過藍牙無線傳輸,而是模組的TxD和RxD接腳。藍牙模組只有在AT模式,才能接收AT命令。

HC-06模組在與其他裝置連線之前,都處於AT模式狀態;換句話說,只要一通電,HC-06模組就進入AT模式。HC-06的AT命令,採用9600bps的速率傳送。

藍 芽 模 組

通電後,在尚未與裝置連線之前,HC-06板子上的LED將不停地閃爍;一旦與其他藍牙裝置連線(如:手機或電腦),LED將維持點亮狀態。

讓HC-05模組進入AT模式,需要在通電之前,先把KEY腳位(藍牙模組本身的34腳)接在高電位(通常指3.3V,但是接5V也行)。如此,一通電,它就進入AT模式。

藍 芽 模 組

在尚未與裝置連線之前,HC-05板子上的LED將快速閃爍;若進入AT模式,LED將慢速閃爍(兩秒閃爍一次)。HC-05的AT命令,採用38400bps的速率傳送。

筆者購買的HC-05板子上面有一個按鍵,根據廠商提供的電路,這個按鍵接在藍牙模組的34腳:

藍 芽 模 組

所以先按著板子上的開關,再通電,即可讓此藍牙模組進入AT模式(通電之後,即可放開開關)。

HC-06模組的AT命令

根據廠商提供的AT命令說明書,筆者購買的HC-06藍牙模組支援下列AT指令(這個模組規定,AT命令一定要大寫,有些模組不區分大小寫):

藍 芽 模 組

常用的AT指令有兩個:

  • AT+NAME:設定模組的識別名稱。
  • AT+PIN:更改配對密碼。假如你不想讓其他人輕易地連接到你的藍牙裝置,可以透過這個AT命令修改配對密碼。

HC-06模組的預設名稱就是“HC-06”,於多人、多組藍牙一起實驗的場合,在電腦或手機上探索藍牙裝置時,將會發現許多叫做“HC-06”的裝置。

為了方便實驗者連接到自己的藍牙設備,可以事先用AT命令替每一個模組設定不同的名字,例如,bt01, bt02, bt03,…(註:一般最多允許32個英∕數字)。

透過Arduino的序列埠設定藍牙模組的AT命令

除了使用現成的USB轉TTL序列模組來設定AT命令(請參閱「執行AT命令(AT-command)修改藍牙模組的資料傳輸速率」),也能使用Arduino板來操作。

本節將撰寫一個簡易程式,把我們在電腦上敲入的AT命令,轉發給接在Arduino上的藍牙模組。

藍 芽 模 組

同樣地,藍牙模組的回應訊息也會轉發到電腦的序列埠。請編譯底下的程式並上傳到Arduino板:

#include <SoftwareSerial.h>   // 引用程式庫

// 定義連接藍牙模組的序列埠
SoftwareSerial BT(8, 9); // 接收腳, 傳送腳
char val;  // 儲存接收資料的變數

void setup() {
  Serial.begin(9600);   // 與電腦序列埠連線
  Serial.println("BT is ready!");

  // 設定藍牙模組的連線速率
  // 如果是HC-05,請改成38400
  BT.begin(9600);
}

void loop() {
  // 若收到「序列埠監控視窗」的資料,則送到藍牙模組
  if (Serial.available()) {
    val = Serial.read();
    BT.print(val);
  }

  // 若收到藍牙模組的資料,則送到「序列埠監控視窗」
  if (BT.available()) {
    val = BT.read();
    Serial.print(val);
  }
}

在HC-05與HC-06藍牙模組上執行AT命令

程式上傳完畢後,開啟Arduino的「序列埠監控視窗」,HC-06模組的AT指令不需要加上行結尾字元,下圖是執行“AT+VERSION”命令,查看韌體版本的結果:

藍 芽 模 組

下圖是執行“AT+NAMEsix”,將模組的識別名稱改成“six”的結果:

藍 芽 模 組

HC-05模組的AT指令需要加上\n\r行結尾,下圖是執行“AT+VERSION”命令,查看韌體版本的結果:

藍 芽 模 組

根據廠商的AT命令參考手冊,此HC-05模組有個查閱識別名稱的命令:“AT+NAME?”,然而,我手上這個模組對此命令沒有反應。但是從Windows 7的藍牙「新增裝置」畫面看得出,此藍牙模組的預設名稱是“HC-05”:

藍 芽 模 組

HC-05模組修改識別名稱的AT命令是:”AT+NAME=識別名稱”,設定成功後,它將傳回“OK”,將模組識別名稱改成“five”的操作畫面如下:

藍 芽 模 組

再次於Windows 7系統執行藍牙「新增裝置」,可看到模組的名稱已經改變了:

藍 芽 模 組

延伸閱讀

  • HC-05與HC-06藍牙模組補充說明(一)
  • HC-05與HC-06藍牙模組補充說明(二):連接電路
  • 執行AT命令(AT-command)修改藍牙模組的資料傳輸速率
  • 改造藍芽立體聲無線耳機