37款傳感器與執行器的提法,在網絡上廣泛流傳,其實Arduino能夠兼容的傳感器模塊肯定是不止這37種的。鑒於本人手頭積累了一些傳感器和執行器模塊,依照實踐出真知(一定要動手做)的理念,以學習和交流為目的,這里准備逐一動手嘗試系列實驗,不管成功(程序走通)與否,都會記錄下來---小小的進步或是搞不掂的問題,希望能夠拋磚引玉。
【Arduino】168種傳感器模塊系列實驗(資料代碼+仿真編程+圖形編程)
實驗九十六:BT-05藍牙4.0BLE 模塊 串口引出 CC2541兼容HM-10 藍牙AT09模塊
CC2541
是一款針對低能耗以及私有 2.4GHz 應用的功率優化的真正片載系統 (SoC) 解決方案。 它使得使用低總體物料清單成本建立強健網絡節點成為可能。 CC2541 將領先 RF 收發器的出色性能和一個業界標准的增強型 8051 MCU、系統內可編程閃存存儲器、8kB RAM 和很多其它功能強大的特性和外設組合在一起。 CC2541 非常適合應用於需要超低能耗的系統。 這由多種不同的運行模式指定。 運行模式間較短的轉換時間進一步使低能耗變為可能 。

CC2540/41特性
(1)射頻
–2.4GHz藍牙符合低能耗規范和私有的RF片載系統
–支持250kbps,500kbps,1Mbps,2Mbps的制器內核數據速率–出色的鏈路預算,不使用外部前段而支持長距離應用–高達0dBm的可編程輸出功率
–出色的接收器靈敏度(1Mbps時為-94dBm),可選擇性,和阻擋性能
–適合於針對符合世界范圍內的無線電頻率調節系統:ETSIEN300328和EN3004402類(歐洲),FCCCFR4715部分(美國),和ARIBSTD-T66(日本)
(2)布局
–極少的外部組件–提供參考設計支持
–6mm×6mm方形扁平無引腳(QFN)-40封裝
–與CC2540引腳兼容(當不使用USB或者I2C時)(ADC)
(3)低功率
–工作模式RX低至:17.9mA
–工作模式TX(0dBm):18.2mA–功率模式1(4μs喚醒):270μs–功率模式2(睡眠定時器打開):1μs–功率模式3(外部中斷):0.5μs
(4)工作模式下TPS62730兼容低功率
–RX低至:14.7mA(3V電源)–TX(0dBm):14.3mA(3V電源)
(5)微控制器
–具有代碼預取功能的高性能和低功率8051微控制器內核
–系統內可編程閃存,128或者256KB
–在所有功率模式下具有保持功能的8KBRAM
–支持硬件調試
–擴展基帶自動化,包括自動確認和地址解碼
–所有功率模式中對所有相關寄存器的保持
(6)外設
–功能強大的5通道直接內存訪問(DMA)
–通用定時器(1個16位,2個8位)
–紅外(IR)生成電路
–具有捕捉功能的32kHz睡眠定時器
–精確數字接收到的數字信號強度指示器(RSSI)支持
–電池監視器和溫度感應器
–含8通道和可配置分辨率的12位模數轉換器(ADC)
–高級加密標准(AES)安全協處理器
–2個功能強大的支持幾個串行協議的通用異步接收發器(UART)
–23個通用I/O引腳(21×4mA,2×20mA)
–I2C接口
–2個具有LED驅動功能的I/O引腳
–安全裝置定時器
–集成的高性能比較器(7)開發工具
–CC2541評估模塊工具包(CC2541EMK)
–CC2541小型開發工具包(CC2541DK-MINI)
–SmartRF™軟件
–提供IAR嵌入式Workbench™

CC2540/41軟件特性
(1)符合針對單模式藍牙低能耗(BLE)解決方案的符合藍牙4.0協議的堆棧器
–完全功率優化堆棧,包括控制器和主機
–GAP-中心設備,外設,或者廣播器(包括組合角色)
–屬性協議(ATT)/通用屬性配置文件(GATT)
–客戶端和服務器
–L2CAP說明
(2)示例應用和配置文件
–針對GAP中心和外圍作用的一般應用
–距離臨近,加速計,簡單關鍵字,和電池GATT服務
–BLE軟件棧內支持更多應用
(3)多重配置選項
–單芯片配置,允許應用運行在CC2541上
–用於運行在一個外部微處理器接口
–BTool-用於評估、開發和測試的視窗(Windows)PC應用
應用范圍
•2.4GHz藍牙低能耗系統
•私有的2.4GHz系統
•人機接口器件(鍵盤,鼠標,遙控)
•體育和休閑設備1個HWI2C接口。
•移動電話附件•消費類電子產品

