你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【经验分享】基于 STM32 的阿里云物联网平台方案

[复制链接]
STMCU小助手 发布时间:2022-3-4 00:14
前言' Y/ \5 a$ o; L( q* c
阿里云物联网平台(原名物联网套件,下文两者通用)是阿里云专门为物联网领域的开发人员推的,其目的是帮助开发者搭建安全且性能强大的数据通道,方便终端(如传感器、执行器、嵌入式设备或智能家电等等)和云端的双向通信。本文描述了基于 STM32 系列 MCU 连接阿里云的方案,详细说明了如何使用集成了阿里云物联网套件的 STM32 扩展开发包。
. o2 |1 r" G& r硬件概述
) h; P: b8 ?2 f5 h0 ~" ]' @( P( Y% ]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。
* U1 V" Q3 t8 g 板载 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 扩展板
5 R7 i3 R! S; P5 k: m7 ~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

4 O5 C/ _& [' F3 m- F V0]PAJ[Q_NRUE3RLHL5JGLA.png 6 }8 @( S$ ?. G8 t* `+ @4 {5 p
# Y! ~4 y8 u8 w' c/ \
跳线如下:
7 {* s2 c" v5 y5 i. e, B7 [+ g WiFi 扩展板的 RxD 连接 morpho 插座(CN10)的管脚 33。) m. _8 t$ F/ h6 M+ K
 WiFi 扩展板的 TxD 连接 morpho 插座(CN10)的管脚 21。
# ?: P0 E6 X0 Y3 m+ z8 A. b- \( H2 }3 Z: b; f
实际连接如图所示:
6 u4 v1 q4 U  E3 P& c+ l' ]* {, {板子上原来的跳线都不需要改变,也不需要吹焊solder bridge(默认状态母板上 D0、D1 没有连到MCU 的 UART1),只需要几根连接线就可以完成连接。- O5 H) G3 V1 w8 m4 q) k0 J: |6 _

$ r# n0 i$ \' J+ W& @6 o+ H2 v
9 H, ~6 @4 f" U: f2 d软件环境和工具( K0 c3 @5 T# G' x3 A: B2 @5 f
 基于 STM32 的阿里云连接方案开发包,已经集成了 Ali 物联网套件 SDK。+ H. h; g  t0 N& l$ J$ e7 K
 EWARM IAR 开发环境。
/ M1 e7 [: b9 p- e# S. ~' k 串口工具 Tera Term。串口调试工具,显示程序运行信息,以及供用户配置 WiFi 用户名和密码。
% N  t* a( V8 _9 i5 ~% b4 N
  X, ~; C3 _+ Q! 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
`T3SKKTI@)K}A]OBE}2E~~O.png
7 ^: j- L* I$ e1 }  n4 V: L6 F4 D1 [. |: L
在云端开通 Ali 物联网套件
) o. [- s1 U# K( o将设备接入云端,第一步是要在云端开通物联网套件,注册产品和设备。用户可参照阿里云帮助文档里的“阿里云物联网套件 > 控制台使用手册 > 产品管理 > 设备接入准备”的详细说明,也可以参照以下步骤:
" F5 i5 A/ |9 Z( v# k) B: Y 注册阿里云帐户并实名认证! 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。
9 f0 M% L0 P2 s% ]/ Z9 m& i& A6 G
8 \( @$ o$ R5 s2 R; N" n: x$ a, B) c6 E1 X- B  R2 p2 E& z, P
CEZHMSH`BM}81$]QUT0`@V0.png
8 s4 p, C4 Z/ U  `# u6 A. y4 M  R0 U0 r3 j6 C4 H; r7 V: f( J
在设备端替换参数
) }1 g% m# ^0 y0 r2 n  ]开发包中的 Projects\Common\Shared\Src\mqtt-example.c 包含有默认的连接云端参数,用户应将其替换成刚刚从云端获得的自有的 productKey, 设备名称(deviceName)以及 deviceSecret。4 q* O  u0 ~: f0 H
  1. #define PRODUCT_KEY "vY5sICLTgg6" /*用 productKey 替换*/
    " `3 H" @8 e0 y' C
  2. #define DEVICE_NAME "b_l475e_aliyun" /*用 deviceName 替换*/0 U& d$ ?! d8 k' ~
  3. #define DEVICE_SECRET "T6DASmY83e3MLRww0nZWs8SZnc56uzWN" /*用 deviceSecret 替换*/
复制代码
5 j' ]1 ]% G* l; |1 @
使用 IAR 编译  Z' A: r; h4 R; u
开发包中 Projects\STM32L476RG-Nucleo\Applications\Cloud\Ali\EWARM 包含有工程文件路径。用户可直接点击打开,进行编译。开发包使用的工程文件 IAR 版本为 8.20.1。若用户使用较低版本的 IAR,仅需要重新构建工程文件,而不需要修改目录结构与源代码。
  u3 C  Y6 O  P0 T- H, V: Z2 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

