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

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

[复制链接]
STMCU小助手 发布时间:2022-3-4 00:14
前言2 O2 d) j+ M7 Z$ o' S0 A5 Z8 w
阿里云物联网平台(原名物联网套件,下文两者通用)是阿里云专门为物联网领域的开发人员推的,其目的是帮助开发者搭建安全且性能强大的数据通道,方便终端(如传感器、执行器、嵌入式设备或智能家电等等)和云端的双向通信。本文描述了基于 STM32 系列 MCU 连接阿里云的方案,详细说明了如何使用集成了阿里云物联网套件的 STM32 扩展开发包。
3 V, o3 R+ B$ U* {# T, ^硬件概述9 J8 J3 q  H3 ~
STM32 NUCLEO-L476RG
8 y: M3 a3 S  f6 \  p/ i$ M$ jwww.st.com 搜索关键字 NUCLEO-L476RG 可以得到此开发板的详细介绍。
2 w8 J3 ~- J: A1 C 板载 STM32 超低功耗系列 STM32L476RG,拥有 1M 字节的 Flash 和 128K 字节的 SRAM。
3 F( b  ?8 L- E6 w 板载 Arduino™ Uno V3 接口的扩展插座。我们通过该插座给 WiFi 模组供电。; w( k) W2 W' |. H# `
 板载 ST morpho 接口的扩展插座,可由此访问全部 STM32 管脚。我们将通过该插座连接 WiFi 模组的收、发I/O。" f3 d; z4 L: s7 ]

  N+ I4 p; ?& P* }9 kMXCHIP EMW3080 WiFi 扩展板
# [7 N) K5 \3 M$ }6 H; R1 ~9 WEMW3080 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)。
: M& S/ e! R* P9 x2 Y
& ?. l) z1 ]1 W* D/ z3 z1 W7 T0 F7 I V0]PAJ[Q_NRUE3RLHL5JGLA.png
) j  W8 Z# w7 t9 S2 n$ {1 f0 @0 P# @8 q8 }2 t1 h- E+ f: w
跳线如下:% r; m- J& K+ \9 O
 WiFi 扩展板的 RxD 连接 morpho 插座(CN10)的管脚 33。
. Z, y' ~1 W( i7 t WiFi 扩展板的 TxD 连接 morpho 插座(CN10)的管脚 21。& v" _% n* l3 u, h

1 y' u! r7 N  y4 E9 {+ Y  I实际连接如图所示:
2 ?) y- ]7 j* t8 O9 Z; E板子上原来的跳线都不需要改变,也不需要吹焊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。
6 Q$ l5 A$ I' u$ j2 p$ k. K- e2 D EWARM IAR 开发环境。
* c& l/ g2 R0 [' {. D0 C, r 串口工具 Tera Term。串口调试工具,显示程序运行信息,以及供用户配置 WiFi 用户名和密码。9 I5 n1 n( z8 ?8 |8 T- Q
  _* d3 e! ~7 q$ \0 `

$ n' x- g/ ~1 [( r1 S: h6 D阿里云物联网套件 SDK$ ^! S2 c7 y: i! J
在集成过程中,整个 SDK 目录文件结构保持不变,方便用户在将来自行替换更# y" @3 t' f2 \1 ^; Z* u" I
高版本的 Ali 物联网套件,如下图:
( f5 L2 S! G9 p( c1 m' c8 u' k& I6 Y- y6 H. n
`T3SKKTI@)K}A]OBE}2E~~O.png ! A' f- F: ^0 y/ [

