首頁 > 評測 > 饕餮盛宴,搶先體驗ST IoT開發(fā)板B-L475E-IOT01A

饕餮盛宴,搶先體驗ST IoT開發(fā)板B-L475E-IOT01A

ST IoT   B-L475E-IOT01A   藍牙   開源   
  • 作者:netlhx
  • 來源:21ic
  • [導(dǎo)讀]
  • ST的產(chǎn)品和技術(shù)宣傳總是能吸引開發(fā)者的眼球。且不說各種類型的研討會、產(chǎn)品培訓(xùn),單說不定期的向開發(fā)者甚至愛好者免費派發(fā)各種類型的開發(fā)板,就吸引了不少潛在的用戶,再加上ST對各種開發(fā)板的低價定位策略,確實賺足了眼球。

可以看到WiFi接入成功,B-L475E-IOT01A已獲取到了IP地址。后面的畫面是需要接入AWS用到的CA證書,這個需要先申請AWS的賬號,然后再根據(jù)AWS提供的證書來一步一步配置。

筆者嘗試申請了一個免費的AWS賬號,只可惜在信用卡認證的時候顯示信用卡不支持,作罷!

不過就算不使用AWS功能,還有很多值得體驗的特性,如WIFI,如BLE,如激光測距等功能,下面我們一一體驗。

最新的CUBEMX中軟件包中已支持B-L475E-IOT01A開發(fā)板,里面提供了許多測試例程,可以直接運行這些例程,也可以在此基礎(chǔ)上稍加修改,添加自己的功能。這里只體驗三個功能,即WIFI、BLE及距離傳感器。

Inventek ISM43362-M3G-L44支持802.11 b/g/n通信,加密方式支持WPA/WPA2。打開CUBEMX的L4軟件包,里面的目錄結(jié)構(gòu)如下

WiFi目錄下包含兩個示例程序,一個是Client,另一個是Server。使用Keil打開Server工程文件,對工程文件進行必要的修改,這里只要修改上級路由的SSID及PASSWORD兩個值即可,該代碼位于main.c文件的頂部,如下

/* Includes ------------------------------------------------------------------*/

#include "main.h"

/* Private defines -----------------------------------------------------------*/

/* Update SSID and PASSWORD with own Access point settings */

#define SSID "SSID"

#define PASSWORD "PASSWORD"

#define WIFI_WRITE_TIMEOUT 10000

#define WIFI_READ_TIMEOUT 10000

#define TERMINAL_USE

#define PORT 80

修改SSID及PASSWORD兩個值,端口值默認為80,這也是WEB SERVER默認使用的端口值,不必修改。

編譯,上傳代碼至B-L475E-IOT01A,在瀏覽器地址欄內(nèi)輸入通過DHCP獲取的IP地址(查看B-L475E-IOT01A獲取到的IP地址,可以使用終端軟件連接到開發(fā)套件查看),這里的IP地址為192.168.88.16,得到的結(jié)果如下

工程使用了溫度傳感器,將采集到的溫度通過WEB方式顯示到WEB頁面,另外WEB代碼還演示了遠程點燈的功能,點擊LED on/off,使用提交功能,實現(xiàn)遠程控制LED燈的亮滅。

第二個演示的功能是BLE的點燈功能,板載的BLE模塊充當(dāng)SERVER,通過手機或其它客戶端程序連接至GATT服務(wù)器,執(zhí)行寫入或讀取操作。值得一提的是B-L475E-IOT01A完全支持使用mbed來進行軟件開發(fā),mbed基于云端服務(wù),使得代碼的共享更容易,另外mbed封裝了底層的API細節(jié),使得開發(fā)起來更具備高級語言的開發(fā)特性,代碼也更簡潔。下面是mbed的main.c部分代碼

DigitalOut alivenessLED(LED1, 0);

DigitalOut actuatedLED(LED2, 0);

const static char DEVICE_NAME[] = "LED";

static const uint16_t uuid16_list[] = {LEDService::LED_SERVICE_UUID};

static EventQueue eventQueue(/* event count */ 10 * EVENTS_EVENT_SIZE);

LEDService *ledServicePtr;

..........

void onDataWrittenCallback(const GattWriteCallbackParams *params) {

if ((params->handle == ledServicePtr->getValueHandle()) && (params->len == 1)) {

actuatedLED = *(params->data);

}

}

雖然現(xiàn)在開發(fā)者對mbed的評價是毀譽參半,但不可否認,使用mbed來開發(fā)嵌入式應(yīng)用,開發(fā)周期必將大大縮短,同時代碼的質(zhì)量也能得到保證,畢竟這是全球開發(fā)人員智慧的集結(jié)。

編譯后下載到本地的hex代碼 ,可以使用拖放的方式拖到mbed磁盤,代碼即實現(xiàn)下載并運行。

測試工具使用的是nRF connect Android版程序,測試的部分結(jié)果如下

發(fā)現(xiàn)LED服務(wù),點擊connect按鈕,則連接到LED服務(wù)

  • 本文系21ic原創(chuàng),未經(jīng)許可禁止轉(zhuǎn)載!

網(wǎng)友評論