SPBTLE-RF内嵌完整的BLE协议栈,主要包括GAP, GATT, SM, L2CAP, LL, RFPHY等,通过软件配置,可以实现BLE低功耗配置,最大发射功率+4dBm,板载天线,并通过了CE、FCC及BQE认证。
SPSGRF-915是一款支持915MHz的低频通信模块,支持2-FSK, GFSK, MSK, GMSK, OOk及ASK等不同调制模式,最高通信速率可达500kbps,通过SPI接口与主控MCU通信。在LoRa及NB-IoT大行其道的今天,ST也表明了其立场,咱也支持!
Inventek ISM43362-M3G-L44的WiFi模块提供了接入WiFi的能力,该模块内包括一个STM32主控MCU及一个BroadCom的通信模块,内置RF天线,通过UART与L475通信。模块内置TCP/IP协栈,通过AT命令与之进行交互。
Inventek ISM43362-M3G-L44支持802.11 b/g/n通信,加密方式支持WPA/WPA2,保证通信安全。
除了无线模块,B-L475E-IOT01A套件包含的传感器也相当丰富,当然这些传感器大多是ST自家的模块。其实这些模块很多都曾以X-CUBE模块的方式单独提供。将这些零散的传感模块都扔到一块,笔者很喜欢!这里择其一二进行介绍。
LIS3MDL是一款超低功耗三轴磁力计,该模块可以选择通过I2C接口或者SPI接口与MCU通信,该模块包含自我检测能力,在最终的应用中可以用来检测设备功能是否正常。精度方面,LIS3MDL可以实现 ±4/ ±8/ ±12/±16 gauss范围内的磁场强度检测,一般地磁强度大约在0.4~0.6之间,可见 LIS3MDL的应用范围还是非常广的。
LSM6DSL是一款低功耗的3D陀螺仪,高性能运行模式下消耗约0.65mA电流,LSM6DSL通过事件中断来实现可靠、有效的运动检测,可以在硬件层面实现自由落体、单击/双击等感知能力。LSM6DSL的检测包括线性方面的加速度及旋转加速度两种类型,前者的精度包括 ±2/±4/±8/±16g ,后者则可以对 ±125/±245/±500/±1000/±2000 dps范围内的加速度进行检测。
相比于前面介绍的两种传感器而言,大多数用户对VL53L0X可能会比较陌生一点。
VL53L0X是一款激光测距传感器,这是ST在ToF领域推出的的一款很拉风的应用。VL53L0X有很多优势,一是测距时间短,约30ms左右;其次是功耗低,工作模式下约20mW功耗;VL53L0X输出的是精确到毫米的测距结果,目标物体的颜色和反射光不会影响测距结果,且内部激光器发射940nm波长非可见光,不伤害眼睛,消除了与其它红外接近检测传感器发射红光分散人们注意力的问题,增强了对外部光源的抗干扰性能。
这么多好东西,在B-L475E-IOT01A都可以体验!正所谓春风得意马蹄疾,一日看尽长安花!
现在准备上电。
B-L475E-IOT01A出厂默认固件是使用AWS提供的IoT功能来演示如何实现物联网功能,上电后可以在串口输出中看到如下信息
B-L475E-IOT01A先要接入Internet,这里看到的画面是连接到WiFi的画面,由于还没有配置好WiFi接入参数,所以这里看到的是接入失败的信息。别急,在系统上电后迅速按下用户按键,会看到如下的画面
输入y开始配置WiFi接入参数,只要指定SSID及PASSWORD即可,下面是指定了SSID及口令之后的显示信息
31.png (89.78 KB, 下载次数: 10)
2017-9-27 16:24 上传
可以看到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服务(右图)
默认的LED服务只提供了一个Characteristic,可对之进行读写操作,写入1,则点亮LED2,写入0,则熄灭LED2。
使用nRF connect进行读写时要注意,这里选择的是以byte方式来操作,写入0的话要输入0x00。
下面的图显示的BLE心率报告功能,心率数据是虚拟的,为的只是演示。测试结果如下
最后一个测试的是距离传感器,看下传说中以mm为精度的距离传感模块到底性能如何。
测试代码用的是CUBEMX里的Proximity工程文件,打开该工程,不需要修改,直接编译、上传代码至开发板。
将传感器与被测试的目标(这里是个小纸盒)摆开一定的距离,同时为了更好的演示实际效果,使用了直尺做简单的距离测量,如上图所示。最终的测试结果如下
实际距离约100mm左右,上图测试结果显示为96mm,官方宣称测试精度误差为3%,测试结果显示非常接近实际值了。另经多次测试,发现测试值一般略小于实际值,而且每次测试结果会有小小波动,不过波动值不大。不错!
还有其他很多有趣而实用的功能,这里就不一一介绍了。
B-L475E-IOT01A是所有ST官方开发板中值得拥有并收藏的一款板子。
低功耗MCU配合众多的低功耗传感器堪称绝配,L4系列MCU在低功耗与高性能之间取得了一个很好的平衡点,静如处子,动如脱兔,正是B-L475E-IOT01A的真实写照。
史无前例的无线组合配置,与某开发板宣称的WIFI/BLE一个也不能少,B-L475E-IOT01A则是一笑而过:一个也不能少,什么才是一个也不能少?
最后,配置齐全的传感器组合,诠释了什么才是真正的重装上阵! B-L475E-IOT01A,我来了!