CC2540/41經典應用電路

CC2540/41
射頻部分: 支持BLE協議棧及私有2.4G RF片載系統;
傳輸速率:250kbps,500kbps,1Mbps,2Mbps;
輸出功率:0dBm(支持可編程輸出功率)
接收靈敏度:-94dBm@1Mbps;
適合針對符合世界范圍內的無線電頻率應用系統 出色的鏈路預算,支持超長距離應用;
低功耗: 工作模式RX低至17.9mA; 工作模式TX(0dBm):18.2mA; 功率模式1(4us喚醒):270uA; 功率模式2(睡眠定時器開):1uA; 功率模式3(外部中斷):0.5uA;
寬電源電壓范圍(2V-3.6V);
MCU: 具有代碼預取功能的高性能和低功耗8051內核;
可編程Flash:CC2541F128 128KB 和CC2541F256 256KB;
支持硬件調試;
擴展基帶自動化,包括自動確認和低至解碼;
各個功率模式下,相關寄存器數據保持;
外設: 功能強大的5通道直接內存訪問(DMA);
通用定時器(1個16bit,2 個8bit);
紅外生產電路;
32kHz 具有捕獲功能的睡眠定時器;
支持RSSI(數字信號強度指示器);
電池監視器和溫度傳感器 8通道12位模數轉化器(可配置分辨率);
高級加密標准安全協處理器;
2個功能強大的支持多個串口協議的異步串口通信接口(UART);
23個通用I/O接口(21*4mA;2*20mA);
IIC 接口;
2個大電流I/O(直接驅動LED);
安全裝置定時器;
集成的高性能比較器;
開發工具: CC2541 評估模塊工具包(CC2541EMK); CC2541 小型開發工具包(CC2541DK-MINI); SmartRF 軟件; 提供IAR嵌入式Workbench。

