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

STM32WL温湿度传感器接入TTN物联网平台

[复制链接]
STMCU-管管 发布时间:2020-11-18 10:31
STM32WL温湿度传感器接入TTN物联网平台

8 m  z$ n; q" k5 m$ K' a: R* e+ h

% w$ g# }* j2 D+ _+ }物联网的接入平台很多,提到专门针对LoRaWAN的话,不得不说TTN (https://www.thethingsnetwork.org)了。在全球范围加入TTN社区网关多达16000多(2020/10/30数据)。在国内相对少点,但也是跟国内的大平台有很多合作的。
' y, g' |1 y% Y( X( I4 u* n4 Q( \5 R, C

( i' S4 w; H; h8 {
  P  y1 r( J4 ]% @; N

; v- `) M. i. x) f# i$ \+ k& U本文介绍如何把基于STM32WL设计的温湿度传感器设备(Device)接入TTN平台。9 J, \+ M" ?. @3 b6 a% i0 D
1.准备工作
3 U& k" c) c2 v! T: `1.1 TSC_WL_EVK  LoRaWAN评估板8 m+ j- Q/ s5 U; ]0 d9 B! H
TSC_WL_EVK是腾讯云联名(意法半导体、瑞兴恒方、深圳智芯云)设计开发的LoRaWAN评估板,很多小伙伴已经拿到了这款评估板并成功接入了腾讯云物联网开发平台。TSC_WL_EVK可以支持烧录TecentOS Tiny物联网OS,极大的方便了设备的开发。基于TecentOS Tiny的设备并不是会被限制只能接入腾讯的物联网平台。5 x& X6 O8 t! @( a0 |
TSC_WL_EVK和配套的传感器评估板如下图:9 O+ ?! \0 w' x2 T7 ]4 t% y8 _
11.png

# G- p$ Z* K& f( ~

  c# w( G, Q  W! [1.2 LoRaWAN网关* S' O: B" r3 J
本例采用的RAK7259室内网关,如下图所示。
: N3 Y1 Y4 A' n0 z7 c" N, _' V
12.png
智芯云也可提供低成本的单通道网关,与TSC_WL_EVK配套使用。(下图中包括了单通道网关,TSC_WL_EVK评估板和温湿度传感器扩展板)  ^+ [$ j  ~, c0 P' i
13.png
1.3 TTN账号1 U6 K( O- k! j, g- h
https://www.thethingsnetwork.org/注册TTN免费账号(注册过程可参考网站提示)。! W3 q& n4 V/ L9 U% ]' X
如果想试试图形化的应用开发,在https://cayenne.mydevices.com/注册Caynne免费账号。# z, B/ o3 e; B7 S6 m. l
/ P$ B5 w6 A9 Q! E: m

; F: V% e, T6 a0 w% X3 J1 M+ I
2. 设备TSC_WL_EVK固件
: \& k: X& Y+ e; x5 E5 f  K* f
8 V4 b: [) H: t
TSC_WL_EVK评估板对应的参考开发工程文件可以通过下方链接获取
3 n1 i  ~: m" A7 @0 ]" x1 D% z* b
7 |( z8 C) f. B
7 J/ g4 ~6 y* ]1 a
链接:https://pan.baidu.com/s/10BqWjgMZT4_pGWaifh8EyQ
: Z- ~6 P! k: M& j提取码:hgxd
% [0 H, u3 n! [1 ^
$ W: E8 h- E' a. u% ]+ K; m& _

4 @( T5 ^# @$ p7 R/ m, z8 [参考开发工程文件包含TSC_WL_EVK开发包和STM32WLxx的KEIL的器件库包,如下图
% h. |6 S; f5 m6 [
14.png
设备的固件是不用修改就可以接入TTN平台的,前提是设备上的DeviceEUI,APP_EUI(LoRaWAN 1.1spec 改为JOIN_EUI),APP_KEY要和TTN平台设置一致。为确保接入成功,可以在commissioning.h中修改DeviceEUI,APP_EUI,APP_KEY为自己需要的数值。. p% B2 c1 y( G. q; I' k
15.png
如果想要尝试mydevice的图形界面做简单应用的开发,需要在把上传的数据结构做简单的修改。
, b" l# ~4 P- Y6 y: M) W
4 E$ [" J' h- j1 g8 L* j

# _6 M8 r9 n9 x: o5 M7 ]在app_lorawan.c中修改数据长度为7,如下图所示。: ?% N6 _4 r9 ?6 [& ^
16.png
在app_lorawan.c中修改上报的数据格式:温度(4BYTE)和湿度(3BYTE),如下图所示。) l3 y4 b1 p% r" h
17.png
修改后编译下载到TSC_WL_EVK。(对于TSC_WL_EVK的烧录可参看之前教程)
; f: F$ `* T; P7 |8 P3 U
3. 网关设置
先把网关连上WIFI,进入网关的管理界面,选择设置LoRa Packet Forwarder设置参数,大部分设置采用缺省就可以了。
3 n1 [* q: l( a0 d$ h4 T# D关键参数说明:8 [  A- n& ^' E$ W
Gateway EUI: 网关的UID,建议用网关的MAC地址中间插入固定数据FFFE。
% J0 ~' N3 z0 k$ L- @2 jProtocol: 目前最通用的是Semtech UDP package forward协议。
2 T. c- P6 ^: P( F7 LServer Address: TTN服务器在中国区域选择router.cn.thethings.network。/ p' U  E; o, Z
Region,Frequency: CN470,CH80-87。
$ z3 ]* [( Y1 m注:如果用户希望在LoRa节点的程序中使用自己的频道,那需要在网关设置中选择相应的频段。
( G: M/ @! I& |% e9 ?
18.png
4. TTN设置
2 X7 a8 l$ C9 `5 f" m! ]( R3 e) l
1 v: ~, B  \0 v+ Z
进入TTN的控制台,选择GATEWAY。
$ Q9 t: b. f# S0 |, O; m/ z
19.png
选择Register Gateway把刚设置好的网关注册到TTN。
. B+ l: z8 \- [2 x
20.png
设置以下参数(要求跟网关设置一致):6 m$ F% s: t0 \# @0 o8 E
GateWay EUI: 填写刚才网关中设置的UID5 W5 V" ^( o1 d
Package Forwarder: 选中4 j0 q- j6 e5 L- |
Franquency Plan: CN470
3 I- ?! K6 z; v8 z5 I1 tRouter: ttn-router-asia-se* e, `8 m5 |9 ?' w! T& a, w
Location: 纬度经度高度(地图显示估计会有问题,不影响设置)
! t! P8 u0 k( A& x. ?Indoor/Outdoor: 选择Indoor# i4 d$ m& t8 y1 h( j
点击:Register Gateway
/ ]* o4 a$ R1 E" h+ q1 b+ L3 h
21.png
信息无误的话,会进入以下界面,并可以看到在线提示。
1 V+ l3 v% J. m' ~+ N$ p- C' k
22.png
选择Setting可以管理网关。4 `5 o. \2 \/ Z4 t0 ~1 m$ B, Y
23.png
如果附近有活跃的设备(Device),选Traffic可以看到网关的数据。这些数据是经过加密的。
; x4 i) l- Z: Z% x4 o
24.png
在控制台选择add application。
$ C( J0 s5 Q3 d; N+ d! ~' GAapplication EUI系统自动生成,之后可以修改。
+ \6 T6 i/ M+ W0 h& l+ g6 QHandler registration: 默认ttn-handler-asia-se就可以了。
% b5 u6 j9 h- [7 q
25.png
在Application管理界面里可以修改APPLICATION EUI,,修改为AAAABBBBCCCCDDDD,保持跟设备的设置一致。
7 e) W( x/ @7 p7 z! r6 ?6 q( E& }
26.png
在应用的数据格式里选择CayenneLPP格式。(如果选用自定义格式的话,需要自行编写JavaScript将原始数据格式转换城JSON格式)。9 j4 ]% r3 l) [
27.png
下一步就是在APPLICATION里注册设备了。这里注册的设备信息也要与之前设备开发中使用的信息一致,如下图。
% e* }  \/ `; x" i2 O# a
28.png
上面提到,我们在TSC_WL_EVK参考示例工程中的设置如下:. I$ }1 L2 g1 V; B' u# S9 [
Device ID: aaaabbbbccccdddd
9 h1 K) s# A7 P. l( [) o8 G) TDevice EUI: AA AA BB BB CC CC DD DD
- ~& Z$ E& |8 G' K1 H' QAPPKEY: 11 11 22 22 33 33 44 44 55 55 66 66 77 77 88 88- \+ F: P; \% C' Q  q& K9 c
APPEUI: 选择刚设置的AA AA BB BB CC CC DD DD
  b* w+ n. |" x/ l4 p. D0 ?9 P  J
29.png
注册完成后如果一切无误,1分钟内应该在应用-->设备的状态页可以出设备最后在线的时间。如是状态一直提示为never seen,那需要检查之前的步骤了。
% N! D$ N# U' @" J
30.png
在设备的实时数据中可以看到入网请求包,上传的温度湿度原始数据包,TTN按照CaynneLPP格式解析出的温度湿度值,还有空的下传包用于确认收到上传包。8 D  Z) n1 Q- v
31.png
至此,已经成功将温湿度传感器设备接入了TTN平台。用户可以通过TTN提供的API访问这些数据,从而开发自己的应用程序。最简单快捷的方法,采用https://cayenne.mydevices.com/提供的图形化开发界面做简单的应用。在TTN的控制台添加Integration, 然后选择mydevices。
4 R, V6 ^' c" t: m9 g+ D
32.png
设置一个ProcessID和用于下传数据的Accesskey。然后保存。/ Q6 `% W) ~( S- ^& Y# m- y
33.png
TTN会将收到的数据转发到mydevices的后台做应用开发。
0 X* a% q. p4 K3 v8 [* Z" w7 Q: E/ O
34.png
https://cayenne.mydevices.com/选择新建项目,选择LoRa。
2 W4 I& l0 {8 A! G; ^
35.png
选择TTN(TheThingsNetwork)。
  O+ @! [+ g) U7 x" n
36.png
TTN支持的设备太多,在左上角搜索Cayenne会比较快。$ `: J( F# m8 L# u5 r! U5 ?/ A
37.png
添加设备,设置名字,输入正确的DevEUI(与之前TSC_WL_EVK参考工程中设置一致)。. |* }8 G8 `" U/ `6 P0 j  |$ K
38.png
见证奇迹的时刻。RSSI,SNR也有,图标都自动给配好了。# D& ^  g4 r/ Z. {: k+ u
39.png
修改设置(至少把英文改成中文吧)后选择新建项目CreateNewProejct。0 m% v# ~* N1 c
40.png
从左边将设备“拖放”到项目里。选择所有数据。1 R) x5 V/ n  v& f. B
41.png
项目菜单中选择Trigger and Alert。9 J* }* O+ l' `1 E3 t5 l
42.png
新建Trigger。设置为温度超过30度,发送短信或者邮件提醒(电话号码注意加上+86)。保存。
" p/ e* q" ]4 `/ P
43.png
将传感器温度提升至30度以上。将会收到邮件或短信提醒。
) l0 @7 U1 Y0 d7 ~
44.png
以上介绍了如何将基于STM32WL设计的LoRaWAN设备接入TTN以及如何在Cayenne平台上做简单的应用开发。这只是一个简单的演示,实际项目需要考虑的细节还有很多。' l4 F: U3 q! X. D# M
45.png

3 Y% q2 S! ^; s( x
7 {: q, K, U; L$ N/ F2 N. v% b
收藏 评论0 发布时间:2020-11-18 10:31

举报

0个回答
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版