使用快速启动平台加速传感器到云端的连接-设计应用_第1页
使用快速启动平台加速传感器到云端的连接-设计应用_第2页
使用快速启动平台加速传感器到云端的连接-设计应用_第3页
使用快速启动平台加速传感器到云端的连接-设计应用_第4页
使用快速启动平台加速传感器到云端的连接-设计应用_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

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

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

Nucleo平台和软件

STM32Nucleo开发板为工程师提供了一种灵活的方式来尝试新的概念,并使用STMicroelectronicsSTM32微控制器构建原型。这种开发板具有在所有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的网站获取。2STM32Cube的主要目标是使开发应用的过程变得更容易。为此,该扩展软件包包含了STM32CubeMX和STM32Cube嵌入式软件库(图1)。

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

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

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

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

连接传感器

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

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

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

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

除了中间件堆栈,还提供了一个用于测试与IBMWatsonIoT平台连接的示例应用。它用于建立端到端IoT应用的原型。在IBMBluemix云服务中注册STM32Nucleo微系统后,该微系统即可用于传输实时传感器数据。使用NFC动态标签时,用户还可以自动打开IBM提供的试用网页,并将STM32Nucleo开发板上所有传感器生成的数据可视化。

为了将STM32Nucleo微系统与IBMBluemix云进行连接,STMicroelectronics移植了MQTT应用级网络协议的开源实现。MQTT是一种机器到机器(M2M)IoT连接协议,用于通过少量的代码连接远程设备,特别是在网络带宽有限的情况下。消息传递协议是轻型的,因此节省了电力,这使其特别适合用于嵌入式系统中的传感器数据遥测和实现。在FP-CLD-BLUEMIX1中,MQTT作为中间件库集成到STM32软件包中。

功能包中提供了将X-NUCLEO-IKS01A1、X-NUCLEO-IDW01M1和XNUCLEO-NFC01A1扩展板与NUCLEO-F401RE板一起使用的示例应用。此应用从温度、湿度、压力、加速计、磁力仪和陀螺仪传感器读取数据值,并通过Wi-Fi将其传输到IBMBluemix。

此应用默认配置为仅针对数据可视化目的在快速启动模式下运行。但很容易修改为在IBMBluemix中注册和控制设备(需要IBMBluemix帐户)。

注册IBMBluemix帐户

在IBMBluemix云服务中注册STM32Nucleo微系统后,该微系统即可用于建立端到端IoT应用的原型,并开始传输实时传感器数据。

登录或创建Bluemix帐户(请参见“参考资料1”中的完整说明)即可开始。注册时必须提供几个属性和参数,如下所示:

OrganizaTIonID(i.e.,“1w8a05”)。

Devicetype(i.e.:“stm32_nucleo”)。

UM2022FP-CLD-BLUEMIX1softwaredescripTIon

DocID028875Rev213/23

AuthenTIcaTIonMethod(only“use-token-auth”supported)。

Authenticationtoken(i.e.,“uUURNRbeaX+Fvi8”)。

将设备属性复制到位于源代码文件IBM_Bluemix_Config.c中的Config_MQTT_IBM函数中。该文件位于FP-CLD-BLUEMIX1软件包的Projects/Multi/Applications/MQTT_IBM/Src文件夹中。

然后,ibm_mode变量需要设置为“REGISTERED”,如下所示(代码列表):

VoidConfig_MQTT_IBM(MQTT_vars*mqtt_ibm_setup,uint8_t*macadd):

/*DefaultConfigurationforQUICKSTART.REGISTEREDmoderequiresaccountonBluemix*/

mqtt_ibm_setup-》ibm_mode=REGISTERED

然后,需要将IBMBluemix中提供的设备属性复制到名为IBM_Bluemix_Config.c的源代码文件中的Config_MQTT_IBM函数中。该文件位于Projects/Multi/Applications/MQTT_IBM/Src文件夹中。

程序执行中途将显示:

/*REGISTEREDDEVICE*/

/*Needtobecustomized*/

完成后第四到第八行将显示如下:

strcpy((char*)mqtt_ibm_setup-》username,”use-token-auth);//customize

strcpy((char*)mqtt_ibm_setup-》password,”uUURNRbeax+Fvit8”);

strcpy((char*)mqtt_ibm_setup-》hostname,”1);

strcpy((char*)mqtt_ibm_setup-》device_type,“stm32_nucleo”);

strcpy((char*)mqtt_ibm_setup-》org_id,“1w8a05”);

代码列表:IBM设备注册和属性插入要求。完成注册后,STM32Nucleo微系统将能够向IBMWatsonIoT应用发送信息并从其接收信息。(:STMicroelectronics)

FP-CLD-BLUEMIX1软件包示例应用包含默认配置,以根据设备的MAC地址在IBMQuickstart网页3上查看传感器数据。URL页面也被写入NFC标签中。一旦STM32Nucleo开发板连接到Wi-Fi接入点,就会自动与IBMBluemix交互并开始传输传感器数据。Wi-Fi扩展板的MAC地址和IBMQuickstartURL打印在串行终端接口中。

要查看实时传感器数据,可以将QuickstartURL复制并粘贴到Web浏览器中。使用支持NFC的移动设备时,将设备靠近NFC标签可以更容易打开网页。为了实现连接状态视觉指示,一旦Nucleo连接到IBMBluemix,STM32Nucleo开发板上的绿色LED2将变为“ON”。每次传输传感器数据样本时,就会闪烁。

FP-CLD-BLUEMIX1包本身带有一个STM32层,其中包括一组简单的与上层应用、库和堆栈交互的通用多实例API。这些通用和扩展API基于一个通用框架。这让它们构建的任意层(例如中间件层)可以实现其功能,而无需具备既定MCU的特定硬件信息。此结构提高了库代码的可重用性,并确保可轻松移植于其他设备。

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

IBM样本使用的主要API有:

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

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

··voidMQTTClient(Client*c,Network*network,unsignedintcommand_timeout_ms,unsignedchar*buf,size_tbuf_size,unsignedchar*readbuf,size_

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论