首頁 > 評測 > NUCLEO開發(fā)板的最佳BLE伴侶:X-NUCLEO-IDB05A1 BLE
NUCLEO開發(fā)板的最佳BLE伴侶:X-NUCLEO-IDB05A1 BLE
- [導(dǎo)讀]
- X-NUCLEO-IDB05A1 BLE是ST的藍(lán)牙拓展板,此外還有配套SDK供菜鳥邊體驗(yàn)邊學(xué)習(xí)BLE技術(shù)。本文就帶大家來體驗(yàn)一下用官方藍(lán)牙SDK,基于藍(lán)牙拓展板來進(jìn)行demo開發(fā)的過程。
無線通信一直是物聯(lián)網(wǎng)中非常重要的環(huán)節(jié)。無線通信不需要使用通信線路來連接設(shè)備,使得物聯(lián)設(shè)備在布署時靈活性大大增強(qiáng)了,沒有了物理線路的束縛,產(chǎn)品配置時除了靈活性之外,整體美觀也是不得不考慮的一個因素。試想客戶購買了一個物聯(lián)產(chǎn)品,還得大費(fèi)周章打墻穿孔布線,熱情頓時少了三分!
在各種無線通信技術(shù)中,從WiFi、紅外、藍(lán)牙到遠(yuǎn)距離的LoRa、NBIoT,BLE一直備受青睞,為什么呢?答案無外乎兩個原因,一是現(xiàn)在的移動終端,無論是手機(jī)還是平板,BLE幾乎都是標(biāo)配設(shè)備,接入非常容易;另一個原因應(yīng)該歸結(jié)于BLE的低功耗特性,省電省心!
ST的NUCLEO系列開發(fā)板一直以來以質(zhì)優(yōu)價廉深受ST愛好者推崇,在簡單的入門之后,是時候體驗(yàn)下無線操控的體驗(yàn)了,X-NUCLEO-IDB05A1 BLE專門為NUCLEO系列開發(fā)板設(shè)計,無縫對接,確實(shí)是非常好的搭配。
X-NUCLEO-IDB05A1 BLE包裝沿用ST開發(fā)板產(chǎn)品的封裝風(fēng)格,透明包裝,產(chǎn)品一覽無余。
擴(kuò)展板只包含SPBTLE-RF,所以電路設(shè)計也相對簡單,引出的接口完全兼容STM32 NUCLEO開發(fā)板接口。
ARDUINO接口默認(rèn)提供,至于蝴蝶接口只引出了焊盤,如果用戶想要使用該接口的話,需要自行操作。
X-NUCLEO-IDB05A1是基于SPBTLE-RF BlueNRG-MS射頻模塊的藍(lán)牙低功耗評估板,用于擴(kuò)展STM32 Nucleo板卡。SPBTLE-RF模塊通過了FCC(FCC ID:S9NSPBTLERF)和IC認(rèn)證(IC:8976C-SPBTLERF)。
X-NUCLEO-IDB05A1與ST Morpho和Arduino UNO R3連接器布局兼容(如果需要,用戶可以安裝ST Morpho連接器)。X-NUCLEO-IDB05A1通過SPI引腳與STM32微控制器連接,用戶可以通過更換評估板上的一個電阻來更改默認(rèn)的SPI時鐘、SPI片選和SPI IRQ。
X-NUCLEO-IDB05A1 BLE的主要特征
• STM32擴(kuò)展板,基于STM32 Nucleo的SPBTLE-RF模塊
• X-NUCLEO-IDB05A1包含F(xiàn)CC和IC認(rèn)證模塊SPBTLE-RF(FCC ID:S9NSPBTLERF和IC:8976C-SPBTLERF)
• SPBTLE-RF:
– 低功耗藍(lán)牙FCC和基于藍(lán)牙IC認(rèn)證模塊® SMART 4.1網(wǎng)絡(luò)處理器BlueNRG-MS
– 集成巴倫(BALF-NRG-01D3)
– 芯片天線
• 與STM32 Nucleo板兼容
• 配備Arduino UNO R3連接器
• 可擴(kuò)展的解決方案,可將多個電路板級聯(lián)到更大的系統(tǒng)
• 免費(fèi)的綜合開發(fā)固件庫和BlueNRG-MS示例,與STM32Cube固件兼容
• 符合RoHS標(biāo)準(zhǔn)
從工程師的角度來看,BLE雖好,然而真正的開發(fā)過程卻是比較麻煩的,一是BLE中名詞概念太多,剛?cè)腴TBLE的用戶首先就被一堆名詞給搞暈了!再有由于歷史的原因,藍(lán)牙通信技術(shù)包含早期的Classic Bluetooth和新的BLE技術(shù),例如藍(lán)牙音箱一般使用的是Classic,而現(xiàn)在物聯(lián)網(wǎng)中的大部分則使用的是BLE即低功耗藍(lán)牙,主要的差別就在低功耗上,當(dāng)然還有其它的一現(xiàn)細(xì)節(jié)。
不過這不是問題,因?yàn)镾T推出的配套SDK完全能讓菜鳥邊體驗(yàn)邊學(xué)習(xí)BLE技術(shù)。SDK不僅封裝了GATT等底層細(xì)節(jié),同時也提供了大量的DEMO代碼供用戶參考,簡單的了解SDK的框架后,就可以在現(xiàn)有的DEMO上進(jìn)行適當(dāng)?shù)男薷,達(dá)到自己的要求。
應(yīng)用程序框架包括底層的硬件、CMSIS、BLE及Profile framework組成,最上層就是應(yīng)用程序。應(yīng)用程序通過SDK提供的各種API來實(shí)現(xiàn)用戶需求。
SDK兼容STM32CUBE庫,可以使用STM32CUBE來生成應(yīng)用程序的底層框架,再引入SDK就可以實(shí)現(xiàn)用戶自定義的功能。SDK基于SIG的標(biāo)準(zhǔn)GATT配置文件,STM32開發(fā)板及X-NUCLEO-IDB05A1 BLE充當(dāng)GAP設(shè)備,根據(jù)配置好的profile來進(jìn)行數(shù)據(jù)的收發(fā)。
SDK包括文檔、中間件及DEMO等要素,主要包括文檔,驅(qū)動、中間件及演示工程文件,目前提供的現(xiàn)有DEMO工程主要涵蓋了STM32F401RE-Nucleo、STM32L053R8-Nucleo及STM32L476RG-Nucleo開發(fā)板,當(dāng)然如果要移植到其它開發(fā)板上,也只需要簡單的移植即可實(shí)現(xiàn)功能。
應(yīng)用程序內(nèi)部使用狀態(tài)機(jī)來進(jìn)行BLE相關(guān)操作的管理,一個典型的狀態(tài)機(jī)如下
例如BLE做為外設(shè)使用的話,通過需要廣播信息、接受來自外部的連接及響應(yīng)各種事件,使用狀態(tài)機(jī)可以很好的處理這些狀態(tài)。
接下來分析一個非常經(jīng)典的應(yīng)用SensorDemo,看看從這個DEMO從我們能了解和學(xué)習(xí)到什么。
SensorDemo應(yīng)用中,STM32開發(fā)板及BLE擴(kuò)展板被配置成一個外設(shè)傳感器站點(diǎn),智能手機(jī)充當(dāng)Central,通過手機(jī)的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);
}
}
實(shí)際的代碼比較多,這只是摘取其中部分代碼后的樣本。代碼里包括STM32硬件的初始化過程,然后是BLUENRG的初始化,因?yàn)槭褂玫牡腟PI接口,所以這里的代碼還包括SPI的初始化工作,然后是添加BLE服務(wù)等工作。GATT服務(wù)及Characteristics等,具體的細(xì)節(jié)就不詳述了。正是通過GATT Service及Characteristic等,手機(jī)等移動終端可以訪問并控制相關(guān)的外設(shè)。
代碼的最后是用戶事件的處理,例如用戶請求某個Characteristic,用戶上傳相關(guān)的數(shù)據(jù)等,都是放在循環(huán)體內(nèi)實(shí)現(xiàn),可以參考這些代碼來設(shè)計自己的功能。
編譯并上傳代碼到開發(fā)板后,BLE開始工作,要測試BLE的工作狀態(tài),需要使用BLE USB DONGLE或者手機(jī)來進(jìn)行,下面在手機(jī)端安裝并打開ST官方提供的BLUENRG應(yīng)用來進(jìn)行測試。
手機(jī)程序啟動后自動開始掃描BLE設(shè)備,找到設(shè)備后顯示設(shè)備名稱及MAC地址。
APP包括三個選項卡,第一個是MOTION,這里用到的都是FAKE數(shù)據(jù),即模擬出來的結(jié)果,用戶通過按壓開發(fā)板上的USER按鍵,實(shí)現(xiàn)不同數(shù)據(jù)的發(fā)送,該數(shù)據(jù)可以同步在APP上顯示出來,上圖演示的是其中的一個狀態(tài),注意數(shù)據(jù)值上方的立方體,該立方體會實(shí)時顯示立方體的位置情況。
第2個選項卡顯示的是環(huán)境相關(guān)的數(shù)據(jù),如溫度、濕度及大氣壓等數(shù)據(jù)。
最后一個選項卡顯示的是RSSI信號強(qiáng)度,RSSI強(qiáng)度也可以用來近似估算兩個節(jié)點(diǎn)的距離,在很多室內(nèi)定位的應(yīng)用中,就是根據(jù)RSSI來計算設(shè)備的位置。
Projects目錄下還提供了很多其它演示程序,包括低功耗、虛擬串口等,通過使用這些DEMO,用戶可以很快速度STM32 BLE產(chǎn)品的相關(guān)細(xì)節(jié)。
X-NUCLEO-IDB05A1 BLE是ST X-NUCLEO系列開發(fā)板中的一員,其它類似的擴(kuò)展板還包括WIFI、電機(jī)、傳感器等系列,X-NUCLEO系列與NUCLEO開發(fā)板在接口上完全一致,同時各配套開發(fā)板也都提供了相關(guān)的SDK庫,結(jié)合ST提供的STM32CUBEMX工程工具,可以迅速的上手體驗(yàn)并在短期內(nèi)搭建產(chǎn)品原型并進(jìn)行評估。
只是這些擴(kuò)展板一般來說功能比較單一,像X-NUCLEO-IDB05A1 BLE就只提供了BLE的擴(kuò)展功能,如果ST能將這些擴(kuò)展板都集成到一塊板上,來個全家桶,不知道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
- 我要投稿
-
歡迎入駐,開放投稿
-
人均百萬?英偉達(dá)中國員工收入曝光! 2024-08-29
-
《黑神話:悟空》玩家硬盤升級攻略:提升游戲體驗(yàn),暢享3A大作 2024-08-29
-
數(shù)睿數(shù)據(jù)參加《系統(tǒng)與軟件工程 低代碼開發(fā)平臺通用技術(shù)要求》國家標(biāo)準(zhǔn)編制 2024-08-29
- NRF52810藍(lán)牙數(shù)字耳機(jī)找人定制
預(yù)算:¥30005天前
- 125KW模塊式PCS軟硬件外包開發(fā)
預(yù)算:¥1100000015小時前
- 12V汽車啟動電源項目BMS設(shè)計
預(yù)算:¥50000023小時前
- 數(shù)據(jù)可視化軟件 開發(fā)
預(yù)算:¥5000023小時前
- PLC項目調(diào)試修改
預(yù)算:¥100001天前
- 起動電機(jī)控制器開發(fā)
預(yù)算:¥1100001天前