【雕爺學(xué)編程】Arduino動(dòng)手做(96)---BT05藍(lán)牙4.0BLE模塊

37款傳感器與執(zhí)行器的提法,在網(wǎng)絡(luò)上廣泛流傳,其實(shí)Arduino能夠兼容的傳感器模塊肯定是不止這37種的。鑒于本人手頭積累了一些傳感器和執(zhí)行器模塊,依照實(shí)踐出真知(一定要?jiǎng)邮肿觯┑睦砟睿詫W(xué)習(xí)和交流為目的,這里準(zhǔn)備逐一動(dòng)手嘗試系列實(shí)驗(yàn),不管成功(程序走通)與否,都會(huì)記錄下來(lái)---小小的進(jìn)步或是搞不掂的問(wèn)題,希望能夠拋磚引玉。

【Arduino】168種傳感器模塊系列實(shí)驗(yàn)(資料代碼+仿真編程+圖形編程)
實(shí)驗(yàn)九十六:BT-05藍(lán)牙4.0BLE 模塊 串口引出 CC2541兼容HM-10 藍(lán)牙AT09模塊

0.jpg

CC2541
是一款針對(duì)低能耗以及私有 2.4GHz 應(yīng)用的功率優(yōu)化的真正片載系統(tǒng) (SoC) 解決方案。 它使得使用低總體物料清單成本建立強(qiáng)健網(wǎng)絡(luò)節(jié)點(diǎn)成為可能。 CC2541 將領(lǐng)先 RF 收發(fā)器的出色性能和一個(gè)業(yè)界標(biāo)準(zhǔn)的增強(qiáng)型 8051 MCU、系統(tǒng)內(nèi)可編程閃存存儲(chǔ)器、8kB RAM 和很多其它功能強(qiáng)大的特性和外設(shè)組合在一起。 CC2541 非常適合應(yīng)用于需要超低能耗的系統(tǒng)。 這由多種不同的運(yùn)行模式指定。 運(yùn)行模式間較短的轉(zhuǎn)換時(shí)間進(jìn)一步使低能耗變?yōu)榭赡? 。

01.jpg

CC2540/41特性
  (1)射頻
  –2.4GHz藍(lán)牙符合低能耗規(guī)范和私有的RF片載系統(tǒng)
  –支持250kbps,500kbps,1Mbps,2Mbps的制器內(nèi)核數(shù)據(jù)速率–出色的鏈路預(yù)算,不使用外部前段而支持長(zhǎng)距離應(yīng)用–高達(dá)0dBm的可編程輸出功率
  –出色的接收器靈敏度(1Mbps時(shí)為-94dBm),可選擇性,和阻擋性能
  –適合于針對(duì)符合世界范圍內(nèi)的無(wú)線電頻率調(diào)節(jié)系統(tǒng):ETSIEN300328和EN3004402類(歐洲),F(xiàn)CCCFR4715部分(美國(guó)),和ARIBSTD-T66(日本)

(2)布局
  –極少的外部組件–提供參考設(shè)計(jì)支持
  –6mm×6mm方形扁平無(wú)引腳(QFN)-40封裝
  –與CC2540引腳兼容(當(dāng)不使用USB或者I2C時(shí))(ADC)

(3)低功率
   –工作模式RX低至:17.9mA
  –工作模式TX(0dBm):18.2mA–功率模式1(4μs喚醒):270μs–功率模式2(睡眠定時(shí)器打開(kāi)):1μs–功率模式3(外部中斷):0.5μs

(4)工作模式下TPS62730兼容低功率
  –RX低至:14.7mA(3V電源)–TX(0dBm):14.3mA(3V電源)

(5)微控制器
  –具有代碼預(yù)取功能的高性能和低功率8051微控制器內(nèi)核
  –系統(tǒng)內(nèi)可編程閃存,128或者256KB
  –在所有功率模式下具有保持功能的8KBRAM
  –支持硬件調(diào)試
  –擴(kuò)展基帶自動(dòng)化,包括自動(dòng)確認(rèn)和地址解碼
  –所有功率模式中對(duì)所有相關(guān)寄存器的保持

