
前言2 O2 d) j+ M7 Z$ o' S0 A5 Z8 w 阿里云物联网平台(原名物联网套件,下文两者通用)是阿里云专门为物联网领域的开发人员推的,其目的是帮助开发者搭建安全且性能强大的数据通道,方便终端(如传感器、执行器、嵌入式设备或智能家电等等)和云端的双向通信。本文描述了基于 STM32 系列 MCU 连接阿里云的方案,详细说明了如何使用集成了阿里云物联网套件的 STM32 扩展开发包。 硬件概述9 J8 J3 q H3 ~ STM32 NUCLEO-L476RG 从 www.st.com 搜索关键字 NUCLEO-L476RG 可以得到此开发板的详细介绍。 板载 STM32 超低功耗系列 STM32L476RG,拥有 1M 字节的 Flash 和 128K 字节的 SRAM。 板载 Arduino™ Uno V3 接口的扩展插座。我们通过该插座给 WiFi 模组供电。; w( k) W2 W' |. H# ` 板载 ST morpho 接口的扩展插座,可由此访问全部 STM32 管脚。我们将通过该插座连接 WiFi 模组的收、发I/O。" f3 d; z4 L: s7 ] MXCHIP EMW3080 WiFi 扩展板 EMW3080 WiFi 扩展板也集成了 Arduino 接口扩展插座,可与 NUCLEO-L476RG 开发板连接。但是 Wifi 扩展板上的 wifi 模块收、发引脚接在了 Arduino 插座的 D0 和 D1 管脚,即下图中的 RXD 和 TXD;而在 NUCLEO-L476RG 开发板上,Arduino 接口插座的 D0 与 D1 管脚默认对应的 MCU(L476)的 PA2 和 PA3 管脚,正好是是 USART2 接口的 Tx 和 Rx,并已经连接至STLink,以实现 STLINK 的 USB 桥接串口的虚拟串口功能。 我们希望保留 STLink 虚拟串口功能,供调试打印用。因此,需要将 Wifi 扩展板上 Arduino 接口的 D0 与 D1 管脚,即 WiFi 模块的收、发引脚,与 MCU 的 USART1 连接(PA9 和PA10)。 ![]() 1 f0 @0 P# @8 q8 }2 t1 h- E+ f: w 跳线如下:% r; m- J& K+ \9 O WiFi 扩展板的 RxD 连接 morpho 插座(CN10)的管脚 33。 WiFi 扩展板的 TxD 连接 morpho 插座(CN10)的管脚 21。& v" _% n* l3 u, h 实际连接如图所示: 板子上原来的跳线都不需要改变,也不需要吹焊solder bridge(默认状态母板上 D0、D1 没有连到MCU 的 UART1),只需要几根连接线就可以完成连接。5 ~- B6 [ n+ B) a( P; `$ B' q ) \! a6 u U. D J$ I! i * }! K' [# k! F' h 软件环境和工具8 z/ Y( w/ Z1 o9 q 基于 STM32 的阿里云连接方案开发包,已经集成了 Ali 物联网套件 SDK。 EWARM IAR 开发环境。 串口工具 Tera Term。串口调试工具,显示程序运行信息,以及供用户配置 WiFi 用户名和密码。9 I5 n1 n( z8 ?8 |8 T- Q _* d3 e! ~7 q$ \0 ` 阿里云物联网套件 SDK$ ^! S2 c7 y: i! J 在集成过程中,整个 SDK 目录文件结构保持不变,方便用户在将来自行替换更# y" @3 t' f2 \1 ^; Z* u" I 高版本的 Ali 物联网套件,如下图: 1 m' c8 u' k& I6 Y- y6 H. n ![]() 在云端开通 Ali 物联网套件$ e. b% a. f. l3 c0 f) ~* D 将设备接入云端,第一步是要在云端开通物联网套件,注册产品和设备。用户可参照阿里云帮助文档里的“阿里云物联网套件 > 控制台使用手册 > 产品管理 > 设备接入准备”的详细说明,也可以参照以下步骤:( I$ Z, `0 }1 B 注册阿里云帐户并实名认证. N/ B3 c! ~6 ~7 T1 u# p) Q 从产品中选择“物联网平台”,或直接进入,开通物联网套件。 创建产品,获取 productKey# A7 ?2 m+ v! b 添加设备,获取 deviceName 和 deviceSecret 创建设备的 MQTT 主题 $(PRODECT_KEY)/$(DEVICE_NAME)/data,并设置权限为:设备具有发布和订阅。 一步一步创建完成后,用户也可以从控制台中的设备管理,点击相应的设备,查看设备基本信息,就可以一次性获得productKey, 设备名称(deviceName)以及 deviceSecret。3 B+ h) C7 G& U9 L* i& P ![]() 在设备端替换参数) U n. h2 m* M8 W! `: f. X 开发包中的 Projects\Common\Shared\Src\mqtt-example.c 包含有默认的连接云端参数,用户应将其替换成刚刚从云端获得的自有的 productKey, 设备名称(deviceName)以及 deviceSecret。5 ]4 \/ j/ v. [/ c) J: ^: [8 x* d
使用 IAR 编译' X$ t, ]( [0 ^! z6 Q+ u/ L 开发包中 Projects\STM32L476RG-Nucleo\Applications\Cloud\Ali\EWARM 包含有工程文件路径。用户可直接点击打开,进行编译。开发包使用的工程文件 IAR 版本为 8.20.1。若用户使用较低版本的 IAR,仅需要重新构建工程文件,而不需要修改目录结构与源代码。 调试运行 直接使用 IAR 下载并运行。ST-Link 配置已在工程文件中。 . {# y5 J& \) b7 |4 u0 I Tera Term 串口配置 需要使用串口终端程序 Tera Term(其他类似串口软件亦可)来配置网络或者察看程序运行的日志。- P* Z- @/ n* s, A 数据帧格式配置参数如图所示。, ^* y8 W1 G. u; W. `, b7 F) k ![]() 在串口配置 WiFi 第一次连接,设备端会提示输入 WiFi 参数。 输入 WiFi SSID. }( W1 a$ i# a' W( O. K 选择 WiFi 安全模式 若有必要输入密码) m5 h+ g( g+ L: C/ y2 k2 a 9 N; y5 ^8 Q" o1 M& B8 S0 v ![]() & t) V4 ?! C$ J) d 首次输入的 Wifi AP 的用户名和密码会存放在 MCU 的 flash 中,以免下次上电重复输入。如果用户更换了 Wifi AP,需要使用新的用户名和密码,则可在启动 5 秒内按住蓝色用户按钮,进行新 Wifi AP 设置流程 0 z5 m# d6 ?3 e9 v' { ![]() 传感器数据上报 开发包利用内部温度传感器数据,向云端进行上报并订阅。* g* a- S$ w5 a2 l( Y 0 x2 x. n: I5 ~! a1 l! b* ?6 t" A ![]() 2 m/ v$ g5 t& |- j& |' Y& ~9 @8 [3 K 同时程序也支持将 LED 灯状态上报。用户可按蓝色用户按钮切换 LED 灯状态,并将其上报至云端。 ![]() 在云端查看物联网设备状态 物联网设备是否在线,以及上行以及下行详细数据,除了通过设备端的串口输出 log 信息,还可以在阿里云端物联网套件的“管理控制台”上找到详细日志。访问查看“日至服务”,如右图所示: ![]() 使用其他 STM32 开发板 基于 STM32 的阿里云物联网套件方案开发包符合 STM32 Cube 文件目录结构。用户可以将此开发包适配到用户自己的开发板。。3 Z5 L; \5 `. a, l# }( M7 n 对于新的 MCU 系列,只需要将相应的 STM32 HAL Driver 驱动复制到驱动 Drivers目录,替换自己板子的 BSP 驱动;然后在 Projects 目录复制已有工程,加入特定功能,修改得到新的工程文件。 事实上此开发包也支持 STM32 B-L475E-IOT01 开发板连接阿里云。用户可以比较开发包中的 NUCLEO-L476RG 与 B-L475E-IOT01 目录,了解如何快速将此开发包运行在更多 STM32 开发板上。1 q) M# n! ]* C( r1 O$ ^ 另外,用户也可以很容易的将符合 STM32 Cube 架构的中间件集成进最终的应用。 0 [1 |3 o9 B- ?/ Q: k ![]() 总结 本篇 LAT 在 STM32 系列开发板中,选取了 STM32 NUCELEO-L476RG 开发板为例,集成了阿里云物联网套件设备端SDK,然后和云端基于 MQTT 协议进行双向通信。用户可根据本文以及所提供的源代码,根据需要使用 STM32 CubeMX 生 成相应 STM32 系列的平台代码,连接阿里云。, N/ o! H% v1 ?% k: `$ X8 v' ]5 Y |
实战经验 | Keil工程使用NEAI库的异常问题
STM32 ISP IQTune:真正零门槛的免费ISP调整软件
【经验分享】STM32 新建基于STM32F40x 固件库的MDK5 工程
意法半导体MCU双供应链策略,打消中国客户后顾之忧
【经验分享】基于STM32使用HAL库实现USB组合设备CDC+MSC
2024意法半导体工业峰会:赋能智能电源和智能工业,构筑可持续未来
ST推出灵活、面向未来的智能电表通信解决方案,助力能源转型
意法半导体 x Qu-Bit Electronix:推动新一轮的数字声音合成革命
从STM32 MPU产品看嵌入式系统中微处理器的新变化
【Hot!】STM32全系列开发板都支持Arduino开发,你知道吗?