使用快速启动平台加速传感器到云端的连接
务中注册 STM32 Nucleo 微系统后,该微系统即可用于传输实时传感器数据。 使用 NFC 动态标签时,用户还可以自动打开 IBM 提供的试用网页,并将 STM32 Nucleo 开发板上所有传感器生成的数据可视化。
为了将 STM32 Nucleo 微系统与 IBM Bluemix 云进行连接,STMicroelectronics 移植了 MQTT 应用级网络协议的开源实现。 MQTT 是一种机器到机器 (M2M) IoT 连接协议,用于通过少量的代码连接远程设备,特别是在网络带宽有限的情况下。 消息传递协议是轻型的,因此节省了电力,这使其特别适合用于嵌入式系统中的传感器数据遥测和实现。 在 FP-CLD-BLUEMIX1 中,MQTT 作为中间件库集成到 STM32 软件包中。
功能包中提供了将 X-NUCLEO-IKS01A1、X-NUCLEO-IDW01M1 和 XNUCLEO-NFC01A1 扩展板与 NUCLEO-F401RE 板一起使用的示例应用。 此应用从温度、湿度、压力、加速计、磁力仪和陀螺仪传感器读取数据值,并通过 Wi-Fi 将其传输到 IBM Bluemix。
此应用默认配置为仅针对数据可视化目的在快速启动模式下运行。 但很容易修改为在 IBM Bluemix 中注册和控制设备(需要 IBM Bluemix 帐户)。
注册 IBM Bluemix 帐户
在 IBM Bluemix 云服务中注册 STM32 Nucleo 微系统后,该微系统即可用于建立端到端 IoT 应用的原型,并开始传输实时传感器数据。
登录或创建 Bluemix 帐户(请参见"参考资料 1"中的完整说明)即可开始。 注册时必须提供几个属性和参数,如下所示:
OrganizaTIon ID (i.e., "1w8a05")。
Device type (i.e.: "stm32_nucleo")。
UM2007 FP-CLD-BLUEMIX1 software descripTIon
DocID028875 Rev 2 13/23
AuthenTIcaTIon Method (only "use-token-auth" supported)。
Authentication token (i.e., "uUURNRbeQQaX+Fvi&8")。
将设备属性复制到位于源代码文件 IBM_Bluemix_Config.c 中的 Config_MQTT_IBM 函数中。 该文件位于 FP-CLD-BLUEMIX1 软件包的 Projects/Multi/Applications/MQTT_IBM/Src 文件夹中。
然后,ibm_mode 变量需要设置为 "REGISTERED",如下所示(代码列表):
Void Config_MQTT_IBM (MQTT_vars * mqtt_ibm_setup , uint8_t *macadd):
/* Default Configuration for QUICKSTART. REGISTERED mode requires account on Bluemix */
mqtt_ibm_setup-》ibm_mode = REGISTERED
然后,需要将 IBM Bluemix 中提供的设备属性复制到名为 IBM_Bluemix_Config.c 的源代码文件中的 Config_MQTT_IBM 函数中。 该文件位于 Projects/Multi/Applications/MQTT_IBM/Src 文件夹中。
程序执行中途将显示:
/* REGISTERED DEVICE */
/* Need to be customized */
完成后第四到第八行将显示如下:
strcpy ((char*)mqtt_ibm_setup-》username,"use-token-auth); //customize
strcpy ((char*)mqtt_ibm_setup-》password," uUURNRbeQQax+Fvit&8");
strcpy ((char*)mqtt_ibm_setup-》hostname,"1w8a05.messaging.internetofthings.ibmcloud.com);
strcpy ((char*)mqtt_ibm_setup-》device_type, "stm32_nucleo");
strcpy ((char*)mqtt_ibm_setup-》org_id, "1w8a05");
代码列表:IBM 设备注册和属性插入要求。 完成注册后,STM32 Nucleo 微系统将能够向 IBM Watson IoT 应用发送信息并从其接收信息。 (来源:STMicroelectronics)
FP-CLD-BLUEMIX1 软件包示例应用包含默认配置,以根据设备的 MAC 地址在 IBM Quickstart 网页3 上查看传感器数据。 URL 页面也被写入 NFC 标签中。 一旦 STM32 Nucleo 开发板连接到 Wi-Fi 接入点,就会自动与 IBM Bluemix 交互并开始传输传感器数据。 Wi-Fi 扩展板的 MAC 地址和 IBM Quickstart URL 打印在串行终端接口中。
要查看实时传感器数据,可以将 Quickstart URL 复制并粘贴到 Web 浏览器中。 使用支持 NFC 的移动设备时,将设备靠近 NFC 标签可以更容易打开网页。 为了实现连接状态视觉指示,一旦 Nucleo 连接到 IBM Bluemix,STM32 Nucleo 开发板上的绿色 LED2 将变为 "ON"。 每次传输传感器数据样本时,就会闪烁。
FP-CLD-BLUEMIX1 包本身带有一个 STM32 层, 其中包括一组简单的与上层应用、库和堆栈交互的通用多实例 API。 这些通用和扩展 API 基于一个通用框架。 这让它们构建的任意层(例如中间件层)可以实现其功能,而无需具备既定 MCU 的特定硬件信息。 此结构提高了库代码的可重用性,并确保可轻松移
- 盘点STM32-NUCLEO开发与仿真平台(03-28)
- 一种基于ZigBee和STM32的室内智能照明系统的设计(05-13)
- 大联大友尚集团推出ST STM32马达控制Nucleo开发工具包,可直接开始运转无刷直流马达(05-27)
- 这些VR设备“内脏”构造大解剖!绝对有你没见过的(02-14)
- 在变频空调风机中永磁同步电机矢量控制方案的运用(04-04)
- 基于STM32和SIM900A的无线通信模块设计(10-07)