(6)外設(shè)
  –功能強(qiáng)大的5通道直接內(nèi)存訪問(wèn)(DMA)
  –通用定時(shí)器(1個(gè)16位,2個(gè)8位)
  –紅外(IR)生成電路
  –具有捕捉功能的32kHz睡眠定時(shí)器
  –精確數(shù)字接收到的數(shù)字信號(hào)強(qiáng)度指示器(RSSI)支持
  –電池監(jiān)視器和溫度感應(yīng)器
  –含8通道和可配置分辨率的12位模數(shù)轉(zhuǎn)換器(ADC)
  –高級(jí)加密標(biāo)準(zhǔn)(AES)安全協(xié)處理器
  –2個(gè)功能強(qiáng)大的支持幾個(gè)串行協(xié)議的通用異步接收發(fā)器(UART)
  –23個(gè)通用I/O引腳(21×4mA,2×20mA)
  –I2C接口
  –2個(gè)具有LED驅(qū)動(dòng)功能的I/O引腳
  –安全裝置定時(shí)器
  –集成的高性能比較器(7)開(kāi)發(fā)工具
  –CC2541評(píng)估模塊工具包(CC2541EMK)
  –CC2541小型開(kāi)發(fā)工具包(CC2541DK-MINI)
  –SmartRF?軟件
  –提供IAR嵌入式Workbench?

01- (1).jpg

CC2540/41軟件特性
  (1)符合針對(duì)單模式藍(lán)牙低能耗(BLE)解決方案的符合藍(lán)牙4.0協(xié)議的堆棧器
  –完全功率優(yōu)化堆棧,包括控制器和主機(jī)
  –GAP-中心設(shè)備,外設(shè),或者廣播器(包括組合角色)
  –屬性協(xié)議(ATT)/通用屬性配置文件(GATT)
  –客戶端和服務(wù)器
  –L2CAP說(shuō)明
  (2)示例應(yīng)用和配置文件
  –針對(duì)GAP中心和外圍作用的一般應(yīng)用
  –距離臨近,加速計(jì),簡(jiǎn)單關(guān)鍵字,和電池GATT服務(wù)
  –BLE軟件棧內(nèi)支持更多應(yīng)用
  (3)多重配置選項(xiàng)
  –單芯片配置,允許應(yīng)用運(yùn)行在CC2541上
  –用于運(yùn)行在一個(gè)外部微處理器接口
  –BTool-用于評(píng)估、開(kāi)發(fā)和測(cè)試的視窗(Windows)PC應(yīng)用

應(yīng)用范圍
  ?2.4GHz藍(lán)牙低能耗系統(tǒng)
  ?私有的2.4GHz系統(tǒng)
  ?人機(jī)接口器件(鍵盤(pán),鼠標(biāo),遙控)
  ?體育和休閑設(shè)備1個(gè)HWI2C接口。
  ?移動(dòng)電話附件?消費(fèi)類電子產(chǎn)品

01-0.jpg

CC2540/41經(jīng)典應(yīng)用電路


03.jpg

CC2540/41

射頻部分: 支持BLE協(xié)議棧及私有2.4G RF片載系統(tǒng);

傳輸速率:250kbps,500kbps,1Mbps,2Mbps;

輸出功率:0dBm(支持可編程輸出功率)

接收靈敏度:-94dBm@1Mbps;

適合針對(duì)符合世界范圍內(nèi)的無(wú)線電頻率應(yīng)用系統(tǒng) 出色的鏈路預(yù)算,支持超長(zhǎng)距離應(yīng)用;

低功耗: 工作模式RX低至17.9mA; 工作模式TX(0dBm):18.2mA; 功率模式1(4us喚醒):270uA; 功率模式2(睡眠定時(shí)器開(kāi)):1uA; 功率模式3(外部中斷):0.5uA;

寬電源電壓范圍(2V-3.6V);

MCU: 具有代碼預(yù)取功能的高性能和低功耗8051內(nèi)核;

可編程Flash:CC2541F128 128KB 和CC2541F256 256KB;

支持硬件調(diào)試;

擴(kuò)展基帶自動(dòng)化,包括自動(dòng)確認(rèn)和低至解碼;

各個(gè)功率模式下,相關(guān)寄存器數(shù)據(jù)保持;

外設(shè): 功能強(qiáng)大的5通道直接內(nèi)存訪問(wèn)(DMA);

通用定時(shí)器(1個(gè)16bit,2 個(gè)8bit);

紅外生產(chǎn)電路;

32kHz 具有捕獲功能的睡眠定時(shí)器;

