ST物联网开发套件连接例程

操作准备

教程概述

基于ST的B-L475E-IOT01物联网开发套件与百度智能云天工连接的例程。

  • ST和百度智能云天工基于ST推出的一款物联网开发套件,提供了连接百度智能云天工的软件扩展包,内含连接到百度智能云天工物接入(IOT Hub),进行消息订阅和发布的应用程序。
  • 用户基于ST的B-L475E-IOT01A与本教程可以快速上手搭建自己的应用程序。

硬件概述

B-L475E-IOT01A探索套件提供了:

  1. 采用ARM Cortex内核的STM32L4系列MCU

  2. 存储

    • 1MB闪存和128KBSRAM
    • 64Mbit Quad-SPI闪存
  3. 模块

    • SPBTLE-RF蓝牙模块,兼容BLE 4.1
    • SPSGRF-915次吉赫兹RF模块(另外还有一款同型号的支持的是868MHz)
    • ISM43362-M3G-L44 WiFi模块,支持802.11 b/g/n通信
    • M24SR NFC模块
    • 2路数字microphone(MP34DT01)
    • 电容式数字传感器HTS221,用于测量相对湿度和温度
    • LIS3MDL,高性能三轴磁力计
    • LSM6DSL三轴陀螺仪
    • LPS22HB压力计
    • VL53L0X姿态传感器
  4. 接口

    • USB OTG接口
    • PMOD接口,Arduino UNO V3接口
    • 灵活的供电接口设计

配合这个套件,ST和百度共同推出了连接百度天工的软件扩展包。提供了连接到百度IoT hub, 进行消息定阅和发布的应用例程,客户可以基于这个例程快速的上手搭建自己的应用程序。

ST的官网可以下载到关于该开发套件的详细介绍文档和硬件设计资料。

硬件环境

B-L475E-IOT01A板子上已经集成了WIFI模块和ST-LINK,所以不需要额外的模块和调试工具,只需要一根micro的USB线给板子提供电源就可以开始使用了。当然,如果需要更新程序的话,还需要一台带USB接口的电脑。

硬件准备:

  • 一块B-L475E-IOT01A开发板(集成了WIFI模块和ST-LINK)。
  • 一根microUSB接口的线(给板子供电,提供调试和程序下载接口)。
  • 一个WIFI热点(WIFI路由器或者手机热点)。
  • 一台电脑(编译和烧录程序,配置WIFI密码)。

软件环境

需要的软件包括:

  • 免费的SW4STM32 IDE(Windows, Linux, macOS)。
  • 串口调试工具Tera Term。
  • 百度智能云天工物接入资源。
  • 基于B-L475E-IOT01A板子的源代码。下载地址:https://github.com/baidu/iot-edge-sdk-samples

通过免费的SW4STM32,可以修改,编译,下载和调试程序。下面是SW4STM32的下载页面链接,不过需要先注册登录后才能下载:http://www.openstm32.org/Downloading%2Bthe%2BSystem%2BWorkbench%2Bfor%2BSTM32%2Binstaller

还有更多的文档资料可以在这里找到:http://www.openstm32.org/Documentation

通过Tera Term可以向板子配置WIFI用户名和密码,并且显示程序运行时的信息。

下面将具体介绍,如何使用SW4STM32来编译,下载程序到开发板。以及Tera Term的使用方法。

SW4STM32使用说明

SW4STM32下载安装

从SW4STM32官网下载安装程序,官网上提供了Windows, Mac OS/X和Linux的版本。选择合适的版本下载安装。本文档以Windows版本为例进行介绍。SW4STM32包含一系列的Eclipse插件,可以安装在现有的Eclipse上,也可以通过下载独立的安装程序来安装。

双击下载的安装程序,按照提示进行安装。详细的安装说明见官网:http://www.openstm32.org/Installing%2BSystem%2BWorkbench%2Bfor%2BSTM32

安装完成后,在开始菜单里找到SystemWorkbench for STM32,打开。

