使用快速启动平台加速传感器到云端的连接

时间:2022-03-14来源:佚名

传感器是物联网 (IoT) 的眼睛和耳朵,提供分析和大数据应用需要的信息,帮助用户做出明智的决策。 尽管有许多方法可以连接多个无线传感器来执行该分析,但连接到云端仍然具有挑战性。 在空间、功率和成本以及配置和管理所有传感器的同时又要确保强大的安全性方面尤其如此。

为了缩短开发周期,有些开发套件兼具传感器节点开发和云连接功能。 开发人员无需就如何将云服务集成到最终用户体验中做出架构决策(包括系统将执行的操作以及哪些操作会触发设备的特定功能),即可使用这些“开箱即用”套件相对较快地启动并运行具有传感器功能的设计。

本文将介绍 STMicroelectronics 的 STM32 Nucleo 开发板和 X-NUCLEO 扩展板,它们集成了实现所选应用专门功能所需的组件。闪存 Nucleo 传感器节点 文中还将说明如何使用 FP-CLD-BLUEMIX1 扩展软件包,通过几个简单的步骤来发出 Nucleo 传感器节点信号并将 Nucleo 电路板连接到 IBM Watson IoT 云平台。1

Nucleo 平台和软件

STM32 Nucleo 开发板为工程师提供了一种灵活的方式来尝试新的概念,并使用 STMicroelectronics STM32 微控制器构建原型。 这种开发板具有在所有 Nucleo 电路板上通用的扩展针座,因此很容易添加扩展模块。

Nucleo 开发板集成了 ST-LINK / V2-1 调试器/编程器,因此支持 Arduino 作为其开放生态系统方法的一部分,并且不需要单独的探头。 开发板随附 STM32 软件库以及各种封装软件示例。

包括 Arduino 在内,有多种不同的盾板可以使用。 使用 STMicroelectronics 的 Morpho 针座的开发板可用于所有应用类型的盾板扩展,包括射频、工业和家庭自动化盾板应用。 此外,还提供蓝牙 LE、Wi-Fi 和视听应用的盾板。

库支持涵盖用于 STM32 的标准库,以及对 ARM® 免费在线 mbed 的支持。ARM® mbed 是一个 IoT 设备平台,提供操作系统、工具和开发人员生态系统,使设计人员能够评估并开始使用 Nucleo 开发板。

为了帮助形成从传感器到云端的连接,STMicroelectronics 还提供了 FP-CLD-BLUEMIX1,这是一种可在 STM32 微控制器上运行、用于 STM32Cube 的 IoT 节点扩展软件包,可从 STMicroelectronics 的网站获取。2 STM32Cube 的主要目标是使开发应用的过程变得更容易。 为此,该扩展软件包包含了 STM32CubeMX 和 STM32Cube 嵌入式软件库(图 1)。

图 1: FP-CLD-BLUEMIX1 提供了完整的中间件来构建基于 Wi-Fi 连接的应用,并将 STM32 Nucleo 开发板链接到基于云的服务。 (图片来源: STMicroelectronics)

STM32CubeMX 从图形用户界面生成 STM32 MCU 的初始化 C 代码。 STM32MX 还生成 IDE 就绪型项目,提供功耗计算器,并允许直接从 st.com 导入 STM32Cube 嵌入式软件库。

每个 STM32 产品系列都有一个 STM32Cube 嵌入式软件包。 该嵌入式软件库包括用于 STM32 外围设备的硬件抽象层 (HAL) 和低层 (LL) 应用编程接口 (API),以及基于 STMicroelectronics 开发或开源组件的一组中间件(RTOS、USB、TCP/IP、图形等)。 初始化代码、中间件元器件、HAL 和 LL API 与所有 STM32 编译器兼容。

就其本身而言,FP-CLD-BLUEMIX1 软件包通过为 Wi-Fi、NFC 和传感器扩展板提供板级支持包 (BSP) 来扩展 STM32Cube。 其作用是实现与 IBM Bluemix 云的连接来传输传感器数据并从云应用接收命令。 该软件包本质上有助于快速启动端到端 IoT 开发,以便您可以专注差异化设计。

连接传感器

提供了一个软件界面,用于访问 Nucleo 开发板的温度和湿度传感器 (HTS221)、压力传感器 (LPS25HB)、运动传感器(LIS3MDL 和 LSM6DS0)以及写入和读取 RFID / NFC 标签。 X-NUCLEO-IKS01A1 包含所有这些传感器(图 2)。

图 2: X-NUCLEO-IKS01A1 是一种运动 MEMS 和环境传感器评估板系统。 (图片来源: STMicroelectronics)

IKS01A1 与 Arduino UNO R3 连接器布局兼容,围绕 STMicroelectronics 的 LSM6DS0 3 轴加速计 3 轴陀螺仪、LIS3MDL 3 轴磁力仪、HTS221 湿度和温度传感器以及 LPS25HB 压力传感器设计而成。

IKS01A1 还包括实现 MQ 遥测传输 (MQTT) 协议的中间件包,以促进 STM32 Nucleo 开发板与 IBM Bluemix Cloud 服务之间的交互。 该软件包括用于查看传感器数据以及通过 IBM Bluemix 控制设备的示例。