支持RSSI(數(shù)字信號(hào)強(qiáng)度指示器);

電池監(jiān)視器和溫度傳感器 8通道12位模數(shù)轉(zhuǎn)化器(可配置分辨率);

高級(jí)加密標(biāo)準(zhǔn)安全協(xié)處理器;

2個(gè)功能強(qiáng)大的支持多個(gè)串口協(xié)議的異步串口通信接口(UART);

23個(gè)通用I/O接口(214mA;220mA);

IIC 接口;

2個(gè)大電流I/O(直接驅(qū)動(dòng)LED);

安全裝置定時(shí)器;

集成的高性能比較器;

開(kāi)發(fā)工具: CC2541 評(píng)估模塊工具包(CC2541EMK); CC2541 小型開(kāi)發(fā)工具包(CC2541DK-MINI); SmartRF 軟件; 提供IAR嵌入式Workbench。

05.jpeg

BT05藍(lán)牙4.0BLE模塊亮點(diǎn):
1.超低待機(jī)功耗 90uA~400uA
2.超遠(yuǎn)連接距離32.8英尺/10米
3.超快反應(yīng)速度0.4秒
4.安卓、蘋(píng)果、PC、MAC全通用.
5.收發(fā)無(wú)字節(jié)限制,最高可達(dá)3K Bytes/秒
6.不需要做MFI
7.IOS系統(tǒng)完美支持
8.Android4.3系統(tǒng)完美支持.
9.主從一體模塊,具透?jìng)鳌⑦h(yuǎn)控、PIO采集三種功能,通過(guò)AT指令集進(jìn)行切換和設(shè)置,
與您之前用過(guò)的藍(lán)牙串口模塊一樣,在不改PCB和下位機(jī)程序的情況下輕松升級(jí)到藍(lán)4.0!

06.jpg

模塊電原理圖


09 (1).jpg
09-.jpg
10 (1).jpg

BT05藍(lán)牙4.0BLE模塊特點(diǎn):

使用條件:蘋(píng)果手機(jī)限定:4S及以上型號(hào),系統(tǒng)版本iOS6及以上

安卓手機(jī)限定:系統(tǒng)為4.3版本及以上,手機(jī)藍(lán)牙版本為4.0。

1、核心模塊使用BT05從模塊,引出接口包括VCC,GND,TXD,RXD,STATE。預(yù)留LED狀態(tài)輸出腳,單片機(jī)可通過(guò)該腳狀態(tài)判斷藍(lán)牙是否已經(jīng)連接,

2、LED指示藍(lán)牙連接狀態(tài),閃爍表示沒(méi)有藍(lán)牙連接,常亮表示藍(lán)牙已連接并打開(kāi)了端口,STATE腳輸出高電平為已連接,其他狀態(tài)為低電平。

3、設(shè)置模塊為主模式:模塊已經(jīng)為軟件設(shè)置主從模塊,通過(guò)串口發(fā)送AT+ROLE1(回車或者加\r\n),返回OK,則表示設(shè)置成功,此時(shí)模塊LED燈進(jìn)入快閃。主模塊連接從模塊需要通過(guò)AT指令進(jìn)行連接(詳情請(qǐng)參照BT05 AT指令集)。

4、底板3.3V LDO,輸入電壓3.6~6V,輸入電壓禁止超過(guò)7V!

5、接口電平3.3V,可以直接連接各種單片機(jī)(51,AVR,PIC,ARM,MSP430等),5V單片機(jī)也可直接連接,無(wú)需MAX232也不能經(jīng)過(guò)MAX232!

6、空曠地有效距離7-10米,超過(guò)10米也是可能的,但不對(duì)此距離的連接質(zhì)量做保證

7、配對(duì)以后當(dāng)全雙工串口使用,無(wú)需了解任何藍(lán)牙協(xié)議,但僅支持8位數(shù)據(jù)位、1位停止位、無(wú)奇偶校驗(yàn)的通信格式,這也是最常用的通信格式,不支持其他格式。

8、在未建立藍(lán)牙連接時(shí)支持通過(guò)AT指令設(shè)置波特率、名稱、配對(duì)密碼,設(shè)置的參數(shù)掉電保存。藍(lán)牙連接以后自動(dòng)切換到透?jìng)髂J?/p>

