首頁(yè) > 評(píng)測(cè) > 饕餮盛宴,搶先體驗(yàn)ST IoT開(kāi)發(fā)板B-L475E-IOT01A

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

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

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

筆者嘗試申請(qǐng)了一個(gè)免費(fèi)的AWS賬號(hào),只可惜在信用卡認(rèn)證的時(shí)候顯示信用卡不支持,作罷!

不過(guò)就算不使用AWS功能,還有很多值得體驗(yàn)的特性,如WIFI,如BLE,如激光測(cè)距等功能,下面我們一一體驗(yàn)。

最新的CUBEMX中軟件包中已支持B-L475E-IOT01A開(kāi)發(fā)板,里面提供了許多測(cè)試?yán)蹋梢灾苯舆\(yùn)行這些例程,也可以在此基礎(chǔ)上稍加修改,添加自己的功能。這里只體驗(yàn)三個(gè)功能,即WIFI、BLE及距離傳感器。

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

WiFi目錄下包含兩個(gè)示例程序,一個(gè)是Client,另一個(gè)是Server。使用Keil打開(kāi)Server工程文件,對(duì)工程文件進(jìn)行必要的修改,這里只要修改上級(jí)路由的SSID及PASSWORD兩個(gè)值即可,該代碼位于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兩個(gè)值,端口值默認(rèn)為80,這也是WEB SERVER默認(rèn)使用的端口值,不必修改。

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

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

第二個(gè)演示的功能是BLE的點(diǎn)燈功能,板載的BLE模塊充當(dāng)SERVER,通過(guò)手機(jī)或其它客戶(hù)端程序連接至GATT服務(wù)器,執(zhí)行寫(xiě)入或讀取操作。值得一提的是B-L475E-IOT01A完全支持使用mbed來(lái)進(jìn)行軟件開(kāi)發(fā),mbed基于云端服務(wù),使得代碼的共享更容易,另外mbed封裝了底層的API細(xì)節(jié),使得開(kāi)發(fā)起來(lái)更具備高級(jí)語(yǔ)言的開(kāi)發(fā)特性,代碼也更簡(jiǎn)潔。下面是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)在開(kāi)發(fā)者對(duì)mbed的評(píng)價(jià)是毀譽(yù)參半,但不可否認(rèn),使用mbed來(lái)開(kāi)發(fā)嵌入式應(yīng)用,開(kāi)發(fā)周期必將大大縮短,同時(shí)代碼的質(zhì)量也能得到保證,畢竟這是全球開(kāi)發(fā)人員智慧的集結(jié)。

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

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

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

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

網(wǎng)友評(píng)論

  • 聯(lián)系人:巧克力娃娃
  • 郵箱:board@21ic.com
  • 我要投稿
  • 歡迎入駐,開(kāi)放投稿

熱門(mén)標(biāo)簽
項(xiàng)目外包 more+