BT05藍牙4.0BLE模塊亮點:
1.超低待機功耗 90uA~400uA
2.超遠連接距離32.8英尺/10米
3.超快反應速度0.4秒
4.安卓、蘋果、PC、MAC全通用.
5.收發無字節限制,最高可達3K Bytes/秒
6.不需要做MFI
7.IOS系統完美支持
8.Android4.3系統完美支持.
9.主從一體模塊,具透傳、遠控、PIO采集三種功能,通過AT指令集進行切換和設置,
與您之前用過的藍牙串口模塊一樣,在不改PCB和下位機程序的情況下輕松升級到藍4.0!
模塊電原理圖
BT09藍牙4.0BLE模塊特點:
使用條件:蘋果手機限定:4S及以上型號,系統版本iOS6及以上
安卓手機限定:系統為4.3版本及以上,手機藍牙版本為4.0。
1、核心模塊使用BT05從模塊,引出接口包括VCC,GND,TXD,RXD,STATE。預留LED狀態輸出腳,單片機可通過該腳狀態判斷藍牙是否已經連接,
2、LED指示藍牙連接狀態,閃爍表示沒有藍牙連接,常亮表示藍牙已連接並打開了端口,STATE腳輸出高電平為已連接,其他狀態為低電平。
3、設置模塊為主模式:模塊已經為軟件設置主從模塊,通過串口發送AT+ROLE1(回車或者加\r\n),返回OK,則表示設置成功,此時模塊LED燈進入快閃。主模塊連接從模塊需要通過AT指令進行連接(詳情請參照BT05 AT指令集)。
4、底板3.3V LDO,輸入電壓3.6~6V,輸入電壓禁止超過7V!
5、接口電平3.3V,可以直接連接各種單片機(51,AVR,PIC,ARM,MSP430等),5V單片機也可直接連接,無需MAX232也不能經過MAX232!
6、空曠地有效距離7-10米,超過10米也是可能的,但不對此距離的連接質量做保證
7、配對以后當全雙工串口使用,無需了解任何藍牙協議,但僅支持8位數據位、1位停止位、無奇偶校驗的通信格式,這也是最常用的通信格式,不支持其他格式。
8、在未建立藍牙連接時支持通過AT指令設置波特率、名稱、配對密碼,設置的參數掉電保存。藍牙連接以后自動切換到透傳模式
9、體積小巧(3.57cm*1.52cm),工廠貼片生產,保證貼片質量。並套透明熱縮管,防塵美觀,且有一定的防靜電能力。
10、該鏈接為從機,從機能與各種帶藍牙功能的電腦、藍牙主機、大部分帶藍牙的手機、PDA、PSP等智能終端配對,從機之間不能配對。
模塊接線
輸入電壓:3.3V/5V 只需要一組電源供電。
內置電平轉換功能。
如果用5.0V MCU與藍牙模塊通訊,5.0V電源端口供電,RX TX 邏輯電平5V
如果用3.3V MCU與藍牙模塊通訊,3.3V電源端口供電,RX TX 邏輯電平3.3V
RX,藍牙模塊串口接收端與MCU的TXD連接。
TX,藍牙模塊串口發送端與MCU的RXD連接。
GND,地端電源負極
3.3V,電源端3.3V電源
5V,電源端5V電源
模塊使用注意事項
MLT-BT05 4.0 藍牙模塊工作在 2.4G 無線頻段,應盡量避免各種因素對無線收發
的影響,注意以下幾點:
1、包圍藍牙模塊的產品外殼避免使用金屬,當使用部分金屬外殼時,應盡量讓模塊天線部分遠離金屬部分。
2、產品內部金屬連接線或者金屬螺釘,應盡量遠離模塊天線部分。
3、模塊天線部分應靠載板 PCB 四圍放置,不允許放置於板中,且天線下方載板銑空,與天線平行的方向,不允許鋪銅或走線。直接把天線部分直接露出載板,也是比較好的選擇。
4、模塊下方盡量鋪大片 GND,走線盡量往外圍延伸。
5、建議在基板上的模塊貼裝位置使用絕緣材料進行隔離,例如在該位置放一個
整塊的絲印(TopOverLay)。
小常識(非常重要)
TXD:發送端,一般表示為自己的發送端,正常通信必須接另一個設備的RXD。
RXD:接收端,一般表示為自己的接收端,正常通信必須接另一個設備的TXD。
正常通信時候本身的TXD永遠接設備的RXD!
自收自發:正常通信時RXD接其他設備的TXD,因此如果要接收自己發送的數據顧名思義,也就是自己接收自己發送的數據,即自身的TXD直接連接到RXD,用來測試本身的發送和接收是否正常,是最快最簡單的測試方法,當出現問題時首先做該測試確定是否產品故障,也稱回環測試。
藍牙4.0BLE
藍牙發展至今經歷了8個版本的更新,1.1、1.2、2.0、2.1、3.0、4.0、4.1、4.2。那么在1.x~3.0之間的我們稱之為傳統藍牙,4.x開始的藍牙我們稱之為低功耗藍牙也就是藍牙ble,當然4.x版本的藍牙也是向下兼容的。android手機必須系統版本4.3及以上才支持BLE API。低功耗藍牙較傳統藍牙,傳輸速度更快,覆蓋范圍更廣,安全性更高,延遲更短,耗電極低等等優點。(現在的穿戴設備都是使用BLE藍牙技術的)
傳統藍牙與低功耗藍牙通信方式也有所不同,傳統的一般通過socket方式,而低功耗藍牙是通過Gatt協議來實現。
主要優點
低功耗,使用標准有機電池,可運行一年乃至數年,成本低,可以完全實現兼容,速度支持1M的數據傳輸,可以最大程度的減少4G的串擾,更加智能,最大可以在3毫秒內完成數據的傳輸,安全性采用加密算法,會有數據包的加密和認證。所以藍牙4.0的優點就是3種規格於一體,包括傳統藍牙的技術,與3.0的版本最大的區別就是功耗更低了,4.0的版本比老版本的功耗低了90%,隨着藍牙技術由手機,游戲,電腦,汽車等傳統領域向物聯網,醫療等新領域的發展,對用戶的要求也就會越來越高,4.0的版本強化了數據傳輸的技術,又更注重了低功耗的性能。
實驗開源代碼
/* 【Arduino】168種傳感器模塊系列實驗(資料代碼+仿真編程+圖形編程) 實驗九十六:BT-05藍牙4.0BLE 模塊 串口引出 CC2541兼容HM-10模塊 1、實驗項目:Arduino 調試源代碼 2、實驗接腳: 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"); } } }
實驗串口返回情況
實驗開源圖形編程(Mind+、Mixly、編玩邊學)
實驗場景圖
這幾天在網上一直搜索藍牙4.0BLE的電腦端調試軟件和手機上調試app,也去了微信平台查詢相關調試小程序,感覺比傳統藍牙(2.0,3.0)模塊要復雜一些,老是不得要領.......
實驗開源代碼
/* 【Arduino】168種傳感器模塊系列實驗(資料代碼+仿真編程+圖形編程) 實驗九十六:BT-05藍牙4.0BLE 模塊 串口引出 CC2541兼容HM-10模塊 1、實驗項目:通過BLE藍牙模塊與Arduino通信控制LED 2、實驗接腳: 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); } } }
實驗串口返回情況