9、體積小巧(3.57cm*1.52cm),工廠貼片生產(chǎn),保證貼片質(zhì)量。并套透明熱縮管,防塵美觀,且有一定的防靜電能力。

10、該鏈接為從機(jī),從機(jī)能與各種帶藍(lán)牙功能的電腦、藍(lán)牙主機(jī)、大部分帶藍(lán)牙的手機(jī)、PDA、PSP等智能終端配對(duì),從機(jī)之間不能配對(duì)。

08 (1).jpg

模塊接線
輸入電壓:3.3V/5V 只需要一組電源供電。
內(nèi)置電平轉(zhuǎn)換功能。
如果用5.0V MCU與藍(lán)牙模塊通訊,5.0V電源端口供電,RX TX 邏輯電平5V
如果用3.3V MCU與藍(lán)牙模塊通訊,3.3V電源端口供電,RX TX 邏輯電平3.3V
RX,藍(lán)牙模塊串口接收端與MCU的TXD連接。
TX,藍(lán)牙模塊串口發(fā)送端與MCU的RXD連接。
GND,地端電源負(fù)極
3.3V,電源端3.3V電源
5V,電源端5V電源

13.jpg

模塊使用注意事項(xiàng)
MLT-BT05 4.0 藍(lán)牙模塊工作在 2.4G 無(wú)線頻段,應(yīng)盡量避免各種因素對(duì)無(wú)線收發(fā)
的影響,注意以下幾點(diǎn):
1、包圍藍(lán)牙模塊的產(chǎn)品外殼避免使用金屬,當(dāng)使用部分金屬外殼時(shí),應(yīng)盡量讓模塊天線部分遠(yuǎn)離金屬部分。
2、產(chǎn)品內(nèi)部金屬連接線或者金屬螺釘,應(yīng)盡量遠(yuǎn)離模塊天線部分。
3、模塊天線部分應(yīng)靠載板 PCB 四圍放置,不允許放置于板中,且天線下方載板銑空,與天線平行的方向,不允許鋪銅或走線。直接把天線部分直接露出載板,也是比較好的選擇。
4、模塊下方盡量鋪大片 GND,走線盡量往外圍延伸。
5、建議在基板上的模塊貼裝位置使用絕緣材料進(jìn)行隔離,例如在該位置放一個(gè)
整塊的絲印(TopOverLay)。

小常識(shí)(非常重要)
TXD:發(fā)送端,一般表示為自己的發(fā)送端,正常通信必須接另一個(gè)設(shè)備的RXD。
RXD:接收端,一般表示為自己的接收端,正常通信必須接另一個(gè)設(shè)備的TXD。
正常通信時(shí)候本身的TXD永遠(yuǎn)接設(shè)備的RXD!
自收自發(fā):正常通信時(shí)RXD接其他設(shè)備的TXD,因此如果要接收自己發(fā)送的數(shù)據(jù)顧名思義,也就是自己接收自己發(fā)送的數(shù)據(jù),即自身的TXD直接連接到RXD,用來(lái)測(cè)試本身的發(fā)送和接收是否正常,是最快最簡(jiǎn)單的測(cè)試方法,當(dāng)出現(xiàn)問(wèn)題時(shí)首先做該測(cè)試確定是否產(chǎn)品故障,也稱回環(huán)測(cè)試。

14 (1).jpg

藍(lán)牙4.0BLE
藍(lán)牙發(fā)展至今經(jīng)歷了8個(gè)版本的更新,1.1、1.2、2.0、2.1、3.0、4.0、4.1、4.2。那么在1.x~3.0之間的我們稱之為傳統(tǒng)藍(lán)牙,4.x開(kāi)始的藍(lán)牙我們稱之為低功耗藍(lán)牙也就是藍(lán)牙ble,當(dāng)然4.x版本的藍(lán)牙也是向下兼容的。android手機(jī)必須系統(tǒng)版本4.3及以上才支持BLE API。低功耗藍(lán)牙較傳統(tǒng)藍(lán)牙,傳輸速度更快,覆蓋范圍更廣,安全性更高,延遲更短,耗電極低等等優(yōu)點(diǎn)。(現(xiàn)在的穿戴設(shè)備都是使用BLE藍(lán)牙技術(shù)的)
傳統(tǒng)藍(lán)牙與低功耗藍(lán)牙通信方式也有所不同,傳統(tǒng)的一般通過(guò)socket方式,而低功耗藍(lán)牙是通過(guò)Gatt協(xié)議來(lái)實(shí)現(xiàn)。