! u, o; J4 E$ v& j" I% E在云端开通 Ali 物联网套件$ e. b% a. f. l3 c0 f) ~* D
将设备接入云端,第一步是要在云端开通物联网套件,注册产品和设备。用户可参照阿里云帮助文档里的“阿里云物联网套件 > 控制台使用手册 > 产品管理 > 设备接入准备”的详细说明,也可以参照以下步骤:( I$ Z, `0 }1 B
 注册阿里云帐户并实名认证. N/ B3 c! ~6 ~7 T1 u# p) Q
 从产品中选择“物联网平台”,或直接进入,开通物联网套件。
, A2 X) s& C2 A; k, } 创建产品,获取 productKey# A7 ?2 m+ v! b
 添加设备,获取 deviceName 和 deviceSecret
* t# Z+ i3 P! a  ]# g/ c* W+ e 创建设备的 MQTT 主题 $(PRODECT_KEY)/$(DEVICE_NAME)/data,并设置权限为:设备具有发布和订阅。
) a: I: Z# v8 C- e0 K/ s0 a+ l一步一步创建完成后,用户也可以从控制台中的设备管理,点击相应的设备,查看设备基本信息,就可以一次性获得productKey, 设备名称(deviceName)以及 deviceSecret。3 B+ h) C7 G& U9 L* i& P

$ K5 ]# X: h, }6 Y8 M
3 {/ U; G. F6 U& O4 J2 g$ z CEZHMSH`BM}81$]QUT0`@V0.png
: J& T, @6 E6 s9 g
+ x4 t5 E6 }6 r; z- I在设备端替换参数) 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
  1. #define PRODUCT_KEY "vY5sICLTgg6" /*用 productKey 替换*/
    ; M" s0 L* ?# M$ }. d! t
  2. #define DEVICE_NAME "b_l475e_aliyun" /*用 deviceName 替换*/) W  \$ t: l$ P
  3. #define DEVICE_SECRET "T6DASmY83e3MLRww0nZWs8SZnc56uzWN" /*用 deviceSecret 替换*/
复制代码

7 i+ q7 t0 |3 [% c! _& L% |. {使用 IAR 编译' X$ t, ]( [0 ^! z6 Q+ u/ L
开发包中 Projects\STM32L476RG-Nucleo\Applications\Cloud\Ali\EWARM 包含有工程文件路径。用户可直接点击打开,进行编译。开发包使用的工程文件 IAR 版本为 8.20.1。若用户使用较低版本的 IAR,仅需要重新构建工程文件,而不需要修改目录结构与源代码。
2 J, j7 I, J% e3 T% Z
9 r  J" V0 c9 i; Q调试运行
5 p* D# F1 Z+ C8 ^: m直接使用 IAR 下载并运行。ST-Link 配置已在工程文件中。
* U7 V. L. E9 s3 B. {# y5 J& \) b7 |4 u0 I
Tera Term 串口配置
+ c+ V4 z! I1 ]( x& Z/ W: f5 a需要使用串口终端程序 Tera Term(其他类似串口软件亦可)来配置网络或者察看程序运行的日志。- P* Z- @/ n* s, A
数据帧格式配置参数如图所示。, ^* y8 W1 G. u; W. `, b7 F) k

5 m! l" f% Q" [$ J( M, A9 H 6VQGKND1JZQ8JU23LSY7)`N.png
! k2 y4 Z+ W' r: _; y
& C2 f- I$ h6 b# [# a在串口配置 WiFi
1 ^  T5 ?$ D+ v  ~" Z5 |第一次连接,设备端会提示输入 WiFi 参数。
5 N! q! c- C. {! X* s 输入 WiFi SSID. }( W1 a$ i# a' W( O. K
 选择 WiFi 安全模式
4 Y5 q( E! I$ }/ q 若有必要输入密码) m5 h+ g( g+ L: C/ y2 k2 a
9 N; y5 ^8 Q" o1 M& B8 S0 v
$QO]3GLAZ`3FEJK)(R0VEUW.png / g$ B. l- B" X. q3 r( p3 k
& t) V4 ?! C$ J) d
首次输入的 Wifi AP 的用户名和密码会存放在 MCU 的 flash 中,以免下次上电重复输入。如果用户更换了 Wifi AP,需要使用新的用户名和密码,则可在启动 5 秒内按住蓝色用户按钮,进行新 Wifi AP 设置流程
2 k4 `. s: s" S6 [# k0 z5 m# d6 ?3 e9 v' {
K`Y_JP]})192Y79N@B074JA.png * ^; U' c! C! L3 Z) {6 o! N" e

