【TSC_WL_EVK STM32WL评估板】上手体验 q2 U) u' U. ~" n2 V/ i
一、前言
J) k- C' d- U. W1 Q最近,腾讯云加社区发布了【LoRa 社区网关点亮活动】,详情见:腾讯云物联网LoRa社区狂欢送鹅厂公仔,更有多款开发套件优惠购!
6 c$ ~; V2 Q" N( |通过该活动的优惠价格39.9元我拿到了一块TSC_WL_EVK STM32WL评估板,评估版到手后如下:0 b# A1 d, V3 e5 m# ?9 K& L7 r, S
# r) z1 z2 m5 b+ `: E8 {2 W+ ~! z3 @+ S
0 F7 w* v: I, D& r接下来就是完成活动所说的 LoRa 社区网关点亮,官方提供在gitee的资料为:https://gitee.com/TencentOS/Tenc ... B_WL_Quick_Start.md v! X0 A/ f B w
+ k: ?6 l& [6 X/ x, g, c: U+ \
二、开发环境的搭建
( U/ f& k* L. w首先,由于使用了STM32WL系列的芯片,所以要在MDK中添加对STM32WL的支持,; |2 l' N: B. \9 n# l
4 p6 |+ r" T8 ~2 c c5 W5 {" J- ~
三、腾讯云IoT Explorer 设置
$ \' h- m& N( F" @8 I登录腾讯物联网开发平台控制台,点击新建项目,
, K+ j! `" d# U
( A* b2 s' h/ ]8 t+ l
( ?* J- B! ]1 |6 \7 C$ M, e3 u- m" d, y; L K \, d
然后输入项目名称和项目描述,点击保存
. A a! c/ D/ i. P* f
$ q' E& z: @0 J9 l V+ ?
" w9 ]; N8 N+ P# w2 t9 g6 P+ e9 w; c6 S/ Y
项目新建成功后我们点击其进入
( x; r2 Z3 q3 p. k+ Z7 q
. U5 S% u. B9 p% s+ _
6 u- K4 a! P- R6 I' w
! h# E" o6 c0 d! W$ h% o9 ?然后点击新建产品* w4 C& U5 i7 w" A8 [4 s
4 x: J3 p0 W: h$ z% k# K/ X6 i
/ b- F* F5 ?2 m G; R" ?. e5 P9 b* n' m+ e% ?- V/ |4 j$ w
然后填写产品基本信息如下所示,点击保存即可
, g' R2 K1 Q! i
: Z$ i' x* O& m' R6 G5 N$ j( F* u _
- z5 w2 e2 Q p& A7 v- f: d% B* k
- v" D" {9 ?0 [' g7 A产品新建好后,点击进入产品,开始产品配置
# _* _4 P# j( C1 U8 U
6 i6 d* W- N: y; `# Z6 w' B
" b# v# {6 c8 _! \3 g8 b5 `% d' m4 E# P2 f; I/ s# p
在产品配置页,点击【导入JSON】
' x X7 u# ]4 y% d' W7 _2 K3 p9 r' c# E4 F
. a3 I# }9 M( |
' F+ M5 z# U/ E) B
填入的JSON代码如下,填入后点击【导入】即可,
' ?9 w! P8 r# l7 o" H7 ~) ]: f$ v5 x m, r! Z* M! W2 R* w5 p7 a
- {
F! p; h' y# c: x - "version": "1.0",9 S: j7 c- ?( x6 u) u
- "profile": {
- K( ^; _) j8 ~1 C* u8 x - "ProductId": "F2G256SY2G",' g. ]5 O4 V# n1 T
- "CategoryId": "1"
" d( A( K) u) A - },* {* K+ u' w+ m f- B; [
- "properties": [3 ?6 f, K, ?' L4 W8 S1 y1 B
- {
2 q7 [, d% P b7 g - "id": "temperature",
6 ~; E; O; N6 v* E* E. o - "name": "温度",
- b1 z4 X2 {# L - "desc": "",
: K1 ?& L" S( I; K( O - "mode": "r",, A6 f; ]5 U. E2 C2 \- L5 \4 d( Z' g! I
- "define": {. V$ y: z1 d) C% e: e9 [
- "type": "int",
4 b5 L) g& @: Z% N - "min": "-100",5 J+ G/ G) L1 h
- "max": "155",) l' r! G' Y# p3 M! W4 o& M$ R* _
- "start": "0",0 o% G* ?; d% | d) b
- "step": "1",/ \- z* h1 ]5 Q" x. F4 F6 s
- "unit": "摄氏度"
# `. |: k* K) m! C! a: z5 j - },
: @8 r; _' {9 i7 q2 ] - "required": false' ]1 l) X' t& l1 | F/ r
- },. U' d/ j" R7 p! _
- {
" _. Q8 W% U( Y) Q# A - "id": "humidity",* v$ H* f/ }; ]9 \# m5 q5 a
- "name": "湿度",
/ _0 K+ p& {8 X5 p1 N2 x/ y - "desc": "",: G$ [9 ^5 c: W6 w( O
- "mode": "rw",
# w7 @9 A6 q9 V0 M8 _& t - "define": {
6 F% l# B' B/ n - "type": "int",
3 K2 n2 a2 \( U4 p {) D - "min": "0",
& _% @) o5 w' w - "max": "100",
# Q$ S* `8 w$ v) J - "start": "0"," ]- Q9 @* w; s7 V
- "step": "1",! F) x. Q% Y, t, H
- "unit": "%"+ |, [4 R! V4 S2 O6 m' }1 }
- },6 t' C4 M# N# {6 O% D, c
- "required": false
! h; d) G% E1 O7 ]. F9 Y' W - },
( o8 v8 ~& w* a - {
, O3 T, J% \& D. u - "id": "period",
! d, C. M) I1 b& t Z1 Q4 l - "name": "上报周期",
6 Y8 L5 W% k( R3 g/ \6 o4 t - "desc": "",2 i1 a8 A' _9 ?* k: ]+ @5 g `4 M
- "mode": "rw",7 c, x% ~5 S* S# P6 q
- "define": {. r0 `% ?. Y- y& T) a
- "type": "int",
4 {) K* N* h/ |7 l, Q0 w - "min": "0",* Z/ b' T6 l }; e
- "max": "3600",
" K: Q) e# x4 {% P% E2 F - "start": "0",
4 q( b6 r8 M6 }5 i2 L( z - "step": "1",
% ]9 }* ~# ^7 @ - "unit": "秒"3 ^- T! e' `7 n; B" a
- },. [" b9 \" c3 h. j% D: H4 f
- "required": false
3 z; Z. ^6 N7 ], S - }
6 ^( h; f' ~! B$ u' t& u4 i: S - ],
: k/ _. c2 [ r% k& V8 Z - "events": [],6 p* K5 P( k/ K6 V7 L7 I! \
- "actions": []$ W+ ~; M+ N5 p
- }
复制代码 ' J$ H7 D0 r0 t+ E9 O* X: o4 T+ M. V
% }" p/ s9 W9 g; A. r
# A5 [/ V0 R# h
导入完成后,如下所示,然后就可以点击下一步了
. c( |6 R* B# w4 j( g- L4 L, E- y( \9 ?' i
7 r4 H5 m7 v% Z8 p6 Y8 \
; L, I8 J2 [! ^6 w+ p2 T
在上行数据解析部分中,填入如下javascript 代码:- function RawToProtocol(fPort, bytes) {
7 Q7 s, T2 _8 R/ \ - var data = {
. I" J6 h* W+ W1 H' v3 N- o: `; _ - "method": "report",; d2 ~% W" V: u( Z1 K7 i
- "clientToken" : new Date(),
$ C* {# N4 J( A0 F3 V - "params" : {} [, Z1 \" V; _+ C& J" s: F
- };6 v' P; j `/ o( w/ G0 L6 W
- data.params.temperature = bytes[0];: \, a; u- n: @7 S) D& L& m& L: f& o
- data.params.humidity = bytes[1];9 z: A( V. {! C% d/ X6 v5 a! x
- data.params.period = bytes[2] | (bytes[3] << 8);
4 T8 ]+ \" g& u1 ~ - return data;9 O% ~8 y0 u8 k& \8 c* n( P& g F
- }
复制代码
' l7 w" e' H8 r$ @! f+ {0 S在下行数据解析部分中,填入如下javascript 代码:# }+ X& [: H& w- M8 t$ [8 N( s
7 m* T( D) ?7 h$ ~, ]1 r
- function ProtocolToRaw(obj) {
5 o1 L5 t/ | w9 z; M3 {5 N; Y9 I - var data = new Array();
3 |" P# b8 Q; f: l2 @ - data[0] = 5;// fport=5- P }8 L% P- z; q' p5 w2 _
- data[1] = 0;// unconfirmed mode- h" i s( z* l9 t
- data[2] = obj.params.period & 0x00FF;
' ~ I/ {& x6 Z3 P. |$ j: Y - data[3] = (obj.params.period >> 8) & 0x00FF;
3 d- n' B1 p5 @2 w - return data; g: w: ]& m: z w& z9 n
- }
复制代码 ( b8 j7 ?/ P- |; I
填入完成如下: G, |( j8 z8 K
2 a" A! |- @9 ?$ a* `
3 Y% G2 b3 [: o# ^; B- y
9 f3 u/ x" B3 L然后点击提交,进行保存0 h: H5 O4 }# c* S1 o
; O& B5 E6 ^; s- A5 G: [6 A* X3 v! `
l/ v7 Q' K& }) H3 `0 a' r6 L0 g" _- {( @9 c* Q
点击【设备调试】->【新建设备】,然后输入【设备名称】: WL_DEV_001,【DevEUI】:8cf9572000004dfe,【AppKey】:1234567891234567891234567891234e,然后点击保存;
) H# F; l9 n' W j& \
3 k, a" e6 X7 P0 U$ c& k/ }. y. u6 Y% o+ ^0 d& l0 I' y! Q. O
9 u! |/ l3 @# c& r三、编译程序,烧录固件
) z/ |- K {7 [& ^& o q* Y首先从TencentOS tiny官方开源仓下载源码$ N" ?* B3 V( ]; P
: A: H. Z; V! H" b拉取下来后进入 TencentOS-tiny\board\RHF0M0E5_STM32WLE5xx\KEIL\lorawan目录,打开TencentOS_tiny.uvprojx工程:
5 U7 ?4 C4 y) e/ M0 I4 [
6 i) ^+ Y5 M4 v
% B$ q* g. X1 X+ {/ c! [6 l6 K- |3 B( P& u& m d3 M
接下来打开commissioning.h头文件,将DevEUI和AppKey设置的和刚才在物联网平台上的一致
* r% s6 G# _7 U/ X4 \% P5 U; \
+ {8 I( ^! o3 h( w) |2 {1 Y
! g* x& b/ r& r, ]- R+ E
H0 ^8 v/ e6 ?* {) j: S然后编译链接下载到开发板,不过下载过程会出现问题,因为RHF0M0E5模块在出场的时候设置了写保护,我们需要使用STM32CubeProgrammer将其清除,将开发板通过STlink与电脑连接,打开STM32CubeProgrammer,将其升级到最新版本V2J35S7* ?$ @, A+ `& d$ b+ u, T( ~! h
" M9 o+ w$ Y. C5 v+ z+ `" y) N* R, N4 Z7 [9 p2 o( z4 I
) k) @3 ? G4 X9 i& h6 o6 ^; u
升级完成后重新插拔一次ST-Link,接下来做如下操作0 V$ m9 M w7 N3 V4 X
9 s/ i Y' `/ a: D R
, A% |) k5 u% U0 U& f: z
# K& E+ K2 I- D9 d3 Y6 B然后再重新插拔ST-Link,编译链接下载即可成功:
& `& z- o& M' V1 v' v8 w7 H5 @1 ?( L# m/ Z- r
" Z# b7 }' y) E) J* ~1 q/ J
# s ~" c* o* ]- m, T, K P
9 O5 a; ]5 K. f" G$ H8 q$ A |