主要優(yōu)點(diǎn)
低功耗,使用標(biāo)準(zhǔn)有機(jī)電池,可運(yùn)行一年乃至數(shù)年,成本低,可以完全實(shí)現(xiàn)兼容,速度支持1M的數(shù)據(jù)傳輸,可以最大程度的減少4G的串?dāng)_,更加智能,最大可以在3毫秒內(nèi)完成數(shù)據(jù)的傳輸,安全性采用加密算法,會(huì)有數(shù)據(jù)包的加密和認(rèn)證。所以藍(lán)牙4.0的優(yōu)點(diǎn)就是3種規(guī)格于一體,包括傳統(tǒng)藍(lán)牙的技術(shù),與3.0的版本最大的區(qū)別就是功耗更低了,4.0的版本比老版本的功耗低了90%,隨著藍(lán)牙技術(shù)由手機(jī),游戲,電腦,汽車等傳統(tǒng)領(lǐng)域向物聯(lián)網(wǎng),醫(yī)療等新領(lǐng)域的發(fā)展,對(duì)用戶的要求也就會(huì)越來(lái)越高,4.0的版本強(qiáng)化了數(shù)據(jù)傳輸?shù)募夹g(shù),又更注重了低功耗的性能。

15.jpg
17.jpg
18.jpeg
19.jpeg

實(shí)驗(yàn)開(kāi)源代碼

/*

【Arduino】168種傳感器模塊系列實(shí)驗(yàn)(資料代碼+仿真編程+圖形編程)

實(shí)驗(yàn)九十六:BT-05藍(lán)牙4.0BLE 模塊 串口引出 CC2541兼容HM-10模塊

1、實(shí)驗(yàn)項(xiàng)目:Arduino 調(diào)試源代碼

2、實(shí)驗(yàn)接腳:

TXD = D0

RXD = D1

GND = GND

VCC = 3.3V

*/



void setup(){

Serial.begin(9600);

}



void loop(){

  while(Serial.available())

  {

    char c=Serial.read();

    if(c=='A')

      {

      Serial.println("Hello I am eagler8");

      }

  }

}

實(shí)驗(yàn)串口返回情況


20.jpg

實(shí)驗(yàn)開(kāi)源圖形編程(Mind+、Mixly、編玩邊學(xué))


21.jpg

實(shí)驗(yàn)場(chǎng)景圖


26.jpg

這幾天在網(wǎng)上一直搜索藍(lán)牙4.0BLE的電腦端調(diào)試軟件和手機(jī)上調(diào)試app,也去了微信平臺(tái)查詢相關(guān)調(diào)試小程序,感覺(jué)比傳統(tǒng)藍(lán)牙(2.0,3.0)模塊要復(fù)雜一些,老是不得要領(lǐng).......


27.jpg
28 (1).jpg
29.jpg
30 (1).jpg
31.jpg

實(shí)驗(yàn)開(kāi)源代碼

/*

【Arduino】168種傳感器模塊系列實(shí)驗(yàn)(資料代碼+仿真編程+圖形編程)

實(shí)驗(yàn)九十六:BT-05藍(lán)牙4.0BLE 模塊 串口引出 CC2541兼容HM-10模塊

1、實(shí)驗(yàn)項(xiàng)目:通過(guò)BLE藍(lán)牙模塊與Arduino通信控制LED

2、實(shí)驗(yàn)接腳:

CC2541模塊與Uno:

VCC——3.3V

GND——GND

TXD——RX

RXD——TX

*/



#include <SoftwareSerial.h>

char c=' ';

const byte led=13;



void setup() {

  Serial.begin(9600);

  Serial.println("BT is ready!");

  pinMode(led, OUTPUT);

}



void loop(){

  if(Serial.available())

  {

    c=Serial.read();

    Serial.println("Got input:");

    Serial.println(c);

//1的ASCII為49,0的ASCII為48

    if(c==49)

    {

      Serial.write("Serial--13--high");

      digitalWrite(13, HIGH);

    }

    if(c==48)

    {

    Serial.write("Serial--13--low");

    digitalWrite(13, LOW);

    }

  }

}

實(shí)驗(yàn)串口返回情況


32.jpg
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容