首页 > 评测 > 饕餮盛宴,抢先体验ST IoT开发板B-L475E-IOT01A

饕餮盛宴,抢先体验ST IoT开发板B-L475E-IOT01A

ST IoT   B-L475E-IOT01A   蓝牙   开源   
  • 作者:netlhx
  • 来源:21ic
  • [导读]
  • ST的产品和技术宣传总是能吸引开发者的眼球。且不说各种类型的研讨会、产品培训,单说不定期的向开发者甚至爱好者免费派发各种类型的开发板,就吸引了不少潜在的用户,再加上ST对各种开发板的低价定位策略,确实赚足了眼球。

可以看到WiFi接入成功,B-L475E-IOT01A已获取到了IP地址。后面的画面是需要接入AWS用到的CA证书,这个需要先申请AWS的账号,然后再根据AWS提供的证书来一步一步配置。

笔者尝试申请了一个免费的AWS账号,只可惜在信用卡认证的时候显示信用卡不支持,作罢!

不过就算不使用AWS功能,还有很多值得体验的特性,如WIFI,如BLE,如激光测距等功能,下面我们一一体验。

最新的CUBEMX中软件包中已支持B-L475E-IOT01A开发板,里面提供了许多测试例程,可以直接运行这些例程,也可以在此基础上稍加修改,添加自己的功能。这里只体验三个功能,即WIFI、BLE及距离传感器。

Inventek ISM43362-M3G-L44支持802.11 b/g/n通信,加密方式支持WPA/WPA2。打开CUBEMX的L4软件包,里面的目录结构如下

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,在浏览器地址栏内输入通过DHCP获取的IP地址(查看B-L475E-IOT01A获取到的IP地址,可以使用终端软件连接到开发套件查看),这里的IP地址为192.168.88.16,得到的结果如下

工程使用了温度传感器,将采集到的温度通过WEB方式显示到WEB页面,另外WEB代码还演示了远程点灯的功能,点击LED on/off,使用提交功能,实现远程控制LED灯的亮灭。

第二个演示的功能是BLE的点灯功能,板载的BLE模块充当SERVER,通过手机或其它客户端程序连接至GATT服务器,执行写入或读取操作。值得一提的是B-L475E-IOT01A完全支持使用mbed来进行软件开发,mbed基于云端服务,使得代码的共享更容易,另外mbed封装了底层的API细节,使得开发起来更具备高级语言的开发特性,代码也更简洁。下面是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);

}

}

虽然现在开发者对mbed的评价是毁誉参半,但不可否认,使用mbed来开发嵌入式应用,开发周期必将大大缩短,同时代码的质量也能得到保证,毕竟这是全球开发人员智慧的集结。

编译后下载到本地的hex代码 ,可以使用拖放的方式拖到mbed磁盘,代码即实现下载并运行。

测试工具使用的是nRF connect Android版程序,测试的部分结果如下

发现LED服务,点击connect按钮,则连接到LED服务

  • 本文系21ic原创,未经许可禁止转载!

网友评论