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

发布时间:2024-01-11  

传感器物联网 (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 物联网快速入门


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    加速踏板、制动踏板或离合踏板传感器、绝对线性位置传感器、浮子液位传感器、非接触式电位计、小角度位置传感器和小行程位置传感器 可编程测量范围和多点校准为工程师提供了更大的灵活性,各种......
    控制器运用了微型计算机、智能功率驱动、CAN总线等技术,具有动态响应好、采样精度高、抗干扰能力强、可靠性好等特点。 纯电动汽车整车控制器实例 3. 整车控制器设计要求 直接向整车控制器发送信号的传感器包括加速踏板传感器......
    控制器运用了微型计算机、智能功率驱动、CAN总线等技术,具有动态响应好、采样精度高、抗干扰能力强、可靠性好等特点。 纯电动汽车整车控制器实例 3. 整车控制器设计要求 直接向整车控制器发送信号的传感器包括加速踏板传感器、制动踏板传感器......
    乘用车和商用车的线控驾驶系统,如加速踏板传感、转向和扭矩传感器,以及增压和涡轮执行器。由安森美设计的IC是海拉方案的核心元素,与连接的线圈结构一起构成了感应位置传感器。该非接触型解决方案为安森美IC在CIPOS®系统......
    .加速踏板传感器 记录用于电子节气门控制 (ETC) 的加速踏板的行程或角度位置。 6.电子油门传感器 将节气门的角度位置信息响应给ECU,以调节特定混合气的进气量。 7.转向角传感器 通过......
    乘用车和商用车的线控驾驶系统,如加速踏板传感、转向和扭矩传感器,以及增压和涡轮执行器。由安森美设计的IC是海拉方案的核心元素,与连接的线圈结构一起构成了感应位置传感器。该非接触型解决方案为安森美IC在CIPOS®系统......
    乘用车和商用车的线控驾驶系统,如加速踏板传感、转向和扭矩传感器,以及增压和涡轮执行器。由安森美设计的IC是海拉方案的核心元素,与连接的线圈结构一起构成了感应位置传感器。该非接触型解决方案为安森美IC在CIPOS®系统......
    执行机构等部分组成。 电子踏板是由制动踏板和踏板传感器踏板位移传感器)组成。 加速踏板位置传感器用于检测踏板行程,然后将位移信号转化成电信号传给ECU,实现踏板行程和制动力按比例进行调控。如图13所示......
    发动机控制系统主要传感器电路的识读方法; 加速踏板位置传感器......
    故障。例如传感器真空胶管破裂,有时漏气,有时不漏气,使进气压力传感器信号时而正常,时而不正常,造成发动机收加速踏板......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>