29
20189DocID030926 Rev 1 [English Rev 1] 1/29 1 UM2273 用户手册 面向STM32CubeX-CUBE-WATSON IBM ® IoT云软件扩展入门 引言 本用户手册描述了IBM Watson IoT™(物联网)平台的STM32Cube软件扩展包的内容。 STM32CubeIBM ® IoT云软件扩展包(X-CUBE-WATSON)提供了将STMicroelectronics板连 接到IBM Watson IoT™平台的应用示例。它使用IBM ® 嵌入式C客户端库,将其移植到相应的 STM32设备。 X-CUBE-WATSON可运行于B-L475E-IOT0132F413HDISCOVERY32F769IDISCOVERY板。 可实现设备到云端数据上报,和云端向设备下发命令和通知。 X-CUBE-WATSON提供了下列功能: 通过Wi-Fi ® 和以太网连接IBM Watson ® 支持应用的快速评估和开发 板配置接口 Wi-Fi ® 连接 连接到IBM Watson IoT™平台和各种回调注册 B-L475E-IOT01板可测量和上报以下值: 湿度 温度 3D地磁数据 3D加速度 3D陀螺仪数据 大气压力 接近 www.st.com

Getting started with X-CUBE-WATSON IBM® IoT …Bluemix ®中间件使用由mbedTLS库实现的TLS连接。• TCP/IP TCP/IP连接可由Wi-Fi®模块(当使用Wi-Fi®连接时)或LwIP中间件(当使用以太网

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Getting started with X-CUBE-WATSON IBM® IoT …Bluemix ®中间件使用由mbedTLS库实现的TLS连接。• TCP/IP TCP/IP连接可由Wi-Fi®模块(当使用Wi-Fi®连接时)或LwIP中间件(当使用以太网

2018年9月 DocID030926 Rev 1 [English Rev 1] 1/29

1

UM2273用户手册

面向STM32Cube的X-CUBE-WATSON IBM® IoT云软件扩展入门

引言

本用户手册描述了IBM Watson IoT™(物联网)平台的STM32Cube软件扩展包的内容。

STM32Cube的IBM® IoT云软件扩展包(X-CUBE-WATSON)提供了将STMicroelectronics板连接到IBM Watson IoT™平台的应用示例。它使用IBM®嵌入式C客户端库,将其移植到相应的STM32设备。

X-CUBE-WATSON可运行于B-L475E-IOT01、32F413HDISCOVERY和32F769IDISCOVERY板。

可实现设备到云端数据上报,和云端向设备下发命令和通知。

X-CUBE-WATSON提供了下列功能:

• 通过Wi-Fi®和以太网连接IBM Watson®支持应用的快速评估和开发

• 板配置接口

• Wi-Fi®连接

• 连接到IBM Watson IoT™平台和各种回调注册

• B-L475E-IOT01板可测量和上报以下值:

– 湿度

– 温度

– 3D地磁数据

– 3D加速度

– 3D陀螺仪数据

– 大气压力

– 接近

www.st.com

Page 2: Getting started with X-CUBE-WATSON IBM® IoT …Bluemix ®中间件使用由mbedTLS库实现的TLS连接。• TCP/IP TCP/IP连接可由Wi-Fi®模块(当使用Wi-Fi®连接时)或LwIP中间件(当使用以太网

目录 UM2273

2/29 DocID030926 Rev 1 [English Rev 1]

目录

1 概述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2 IBM Watson IoT™平台 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

3 软件包说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

3.1 概述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

3.2 架构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

3.3 文件夹结构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11

3.4 B-L475E-IOT01板传感器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

3.5 Wi-Fi®组件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

3.6 复位按钮 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

3.7 用户按钮 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

3.8 用户LED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

3.9 实时时钟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

3.10 mbedTLS配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

4 硬件和软件环境设置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

5 应用程序示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

5.1 应用描述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

5.2 Bluemix® IoT账号创建 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

5.3 在IBM Watson®平台上创建设备 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

5.4 应用程序编译和烧写 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

5.5 应用程序首次启动 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

5.6 应用程序运行时 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

5.7 仪表板和绘图值 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

6 与板交互 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

7 如何获取IBM Watson IoT™根CA证书 . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

8 常见问题 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

Page 3: Getting started with X-CUBE-WATSON IBM® IoT …Bluemix ®中间件使用由mbedTLS库实现的TLS连接。• TCP/IP TCP/IP连接可由Wi-Fi®模块(当使用Wi-Fi®连接时)或LwIP中间件(当使用以太网

DocID030926 Rev 1 [English Rev 1] 3/29

UM2273 目录

3

9 版本历史 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

Page 4: Getting started with X-CUBE-WATSON IBM® IoT …Bluemix ®中间件使用由mbedTLS库实现的TLS连接。• TCP/IP TCP/IP连接可由Wi-Fi®模块(当使用Wi-Fi®连接时)或LwIP中间件(当使用以太网

表格索引 UM2273

4/29 DocID030926 Rev 1 [English Rev 1]

表格索引

表1. 缩略语列表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6表2. B-L475E-IOT01板传感器报告值的单位. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12表3. 文档版本历史 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28表4. 中文文档版本历史 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

Page 5: Getting started with X-CUBE-WATSON IBM® IoT …Bluemix ®中间件使用由mbedTLS库实现的TLS连接。• TCP/IP TCP/IP连接可由Wi-Fi®模块(当使用Wi-Fi®连接时)或LwIP中间件(当使用以太网

DocID030926 Rev 1 [English Rev 1] 5/29

UM2273 图片索引

5

图片索引

图 1. IBM Watson IoT™生态系统 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7图 2. X-CUBE-WATSON软件架构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10图 3. 项目文件结构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11图 4. 硬件和软件设置环境 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15图 5. 终端设置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20图 6. 串口设置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21图 7. IBM Watson®注册欢迎屏幕(1/3) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22图 8. IBM Watson®注册欢迎屏幕(2/3) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23图 9. IBM Watson®注册欢迎屏幕(3/3) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23图 10. 安全面板 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24图 11. IBM Watson IoT™证书面板 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24图 12. IBM Watson®证书层次 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25图 13. 当IAR™ IDE版本与 X-CUBE-WATSON所用的版本不兼容时会弹出此提示框 . . . . . . . . . . 26

Page 6: Getting started with X-CUBE-WATSON IBM® IoT …Bluemix ®中间件使用由mbedTLS库实现的TLS连接。• TCP/IP TCP/IP连接可由Wi-Fi®模块(当使用Wi-Fi®连接时)或LwIP中间件(当使用以太网

概述 UM2273

6/29 DocID030926 Rev 1 [English Rev 1]

1 概述

IBM Watson IoT™平台的X-CUBE-WATSON包在基于Arm® Cortex®-M处理器的STM32 32位 微控制器上运行。

表 1给出了相关的缩略语定义,帮助您更好地理解本文档。

表1. 缩略语列表

术语 定义

API 应用编程接口

BSP 板级支持包

CA 认证机构

DHCP 动态主机配置协议

DNS 域名服务器

HAL 硬件抽象层

IDE 集成开发环境

IoT 物联网

IP 互联网协议

JSON JavaScript对象符号

LED 发光二极管

RTC 实时时钟

UART 通用异步收发器

Page 7: Getting started with X-CUBE-WATSON IBM® IoT …Bluemix ®中间件使用由mbedTLS库实现的TLS连接。• TCP/IP TCP/IP连接可由Wi-Fi®模块(当使用Wi-Fi®连接时)或LwIP中间件(当使用以太网

DocID030926 Rev 1 [English Rev 1] 7/29

UM2273 IBM Watson IoT™平台

28

2 IBM Watson IoT™平台

本章介绍IBM Watson IoT™平台。

X-CUBE-WATSON包使用了IBM®嵌入式C客户端库,可支持该开发板安全地连接到IBM Watson IoT™平台。

用户可以使用智能手机或个人计算机连接到云端,并可以随时随地访问该板提供的信息。

图 1显示面向X-CUBE-WATSON包的IBM Watson IoT™生态系统。

图 1. IBM Watson IoT™生态系统

Page 8: Getting started with X-CUBE-WATSON IBM® IoT …Bluemix ®中间件使用由mbedTLS库实现的TLS连接。• TCP/IP TCP/IP连接可由Wi-Fi®模块(当使用Wi-Fi®连接时)或LwIP中间件(当使用以太网

软件包说明 UM2273

8/29 DocID030926 Rev 1 [English Rev 1]

3 软件包说明

本章详细介绍了X-CUBE-WATSON软件包的内容和使用方法。

3.1 概述

X-CUBE-WATSON包为STM32微控制器提供了Bluemix®堆栈中间件。

已经移植到了B-L475E-IOT01、32F413HDISCOVERY和32F769IDISCOVERY板,并可通过板载的网络接口连接到互联网。

• 通过板上集成的Inventek模块,B-L475E-IOT01支持Wi-Fi®。该板配备了一组能够报告湿度、温度、3D轴地磁数据、3D加速度、3D陀螺仪数据、大气压力、接近度和手势检测(X-CUBE-WATSON没有使用手势检测功能)的传感器。

• 通过板上集成的Inventek模块,32F413HDISCOVERY支持Wi-Fi®。

• 32F769IDISCOVERY本身提供了一个以太网接口。

该包分为以下组件:

• 连接到IBM Watson IoT™的客户端库和示例

• mbedTLS

• LwIP

• FreeRTOS™

• Wi-Fi®驱动

• 用于32F769IDISCOVERY板的以太网驱动

• 用于B-L475E-IOT01板的传感器驱动

• STM32L4系列、STM32F4系列,和STM32F7系列HAL

• Bluemix®应用程序示例

该软件以zip文档的形式提供,其中包含源代码。

可支持以下集成开发环境:

• IAR Embedded Workbench® for Arm® (EWARM)

• Keil®微控制器开发套件(MDK-ARM)

• System Workbench for STM32

注: 有关所支持IDE版本的信息,请参阅软件包根文件夹中的版本说明。

Page 9: Getting started with X-CUBE-WATSON IBM® IoT …Bluemix ®中间件使用由mbedTLS库实现的TLS连接。• TCP/IP TCP/IP连接可由Wi-Fi®模块(当使用Wi-Fi®连接时)或LwIP中间件(当使用以太网

DocID030926 Rev 1 [English Rev 1] 9/29

UM2273 软件包说明

28

3.2 架构

本节描述X-CUBE-WATSON包的软件组成部分。

X-CUBE-WATSON软件是对STM32Cube的扩展。其主要功能和特性如下:

• 完全兼容STM32Cube架构

• 为了能够开发应用程序来访问和使用IBM Watson IoT™ 平台,扩展了STM32Cube。

• 基于STM32微控制器的硬件抽象层STM32CubeHAL

应用软件访问和使用IBM Watson IoT™平台所用的软件组件如下:

• STM32Cube HAL HAL驱动层提供通用的多实例简单API组(应用程序编程接口),以便与上层(应用、库和协议栈)交互。

它由通用和扩展API构成。它直接围绕通用架构构建,允许在其基础上的软件层,例如中间件层,实现了它的功能又无需依赖给定微控制器单元(MCU)的特定硬件配置。

此结构可提高库代码的可复用性,并确保可向其他设备轻松移植。

• 板级支持包(BSP) 除MCU之外,软件包需支持STM32板上的外设。板级支持包(BSP)中包含此软件。这是一个有限的API集,为板特有的某些外设(例如LED和用户按钮等)提供编程接口。

• Bluemix®中间件 它由Bluemix® IoT hub客户端库、JSON解析器、JSON序列化程序、MQTT客户端(被IoT hub客户端库用作传输层)以及客户端库使用的各种C工具组成。

• mbedTLS Bluemix®中间件使用由mbedTLS库实现的TLS连接。

• TCP/IP TCP/IP连接可由Wi-Fi®模块(当使用Wi-Fi®连接时)或LwIP中间件(当使用以太网连接时)来处理。在X-CUBE-WATSON包中,只有32F769IDISCOVERY板可以通过以太网进行连接。

• FreeRTOS™ 它是一个实时操作系统,使用LwIP为用户提供基于套接字的接口时,需要用到。

图 2概括了X-CUBE-WATSON软件架构。

Page 10: Getting started with X-CUBE-WATSON IBM® IoT …Bluemix ®中间件使用由mbedTLS库实现的TLS连接。• TCP/IP TCP/IP连接可由Wi-Fi®模块(当使用Wi-Fi®连接时)或LwIP中间件(当使用以太网

软件包说明 UM2273

10/29 DocID030926 Rev 1 [English Rev 1]

图 2. X-CUBE-WATSON软件架构

MSv46869V2

Paho MQTT LwIP FreeRTOSTMmbedTLS

STM32

32F769IDISCOVERYB-L475E-IOT01 32F413HDISCOVERY

IBM® IoTPC

BSP HAL

Wi-Fi®

CMSIS

Page 11: Getting started with X-CUBE-WATSON IBM® IoT …Bluemix ®中间件使用由mbedTLS库实现的TLS连接。• TCP/IP TCP/IP连接可由Wi-Fi®模块(当使用Wi-Fi®连接时)或LwIP中间件(当使用以太网

DocID030926 Rev 1 [English Rev 1] 11/29

UM2273 软件包说明

28

3.3 文件夹结构

图 3给出了X-CUBE-WATSON包的文件夹结构。

图 3. 项目文件结构

Page 12: Getting started with X-CUBE-WATSON IBM® IoT …Bluemix ®中间件使用由mbedTLS库实现的TLS连接。• TCP/IP TCP/IP连接可由Wi-Fi®模块(当使用Wi-Fi®连接时)或LwIP中间件(当使用以太网

软件包说明 UM2273

12/29 DocID030926 Rev 1 [English Rev 1]

3.4 B-L475E-IOT01板传感器

板上由示例应用使用的传感器是:

• 用于相对湿度和温度测量的电容式数字传感器(HTS221)

• 高性能3轴磁力计(LIS3MDL)

• 3D加速度计和3D陀螺仪(LSM6DSL)

• 260-1260 hPa绝对数字输出气压计(LPS22HB)

• 接近传感器(VL53L0X)

发布传感器信息的示例:

{

“d”:

{

"temperature": 30.07,

"humidity": 36.28,

"pressure": 996.78,

"proximity": 2066,

"acc_x": -12,

"acc_y": -8,

"acc_z": 1050,

"gyr_x": -1260,

"gyr_y": -1610,

"gyr_z": -1190,

"mag_x": 283,

"mag_y": -341,

"mag_z": 512

}

}

表 2给出了B-L475E-IOT01板传感器报告值的单位。

表2. B-L475E-IOT01板传感器报告值的单位

数据 单位

温度 摄氏度(°C)

湿度 相对湿度(%)

压力 百帕斯卡(hPa)

接近 毫米(mm)

加速度 毫重力(mgforce)

角速度 毫度每秒(mdps)

磁感应 毫高斯(mG)

Page 13: Getting started with X-CUBE-WATSON IBM® IoT …Bluemix ®中间件使用由mbedTLS库实现的TLS连接。• TCP/IP TCP/IP连接可由Wi-Fi®模块(当使用Wi-Fi®连接时)或LwIP中间件(当使用以太网

DocID030926 Rev 1 [English Rev 1] 13/29

UM2273 软件包说明

28

3.5 Wi-Fi®组件

Wi-Fi®软件分为两部分,驱动程序/BSP/组件下,是模块专用软件,Projects/<board>/Wi-Fi下,I/O操作和WIFI模块的抽象层。

3.6 复位按钮

复位按钮(黑色)用于随时复位板子。此操作可使板重新启动。

3.7 用户按钮

用户按钮(蓝色)用于以下情况:

• 要配置Wi-Fi®和Bluemix®安全证书时。从板启动时开始直到启动后五秒,都可以完成此操作。

• 板子初始化后,如果用户按下按钮的时间很短,则应用程序仅发布B-L475E-IOT01板子的传感器值、0/1切换值(绿色LED将相应切换)以及时间戳。

双击按钮后,应用程序进入循环并每秒自动发布一次。再一次双击将恢复先前的模式。

应用程序通过板级支持包(BSP)功能来配置和管理用户按钮。

BSP功能位于Drivers\BSP\<board name>目录中。

使用BSP按钮功能时(采用BUTTON_USER值),对于给定的平台,应用程序不会从硬件角度考虑此按钮连接的方式。该映射由BSP处理。

3.8 用户LED

应用程序所用的用户LED配置通过板级支持包(BSP)功能完成。

BSP功能位于Drivers\BSP\<board name>目录下。

使用BSP按钮功能时(采用LED_GREEN值),对于给定的平台,应用程序不会考虑LED映射的方式。该映射由BSP处理。

3.9 实时时钟

STM32 RTC在启动时从www.gandi.net Web服务器进行更新。

用户可以使用HAL_RTC_GetTime()函数得到时间值。

例如,此函数可以用于时间戳消息。

Page 14: Getting started with X-CUBE-WATSON IBM® IoT …Bluemix ®中间件使用由mbedTLS库实现的TLS连接。• TCP/IP TCP/IP连接可由Wi-Fi®模块(当使用Wi-Fi®连接时)或LwIP中间件(当使用以太网

软件包说明 UM2273

14/29 DocID030926 Rev 1 [English Rev 1]

3.10 mbedTLS配置

利用 #include配置文件,可以对mbedTLS中间件进行配置。

通过定义MBEDTLS_CONFIG_FILE,可以覆盖配置文件名。

X-CUBE-WATSON包使用文件bluemix_mbedtls_config.h来实现项目配置。

这可以通过在mbedTLS.c和mbedTLS.h文件开头使用以下# 指令来实现:

#if !defined(MBEDTLS_CONFIG_FILE)

#include "mbedtls/config.h"

#else

#include MBEDTLS_CONFIG_FILE

#endif

配置文件指定了要使用的相关加密参数。

Page 15: Getting started with X-CUBE-WATSON IBM® IoT …Bluemix ®中间件使用由mbedTLS库实现的TLS连接。• TCP/IP TCP/IP连接可由Wi-Fi®模块(当使用Wi-Fi®连接时)或LwIP中间件(当使用以太网

DocID030926 Rev 1 [English Rev 1] 15/29

UM2273 硬件和软件环境设置

28

4 硬件和软件环境设置

要设置硬件和软件环境,必须利用USB线缆将支持的板(共3种)插入个人计算机。连接到PC后,允许用户:

• 烧写板

• 存储Wi-Fi®和Bluemix®安全证书

• 通过UART控制台与板进行交互

• 调试

B-L475E-IOT01或32F413HDISCOVERY板必须连接到Wi-Fi®接入点,而32F769IDISCOVERY板必须连接到以太网接口,如图 4中所示。

图 4. 硬件和软件设置环境

运行示例的先决条件是:

• 一个Wi-Fi®接入点,具有透明的互联网连接,也就是说不能有代理服务器或者防火墙阻止开发板与外网的通信。它必须运行一个DHCP服务器,将IP和DNS配置提供给主板。

• 由于它使用IBM®仪表板来实现从云到设备的交互,因此X-CUBE-WATSON中不提供设备管理应用程序。如果要开发设备管理应用程序,则需要使用具有透明互联网连接的计算机,也就是说不能有代理服务器或者防火墙阻止开发板与外网的通信。例如,它可以是开发PC、虚拟专用服务器或单板计算机。它可以连接到与MCU板相同的路由器。

• 一台开发PC,用于构建应用程序、利用ST-Link进行编程,以及运行虚拟控制台。

MSv45248V4

B-L475E-IOT01 32F413HDISCOVERY 32F769IDISCOVERY

USB

IoTWi-Fi®

Wi-Fi®

Page 16: Getting started with X-CUBE-WATSON IBM® IoT …Bluemix ®中间件使用由mbedTLS库实现的TLS连接。• TCP/IP TCP/IP连接可由Wi-Fi®模块(当使用Wi-Fi®连接时)或LwIP中间件(当使用以太网

应用程序示例 UM2273

16/29 DocID030926 Rev 1 [English Rev 1]

5 应用程序示例

本节介绍如何注册和登录IBM Watson IoT™平台,以及如何使用X-CUBE-WATSON包中 的IBM® Bluemix®云IoT客户端应用程序。

5.1 应用描述

该应用提出了连接到IBM®IoT平台的两种方式:

• 快速入门注册:不需要帐户和令牌,该连接不安全。

• 简单注册:需要IBM IoT账户,设备通过令牌进行身份验证,该连接使用mbedTLS加 密。

此应用程序已经移植到了B-L475E-IOT01、32F413HDISCOVERY和32F769IDISCOVERY板,并可通过板载的网络接口连接到互联网。

它使用用户提供的认证信息连接到IBM® Bluemix®IoT云。

5.2 Bluemix® IoT账号创建

使用快速入门方式注册设备不需要IBM® Bluemix®帐户。

使用IBM Watson IoT™平台应用程序或使用简单方式注册设备需要IBM® Bluemix®帐户。

要注册,请访问:https://console.bluemix.net/registration/

注册过程会接收到一封电子邮件。

5.3 在IBM Watson®平台上创建设备

创建设备(用于简单注册模式)。

请按以下所示步骤执行:https://developer.ibm.com/recipes/tutorials/how-to-register-devices-in-ibm-iot-foundation/

5.4 应用程序编译和烧写

注意: 使用任何工具链打开项目之前,请确保文件夹安装路径不太深,否则工具链可能会在编译之后报告错误。

使用所支持的某种开发工具链打开并编译项目(有关版本要求的详细信息,请参阅版本说明)。

在STM32板上编程固件:将Projects\<board name>\Applications\Cloud\Bluemix\Binary下的二进制文件复制(或拖放)到STM32板插入PC时所创建的USB大容量存储位置。或者,您可以直接通过所支持的其中一个开发工具链对STM32板进行编程。

Page 17: Getting started with X-CUBE-WATSON IBM® IoT …Bluemix ®中间件使用由mbedTLS库实现的TLS连接。• TCP/IP TCP/IP连接可由Wi-Fi®模块(当使用Wi-Fi®连接时)或LwIP中间件(当使用以太网

DocID030926 Rev 1 [English Rev 1] 17/29

UM2273 应用程序示例

28

5.5 应用程序首次启动

1. 必须通过USB(ST-LINK USB端口)将板连接到PC。通过串行终端仿真器(如Tera Term)打开控制台,选择板子的ST-LINK COM端口,并进行以下配置:

– 8位数据长度,无校验,1位停止位,115200波特率,无HW流控制

– 行结束符设置为LF

有关更多详细信息,请参见第 6节:与板交互第 20页。

对于支持WiFi®的板,请通过控制台输入Wifi SSID、加密模式和密码。

2. 设置TLS根CA证书:

复制-粘贴Projects\Common\Bluemix\comodo_bluemix.pem的内容。该设备使用它通过TLS对远程主机进行身份验证。

注意:示例应用程序要求提供2个CA证书的连结

a) 用于HTTPS服务器,启动时通过该服务器检索当前时间和日期(“Comodo”证书)

b) 对于IBM® IoT平台

这一个要使用简单方式进行注册,不使用快速入门方式时,需要证书。

第 7节:如何获取IBM Watson IoT™根CA证书第 22页介绍了获取新的Bluemix®

TLS根CA证书的步骤。

3. 在控制台上选择“快速入门”或“简单”注册方式,然后根据提示输入连接字符串。

4. 参数配置完成后,如果需要重新更改参数,可以根据提示通过重启板并按下User按钮(蓝色按钮)来进行更改。

Page 18: Getting started with X-CUBE-WATSON IBM® IoT …Bluemix ®中间件使用由mbedTLS库实现的TLS连接。• TCP/IP TCP/IP连接可由Wi-Fi®模块(当使用Wi-Fi®连接时)或LwIP中间件(当使用以太网

应用程序示例 UM2273

18/29 DocID030926 Rev 1 [English Rev 1]

5.6 应用程序运行时

1. RTC配置

应用程序发出HTTPS请求来检索当前时间和日期,并配置RTC。

2. 设备到云的连接

设备连接到IBM® Bluemix®平台

如果板子为B-L475E-IOT01,则应用可发布传感器值、0/1切换值(绿色LED相应切换)以及时间戳:

– 如果用户按钮按下的时间很短,则发布一次

– 如果用户按钮被按下两次,则每秒钟发布或暂停发布

用户可以通过在串行终端中看到的URL,来查看上报的数据

– 如果使用快速入门完成注册,请访问https://quickstart.internetofthings.ibmcloud.com。

– 使用简单注册模式,请访问https://<Organisation Id>.internetofthings.ibmcloud.com。

要使用的设备ID也会打印在串行终端仿真器中。

3. 云到设备的连接

这种交互只能在简单注册模式下使用。设备是受管设备并接受“Reboot”命令。

该操作可以在设备的IBM Watson IoT™平台互联网页面中通过“Reboot”按钮(在互联网页面中左下)激活。

这会向设备发送一条命令并使其重新启动。

5.7 仪表板和绘图值

本节介绍如何使用IBM Watson®仪表板绘制客户端发布的值。

1. https://console.bluemix.net/dashboard

Page 19: Getting started with X-CUBE-WATSON IBM® IoT …Bluemix ®中间件使用由mbedTLS库实现的TLS连接。• TCP/IP TCP/IP连接可由Wi-Fi®模块(当使用Wi-Fi®连接时)或LwIP中间件(当使用以太网

DocID030926 Rev 1 [English Rev 1] 19/29

UM2273 应用程序示例

28

注: 确保Region已正确设置并且Space已定义。

2. 选择物联网平台服务,然后单击 Launch按钮

3. 登录

4. 在右上角,选择适当的组织。 这会转到All boards dashboard

5. 在Usage overview中,可以添加线形图来绘制已发布的值

a) “+ Add New Card”按钮

b) 选择“Line chart”

c) 选择设备ID

d) “下一个”

e) “连接新数据集”

f) 事件 = 状态

g) 属性:选择要绘制的值

h) 类型 = 文本或数字

i) 下一个

j) 下一个

k) 提交

Page 20: Getting started with X-CUBE-WATSON IBM® IoT …Bluemix ®中间件使用由mbedTLS库实现的TLS连接。• TCP/IP TCP/IP连接可由Wi-Fi®模块(当使用Wi-Fi®连接时)或LwIP中间件(当使用以太网

与板交互 UM2273

20/29 DocID030926 Rev 1 [English Rev 1]

6 与板交互

需要串行终端来:

• 对板子进行配置

• 在本地显示接收到的Bluemix® IoT云到设备消息

本文档中使用Tera Term进行说明。也可以使用其他类似的工具。

当板首次使用时,必须使用Bluemix® IoT身份认证数据进行编程。

• 确定PC上所用的用于探索板的STM32 ST-LINK虚拟COM端口。可通过电脑上的“设备 管理器”查看

• 打开PC上的虚拟终端并将其连接到上述虚拟COM端口。

在开发包实用程序目录中提供了一个Tera Term初始化脚本(参考图 3);此脚本设置了正确的参数。要使用它,请打开Tera Term,选择Setup,然后选择Restore设置。

注: 本章中下面提供的信息可用来配置UART终端,使其成为Tera Term初始化脚本的替代选择。

终端设置如图 5中所示,其中显示了终端设置和新行的建议参数。

虚拟终端新行传输配置必须设置为LineFeed(\n或LF),以便允许从UNIX类型的文本文件复制粘贴。本地回显选项使得复制粘贴在控制台上可见。

图 5. 终端设置

串口必须配置:

• COM端口编号

• 115200波特率

• 8 位数据

• 无校验位

• 1个停止位

• 无流控

串口设置如图 6中所示。

Page 21: Getting started with X-CUBE-WATSON IBM® IoT …Bluemix ®中间件使用由mbedTLS库实现的TLS连接。• TCP/IP TCP/IP连接可由Wi-Fi®模块(当使用Wi-Fi®连接时)或LwIP中间件(当使用以太网

DocID030926 Rev 1 [English Rev 1] 21/29

UM2273 与板交互

28

图 6. 串口设置

UART终端和串口设置完毕后,按下板复位按钮(黑色)。

按照UART终端上的指示上传Wi-Fi®和Bluemix®数据。这些数据保留在Flash中,并在下次板启动时重复使用。

Page 22: Getting started with X-CUBE-WATSON IBM® IoT …Bluemix ®中间件使用由mbedTLS库实现的TLS连接。• TCP/IP TCP/IP连接可由Wi-Fi®模块(当使用Wi-Fi®连接时)或LwIP中间件(当使用以太网

如何获取IBM Watson IoT™根CA证书 UM2273

22/29 DocID030926 Rev 1 [English Rev 1]

7 如何获取IBM Watson IoT™根CA证书

本章介绍从步骤1到步骤8获取IBM Watson IoT™根CA证书的过程。整个过程通过Mozilla® Firefox®屏幕截图进行说明。

可以跳过下面介绍的所有步骤,直接使用本章末尾的步骤8中提供的证书。这只能在IBM Watson®侧根CA没有改变的情况下才有效。

1. 确保Internet连接不被防火墙阻止

2. 用Firefox打开https://<domain name>.internetofthings.ibmcloud.com,如图 7所示。

图 7. IBM Watson®注册欢迎屏幕(1/3)

Page 23: Getting started with X-CUBE-WATSON IBM® IoT …Bluemix ®中间件使用由mbedTLS库实现的TLS连接。• TCP/IP TCP/IP连接可由Wi-Fi®模块(当使用Wi-Fi®连接时)或LwIP中间件(当使用以太网

DocID030926 Rev 1 [English Rev 1] 23/29

UM2273 如何获取IBM Watson IoT™根CA证书

28

3. 点击安全 图标(左上角的挂锁),如图 8所示。

图 8. IBM Watson®注册欢迎屏幕(2/3)

4. 面板打开,如图 9所示。点击>按钮查看证书。

图 9. IBM Watson®注册欢迎屏幕(3/3)

Page 24: Getting started with X-CUBE-WATSON IBM® IoT …Bluemix ®中间件使用由mbedTLS库实现的TLS连接。• TCP/IP TCP/IP连接可由Wi-Fi®模块(当使用Wi-Fi®连接时)或LwIP中间件(当使用以太网

如何获取IBM Watson IoT™根CA证书 UM2273

24/29 DocID030926 Rev 1 [English Rev 1]

5. 安全面板打开 ,如图 10所示。点击View Certificate按钮。

图 10. 安全面板

6. IBM Watson IoT™平台的证书面板如图 11所示打开。

图 11. IBM Watson IoT™证书面板

Page 25: Getting started with X-CUBE-WATSON IBM® IoT …Bluemix ®中间件使用由mbedTLS库实现的TLS连接。• TCP/IP TCP/IP连接可由Wi-Fi®模块(当使用Wi-Fi®连接时)或LwIP中间件(当使用以太网

DocID030926 Rev 1 [English Rev 1] 25/29

UM2273 如何获取IBM Watson IoT™根CA证书

28

7. 单击Details选项卡查看证书层次结构并选择根CA,如图 12所示。

图 12. IBM Watson®证书层次

8. 后,点击导出按钮。2017年11月10日,通过此过程获得以下根CA证书:

-----BEGIN CERTIFICATE----- MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBhMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBDQTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAwMDAwMDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsBCSDMAZOnTjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97nh6Vfe63SKMI2tavegw5BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt43C/dxC//AH2hdmoRBBYMql1GNXRor5H4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7PT19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y7vrTC0LUq7dBMtoM1O/4gdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQABo2MwYTAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbRTLtm8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUwDQYJKoZIhvcNAQEFBQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/EsrhMAtudXH/vTBH1jLuG2cenTnmCmrEbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIttep3Sp+dWOIrWcBAI+0tKIJFPnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886UAb3LujEV0lsYSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQkCAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4= -----END CERTIFICATE-----

Page 26: Getting started with X-CUBE-WATSON IBM® IoT …Bluemix ®中间件使用由mbedTLS库实现的TLS连接。• TCP/IP TCP/IP连接可由Wi-Fi®模块(当使用Wi-Fi®连接时)或LwIP中间件(当使用以太网

常见问题 UM2273

26/29 DocID030926 Rev 1 [English Rev 1]

8 常见问题

问:当我用IAR™打开项目时,为什么会弹出此提示框(见图 13)?

图 13. 当IAR™ IDE版本与 X-CUBE-WATSON所用的版本不兼容时会弹出此提示框

答:很可能是由于此IAR™IDE版本比开发包所用版本更早(请参阅软件包根文件夹中提供的版本说明,以了解支持的IDE版本),因此不能保证兼容性。这种情况下,需要更新IAR™ IDE版本。

问:应该如何修改应用程序来发布其他消息?

答:根据是使用B-L475E-IOT01还是他板,bluemix.c文件中需要分别更新函数PrepareMqttPayload()或PrepareToggleMqttPayload()。

问:我的设备不能连接到Bluemix® IoT hub。我该如何处理?

答:需要检查的事项是:

1. 以快速入门模式启动,检查是否能够通过控制台提供的URL查看IBM Watson IoT™平台上的数据(不需要帐户)。

2. 如果不成功,则必须再次仔细进行初始配置。

3. 如果1.成功,而使用注册模式时连接仍然失败,则请登录并检查帐户和设备是否都可用。

4. 如果仍然没有连接,请检查在配置阶段输入的连接字符串是否与IoT平台(OrgId、DeviceType、DeviceId和Token)上的数据匹配。

5. 如果仍然没有连接,请检查IBM Watson IoT™平台上的设备安全性是否设置为“带有令牌验证的TLS”。

问:我的设备不能连接到Wi-Fi®接入点。我该如何处理?

答:请确认其他设备是否可以连接到Wi-Fi®接入点。如果可以,请在板重置后,按下用户按钮(蓝色)五秒钟,输入Wi-Fi®用户名和密码。

Page 27: Getting started with X-CUBE-WATSON IBM® IoT …Bluemix ®中间件使用由mbedTLS库实现的TLS连接。• TCP/IP TCP/IP连接可由Wi-Fi®模块(当使用Wi-Fi®连接时)或LwIP中间件(当使用以太网

DocID030926 Rev 1 [English Rev 1] 27/29

UM2273 常见问题

28

问:接近传感器总是报告“8190”,即使我将障碍物靠近其放置也是如此。

A:请确保已经取下衬垫(放置在接近传感器上的非常薄的薄膜)。它的颜色是橙色,不是很明显。

Page 28: Getting started with X-CUBE-WATSON IBM® IoT …Bluemix ®中间件使用由mbedTLS库实现的TLS连接。• TCP/IP TCP/IP连接可由Wi-Fi®模块(当使用Wi-Fi®连接时)或LwIP中间件(当使用以太网

版本历史 UM2273

28/29 DocID030926 Rev 1 [English Rev 1]

9 版本历史

表3. 文档版本历史

日期 版本 变更

2017年11月13日 1 初始版本。

表4. 中文文档版本历史

日期 版本 变更

2018年9月3日 1 中文初始版本。

Page 29: Getting started with X-CUBE-WATSON IBM® IoT …Bluemix ®中间件使用由mbedTLS库实现的TLS连接。• TCP/IP TCP/IP连接可由Wi-Fi®模块(当使用Wi-Fi®连接时)或LwIP中间件(当使用以太网

DocID030926 Rev 1 [English Rev 1] 29/29

UM2273

29

重要通知 - 请仔细阅读

意法半导体公司及其子公司(“ST”)保留随时对 ST 产品和 / 或本文档进行变更、更正、增强、修改和改进的权利,恕不另行通知。买方在订货之前应获取关于 ST 产品的 新信息。 ST 产品的销售依照订单确认时的相关 ST 销售条款。

买方自行负责对 ST 产品的选择和使用, ST 概不承担与应用协助或买方产品设计相关的任何责任。

ST 不对任何知识产权进行任何明示或默示的授权或许可。

转售的 ST 产品如有不同于此处提供的信息的规定,将导致 ST 针对该产品授予的任何保证失效。

ST 和 ST 徽标是 ST 的商标。所有其他产品或服务名称均为其各自所有者的财产。

本文档中的信息取代本文档所有早期版本中提供的信息。本文档的中文版本为英文版本的翻译件,仅供参考之用;若中文版本与英文版本有任何冲突或不一致,则以英文版本为准。

© 2018 STMicroelectronics - 保留所有权利