【TSC_WL_EVK STM32WL评估板】上手体验
) f; c7 T* s8 r0 y, A' }一、前言' U& A L- D. P: Y1 r
最近,腾讯云加社区发布了【LoRa 社区网关点亮活动】,详情见:腾讯云物联网LoRa社区狂欢送鹅厂公仔,更有多款开发套件优惠购!; B2 X/ U; S3 ~0 j/ A( \
通过该活动的优惠价格39.9元我拿到了一块TSC_WL_EVK STM32WL评估板,评估版到手后如下:
" q! y( A+ z. y% D6 w* C0 M' p' p% C4 j+ l! C7 ^3 M& j) n _$ }
3 k0 _2 j }- d- e
接下来就是完成活动所说的 LoRa 社区网关点亮,官方提供在gitee的资料为:https://gitee.com/TencentOS/Tenc ... B_WL_Quick_Start.md
: p: y, m( \$ ?: R
8 N# T8 g' W5 D7 K1 G二、开发环境的搭建+ B0 J) Z3 X7 g' W5 M' q6 f5 Q
首先,由于使用了STM32WL系列的芯片,所以要在MDK中添加对STM32WL的支持,
' l% n' f% L9 B. g1 y2 }# I* g9 T2 v! }+ g0 }6 @/ [" b: H* O
三、腾讯云IoT Explorer 设置# k8 H. y% g- i, |1 Y: N
登录腾讯物联网开发平台控制台,点击新建项目,) o% q1 ~. ~) z2 E
8 {2 Z+ m- e. [! }( e
0 v2 [/ Q+ f' L* d2 R! ?0 {$ S$ N1 t i9 q- h$ M5 @+ i
然后输入项目名称和项目描述,点击保存
3 ?. _; B1 N1 t% C; @. k7 o$ x: B+ S, Y9 V' R! D
) R* \9 e- Y, g/ d' N* r" }
0 e& b* x2 D% P- Q* F: S6 W项目新建成功后我们点击其进入
+ r. x3 w6 w4 `6 y# W# o0 e2 Z
" ~' Q- j% f9 |& E# L
- u# o0 G/ J. i9 F. n4 z0 \+ @2 y! ^
然后点击新建产品
5 [- I% c% ]# g8 V6 E- Q
! _5 N& @& j' C* s2 M% z* g4 D
+ z5 Z) z G% ?/ e, G% }/ m4 F( t4 Y+ K9 r6 D
然后填写产品基本信息如下所示,点击保存即可, z# @( E' W- d6 { n) a
+ |: `. F4 ^7 |3 X' n5 j7 N- P B7 U2 w
5 b6 |! |+ {( i产品新建好后,点击进入产品,开始产品配置/ Y5 C) |: l1 _* E- \- L. I
: S( d( t" e0 f
) b8 W1 g" t+ @2 G6 v8 Y4 Y' D" n% M6 i2 t
在产品配置页,点击【导入JSON】
, h I! ]' p' Z0 p
6 m3 _" x# I& M5 X
) f; k4 r' r8 W+ b$ r- T* p! p2 m+ W1 y1 }' ^) u& j
填入的JSON代码如下,填入后点击【导入】即可,2 J! l m. }# w3 E7 r8 t
: ?5 W# ~& D( _. l% w& R. I
- {. X2 j1 k; i; J$ u$ k
- "version": "1.0",
& o7 a8 U# S: x! a1 C - "profile": {
8 c: p" @+ _. O0 ?, x3 O2 b0 D+ ` - "ProductId": "F2G256SY2G",$ x( u2 G3 l( z: [ a) y
- "CategoryId": "1"2 t8 p; C: [' }" O$ L0 ^' J
- },
5 B3 J' A9 {! v+ |: X5 G% A - "properties": [
+ m! [' Y5 }/ }$ J - {/ n, O" u/ m/ T( \# M
- "id": "temperature",6 a7 B: z1 N9 R/ \9 H- T
- "name": "温度",
1 z9 R2 I$ J( S$ R# Q - "desc": "",4 ]5 }) \" z3 b
- "mode": "r",
! A/ v1 l: q$ S8 ^) Y - "define": {0 L' ]+ g# ]) Z) o
- "type": "int",
6 j$ c: z; p4 _/ ^2 p8 e - "min": "-100",& Y/ f8 I, t: p4 W
- "max": "155",
4 j" ^1 y; S( U9 H0 m8 S( t* R Z - "start": "0",7 C0 \* k: d( w, A" ?7 k
- "step": "1",
( j- @* K" d3 M5 ^: @7 H - "unit": "摄氏度"+ ?% N5 E" i8 ^0 X; }4 |
- },- I3 M. c' d7 P8 |
- "required": false
( K# [+ ]5 `3 v9 F5 i9 Z; k2 K6 { - },
& T; n# x) l0 B5 x, p - {, K, b* } J$ O5 p- _2 K
- "id": "humidity",
) {; a' n$ O1 V0 N1 M - "name": "湿度",, k' O9 y, o0 a" x5 W
- "desc": "",0 @7 I) n: _$ N |3 a
- "mode": "rw",
$ b, C1 o4 V" g% L: z- ?) j6 L - "define": {, q- f* H: p; I, Z' ?3 ?, t
- "type": "int",. R' f6 E" m, v& b3 Z/ `$ i
- "min": "0",
' _" Q$ B: L9 D; P7 t$ o$ C - "max": "100",
$ {4 L% I8 T; @! F* v0 `1 e - "start": "0",9 [& D8 W1 z4 ]" ]7 a S$ u, e
- "step": "1", g ]0 O3 d( R6 \
- "unit": "%"0 S; P4 k+ f! {! M* A
- },
; D8 {# O& f8 T3 S& f: ~ - "required": false
% I3 H/ i6 ~6 B4 A - }," x( p1 h% y$ Q
- {
# @3 v) X9 P, t; i3 K% U9 j - "id": "period",
5 r3 D4 X' ~! l8 [# V - "name": "上报周期",$ a& v3 N8 J3 y5 s l
- "desc": "",, T6 [$ G+ x+ c8 F4 g9 V) `$ p( u
- "mode": "rw",
& j/ R$ m% J& B6 L8 x - "define": {
* w* }1 i3 |8 L/ @# b$ [- v - "type": "int",
# ^3 `$ E8 V2 V8 i r; b - "min": "0",) n; S/ I* t' Y% V1 [! [
- "max": "3600",9 K' |. G4 H' ^# c/ s0 [8 e0 h# o
- "start": "0",
) _$ u+ K1 F; u) E& e - "step": "1",7 g. F) w3 T& F9 x- h# T% j
- "unit": "秒"
, Z+ T' G! ~4 J2 |" x3 A - },
; C1 T d& z+ R5 K( m - "required": false
. H% x% ]! J# s- J, n0 I7 Y. c8 Q - }
+ i d# { F7 w. D; R - ],# S ^5 f' |$ ?" \$ S5 ^
- "events": [],
" K6 J! A5 Z8 _7 G! B2 D# S - "actions": []& R, S! `, E' V5 b6 z6 r6 z5 ^
- }
复制代码 / }" j5 Y6 c% g7 x: i" b6 i$ ?
7 g" e+ L! T6 `' A! ?6 v
7 R- i# W5 X, e/ l2 l6 y; Z导入完成后,如下所示,然后就可以点击下一步了
i. ]* S- I, q# R. ~. o" H6 X4 U; j8 q! F3 o: J0 }" H
0 W! h5 e- i! s/ ?
G4 M- A% d" h" } X在上行数据解析部分中,填入如下javascript 代码:- function RawToProtocol(fPort, bytes) {
) I6 `& x& ]" Z$ V. ]3 h9 \" p$ l& ] - var data = {
+ f- U9 ]) m0 X# v' A$ S A - "method": "report",
2 @+ a/ {2 R" d0 e9 U - "clientToken" : new Date(),
. d, B5 ~+ q& Y5 A0 X2 ^, x# b. t - "params" : {}
8 I9 h4 F/ ]& ~/ F - };/ Y( _6 k- J% U2 L F, ]; c
- data.params.temperature = bytes[0];
3 o' M% `; I% _9 w - data.params.humidity = bytes[1];6 V2 Z# U( n. h
- data.params.period = bytes[2] | (bytes[3] << 8);
9 `; y, p/ [9 x L) u - return data;- ~! ?1 J2 @. y! M
- }
复制代码
, a* I: t+ i% f7 y在下行数据解析部分中,填入如下javascript 代码:
: ]" C, X- ~' ~. s
4 j( d3 H; x8 }& G- X- function ProtocolToRaw(obj) {
) B$ Z C- v6 \4 f; u9 i - var data = new Array();2 A" \ }8 y" U- j
- data[0] = 5;// fport=5
, u* A1 z& k% y1 p/ ?- C8 o% b" K+ B - data[1] = 0;// unconfirmed mode% c- A, ^6 S9 P! E9 U! e8 }
- data[2] = obj.params.period & 0x00FF;' U# W, t1 y4 U2 c( X6 x4 A
- data[3] = (obj.params.period >> 8) & 0x00FF;
7 D( `1 _# w% x - return data;
/ \' k# h7 C/ r* F: z9 j - }
复制代码 , o5 j, {7 Q6 F" v5 x
填入完成如下
9 J9 I( Y+ ^& O, C8 o% @6 ` z0 C! o3 |
9 N& Y. O+ z# Y& F5 n( Y
2 i, I# | w0 h1 M- ?然后点击提交,进行保存
. _' `- Q) C, A' M0 ?/ X+ i9 X& A' d6 m4 x" b
2 k) f) m. k6 s; C( j" h( |
3 D- }2 n2 m% \% z点击【设备调试】->【新建设备】,然后输入【设备名称】: WL_DEV_001,【DevEUI】:8cf9572000004dfe,【AppKey】:1234567891234567891234567891234e,然后点击保存;$ c. J, J8 C2 H
3 Q+ H m; f, W: j: C; f
) y6 i2 d/ M6 ?3 u2 u1 p; T: v0 o5 x1 t0 |3 o' {
三、编译程序,烧录固件6 C; ^) K2 o T( V L$ g
首先从TencentOS tiny官方开源仓下载源码
! m, V# L* q/ @
: ?# I, ~- X1 V+ Q1 i$ c拉取下来后进入 TencentOS-tiny\board\RHF0M0E5_STM32WLE5xx\KEIL\lorawan目录,打开TencentOS_tiny.uvprojx工程:
, k+ q3 N, Z+ v! @
}$ l' C- {9 r) q
2 [$ X# M+ a& B
; L5 t: |) \0 T: w: C4 R# G) \' D接下来打开commissioning.h头文件,将DevEUI和AppKey设置的和刚才在物联网平台上的一致3 i0 x6 a- Z# ~' g) Q
8 e$ |5 W1 U! u' H9 J0 q5 C
2 w: w. W; l# v
) X% Q4 e: D- }& w6 U& _7 k然后编译链接下载到开发板,不过下载过程会出现问题,因为RHF0M0E5模块在出场的时候设置了写保护,我们需要使用STM32CubeProgrammer将其清除,将开发板通过STlink与电脑连接,打开STM32CubeProgrammer,将其升级到最新版本V2J35S7, O! T& f% m( n8 w- j$ ~- }
7 F6 J# C% X/ I
2 n7 r+ p2 n6 B8 i
: J1 u( c4 l2 B+ h; ~升级完成后重新插拔一次ST-Link,接下来做如下操作; k) ]0 }. p+ Y2 T/ H, } h0 R$ L
- d) y3 ]7 c" z9 Z" n* o9 r% f- [5 y6 y, o
& m: T- v! r) P. c然后再重新插拔ST-Link,编译链接下载即可成功:8 W* D& \7 v+ g* r
( y6 D+ P- f7 V: i9 u( p7 s" H! T/ B2 b
+ Q) Q: m9 v' n/ n7 S) g& Z9 V& m0 D# p' x- t8 S9 ?
|