5 m2 H$ D5 Q2 M' C+ z: I9 HTera Term 串口配置
3 Q/ A( f  p5 X+ O/ ^' [需要使用串口终端程序 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
6VQGKND1JZQ8JU23LSY7)`N.png
. S, g6 [  x' p4 s! Q3 E  D7 p: O( x
- l$ n) c4 x. z8 {% d在串口配置 WiFi: V' F# \, F8 c8 r# O6 F3 S
第一次连接,设备端会提示输入 WiFi 参数。
5 e2 v4 I. E* O9 n3 q 输入 WiFi SSID0 O4 I. _/ L8 i
 选择 WiFi 安全模式
% \2 M) T. n9 J6 i$ @" S( ] 若有必要输入密码
3 N# S/ a3 S: _9 D$ s7 `
4 x( z( p1 I' U: a $QO]3GLAZ`3FEJK)(R0VEUW.png
7 M8 {# i, z9 N3 ?& b6 A- ^0 r
& l8 y: c3 N7 [7 n( l5 B" @8 M+ D0 S首次输入的 Wifi AP 的用户名和密码会存放在 MCU 的 flash 中,以免下次上电重复输入。如果用户更换了 Wifi AP,需要使用新的用户名和密码,则可在启动 5 秒内按住蓝色用户按钮,进行新 Wifi AP 设置流程
0 c. R# K- m7 Z0 }
$ ^$ i7 }4 W7 _4 L0 z4 h& | K`Y_JP]})192Y79N@B074JA.png - j2 f- ?& s- g# {$ w
* ~7 L5 |. p5 b1 {7 M+ b
传感器数据上报7 m6 {7 E% ?2 Z& u
开发包利用内部温度传感器数据,向云端进行上报并订阅。
$ c9 ?3 W3 q# C* z
8 N4 |4 m7 O5 Q) A6 l" E 3XJ``(E5N{2@%LP6PGVZSLO.png 9 @# a' I) K0 E7 y$ t2 I+ p& w

6 ]2 \8 q2 Z2 s8 o0 c0 l同时程序也支持将 LED 灯状态上报。用户可按蓝色用户按钮切换 LED 灯状态,并将其上报至云端。
/ t+ x( r3 D' w; m4 P2 G3 Y) P
8 U( S) c! z& G3 E$ M X_9HL{}Z2WY~)OUU(FPCH[M.png
. k! S+ \' @; {6 ^8 I( S1 z' y! E' Z! r% |1 ?1 e" @7 d% |0 @
在云端查看物联网设备状态
/ t4 A0 S; D( w4 o2 X/ f, m物联网设备是否在线,以及上行以及下行详细数据,除了通过设备端的串口输出 log 信息,还可以在阿里云端物联网套件的“管理控制台”上找到详细日志。访问查看“日至服务”,如右图所示:
  R* P' w. @8 ^6 h* X- B* K
/ s4 @2 z5 p, m, A7 z 57FG690HM~EHEM~7L(PDC4S.png
. m  g9 I+ }# |, ]# S4 {/ u% B$ `2 z& v( P- J
使用其他 STM32 开发板! k! x" x. k# ?8 s
基于 STM32 的阿里云物联网套件方案开发包符合 STM32 Cube 文件目录结构。用户可以将此开发包适配到用户自己的开发板。。
9 u; t3 X* O& Q: e. t- M对于新的 MCU 系列,只需要将相应的 STM32 HAL Driver 驱动复制到驱动 Drivers目录,替换自己板子的 BSP 驱动;然后在 Projects 目录复制已有工程,加入特定功能,修改得到新的工程文件。3 H/ E: {3 v/ _% l
事实上此开发包也支持 STM32 B-L475E-IOT01 开发板连接阿里云。用户可以比较开发包中的 NUCLEO-L476RG 与 B-L475E-IOT01 目录,了解如何快速将此开发包运行在更多 STM32 开发板上。
$ G4 M% i8 X: i* C! ~5 e) Z另外,用户也可以很容易的将符合 STM32 Cube 架构的中间件集成进最终的应用。
. \# Q+ A7 d" \3 _: z7 R
, x# Z3 n# b; w5 t3 C9 A2 S/ R
4 z/ e4 t! Q9 e! Y {(7H[EC4UQRC)0Y4XYD)A.png 4 z6 L; k3 w0 U
, t/ E+ I1 U4 B% I) C/ K. {
总结
& }; h" u' J/ O7 M( s8 n$ `本篇 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

6 D, j: x) u7 j+ Y* H1 I
收藏 评论0 发布时间:2022-3-4 00:14

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版