【TSC_WL_EVK STM32WL评估板】上手体验
3 f/ p* J- Y4 m$ j" Q. L9 T) z9 O4 V一、前言
# ?( l$ d+ C8 `4 D/ D! \) |最近,腾讯云加社区发布了【LoRa 社区网关点亮活动】,详情见:腾讯云物联网LoRa社区狂欢送鹅厂公仔,更有多款开发套件优惠购!
. b8 M0 g- M: t7 [, [0 B* q2 B4 i4 ]通过该活动的优惠价格39.9元我拿到了一块TSC_WL_EVK STM32WL评估板,评估版到手后如下:# _' k8 r3 L6 D3 s3 ^, U" p7 P
( b4 S% L+ n; c+ S
. \# r, Z0 E8 v' o接下来就是完成活动所说的 LoRa 社区网关点亮,官方提供在gitee的资料为:https://gitee.com/TencentOS/Tenc ... B_WL_Quick_Start.md; [" o3 N0 r3 K7 K. V7 c
. E4 @7 d! k* U2 @二、开发环境的搭建" f$ \/ j9 ~$ I7 c, |, [! P4 Y& T8 L
首先,由于使用了STM32WL系列的芯片,所以要在MDK中添加对STM32WL的支持,
; F) {) ^. P8 r& @% k2 D G h5 v! R% m! j- D7 m# w" a7 i. V8 ?- c( C
三、腾讯云IoT Explorer 设置+ P) `8 G6 x7 K; \4 x
登录腾讯物联网开发平台控制台,点击新建项目,
" I# b% R$ K" ]- u5 k/ x( e% O9 I8 k& K7 i% H3 S7 _
7 a) D) n8 d$ {/ b* V/ ?3 x) [; M; ?
然后输入项目名称和项目描述,点击保存# @" r' a7 T5 l5 L9 a5 M
3 n" r3 Y! ^( i* ?9 g) H- t+ g/ J W5 G; e
; e! v9 Q/ ]( H! Q) R9 [7 X; ?
项目新建成功后我们点击其进入0 r" ^$ ]* `* j* g$ H Z
: p M/ ~/ m: k
* E Z1 N' \" O c
/ M+ J0 t4 e' e, C, ~然后点击新建产品
/ {" b' i& V e L% x3 V/ P& a
' @& t2 s7 Z" j3 t2 {. f+ |" o: v( N; u8 @+ A" Y2 b1 `. e" f4 \
然后填写产品基本信息如下所示,点击保存即可- b, I# G6 _9 d5 |8 w( X I& b
- Y/ j' G9 T7 d* ]* m. w5 @4 b$ C6 z- U' ^& q* G5 @5 u# F5 s
! ] o$ p3 J% o' M产品新建好后,点击进入产品,开始产品配置8 W) `0 D' o4 Q2 f% u5 @
: ^3 O5 h5 g" v% j8 s! e* [9 j) V- u( o/ E6 W5 {
! \& e5 t( u- K+ M* H) a
在产品配置页,点击【导入JSON】
# v" m f" Z" ?) u
9 k+ E% d6 w0 |0 _* K* p$ L. n4 }! p6 q" u
) B9 ]; W' O. f- B3 k4 N填入的JSON代码如下,填入后点击【导入】即可,
! U# {. F# L' c5 s7 ?
7 b# d4 Z, F7 i+ h1 ^9 Y- {
8 k2 p. a% p4 f) n( s: y0 Y! d - "version": "1.0",0 O- E+ `( C/ ^% j8 o: C E
- "profile": {
8 h" @7 r/ y% U - "ProductId": "F2G256SY2G",
: o7 T) F6 D7 m4 W" A+ c' g* W - "CategoryId": "1"
5 y' I* i) F8 L" j% s b - },4 S1 b6 z- ^; m$ V
- "properties": [4 j* ]& |- R7 R P
- {
! o8 x. d i* [ {1 S" Y - "id": "temperature",
6 E$ b9 P+ N: n: ^8 N" l1 g$ p - "name": "温度",
]: P! y1 e7 [ - "desc": "",# V# O2 z: M" ^! C2 l& t
- "mode": "r",- j6 T* B. s) O5 S- k9 w1 ^
- "define": {
; C& P3 W" ?0 U" b9 ` - "type": "int",: n* E4 h \/ X% S
- "min": "-100",
7 h0 l) d& R8 } - "max": "155",2 W+ D3 ^/ d( q% R
- "start": "0",6 f# \1 G5 q7 I! Q+ j& X
- "step": "1",* O. @, ]" M# \9 {' p
- "unit": "摄氏度"& _: \+ X% W8 T' x
- },! e/ y8 `1 m- \ c
- "required": false
3 j; c( ^* w0 v8 c$ E - },
% b. B0 Q* Q9 w. O- Z6 D( k U! | - {5 ]( w0 r" \) J2 M$ ^* X2 M
- "id": "humidity",
2 @8 d4 _9 a+ F0 k7 c( g* n - "name": "湿度",. W2 V# R% n& ]# @/ M( H* }3 E
- "desc": "",- u( j4 d$ e& k3 i# ^
- "mode": "rw",% e. Y/ K0 [" o" a
- "define": {0 \0 R% m. I7 K K) B9 i
- "type": "int",
0 P0 `& w1 h" g: n- S) z - "min": "0",
' @) V! a8 i9 k" W- ]: N - "max": "100",
, S# K, [& B% I! w4 r% o+ X7 A - "start": "0",5 y- b3 F2 v6 D4 Z
- "step": "1",. ^3 U; s1 c5 f- l! E
- "unit": "%"+ d( x2 C \, C A
- },
3 u4 T( U" d5 ]. i) c T - "required": false3 v K& s( r: v' F/ ]0 r
- },5 @9 X5 [, P9 P
- {# z& v( M: Z" y7 y1 @: D
- "id": "period",
5 D3 J7 }0 }; V% O4 |8 t - "name": "上报周期",
( |7 }# t# J1 l) j1 L - "desc": "",6 y2 `# @- Q6 q. m( G
- "mode": "rw",
8 z9 Y% c( F0 S$ A3 y9 _! f1 {6 k' l - "define": {
5 c D; j$ y, h. s - "type": "int",
* ^. ^: I8 B, K) z9 m+ K w3 [ - "min": "0",* B0 Q/ V+ j& G
- "max": "3600",
3 j" q( {% p1 l# q. t$ N4 f - "start": "0",+ `/ _& j5 y( s
- "step": "1",
. O* c w0 n4 y d2 ` - "unit": "秒" l: c8 S1 w0 F) Y! P4 S
- },
; a$ y$ C+ L# ?" L, n+ _. w1 X& { - "required": false
' g9 g+ C1 u q8 w - }
9 U" j/ B; G- F: Y# ~ - ],
1 o, L2 U9 |4 n; ?8 } f - "events": [],; C4 @& I6 R& J3 v7 n* g
- "actions": []
6 \- @( f3 K' F$ P; [7 ]( o. ` - }
复制代码
* X% K, M* O( d7 z& H; Z& T# B7 [$ }& B3 L4 a- i9 g9 o- r2 l, y
3 h7 B4 f" h' ]1 P
导入完成后,如下所示,然后就可以点击下一步了7 T, D1 ^5 ?% \# p
; H# s8 k% u K/ }1 i! l# J4 r
% ?' r( U& `2 A; O; }
6 ]' M; U2 b( C* v: q4 K( u
在上行数据解析部分中,填入如下javascript 代码:- function RawToProtocol(fPort, bytes) {
5 a$ n! _' M" o$ E - var data = {
! o9 o' ]+ j$ P4 R' d( A - "method": "report",
5 K5 Q, |: S' g2 u6 Q* @7 |9 z - "clientToken" : new Date(),
3 i: E1 T! o" h- ~! v6 { - "params" : {}
, W5 e$ F! G3 b+ x - };
3 r: [9 k$ h. g1 @8 X9 K - data.params.temperature = bytes[0];
$ w2 t$ _ D. j' p1 ? - data.params.humidity = bytes[1];; d5 V1 x+ W3 s& f* O
- data.params.period = bytes[2] | (bytes[3] << 8);! _2 _* M4 ^/ X4 I
- return data;9 j9 N! ?2 N; T) x4 J) I! |
- }
复制代码 4 b4 b$ L% M* ^: }4 d( N
在下行数据解析部分中,填入如下javascript 代码: G2 p! E) V5 |# L+ h
! F7 F# U, y/ s/ I0 A- function ProtocolToRaw(obj) {
3 b% g, K: H R/ G3 d( U, G# a N - var data = new Array();
* U# p& {) a$ l8 w" F8 c - data[0] = 5;// fport=5
! x$ L/ S2 z( I1 h6 F& Q - data[1] = 0;// unconfirmed mode
' D8 F" R6 j- D! [( p w. D - data[2] = obj.params.period & 0x00FF;
: Z G5 `$ i. O3 p9 V/ ^8 I - data[3] = (obj.params.period >> 8) & 0x00FF; i" v8 \0 }7 a1 ?
- return data;6 P1 P5 ^$ P! O7 T6 ]) j
- }
复制代码 3 |0 q8 z! m ]& V
填入完成如下; [: ?" l1 O3 h0 E4 m4 F0 {
. ^5 I- c6 o$ v$ H; h3 j0 Z7 e
! y$ H: N9 I; y
3 ]% }# W4 o6 z3 m
然后点击提交,进行保存
4 k- u' T, b- w3 @+ ?3 k
) |9 r: x2 H3 c% C& F, p% b* G2 E' {8 ~" J. S
; }* ^7 Q7 l' Z7 e
点击【设备调试】->【新建设备】,然后输入【设备名称】: WL_DEV_001,【DevEUI】:8cf9572000004dfe,【AppKey】:1234567891234567891234567891234e,然后点击保存;3 C% y; g1 x" x s( ]: f
9 o! I6 q/ @' [4 b: J- t
7 K" x" K8 [7 Z* ~/ }+ G; ?
; g/ L6 C4 k: O9 k" ~# E三、编译程序,烧录固件/ I( E* |1 B' [2 h$ B
首先从TencentOS tiny官方开源仓下载源码
6 C6 R3 i) P. s4 u" P" I4 [! a
) [6 }1 j1 j5 K7 p/ T拉取下来后进入 TencentOS-tiny\board\RHF0M0E5_STM32WLE5xx\KEIL\lorawan目录,打开TencentOS_tiny.uvprojx工程:
8 K0 ~" B/ s( D" P, `4 k; M5 x- o, K( o& B0 J% J$ p
* I) I- B, Z# U6 b9 m F* f; T: {6 R& Q
接下来打开commissioning.h头文件,将DevEUI和AppKey设置的和刚才在物联网平台上的一致
% H/ ~' s2 W+ P* `# x
. r6 U" I' I0 s, q) r- _$ E. r7 ]& `5 {% F" k# B" G! p1 i, @
) n$ G" s! x G. D9 f
然后编译链接下载到开发板,不过下载过程会出现问题,因为RHF0M0E5模块在出场的时候设置了写保护,我们需要使用STM32CubeProgrammer将其清除,将开发板通过STlink与电脑连接,打开STM32CubeProgrammer,将其升级到最新版本V2J35S7' X4 a) z4 K) f! I" p( R' J
1 d: l# a# L) }0 V1 n; c
5 @, E2 l7 d) Z) a7 ^. j; J
* ]0 b3 k: |8 e) c i升级完成后重新插拔一次ST-Link,接下来做如下操作( { ^. R4 _/ B+ o
' s5 M$ w6 X+ W/ x( d2 z
1 ?8 g0 A9 O, C Z4 C. v; \; C
/ p8 M& ^5 u( c' w6 J然后再重新插拔ST-Link,编译链接下载即可成功:) i9 c5 i$ z( R& _
" h9 O+ |1 o$ c. \* _7 f' Z
) |5 ]5 K8 @( @8 S! h( n; }
* I( l+ }+ v2 V/ h1 P* G/ ~7 M% j6 @9 Y2 C: F
|