除了中间件堆栈,还提供了一个用于测试与 IBM Watson IoT 平台连接的示例应用。 它用于建立端到端 IoT 应用的原型。 在 IBM Bluemix 云服务中注册 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 的特定硬件信息。 此结构提高了库代码的可重用性,并确保可轻松移植于其他设备。

软件包的“Documentation”文件夹中的编译 HTML 文件中为用户提供了完整描述 API 函数和参数的详细技术信息。

IBM 样本使用的主要 API 有:

· ·void Config_MQTT_IBM(MQTT_vars * mqtt_ibm_setup , uint8_t * macadd);配置用于 IBM 云连接的 MQTT 参数,指定 Wi-Fi 扩展板的 MAC 地址。

· int spwf_socket_create(Network* net, uint8_t * hostname, uint32_t port_number,uint8_t * protocol);打开套接字,指定主机名、端口号和协议类型(TCP 或 TLS)。 返回成功或失败结果以及网络结构中的套接字 ID。

· ·void MQTTClient(Client* c, Network* network, unsigned intcommand_timeout_ms, unsigned char* buf, size_tbuf_size, unsigned char* readbuf, size_treadbuf_size);配置客户端结构,指定输入参数。

· int MQTTConnect(Client* c, MQTTPacket_connectData* options);连接 IBM MQTT 代理,指定客户端和 MQTTPacket_connect 数据结构中的参数。 返回成功或失败结果。

· int MQTTSubscribe(Client* c, const char* topicFilter, enumQoSqos, messageHandlermessageHandler);订阅数据结构客户端中定义的 MQTT 主题。 返回成功或失败结果。

总结

对分析数据不断增长的需求以及简化组织获得数据访问权限的需要,凸显了无线传感器及其相关 MCU 必须连接到云的重要意义。

本文探讨了一个具体实现选项,以及最近发布的硬件开发套件和相关软件如何使传感器与云端的连接变得容易。 用户不仅可以借此监控对象的当前状态和特定参数,还可以使用云服务来进行预测性分析。

参考资料

1. 探索 IBM Watson 物联网

2. 用于物联网节点的 FP-CLD-BLUEMIX1 STM32 ODE 功能包

3. IBM Watson 物联网快速入门

    相关阅读

    城市亮化工程如何设计才能具有层次感?

    城市亮化工程 的主要目地是为夜间带来一体化照明,考虑基础的视觉识别规定,自然环境照明的光层级与光线总数的多少相关,假如空间中的自然环境照明比工作照明低许多 ,在工作...
    2022-10-11
    城市亮化工程如何设计才能具有层次感?

    城市道路照明工程主要有哪些?

    在城市建设中,道路照明 是必不可少的基础设施,也是城市夜景的重要组成部分。在某种程度上,它还反映了城市的经济实力,社会进步和现代化的标志。它为夜间在城市中的车辆和行...
    2022-07-12
    城市道路照明工程主要有哪些?

    安全出口指示标志灯为什么是绿色而不是红色?

    对于安全出口指示标志灯相信大家都不陌生,我们在日常生活中在任何公众场所的紧急疏散的安全出口都可以看到这个安全出口指示标志灯,大家有没有想过安全出口的指示标志为什么...
    2022-05-21
    安全出口指示标志灯为什么是绿色而不是红色?

    路灯照明合理的布置方式

    路灯的布置方式主要有单侧布置、双侧交错布置、双侧对称布置、中心对称布置、横向悬索布置五种形式,随着城市道路的不断拓宽,平交路口转弯半径越来越大,根据《城市道路亮化...
    2022-07-15

    泛光照明工程是什么?应用范围有哪些?

    很多人提及 泛光照明工程 会有一些生疏,不理解泛光照明包含哪些,也不知道 泛光照明工程 跟普通照明工程有哪些不一样。 实际上泛光照明工程便是归属于城市景观照明工程或环境...
    2022-10-17
    泛光照明工程是什么?应用范围有哪些?

    消防应急灯的寿命有多长?一般可以使用多长时间?

    对于消防应急灯的使用寿命相信很多人都想了解这个问题,因为消防应急灯安装了就不需要时时刻刻盯着,这需要定时检查就可以了,但是很多人都不知道消防应急灯的寿命有多长,不...
    2022-05-21
    消防应急灯的寿命有多长?一般可以使用多长时间?

    快投派智能无线投屏器,让无线互联更加简单便捷

    没有WiFi的情况下可以进行无线投屏吗? 长期使用投屏功能的人,或多或少都知道自己的手机可以通过【无线投屏】【屏幕镜像】功能,直接连接到智能电视或无线投屏器,下意识地认...
    2022-05-11
    快投派智能无线投屏器,让无线互联更加简单便捷

    广场照明的设计技巧

    广场照明设计 主要包括休闲广场、集会活动广场、商业广场的照明设计。 1)休闲广场。主要是为人们提供休息、社交和举行小型文化娱乐活动的地方,由于人们活动方式不同,有些区...
    2022-07-15

    网站栏目