首頁 > 評測 > NUCLEO開發(fā)板的最佳BLE伴侶:X-NUCLEO-IDB05A1 BLE
NUCLEO開發(fā)板的最佳BLE伴侶:X-NUCLEO-IDB05A1 BLE
- [導讀]
- X-NUCLEO-IDB05A1 BLE是ST的藍牙拓展板,此外還有配套SDK供菜鳥邊體驗邊學習BLE技術(shù)。本文就帶大家來體驗一下用官方藍牙SDK,基于藍牙拓展板來進行demo開發(fā)的過程。
無線通信一直是物聯(lián)網(wǎng)中非常重要的環(huán)節(jié)。無線通信不需要使用通信線路來連接設備,使得物聯(lián)設備在布署時靈活性大大增強了,沒有了物理線路的束縛,產(chǎn)品配置時除了靈活性之外,整體美觀也是不得不考慮的一個因素。試想客戶購買了一個物聯(lián)產(chǎn)品,還得大費周章打墻穿孔布線,熱情頓時少了三分!
在各種無線通信技術(shù)中,從WiFi、紅外、藍牙到遠距離的LoRa、NBIoT,BLE一直備受青睞,為什么呢?答案無外乎兩個原因,一是現(xiàn)在的移動終端,無論是手機還是平板,BLE幾乎都是標配設備,接入非常容易;另一個原因應該歸結(jié)于BLE的低功耗特性,省電省心!
ST的NUCLEO系列開發(fā)板一直以來以質(zhì)優(yōu)價廉深受ST愛好者推崇,在簡單的入門之后,是時候體驗下無線操控的體驗了,X-NUCLEO-IDB05A1 BLE專門為NUCLEO系列開發(fā)板設計,無縫對接,確實是非常好的搭配。

X-NUCLEO-IDB05A1 BLE包裝沿用ST開發(fā)板產(chǎn)品的封裝風格,透明包裝,產(chǎn)品一覽無余。

擴展板只包含SPBTLE-RF,所以電路設計也相對簡單,引出的接口完全兼容STM32 NUCLEO開發(fā)板接口。

ARDUINO接口默認提供,至于蝴蝶接口只引出了焊盤,如果用戶想要使用該接口的話,需要自行操作。

X-NUCLEO-IDB05A1是基于SPBTLE-RF BlueNRG-MS射頻模塊的藍牙低功耗評估板,用于擴展STM32 Nucleo板卡。SPBTLE-RF模塊通過了FCC(FCC ID:S9NSPBTLERF)和IC認證(IC:8976C-SPBTLERF)。
X-NUCLEO-IDB05A1與ST Morpho和Arduino UNO R3連接器布局兼容(如果需要,用戶可以安裝ST Morpho連接器)。X-NUCLEO-IDB05A1通過SPI引腳與STM32微控制器連接,用戶可以通過更換評估板上的一個電阻來更改默認的SPI時鐘、SPI片選和SPI IRQ。
X-NUCLEO-IDB05A1 BLE的主要特征
• STM32擴展板,基于STM32 Nucleo的SPBTLE-RF模塊
• X-NUCLEO-IDB05A1包含F(xiàn)CC和IC認證模塊SPBTLE-RF(FCC ID:S9NSPBTLERF和IC:8976C-SPBTLERF)
• SPBTLE-RF:
– 低功耗藍牙FCC和基于藍牙IC認證模塊® SMART 4.1網(wǎng)絡處理器BlueNRG-MS
– 集成巴倫(BALF-NRG-01D3)
– 芯片天線
• 與STM32 Nucleo板兼容
• 配備Arduino UNO R3連接器
• 可擴展的解決方案,可將多個電路板級聯(lián)到更大的系統(tǒng)
• 免費的綜合開發(fā)固件庫和BlueNRG-MS示例,與STM32Cube固件兼容
• 符合RoHS標準
從工程師的角度來看,BLE雖好,然而真正的開發(fā)過程卻是比較麻煩的,一是BLE中名詞概念太多,剛?cè)腴TBLE的用戶首先就被一堆名詞給搞暈了!再有由于歷史的原因,藍牙通信技術(shù)包含早期的Classic Bluetooth和新的BLE技術(shù),例如藍牙音箱一般使用的是Classic,而現(xiàn)在物聯(lián)網(wǎng)中的大部分則使用的是BLE即低功耗藍牙,主要的差別就在低功耗上,當然還有其它的一現(xiàn)細節(jié)。
不過這不是問題,因為ST推出的配套SDK完全能讓菜鳥邊體驗邊學習BLE技術(shù)。SDK不僅封裝了GATT等底層細節(jié),同時也提供了大量的DEMO代碼供用戶參考,簡單的了解SDK的框架后,就可以在現(xiàn)有的DEMO上進行適當?shù)男薷,達到自己的要求。

應用程序框架包括底層的硬件、CMSIS、BLE及Profile framework組成,最上層就是應用程序。應用程序通過SDK提供的各種API來實現(xiàn)用戶需求。
SDK兼容STM32CUBE庫,可以使用STM32CUBE來生成應用程序的底層框架,再引入SDK就可以實現(xiàn)用戶自定義的功能。SDK基于SIG的標準GATT配置文件,STM32開發(fā)板及X-NUCLEO-IDB05A1 BLE充當GAP設備,根據(jù)配置好的profile來進行數(shù)據(jù)的收發(fā)。

SDK包括文檔、中間件及DEMO等要素,主要包括文檔,驅(qū)動、中間件及演示工程文件,目前提供的現(xiàn)有DEMO工程主要涵蓋了STM32F401RE-Nucleo、STM32L053R8-Nucleo及STM32L476RG-Nucleo開發(fā)板,當然如果要移植到其它開發(fā)板上,也只需要簡單的移植即可實現(xiàn)功能。
應用程序內(nèi)部使用狀態(tài)機來進行BLE相關操作的管理,一個典型的狀態(tài)機如下

