日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

首頁 > 評測 > NUCLEO開發(fā)板的最佳BLE伴侶:X-NUCLEO-IDB05A1 BLE

NUCLEO開發(fā)板的最佳BLE伴侶:X-NUCLEO-IDB05A1 BLE

NUCLEO   X-NUCLEO   IDB05A1   BLE   拓展板   無線通信   ST   
  • 作者:SATURN
  • 來源:21ic
  • [導讀]
  • 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ā)板設計,無縫對接,確實是非常好的搭配。

image1.jpg

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

image2.jpg

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

image3.jpg

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

image4.jpg

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ù)男薷,達到自己的要求。

image5.png

應用程序框架包括底層的硬件、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ā)。

image6.png

SDK包括文檔、中間件及DEMO等要素,主要包括文檔,驅(qū)動、中間件及演示工程文件,目前提供的現(xiàn)有DEMO工程主要涵蓋了STM32F401RE-Nucleo、STM32L053R8-Nucleo及STM32L476RG-Nucleo開發(fā)板,當然如果要移植到其它開發(fā)板上,也只需要簡單的移植即可實現(xiàn)功能。

應用程序內(nèi)部使用狀態(tài)機來進行BLE相關操作的管理,一個典型的狀態(tài)機如下

image7.png

例如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應用來進行測試。

image8.jpg

image9.jpg

手機程序啟動后自動開始掃描BLE設備,找到設備后顯示設備名稱及MAC地址。

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

image10.jpg

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

image11.jpg

最后一個選項卡顯示的是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)友評論