
前言' Y/ \5 a$ o; L( q* c 阿里云物联网平台(原名物联网套件,下文两者通用)是阿里云专门为物联网领域的开发人员推的,其目的是帮助开发者搭建安全且性能强大的数据通道,方便终端(如传感器、执行器、嵌入式设备或智能家电等等)和云端的双向通信。本文描述了基于 STM32 系列 MCU 连接阿里云的方案,详细说明了如何使用集成了阿里云物联网套件的 STM32 扩展开发包。 硬件概述 STM32 NUCLEO-L476RG8 _0 \, I) T7 t+ {5 z1 p 从 www.st.com 搜索关键字 NUCLEO-L476RG 可以得到此开发板的详细介绍。9 f5 x' X7 S" o* s" y- H7 T- K" R 板载 STM32 超低功耗系列 STM32L476RG,拥有 1M 字节的 Flash 和 128K 字节的 SRAM。 板载 Arduino™ Uno V3 接口的扩展插座。我们通过该插座给 WiFi 模组供电。: o+ o3 l' D8 l' ^1 j. k- U 板载 ST morpho 接口的扩展插座,可由此访问全部 STM32 管脚。我们将通过该插座连接 WiFi 模组的收、发I/O。1 {: C% D5 G( b, q ; ~. I6 J% d6 O 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)。6 e5 U/ M+ `% G7 ~- E+ g) U ![]() # Y! ~4 y8 u8 w' c/ \ 跳线如下: WiFi 扩展板的 RxD 连接 morpho 插座(CN10)的管脚 33。) m. _8 t$ F/ h6 M+ K WiFi 扩展板的 TxD 连接 morpho 插座(CN10)的管脚 21。 ( H2 }3 Z: b; f 实际连接如图所示: 板子上原来的跳线都不需要改变,也不需要吹焊solder bridge(默认状态母板上 D0、D1 没有连到MCU 的 UART1),只需要几根连接线就可以完成连接。- O5 H) G3 V1 w8 m4 q) k0 J: |6 _ 软件环境和工具( K0 c3 @5 T# G' x3 A: B2 @5 f 基于 STM32 的阿里云连接方案开发包,已经集成了 Ali 物联网套件 SDK。+ H. h; g t0 N& l$ J$ e7 K EWARM IAR 开发环境。 串口工具 Tera Term。串口调试工具,显示程序运行信息,以及供用户配置 WiFi 用户名和密码。 ! z3 t- e6 a. F; b8 e+ e# X 阿里云物联网套件 SDK2 H% \- @+ ?* k4 c 在集成过程中,整个 SDK 目录文件结构保持不变,方便用户在将来自行替换更1 ?- H# r* b3 } 高版本的 Ali 物联网套件,如下图:$ j: ?6 ~+ T5 H8 r* d' J+ x 6 o7 Z. {' o! r/ ~4 u ![]() 6 F4 D1 [. |: L 在云端开通 Ali 物联网套件 将设备接入云端,第一步是要在云端开通物联网套件,注册产品和设备。用户可参照阿里云帮助文档里的“阿里云物联网套件 > 控制台使用手册 > 产品管理 > 设备接入准备”的详细说明,也可以参照以下步骤: 注册阿里云帐户并实名认证! d) S8 t F/ v8 L8 N 从产品中选择“物联网平台”,或直接进入,开通物联网套件。# c Z! d6 d2 Y/ |. s 创建产品,获取 productKey) R5 F/ }% w) A 添加设备,获取 deviceName 和 deviceSecret+ A" i5 `9 Z8 Z 创建设备的 MQTT 主题 $(PRODECT_KEY)/$(DEVICE_NAME)/data,并设置权限为:设备具有发布和订阅。# t/ \ J. a+ O& G1 P8 m2 ^) H1 x 一步一步创建完成后,用户也可以从控制台中的设备管理,点击相应的设备,查看设备基本信息,就可以一次性获得productKey, 设备名称(deviceName)以及 deviceSecret。 $ a, B) c6 E1 X- B R2 p2 E& z, P ![]() 3 j6 C4 H; r7 V: f( J 在设备端替换参数 开发包中的 Projects\Common\Shared\Src\mqtt-example.c 包含有默认的连接云端参数,用户应将其替换成刚刚从云端获得的自有的 productKey, 设备名称(deviceName)以及 deviceSecret。4 q* O u0 ~: f0 H
使用 IAR 编译 Z' A: r; h4 R; u 开发包中 Projects\STM32L476RG-Nucleo\Applications\Cloud\Ali\EWARM 包含有工程文件路径。用户可直接点击打开,进行编译。开发包使用的工程文件 IAR 版本为 8.20.1。若用户使用较低版本的 IAR,仅需要重新构建工程文件,而不需要修改目录结构与源代码。 2 P- ^1 ]" G: y4 g7 s: D7 D3 U 调试运行5 I# L8 o7 Q' s6 S* d 直接使用 IAR 下载并运行。ST-Link 配置已在工程文件中。- V1 L$ ?1 d' T Tera Term 串口配置 需要使用串口终端程序 Tera Term(其他类似串口软件亦可)来配置网络或者察看程序运行的日志。# O+ S3 c. L2 J0 \( X3 W7 N 数据帧格式配置参数如图所示。8 M# \5 b7 Q" N- d+ q$ Y9 Y& Y 8 |; Z0 k, a1 t8 P# S* b ![]() 在串口配置 WiFi: V' F# \, F8 c8 r# O6 F3 S 第一次连接,设备端会提示输入 WiFi 参数。 输入 WiFi SSID0 O4 I. _/ L8 i 选择 WiFi 安全模式 若有必要输入密码 ![]() 首次输入的 Wifi AP 的用户名和密码会存放在 MCU 的 flash 中,以免下次上电重复输入。如果用户更换了 Wifi AP,需要使用新的用户名和密码,则可在启动 5 秒内按住蓝色用户按钮,进行新 Wifi AP 设置流程 ![]() * ~7 L5 |. p5 b1 {7 M+ b 传感器数据上报7 m6 {7 E% ?2 Z& u 开发包利用内部温度传感器数据,向云端进行上报并订阅。 ![]() 同时程序也支持将 LED 灯状态上报。用户可按蓝色用户按钮切换 LED 灯状态,并将其上报至云端。 ![]() ! E' Z! r% |1 ?1 e" @7 d% |0 @ 在云端查看物联网设备状态 物联网设备是否在线,以及上行以及下行详细数据,除了通过设备端的串口输出 log 信息,还可以在阿里云端物联网套件的“管理控制台”上找到详细日志。访问查看“日至服务”,如右图所示: ![]() / u% B$ `2 z& v( P- J 使用其他 STM32 开发板! k! x" x. k# ?8 s 基于 STM32 的阿里云物联网套件方案开发包符合 STM32 Cube 文件目录结构。用户可以将此开发包适配到用户自己的开发板。。 对于新的 MCU 系列,只需要将相应的 STM32 HAL Driver 驱动复制到驱动 Drivers目录,替换自己板子的 BSP 驱动;然后在 Projects 目录复制已有工程,加入特定功能,修改得到新的工程文件。3 H/ E: {3 v/ _% l 事实上此开发包也支持 STM32 B-L475E-IOT01 开发板连接阿里云。用户可以比较开发包中的 NUCLEO-L476RG 与 B-L475E-IOT01 目录,了解如何快速将此开发包运行在更多 STM32 开发板上。 另外,用户也可以很容易的将符合 STM32 Cube 架构的中间件集成进最终的应用。 ![]() , t/ E+ I1 U4 B% I) C/ K. { 总结 本篇 LAT 在 STM32 系列开发板中,选取了 STM32 NUCELEO-L476RG 开发板为例,集成了阿里云物联网套件设备端SDK,然后和云端基于 MQTT 协议进行双向通信。用户可根据本文以及所提供的源代码,根据需要使用 STM32 CubeMX 生. ^3 C, q. }0 v0 s: M 成相应 STM32 系列的平台代码,连接阿里云。" e7 r5 Q4 C7 b- m3 q4 t |
实战经验 | 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开发,你知道吗?