例如BLE做為外設使用的話,通過需要廣播信息、接受來自外部的連接及響應各種事件,使用狀態(tài)機可以很好的處理這些狀態(tài)。
接下來分析一個非常經(jīng)典的應用SensorDemo,看看從這個DEMO從我們能了解和學習到什么。
SensorDemo應用中,STM32開發(fā)板及BLE擴展板被配置成一個外設傳感器站點,智能手機充當Central,通過手機的BLE來讀取來自開發(fā)板的傳感器數(shù)據(jù)。
main函數(shù)的主要框架如下
int main(void)
{
...
HAL_Init();
BSP_PB_Init(BUTTON_KEY, BUTTON_MODE_GPIO);
/* USER CODE END Init */
/* Configure the system clock */
SystemClock_Config();
BNRG_SPI_Init();
/* Initialize the BlueNRG HCI */
HCI_Init();
/* Reset BlueNRG hardware */
BlueNRG_RST();
ret = Add_Acc_Service()
/* Set output power level */
ret = aci_hal_set_tx_power_level(1,4);
/* USER CODE END 2 */
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while(1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
HCI_Process();
User_Process(&axes_data);
}
}
實際的代碼比較多,這只是摘取其中部分代碼后的樣本。代碼里包括STM32硬件的初始化過程,然后是BLUENRG的初始化,因為使用的的SPI接口,所以這里的代碼還包括SPI的初始化工作,然后是添加BLE服務等工作。GATT服務及Characteristics等,具體的細節(jié)就不詳述了。正是通過GATT Service及Characteristic等,手機等移動終端可以訪問并控制相關的外設。
代碼的最后是用戶事件的處理,例如用戶請求某個Characteristic,用戶上傳相關的數(shù)據(jù)等,都是放在循環(huán)體內(nèi)實現(xiàn),可以參考這些代碼來設計自己的功能。
編譯并上傳代碼到開發(fā)板后,BLE開始工作,要測試BLE的工作狀態(tài),需要使用BLE USB DONGLE或者手機來進行,下面在手機端安裝并打開ST官方提供的BLUENRG應用來進行測試。


手機程序啟動后自動開始掃描BLE設備,找到設備后顯示設備名稱及MAC地址。
APP包括三個選項卡,第一個是MOTION,這里用到的都是FAKE數(shù)據(jù),即模擬出來的結(jié)果,用戶通過按壓開發(fā)板上的USER按鍵,實現(xiàn)不同數(shù)據(jù)的發(fā)送,該數(shù)據(jù)可以同步在APP上顯示出來,上圖演示的是其中的一個狀態(tài),注意數(shù)據(jù)值上方的立方體,該立方體會實時顯示立方體的位置情況。

第2個選項卡顯示的是環(huán)境相關的數(shù)據(jù),如溫度、濕度及大氣壓等數(shù)據(jù)。

最后一個選項卡顯示的是RSSI信號強度,RSSI強度也可以用來近似估算兩個節(jié)點的距離,在很多室內(nèi)定位的應用中,就是根據(jù)RSSI來計算設備的位置。
Projects目錄下還提供了很多其它演示程序,包括低功耗、虛擬串口等,通過使用這些DEMO,用戶可以很快速度STM32 BLE產(chǎn)品的相關細節(jié)。
X-NUCLEO-IDB05A1 BLE是ST X-NUCLEO系列開發(fā)板中的一員,其它類似的擴展板還包括WIFI、電機、傳感器等系列,X-NUCLEO系列與NUCLEO開發(fā)板在接口上完全一致,同時各配套開發(fā)板也都提供了相關的SDK庫,結(jié)合ST提供的STM32CUBEMX工程工具,可以迅速的上手體驗并在短期內(nèi)搭建產(chǎn)品原型并進行評估。
只是這些擴展板一般來說功能比較單一,像X-NUCLEO-IDB05A1 BLE就只提供了BLE的擴展功能,如果ST能將這些擴展板都集成到一塊板上,來個全家桶,不知道ST的粉絲們會不會瘋狂?!
參考資源:
X-NUCLEO-IDB05A1:https://www.st.com/zh/ecosystems/x-nucleo-idb05a1.html
SDK: https://www.st.com/content/st_com/zh/products/embedded-software/mcus-embedded-software/stm32-embedded-software/stm32cube-expansion-packages/x-cube-ble1.html
-
- 本文系21ic原創(chuàng),未經(jīng)許可禁止轉(zhuǎn)載!
網(wǎng)友評論
- 聯(lián)系人:巧克力娃娃
- 郵箱:board@21ic.com
- 我要投稿
-
歡迎入駐,開放投稿
-
人均百萬?英偉達中國員工收入曝光! 2024-08-29
-
《黑神話:悟空》玩家硬盤升級攻略:提升游戲體驗,暢享3A大作 2024-08-29
-
數(shù)睿數(shù)據(jù)參加《系統(tǒng)與軟件工程 低代碼開發(fā)平臺通用技術(shù)要求》國家標準編制 2024-08-29
- NRF52810藍牙數(shù)字耳機找人定制
預算:¥30005天前
- 125KW模塊式PCS軟硬件外包開發(fā)
預算:¥1100000015小時前
- 12V汽車啟動電源項目BMS設計
預算:¥50000023小時前
- 數(shù)據(jù)可視化軟件 開發(fā)
預算:¥5000023小時前
- PLC項目調(diào)試修改
預算:¥100001天前
- 起動電機控制器開發(fā)
預算:¥1100001天前