: G" G1 ]/ t8 Y  K, E8 c& n8 ]: U3 p传感器数据上报
& P2 S, b" K: ^0 K& S0 w- F- r开发包利用内部温度传感器数据,向云端进行上报并订阅。* g* a- S$ w5 a2 l( Y
0 x2 x. n: I5 ~! a1 l! b* ?6 t" A
3XJ``(E5N{2@%LP6PGVZSLO.png
0 L- M7 n% C: v2 m/ v$ g5 t& |- j& |' Y& ~9 @8 [3 K
同时程序也支持将 LED 灯状态上报。用户可按蓝色用户按钮切换 LED 灯状态,并将其上报至云端。
) L, b+ f  Y+ j, P3 C2 |( M1 ~' ?
2 ~# y6 p: p+ F/ e+ A, U3 n' S X_9HL{}Z2WY~)OUU(FPCH[M.png
( X/ z5 f8 {$ W# }( j& W+ L. J
+ c. X8 L3 e; Y# G在云端查看物联网设备状态
7 z/ [& N$ p5 t. \& _物联网设备是否在线,以及上行以及下行详细数据,除了通过设备端的串口输出 log 信息,还可以在阿里云端物联网套件的“管理控制台”上找到详细日志。访问查看“日至服务”,如右图所示:
4 o, f; J7 @0 x* N4 a) ]& F
, f1 z* }( J6 @' E; @6 a! w8 X4 Y& c 57FG690HM~EHEM~7L(PDC4S.png
4 u7 [( m3 _8 b
+ {0 X1 P. M2 v: N( [使用其他 STM32 开发板
1 \+ `7 h) L  B0 z5 u8 r3 l3 P; p基于 STM32 的阿里云物联网套件方案开发包符合 STM32 Cube 文件目录结构。用户可以将此开发包适配到用户自己的开发板。。3 Z5 L; \5 `. a, l# }( M7 n
对于新的 MCU 系列,只需要将相应的 STM32 HAL Driver 驱动复制到驱动 Drivers目录,替换自己板子的 BSP 驱动;然后在 Projects 目录复制已有工程,加入特定功能,修改得到新的工程文件。
& ?' z: F5 C* i8 C9 C事实上此开发包也支持 STM32 B-L475E-IOT01 开发板连接阿里云。用户可以比较开发包中的 NUCLEO-L476RG 与 B-L475E-IOT01 目录,了解如何快速将此开发包运行在更多 STM32 开发板上。1 q) M# n! ]* C( r1 O$ ^
另外,用户也可以很容易的将符合 STM32 Cube 架构的中间件集成进最终的应用。
) C. m/ P* z! H0 i' p
4 Y' o; J* O$ h: i$ R- ~8 l7 s1 d0 [1 |3 o9 B- ?/ Q: k
{(7H[EC4UQRC)0Y4XYD)A.png
/ }# I3 t/ Y6 p+ r$ f( U9 v
+ y6 q# @9 S7 @/ m- F0 ^; I' Q( h3 D总结
1 ?/ {; e+ g" x, R, |本篇 LAT 在 STM32 系列开发板中,选取了 STM32 NUCELEO-L476RG 开发板为例,集成了阿里云物联网套件设备端SDK,然后和云端基于 MQTT 协议进行双向通信。用户可根据本文以及所提供的源代码,根据需要使用 STM32 CubeMX 生
, r4 r$ \1 L4 ]  w8 V7 V+ T# j成相应 STM32 系列的平台代码,连接阿里云。, N/ o! H% v1 ?% k: `$ X8 v' ]5 Y

! P/ Z, J$ P9 m) I9 c  z- M% {! p
收藏 评论0 发布时间:2022-3-4 00:14

举报

0个回答

所属标签

相似分享

官网相关资源

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