【TSC_WL_EVK STM32WL评估板】上手体验5 Y# o- y1 G' U7 b+ Q
一、前言7 W4 ]8 z" S/ y% T* S- x
最近,腾讯云加社区发布了【LoRa 社区网关点亮活动】,详情见:腾讯云物联网LoRa社区狂欢送鹅厂公仔,更有多款开发套件优惠购!
6 f4 |2 P+ `: P, [6 C; u3 W {9 f3 r通过该活动的优惠价格39.9元我拿到了一块TSC_WL_EVK STM32WL评估板,评估版到手后如下:$ P7 k/ k% E( d1 q
) z8 T, f+ X1 ~
; ?; V6 t6 A% O& M" y. f1 {接下来就是完成活动所说的 LoRa 社区网关点亮,官方提供在gitee的资料为:https://gitee.com/TencentOS/Tenc ... B_WL_Quick_Start.md1 d; c1 `6 g% u" b8 m) V" e
& f+ B6 q9 {# U! }* E, n) u- {8 Q二、开发环境的搭建
5 A% U A: w% h首先,由于使用了STM32WL系列的芯片,所以要在MDK中添加对STM32WL的支持,+ l9 B) n! R2 w" t
. x. X6 f6 E7 }! r1 Y1 J
三、腾讯云IoT Explorer 设置
6 U# \* d/ X. M登录腾讯物联网开发平台控制台,点击新建项目,! h4 h& _ c3 }( h% Z
$ ^0 N) ]! c8 ^1 D
1 R" c, R1 w* x U" N
4 I$ J3 @% x. C! o8 o! y, O
然后输入项目名称和项目描述,点击保存
4 w1 ]! L! v. p3 P5 r( ^, I2 p3 \, N$ p
5 {& B5 U V3 J4 [+ Q/ a
6 V: T! w: o G
项目新建成功后我们点击其进入
+ y) Z1 V S: A4 M; |% t% v. {/ x* e$ F, _% u& `
. A( z2 O4 ~" m
0 @9 x% P( y3 g* G9 |6 e5 n0 V# ?
然后点击新建产品! }! R% |; M, H5 L
4 k' x, Y7 V; v8 u8 k- M3 c a6 `' @
. U3 e& l4 O9 Z: A) P, f& c# l6 `
/ o3 o8 [+ H1 X/ p9 M+ C$ j然后填写产品基本信息如下所示,点击保存即可
' |8 P7 Y- _! @+ }' O V) J- A# i
, t9 e+ I) ]: o5 v. U j! P+ d- j P- Z- {, @* |0 e4 L- c6 D
% `9 @3 P! I. j( M) v E产品新建好后,点击进入产品,开始产品配置$ x4 f: I2 }0 N- n* L
/ g5 _- b" J9 K, u
" f9 U- L5 [# {/ ]+ i
4 W6 r/ P( E! o在产品配置页,点击【导入JSON】
P4 G9 L: Y% j D0 l8 |! L! S) L
+ d7 P$ L! B3 N9 j. B0 N; s6 N+ }; i$ i. i( z
& D7 F. b1 B7 f1 c6 N- d( `填入的JSON代码如下,填入后点击【导入】即可,4 d2 A; L) f; R! i- W/ b! a2 X4 U
. f: ?0 O) c t. K* r" M
- {' A; s: ?7 c, v: t
- "version": "1.0",
! I- g& [- i9 N) j: e - "profile": {, ]1 |. A: ]; Q
- "ProductId": "F2G256SY2G",* l, ^, I$ V, @! L S3 i
- "CategoryId": "1"! G& }! S- G2 D, g3 N
- },* W+ f( k7 k+ X7 i' }+ O- O, p8 }2 O( D
- "properties": [7 S l# N' p% i t2 n6 ~
- {$ U4 r8 f, [: H: G4 g, d
- "id": "temperature",4 J/ X0 @: V* `
- "name": "温度",- G. ~# J' {6 Q# M' Q) b% [
- "desc": "",& k& O8 y( I; t: g4 T$ m4 k" N
- "mode": "r",% C1 {( e( c: b4 o5 Y. A
- "define": {! p* n8 J+ s4 A2 ]5 u
- "type": "int",
) l8 r- {* i! c1 } I3 Z) V$ i/ D8 o - "min": "-100",
7 Y! `3 X. D; W9 W$ l - "max": "155",' \# m' N8 y. v3 j# m" [3 Y" I( g
- "start": "0",
+ w( f9 i4 \4 j1 ]+ e- Y3 e7 }2 p - "step": "1",7 r/ h' `" I d3 J
- "unit": "摄氏度"$ Q% R; v3 Y6 _
- },
. d# y8 f/ N2 l7 e4 _" d3 l* v - "required": false
$ Z- W: y N; u' ]6 ^ - },
$ \- J ~9 \" o - {
* E5 t) ~; M5 P5 y. z/ ]! m1 v - "id": "humidity",
5 Q P6 S# r: U) X) r- { - "name": "湿度",* x, Z' K8 |1 R* k' {
- "desc": "",
" q8 Z: `6 _ M$ x; g - "mode": "rw",2 V) u2 g. I* _
- "define": {
$ z- S& N# _9 {4 d - "type": "int",( M' d! F8 E5 e7 I! |
- "min": "0",
, k! B% g! U; D1 o. i - "max": "100",6 e- N2 }5 W' }- @- l2 I
- "start": "0",
8 X# v. [6 S0 ~/ d- n; B% T8 l - "step": "1",
2 v% ^2 i% I7 h# }2 q7 b* R; _ - "unit": "%"
9 F6 ?/ S( o, \9 G+ f$ ]7 V1 R - },3 v& c; B3 Z& k j1 ^
- "required": false0 ]# u) N- F3 m; H! X: x. I) l p1 J, m
- },
3 x7 n y/ K! I" M: c - {3 B' |/ I) d( v; g0 s
- "id": "period",
9 Z% V8 f" D; m* E% h9 | - "name": "上报周期",
; W% y) Q/ l/ V5 B$ f - "desc": "",7 K* j* W6 j q$ M3 a
- "mode": "rw",
( l4 s$ ^- @/ X# ~2 s - "define": {
6 H* u* V3 Q1 h! @& z - "type": "int",
& H" o* b- g* s+ [. `8 _: k4 G; _ - "min": "0",+ \5 m' l& E5 s$ P& b- j8 {6 [( u1 t
- "max": "3600",7 e6 M! B7 {: o& A" h
- "start": "0",
- w4 H+ U7 e# k7 U" w% a9 q ? - "step": "1",
+ ^! D" M2 ^/ f0 w - "unit": "秒", h; }/ k8 [# L' ?& l+ [) M
- },# q; j, z" o# I5 Y$ [
- "required": false) O5 F! N! x1 n @/ L) `
- }
9 {* r# T; f( L3 L x; h - ],1 ~8 u2 p0 F$ k$ o" [' w6 a
- "events": [],3 ]5 a* X* \, {% V; `4 P
- "actions": []3 j7 k g0 k2 f3 M0 q7 P
- }
复制代码
2 w# X/ @% c: r, J6 `1 Y, j
1 \8 g4 C" c. V; s3 @$ e+ P5 O& T; U' i4 e& }7 f
导入完成后,如下所示,然后就可以点击下一步了6 G/ i/ T, f5 t$ _: e [/ X
" U: @ A$ x. {! k, l
" d$ U( m! R( C* l, g* a3 U7 w7 q' P0 I1 `6 F4 [
在上行数据解析部分中,填入如下javascript 代码:- function RawToProtocol(fPort, bytes) {
3 U) L& D; C3 o e0 j( j6 g4 m - var data = {- B. r4 m* k( f0 z+ h; k
- "method": "report",
" _/ {5 e# G- e+ q3 g( | - "clientToken" : new Date(),5 ~& I7 m) H- j/ B! b8 k
- "params" : {}
2 S9 J0 a+ G4 T - };
1 C% \, j# T: j: o$ A - data.params.temperature = bytes[0];
9 M8 E% I" c6 C5 o, O/ Z - data.params.humidity = bytes[1];4 c8 H6 ~( d1 }! q5 P
- data.params.period = bytes[2] | (bytes[3] << 8);
3 @) E2 }8 o1 I E) Q/ q4 f - return data;3 u, T, }6 @: `! F8 P
- }
复制代码
' O" s5 U$ |; S( ?/ V在下行数据解析部分中,填入如下javascript 代码:
5 X' N4 s; J) Q1 p9 }) |# Q- u
& w. G. _' x& E2 D& C* `6 G# C- function ProtocolToRaw(obj) {
# K+ C- s, y/ d% n- D7 N. p9 k - var data = new Array();
9 {+ x1 W) c+ C' \+ J8 i - data[0] = 5;// fport=5- H! d |, d0 t5 r
- data[1] = 0;// unconfirmed mode
9 i) a; L" Z* _' q - data[2] = obj.params.period & 0x00FF;
( M% P3 n3 z S2 x R4 v2 m - data[3] = (obj.params.period >> 8) & 0x00FF;% @/ p9 P. |& w/ a
- return data;1 p! Z: U1 }( c
- }
复制代码 & v/ v0 E2 [0 P0 b" Q
填入完成如下
" i1 O6 V+ U6 A( [+ `
; J, e) m" s0 }! x
' j& N' X. @ p7 N0 R+ X
O2 W$ {: u" K! b4 w& s1 y* v然后点击提交,进行保存
% X& u' u9 f/ S( Y& d1 h/ q! M% ^& D# j
7 D, \3 M. x* J& O q% h
- h9 ]! d; @- }& X6 k1 S点击【设备调试】->【新建设备】,然后输入【设备名称】: WL_DEV_001,【DevEUI】:8cf9572000004dfe,【AppKey】:1234567891234567891234567891234e,然后点击保存;# X, P, f5 b( ?7 X& u) a, p G
0 ^* A0 q o- y& V' L' G _. A3 J7 x$ D
3 O% H% B r& A: V. L0 c三、编译程序,烧录固件- E6 d6 t7 X8 Q
首先从TencentOS tiny官方开源仓下载源码
( M, z5 C* A0 I6 D
3 }9 q3 N/ m- }% I' r7 y9 K拉取下来后进入 TencentOS-tiny\board\RHF0M0E5_STM32WLE5xx\KEIL\lorawan目录,打开TencentOS_tiny.uvprojx工程:
( A8 S( C8 D3 v
+ J) {! e4 a4 G" E& e6 @0 U
$ u5 ]7 l2 s3 D! J
% E. f5 i m0 `7 e$ z p" A1 L+ Q接下来打开commissioning.h头文件,将DevEUI和AppKey设置的和刚才在物联网平台上的一致
4 L3 P: G2 z0 c& x5 K) {& s" u4 g* I# R; j5 I
) _( ]; r2 ?- L% k
" O- E8 q5 F/ I' n3 n/ g% ]: k6 v+ l然后编译链接下载到开发板,不过下载过程会出现问题,因为RHF0M0E5模块在出场的时候设置了写保护,我们需要使用STM32CubeProgrammer将其清除,将开发板通过STlink与电脑连接,打开STM32CubeProgrammer,将其升级到最新版本V2J35S7
! t! |! x- m- N$ Y5 V2 C2 t) M5 {
6 }8 r9 T9 Q& n6 w# t- X! G" w
. v J* X# q4 p' N* P% P: I9 f+ z( A) W
升级完成后重新插拔一次ST-Link,接下来做如下操作, Q9 W! Y$ Z9 R3 r
: ]( j$ ?" y$ k8 B) ]
$ Q+ X) n/ }2 R" u" r R3 ]
4 R, _3 G- \9 W* P然后再重新插拔ST-Link,编译链接下载即可成功:
* F. l4 D7 l% `7 k
+ b$ i" B7 e: @3 T* y2 Z* {/ h+ |* L# g
8 C$ R" J( g l$ P/ C I
, R5 `5 r0 i8 R: p# k6 h, H
|