导入工程

打开SW4STM32后,首先会弹出下面窗口,让你选择一个Workspace。如果是第一次使用,可以通过“Browse”按钮设置workspace的位置。如果之前已经设置过,就可以在下拉菜单中选择一个。

点击“OK”,就可以看到SW4STM32的欢迎界面了。

下面通过File-->Import菜单导入已有的工程。

在弹出的窗口里,选择“Existing Projects into Workspace”,然后点击“Next”。

接下来,选择源文件所在的位置。

在Projects的窗口会显示已存在的工程,选择该工程。点击“Finish”按钮。

工程就已经被导入进来了,关闭Welcome欢迎窗口或者点击左上角的“Restore”按钮,就可以看到整个工程的界面了。

创建物接入项目

请参考快速入门。设备型和数据型项目均适用本例。

修改源码内Baidu IoT Hub连接信息

创建好百度智能云IOT Hub的服务,之前将示例工程导入到SW4STM32后,现在可以进行程序的修改,编译和下载。

例程中提供的MQTT连接例程主要在iothub_mqtt_client_sample.c这个文件中实现。如果您使用的设备型项目,可基于 iotdm_client_sample.c 例程更好地使用。

现在,将其中关于MQTT服务器地址,实例,用户名,密码还有主题(endpoint、username、password、topic)修改成之前的步骤中在云端创建的相关内容。而后进行编译。

将获得的MQTT服务器地址,用户名,密码还有主题填写到下面代码对应的位置。主题的属性,可以在云端设置为可以发布和订阅消息。

编译下载程序

接下来,就可以点击对应的按钮进行编译和下载了。本例程已经做好配置,直接点击对应的按钮就可以执行。关于编译和调试的配置说明,可以参考官网的文档

编译

弹出窗口会显示编译进度。

下载

下载程序之前,请确保已经用USB线将B-L475E-IOT01A与电脑相连。

  • 如果下载出现问题,请确认ST-LINK的驱动已经正确安装。
  • 如果ST-LINK的驱动正确安装,可以在电脑的设备管理器中看到如下设备:

一般情况下当插入板子时,会自动安装驱动。如果没有看到这两个设备,请重新安装驱动。驱动下载地址:http://www.st.com/content/st_com/en/products/development-tools/software-development-tools/stm32-software-development-tools/stm32-utilities/stsw-link009.html

通过“Run”按钮开始下载程序,操作见下图

下方的Console窗口可以看到下载过程信息提示。

调试程序

通过Debug窗口启动调试。见下图:

Tera Term使用说明

程序下载到开发板后,复位开始运行。通过TeraTerm可以看到程序执行过程中的信息。并且WIFI的用户名和密码也是通过Tera Term进行配置的。

第一次使用Tera Term时,请参考下面的步骤进行配置。

终端设置

串口通信设置

串口配置为:115200波特率,8位数据位,无奇偶校验,1位停止位。

保存设置

不要忘记将前面的设置保存。

运行程序

将B-L475E-IOT01A开发板通过USB插到电脑,打开Tera Term(选择对应的COM口)。按黑色的按键复位开发板。

在看到提示“Press the User button (Blue) within the next 5 seconds if you want to update the configuration”后5秒内按下板子上蓝色的按键。(如果之前没有输入过wifi信息,会直接提示输入SSID等内容)

提示是否要更新WIFI的设置。输入“y”,然后依照提示输入wifi的用户名,加密方式和密码。

接下来,板子会连接到WIFI路由器,然后自动连接到之前在程序中设定好的MQTT服务器,向设定好的主题订阅消息/发布消息。发布的消息就是板子上集成的传感器数据。可以通过百度智能云端的客户端或者MQTT.fx订阅同样的主题来查看消息,或者发送消息给B-L475E-IOT01A开发板。

参考文档

  1. UM2153-Discovery kit for IoT node, multi-channel communication with STM32L4
  2. 物接入IoT Hub产品文档