如何把基于STM32WL设计的温湿度传感器设备(Device)接入TTN平台

描述

物联网的接入平台很多,提到专门针对LoRaWAN的话,不得不说TTN (https://www.thethingsnetwork.org)了。在全球范围加入TTN社区网关多达16000多(2020/10/30数据)。在国内相对少点,但也是跟国内的大平台有很多合作的。

本文介绍如何把基于STM32WL设计的温湿度传感器设备(Device)接入TTN平台。

1.准备工作

1.1 TSC_WL_EVK  LoRaWAN评估板

TSC_WL_EVK是腾讯云联名(意法半导体、瑞兴恒方、深圳智芯云)设计开发的LoRaWAN评估板,很多小伙伴已经拿到了这款评估板并成功接入了腾讯云物联网开发平台。TSC_WL_EVK可以支持烧录TecentOS Tiny物联网OS,极大的方便了设备的开发。基于TecentOS Tiny的设备并不是会被限制只能接入腾讯的物联网平台。 TSC_WL_EVK和配套的传感器评估板如下图:

进入智芯云店购买  

1.2 LoRaWAN网关

本例采用的RAK7259室内网关,如下图所示。

智芯云也可提供低成本的单通道网关,与TSC_WL_EVK配套使用。(下图中包括了单通道网关,TSC_WL_EVK评估板和温湿度传感器扩展板)

1.3 TTN账号

在https://www.thethingsnetwork.org/注册TTN免费账号(注册过程可参考网站提示)。 如果想试试图形化的应用开发,在https://cayenne.mydevices.com/注册Caynne免费账号。    2. 设备TSC_WL_EVK固件  TSC_WL_EVK评估板对应的参考开发工程文件可以通过下方链接获取   链接:https://pan.baidu.com/s/10BqWjgMZT4_pGWaifh8EyQ 提取码:hgxd   参考开发工程文件包含TSC_WL_EVK开发包和STM32WLxx的KEIL的器件库包,如下图

设备的固件是不用修改就可以接入TTN平台的,前提是设备上的DeviceEUI,APP_EUI(LoRaWAN 1.1spec 改为JOIN_EUI),APP_KEY要和TTN平台设置一致。为确保接入成功,可以在commissioning.h中修改DeviceEUI,APP_EUI,APP_KEY为自己需要的数值。    

如果想要尝试mydevice的图形界面做简单应用的开发,需要在把上传的数据结构做简单的修改。   在app_lorawan.c中修改数据长度为7,如下图所示。

在app_lorawan.c中修改上报的数据格式:温度(4BYTE)和湿度(3BYTE),如下图所示。

修改后编译下载到TSC_WL_EVK。(对于TSC_WL_EVK的烧录可参看之前教程)

3. 网关设置

先把网关连上WIFI,进入网关的管理界面,选择设置LoRa Packet Forwarder设置参数,大部分设置采用缺省就可以了。 关键参数说明: Gateway EUI: 网关的UID,建议用网关的MAC地址中间插入固定数据FFFE。 Protocol: 目前最通用的是Semtech UDP package forward协议。 Server Address: TTN服务器在中国区域选择router.cn.thethings.network。 Region,Frequency: CN470,CH80-87。 注:如果用户希望在LoRa节点的程序中使用自己的频道,那需要在网关设置中选择相应的频段。

4. TTN设置  进入TTN的控制台,选择GATEWAY。

选择Register Gateway把刚设置好的网关注册到TTN。

设置以下参数(要求跟网关设置一致): GateWay EUI: 填写刚才网关中设置的UID Package Forwarder: 选中 Franquency Plan: CN470 Router: ttn-router-asia-se Location: 纬度经度高度(地图显示估计会有问题,不影响设置) Indoor/Outdoor: 选择Indoor 点击:Register Gateway

信息无误的话,会进入以下界面,并可以看到在线提示。

选择Setting可以管理网关。

如果附近有活跃的设备(Device),选Traffic可以看到网关的数据。这些数据是经过加密的。

在控制台选择add application。 Aapplication EUI系统自动生成,之后可以修改。 Handler registration: 默认ttn-handler-asia-se就可以了。

在Application管理界面里可以修改APPLICATION EUI,,修改为AAAABBBBCCCCDDDD,保持跟设备的设置一致。

在应用的数据格式里选择CayenneLPP格式。(如果选用自定义格式的话,需要自行编写JavaScript将原始数据格式转换城JSON格式)。

下一步就是在APPLICATION里注册设备了。这里注册的设备信息也要与之前设备开发中使用的信息一致,如下图。

上面提到,我们在TSC_WL_EVK参考示例工程中的设置如下: Device ID: aaaabbbbccccdddd Device EUI: AA AA BB BB CC CC DD DD APPKEY: 11 11 22 22 33 33 44 44 55 55 66 66 77 77 88 88 APPEUI: 选择刚设置的AA AA BB BB CC CC DD DD

注册完成后如果一切无误,1分钟内应该在应用-->设备的状态页可以出设备最后在线的时间。如是状态一直提示为never seen,那需要检查之前的步骤了。

在设备的实时数据中可以看到入网请求包,上传的温度湿度原始数据包,TTN按照CaynneLPP格式解析出的温度湿度值,还有空的下传包用于确认收到上传包。

至此,已经成功将温湿度传感器设备接入了TTN平台。用户可以通过TTN提供的API访问这些数据,从而开发自己的应用程序。最简单快捷的方法,采用https://cayenne.mydevices.com/提供的图形化开发界面做简单的应用。在TTN的控制台添加Integration, 然后选择mydevices。  

设置一个ProcessID和用于下传数据的Accesskey。然后保存。

TTN会将收到的数据转发到mydevices的后台做应用开发。

在https://cayenne.mydevices.com/选择新建项目,选择LoRa。

选择TTN(TheThingsNetwork)。

TTN支持的设备太多,在左上角搜索Cayenne会比较快。

添加设备,设置名字,输入正确的DevEUI(与之前TSC_WL_EVK参考工程中设置一致)。

见证奇迹的时刻。RSSI,SNR也有,图标都自动给配好了。

修改设置(至少把英文改成中文吧)后选择新建项目CreateNewProejct。

从左边将设备“拖放”到项目里。选择所有数据。

项目菜单中选择Trigger and Alert。

新建Trigger。设置为温度超过30度,发送短信或者邮件提醒(电话号码注意加上+86)。保存。

将传感器温度提升至30度以上。将会收到邮件或短信提醒。

以上介绍了如何将基于STM32WL设计的LoRaWAN设备接入TTN以及如何在Cayenne平台上做简单的应用开发。这只是一个简单的演示,实际项目需要考虑的细节还有很多。      

责任编辑:PSY

原文标题:STM32WL温湿度传感器接入TTN物联网平台

文章出处:【微信公众号:STM32单片机】欢迎添加关注!文章转载请注明出处。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分