2018年早些时候,我在家里的屋顶附近安装了 MatchBox LoRa 室外网关,并跟大家介绍了使用 MatchX Cloud 进行设置有多容易。基本上,只需注册到云端、输入序列号,网关就会根据你的位置自动进行配置。我在东南亚,所以网关配置的就是AS923。
在2018年7月的时候,我终于有时间来使用 RAKwireless RAK811 LoRa 跟踪器板了,同时我也设法让跟踪器位置显示在了地图上。那是我第一次使用 LoRaWAN,我需要学习了解的东西特别多,还要克服过时的软件开发工具、不同的数据格式,以及所有相关组件之间的一些互操作性问题带来的诸多问题。我会在这篇评测中记录我遇到的所有内容,希望它能帮助大家。
RAK811 LoRa GPS 追踪器拆箱
在进入 LoRa 配置之前,先给大家看看我要使用的 RAK811 节点。如下图所示:
![RAK811 LoRa GPS 追踪器开箱](https://cnx-software.cn/wp-content/uploads/2021/11/RAK811-LoRa-GPS-%E8%BF%BD%E8%B8%AA%E5%99%A8%E5%BC%80%E7%AE%B1-720x494.jpg)
一个带有“IoT Made Easy”的包装盒,里面包含了指向文档和软件的链接。
![RAK811 LoRa GPS 追踪器套件](https://cnx-software.cn/wp-content/uploads/2021/11/RAK811-LoRa-GPS-%E8%BF%BD%E8%B8%AA%E5%99%A8%E5%A5%97%E4%BB%B6-720x480.jpg)
打开盒子后,我们会看到电路板、带有长电缆的 GPS 天线、LoRa 天线、micro USB 线、电池线,以及一个带有一些跳线帽和杜邦线的塑料袋。
![RAK811 LoRa GPS追踪器板](https://cnx-software.cn/wp-content/uploads/2021/11/RAK811-LoRa-GPS%E8%BF%BD%E8%B8%AA%E5%99%A8%E6%9D%BF-720x496.jpg)
追踪器板的一侧带有 RAK811 LoRa 模块、用于电池的 2 针接头和连接 I/O 的排针。右上角的跳线用于选择Boot模式,稍后我都会详细介绍。
![u-blox MAX-7Q GPS 模块](https://cnx-software.cn/wp-content/uploads/2021/11/u-blox-MAX-7Q-GPS-%E6%A8%A1%E5%9D%97-720x428.jpg)
另一面包括 u-blox MAX-7Q GPS 模块、一个micro USB 接口和Reset按钮。还有两个用于连接天线的 SMA 连接器。
RAK811 跟踪器的硬件设置
由于海关规定,该套件不包含任何电池,所以我在当地购买了 18650 电池和电池座。
![18650 电池和电池座](https://cnx-software.cn/wp-content/uploads/2021/11/18650-%E7%94%B5%E6%B1%A0%E5%92%8C%E7%94%B5%E6%B1%A0%E5%BA%A7.jpg)
我将其焊接到了提供的电线和连接器上,然后再将其插入电路板。
![RAK811 LoRa GPS追踪器板的接线图](https://cnx-software.cn/wp-content/uploads/2021/11/RAK811-LoRa-GPS%E8%BF%BD%E8%B8%AA%E5%99%A8%E6%9D%BF%E7%9A%84%E6%8E%A5%E7%BA%BF%E5%9B%BE-720x481.jpg)
这个时候,还需要连接到 GPS 和 LoRa 天线。我花了一些时间才找到。最后,我终于在RAK的 Aliexpress 页面中找到了哪个 SMA 连接器是用于哪个天线的。
接着为了解更多信息,我在端口和我的电脑之间连接微型 USB 转 USB 电缆,并配置了电路板。
RAK811 LoRa 跟踪器信息、开发工具和固件
我一般使用的是 Ubuntu 16.04,以下就是我在计算机中插入设备时的内核输出:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
7521.899484] usb 1-2.4.3: new full-speed USB device number 5 using ehci-pci [ 7522.029424] usb 1-2.4.3: New USB device found, idVendor=10c4, idProduct=ea60 [ 7522.029427] usb 1-2.4.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 7522.029429] usb 1-2.4.3: Product: CP2102 USB to UART Bridge Controller [ 7522.029431] usb 1-2.4.3: Manufacturer: Silicon Labs [ 7522.029433] usb 1-2.4.3: SerialNumber: 0001 [ 7523.088561] usbcore: registered new interface driver usbserial [ 7523.088613] usbcore: registered new interface driver usbserial_generic [ 7523.088659] usbserial: USB Serial support registered for generic [ 7523.091652] usbcore: registered new interface driver cp210x [ 7523.091687] usbserial: USB Serial support registered for cp210x [ 7523.091747] cp210x 1-2.4.3:1.0: cp210x converter detected [ 7523.093893] usb 1-2.4.3: cp210x converter now attached to ttyUSB0 |
这是一个典型的串行设备。我们可以使用 minicom 或其他具有 115200 bps 8N1 配置的串行终端程序连接到 /dev/ttyUSB0。然后按下复位按钮或用跳线短接复位和 GND 引脚,然后将其移除,再重新启动电路板:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
RAK811 BreakBoard soft version: 1.0.2 Selected LoraWAN 1.0.2 Region: EU868 ABP: Dev_EUI: 60 C5 A8 FF FE 00 00 10 DevAddr: 004B041B NwkSKey: 2B 7E 15 16 28 AE D2 A6 AB F7 15 88 09 CF 4F 3C AppSKey: 2B 7E 15 16 28 AE D2 A6 AB F7 15 88 09 CF 4F 3C [Debug]: latitude: 0.000000, longitude: 0.000000 , altitudeGps: -1 Move Detected INT1 src:0x42 Move Detected INT1 src:0x41 Move Detected INT1 src:0x42 Move Detected INT1 src:0x50 Move Detected INT1 src:0x50 [Debug]: tempr: 34 Bat: 5500mv [Debug]: ACC X:FF00 Y:FF00 Z:0000 Move Detected INT1 src:0x60 [Debug]: latitude: 0.000000, longitude: 0.000000 , altitudeGps: -1 Move Detected INT1 src:0x44 Move Detected INT1 src:0x60 Move Detected INT1 src:0x50 Move Detected INT1 src:0x50 |
EU868 并不完全符合我的预期,因为有人告诉我该板是用来配置 AS923的。但事实证明这不是什么大问题,用户应该根据自己的情况相应地配置跟踪器。
我预装的固件有点旧(1.0.2),而Github 上的最新版本是 v1.1.3,这个版本增加了对 AT 命令的支持。他们的文档中也解释了如何使用 CooCox CoIDE 或 Arm Keil 构建固件,这两者都仅适用于 Windows。我看到有的人在Linux下用Makefile搭建成功了,但提交了pull request后,并没有通过,现在和其他代码冲突了。我为了让事情更简单一些,我就使用了 Windows 7 启动 VirtualBox 会话。
第一步是下载CooCox CoIDE,一个Arm GNU嵌入式工具链,从github获取代码然后打开项目,按照文档修改AS923,在CoIDE中构建。看起来挺容易的,但我下载CooCox CoIDE 就遇到了障碍。之后我找到了一个旧版本,然后构建就失败了。最后,RAK 给我提供了更新版本的 CooCox CoIDE下载链接,我设法构建了固件。其实我是在这个评测快结束的时候才找到这个解决方案的,所以我刷了二进制版本:rak811_tracker_classA.bin。
你们有三个选项来通过 STLink J-Link 调试器,从 Keil 或 CoIDE 刷新固件,或者使用 STMicro Flash Loader Demonstrator 通过 USB。后者似乎更容易,因为它不需要额外的硬件。我尝试从 RAKwireless 的文档页面的链接下载了,但速度有点缓慢,因此你们可以直接从 STMicro 网站下载。
![切换Boot模式](https://cnx-software.cn/wp-content/uploads/2021/11/%E5%88%87%E6%8D%A2Boot%E6%A8%A1%E5%BC%8F.jpg)
首先我们需要将跳线短接 BOOT0 和 VCC 以进入如上图所示的串行启动模式,下面是 RAK811 跟踪器引脚图。
![RAK811 跟踪器引脚图](https://cnx-software.cn/wp-content/uploads/2021/11/RAK811-%E8%B7%9F%E8%B8%AA%E5%99%A8%E5%BC%95%E8%84%9A%E5%9B%BE-596x720.jpg)
按Reset按钮重新启动电路板,我们现在可以使用 Flash Loader Demonstrator。
![Flash Loader Demonstrator连接RAK811追踪器](https://cnx-software.cn/wp-content/uploads/2021/11/Flash-Loader-Demonstrator%E8%BF%9E%E6%8E%A5RAK811%E8%BF%BD%E8%B8%AA%E5%99%A8.jpg)
首先选择端口名称,在我的情况下为 COM9,然后单击下一步,这是你们应该会被告知检测到板。如果没有,可能是因为忘记正确放置跳线或忘记重新启动电路板。
再次单击下一步,然后从列表中选择 STM32L1_Cat2-128K。
![选择STM32L1_Cat2-128K](https://cnx-software.cn/wp-content/uploads/2021/11/%E9%80%89%E6%8B%A9STM32L1_Cat2-128K.jpg)
再次按下一步按钮,选择我们刚刚下载的固件文件“rak811_tracker_classA.bin”。
![选择固件](https://cnx-software.cn/wp-content/uploads/2021/11/%E9%80%89%E6%8B%A9%E5%9B%BA%E4%BB%B6.jpg)
保持所有其他设置不变,然后单击“下一步”按钮开始向板子下载数据,并烧录固件。
![开始下载](https://cnx-software.cn/wp-content/uploads/2021/11/%E5%BC%80%E5%A7%8B%E4%B8%8B%E8%BD%BD.jpg)
这应该只需要几秒钟。一切完成后,就会收到“下载操作成功完成”的消息。
![下载完成](https://cnx-software.cn/wp-content/uploads/2021/11/%E4%B8%8B%E8%BD%BD%E5%AE%8C%E6%88%90.jpg)
现在将 BOOT0 和 GND 短路的跳线移回原位,连接串行终端,然后按下Reset按钮。
使用 OTAA 或 ABP 加入方法配置 RAK811 Tracker
如下所示,这是终端的输出:
1 |
RAK811 BreakBoard soft version: 1.1.3 |
没有什么其他的。因为我们应该输入 AT 命令进行配置,就像 Github 中的简要说明那样,如下:
AT命令列表:
at+region=EU868/US915/AS923/AU915/IN865/KR920 //设置设备区域
at+dev_eui=xxxxxxxxxxxxxxxx // 设置设备 dev_eui
at+app_eui=xxxxxxxxxxxxxxxx // 设置设备 app_eui
at+app_key=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx // 设置设备 app_key
at+dev_addr=xxxxxxxx // 设置设备 dev_addr
at+nwks_key=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx // 设置设备 nwks_key
at+apps_key=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx // 设置设备 apps_key
at+join_mode=otaa/abp // 设置设备加入otaa或abp
在我们进一步之前,我们应该先了解这两种方法:
- 无线激活 (OTAA) 是首选且最安全的连接方式。设备与网络执行加入过程,在此期间分配动态 DevAddr 并与设备协商安全密钥
- 个性化激活 (ABP) 对 DevAddr 参数以及设备中的安全密钥进行硬编码。这意味着通过个性化 (ABP) 激活设备。这种策略可能看起来更简单,因为您跳过了加入这个步骤,但它有一些与安全相关的缺点
- DevEUI – 64 位终端设备标识符,EUI-64(唯一)
- AppEUI – 64 位应用程序标识符,EUI-64(唯一)
- AppKey– 128 位应用程序密钥
OTAA 方式入网后就会自动生成 DevAddr、NwksKey 和 AppsKey(这里注意多一个“s”)。ABP 模式则需要手动指定:
- DevAddr – 32 位设备地址(非唯一)
- NwkSKey – 128 位网络会话密钥,用于节点和网络之间的交互
- AppSKey – 128 位应用程序会话密钥,用于有效载荷的加密和解密
OTAA 似乎是最好的方法,所以还是按照个方法来试试。
1 2 3 4 5 |
at+dev_eui=60c5a8fffe000010 at+app_eui=70b3d57ed0007dfa at+app_key=b429c9c903d8442c5bf684fb5ef00219 at+region=AS923 at+join_mode=otaa |
前三行定义了上面讨论的参数,后两行设置了Region和入网模式。看起来是可以组合任何数字的,只要它们的长度是预先指定的 64 位或 128 位。我最初在 minicom 中粘贴 AT 命令时遇到了麻烦,我被告知必须一次粘贴一行,末尾带有“/r/n”(新行)。我尝试了各种终端,在设置->终端中更改设置从而发送(和接收)。接着CR+LF 行换行后,Tera Term就可以正常使用了。
![Tera Term终端工具配置](https://cnx-software.cn/wp-content/uploads/2021/11/Tera-Term%E7%BB%88%E7%AB%AF%E5%B7%A5%E5%85%B7%E9%85%8D%E7%BD%AE.jpg)
无论你们使用哪个终端,诀窍就是在每个命令后添加一个新行。
at+join_mode 命令必须是最后一个,因为一旦我发送该命令,其他命令就会被忽略了。
1 2 3 4 5 6 7 8 9 10 11 |
at+join_mode=otaa OK OTAA: Dev_EUI: 60 C5 A8 FF FE 00 00 10 AppEui: 70 B3 D5 7E D0 00 7D FA AppKey: B4 29 C9 C9 03 D8 44 2C 5B F6 84 FB 5E F0 02 19 |
将 LoRa应用程序和设备添加到 MatchX Cloud
我们现在已经用必要的参数配置了 RAK811 节点,所以我们需要去MatchX Cloud创建一个应用程序并添加一个具有相同参数的新设备。
![MatchX Cloud上创建gps-tracking应用](https://cnx-software.cn/wp-content/uploads/2021/11/MatchX-Cloud%E4%B8%8A%E5%88%9B%E5%BB%BAgps-tracking%E5%BA%94%E7%94%A8.jpg)
我创建了gps-tracking 应用程序来跟踪自行车位置,至少我的计划是这样的。准备好新应用程序后,就可以单击“创建节点”并添加一个新设备,如下所示,其中包含DevEUI、A ppEUI和AppKey参数。
![MatchX Cloud添加新设备](https://cnx-software.cn/wp-content/uploads/2021/11/MatchX-Cloud%E6%B7%BB%E5%8A%A0%E6%96%B0%E8%AE%BE%E5%A4%87-720x410.jpg)
因为我们要使用 OTAA 加入模式,所以不要选 ABP,然后单击“提交”按钮。
第一个 LoRaWAN 连接
现在我们可以按下 RAK811 跟踪器板上的Reset按钮,看看串行控制台会发生什么:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
RAK811 BreakBoard soft version: 1.1.3 Selected LoraWAN 1.0.2 Region: AS923 OTAA: Dev_EUI: 60 C5 A8 FF FE 00 00 10 AppEui: 70 B3 D5 7E D0 00 7D FA AppKey: B4 29 C9 C9 03 D8 44 2C 5B F6 84 FB 5E F0 02 19 OTAA Join Start... Move Detected INT1 src:0x42 Move Detected INT1 src:0x50 Move Detected INT1 src:0x50 Move Detected INT1 src:0x50 OTAA Join Success [Debug]: latitude: 0.000000, longitude: 0.000000 , altitudeGps: -1 Move Detected INT1 src:0x50 [Debug]: tempr: 33 Bat: 5496mv [Debug]: ACC X:0000 Y:0000 Z:FF00 [Debug]: latitude: 0.000000, longitude: 0.000000 , altitudeGps: -1 [Debug]: tempr: 33 Bat: 5500mv Move Detected INT1 src:0x50 Move Detected INT1 src:0x44 |
很好,设备可以加入网络了,我们也获取到了各种信息。比如:温度、电池电量和加速度计数据。我们需要等待一段时间才能获得 GPS 坐标。
好的,我们看看在 MatchX Cloud 中得到了什么。
![MatchX Cloud收到的设备数据](https://cnx-software.cn/wp-content/uploads/2021/11/MatchX-Cloud%E6%94%B6%E5%88%B0%E7%9A%84%E8%AE%BE%E5%A4%87%E6%95%B0%E6%8D%AE-720x397.jpg)
太棒了!我们每秒都会收到一些数据包,这是 RAK811 中固件默认应该执行的操作。理论上来说,一旦电路板获得 GPS 数据,我肯定能够在 MatchX Cloud 的地图中看到 RAK811 节点位置。但现在很奇怪,我没有看到这些位置。
在进一步研究了包括使用 The Things Network 设置 RAK811 跟踪器节点的文档后,我发现数据是以Cayenne Low Power Payload (LPP) 格式发送的,网关不会解码这种类型的数据,所以我问了 MatchX是否有可能改变它,并得到以下答案:
谈到数据格式—我们在类型-长度-值 (TLV) 格式中使用的是不同的数据编码。
目前我们的云映射器只能使用这种格式。我们正在对我们的云进行重大更新,想要让更多的数据解析器出现在我们的清单上,但这仍然需要我们一些时间。
将 MatchX MatchBox LoRa 网关连接到物联网
好消息是 Cayenne LPP 可能很快就会得到支持,但我很想在几天内完成我的评测,而不是几个月。因为RAKwireless 提供了使用 The Things Network (TTN) 设置 RAK811的说明,我就决定重新配置网关并连接到 TTN 上试试。
![在MatchX Cloud修改网关连接到TTN](https://cnx-software.cn/wp-content/uploads/2021/11/%E5%9C%A8MatchX-Cloud%E4%BF%AE%E6%94%B9%E7%BD%91%E5%85%B3%E8%BF%9E%E6%8E%A5%E5%88%B0TTN-720x397.jpg)
我们只需要转到MatchX Cloud,特别是网关详细信息页面,然后单击Edit Config按钮更改网关部分,然后连接到 TTN(我这里的情况是 AS1):
1 2 3 4 5 6 7 8 9 10 11 |
"gateway_conf": { /* change with default server address/ports, or overwrite in local_conf.json */ "server_address": "router.as1.thethings.network", "serv_port_up": 1700, "serv_port_down": 1700, "servers": [ { "server_address": "router.as1.thethings.network", "serv_port_up": 1700, "serv_port_down": 1700, "serv_enabled": true } ], |
现在点击Upload Config按钮,网关配置就完成了。这时你需要注意网关详细信息窗口中的 MAC,因为它也是稍后将在 TTN 中询问的网关 EUI。
设置物联网
现在让我们去The Things Network 网站,注册一个免费账户,然后去TTN 控制台。点击网关,注册网关。
![在TTN上注册网关](https://cnx-software.cn/wp-content/uploads/2021/11/%E5%9C%A8TTN%E4%B8%8A%E6%B3%A8%E5%86%8C%E7%BD%91%E5%85%B3-720x663.jpg)
首先勾选“I’m using the legacy packer forwarder”,然后将网关的 MAC 粘贴到“Gateway EUI”字段中、提供描述、选择频率计划(此处为亚洲 920-923 MHz),然后选择适合你的路由器地区。
![指定网关位置](https://cnx-software.cn/wp-content/uploads/2021/11/%E6%8C%87%E5%AE%9A%E7%BD%91%E5%85%B3%E4%BD%8D%E7%BD%AE-720x675.jpg)
你也可以指定网关位置,但MatchBox 网关是不需要的,因为它支持GPS,最后我选择了天线放置(室外或室内),然后单击注册网关。
现在返回 TTN 控制台主页,单击Application,然后添加 application。
![TTN上添加应用](https://cnx-software.cn/wp-content/uploads/2021/11/TTN%E4%B8%8A%E6%B7%BB%E5%8A%A0%E5%BA%94%E7%94%A8-720x526.jpg)
在单击Add application之前,要填写你选择应用程序的 ID、描述和Handler registration。
![应用概览页面](https://cnx-software.cn/wp-content/uploads/2021/11/%E5%BA%94%E7%94%A8%E6%A6%82%E8%A7%88%E9%A1%B5%E9%9D%A2-720x526.jpg)
你应该会被重定向到应用程序的概览页面,这时你就可以单击顶部菜单中的设备,然后注册设备了。
![TTN上注册设备](https://cnx-software.cn/wp-content/uploads/2021/11/TTN%E4%B8%8A%E6%B3%A8%E5%86%8C%E8%AE%BE%E5%A4%87-720x544.jpg)
给它一个设备 ID,以及我们在 RAK811 节点中配置的 Dev EUI,然后点击Register。现在转到 Device Overview 页面,这时你会看到 DevEUI、AppEUI 和 AppKey 的值。
![设备概览页面](https://cnx-software.cn/wp-content/uploads/2021/11/%E8%AE%BE%E5%A4%87%E6%A6%82%E8%A7%88%E9%A1%B5%E9%9D%A2-720x675.jpg)
为物联网配置 RAK811
现在,我们可以回到 RAK811 跟踪器上的终端控制台来重新配置我们的新值了。
1 2 3 4 5 |
at+dev_eui=60c5a8fffe000010 at+app_eui=70B3D57ED0010DE0 at+app_key=3CBFDC8BAE52EA4217E7B3F468DE14B1 at+region=AS923 at+join_mode=otaa |
我发现到了这一步必须要擦除数据,并使用 Flash Loader Demonstrator 重新刷新固件,然后才能使用 AT 命令更新值:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
RAK811 BreakBoard soft version: 1.1.3 Selected LoraWAN 1.0.2 Region: AS923 OTAA: Dev_EUI: 60 C5 A8 FF FE 00 00 10 AppEui: 70 B3 D5 7E D0 01 0D E0 AppKey: 3C BF DC 8B AE 52 EA 42 17 E7 B3 F4 68 DE 14 B1 OTAA Join Start... Move Detected INT1 src:0x42 Move Detected INT1 src:0x50 Move Detected INT1 src:0x50 Move Detected INT1 src:0x50 OTAA Join Success [Debug]: latitude: 0.000000, longitude: 0.000000 , altitudeGps: -1 |
看起来不错,我们只需要等待 GPS 搜到卫星。同时,我们可以使用我们刚刚配置设备的数据选项卡查看我们是否在 TTN 界面中收到了来自设备的加入请求。
![TTN上收到的设备数据](https://cnx-software.cn/wp-content/uploads/2021/11/TTN%E4%B8%8A%E6%94%B6%E5%88%B0%E7%9A%84%E8%AE%BE%E5%A4%87%E6%95%B0%E6%8D%AE-720x586.jpg)
很好这一步成功完成了!我们现在需要在myDevices.com注册设备,因为该服务将处理 Cayenne LPP 数据解码,并以漂亮的方式显示数据。
注册免费服务后,在仪表板中选择 LoRa。
![MyDevices上注册设备—选择 LoRa](https://cnx-software.cn/wp-content/uploads/2021/11/MyDevices%E4%B8%8A%E6%B3%A8%E5%86%8C%E8%AE%BE%E5%A4%87%E2%80%94%E9%80%89%E6%8B%A9-LoRa-720x580.jpg)
然后是界面左侧的 The Things Network。
![MyDevices上注册设备—选择The Things Network](https://cnx-software.cn/wp-content/uploads/2021/11/MyDevices%E4%B8%8A%E6%B3%A8%E5%86%8C%E8%AE%BE%E5%A4%87%E2%80%94%E9%80%89%E6%8B%A9The-Things-Network-720x580.jpg)
现在向下滚动以选择 Cayenne LPP。
![MyDevices上注册设备—选择 Cayenne LPP](https://cnx-software.cn/wp-content/uploads/2021/11/MyDevices%E4%B8%8A%E6%B3%A8%E5%86%8C%E8%AE%BE%E5%A4%87%E2%80%94%E9%80%89%E6%8B%A9-Cayenne-LPP-720x580.jpg)
并输入名称,还有你的 DevUI,然后单击“添加设备”。
![MyDevices上注册设备—输入设备DevEUI](https://cnx-software.cn/wp-content/uploads/2021/11/MyDevices%E4%B8%8A%E6%B3%A8%E5%86%8C%E8%AE%BE%E5%A4%87%E2%80%94%E8%BE%93%E5%85%A5%E8%AE%BE%E5%A4%87DevEUI-720x580.jpg)
哦,天哪!DevEUI 已经被占用了。所以我尝试了其他一些,直到我发现“60c5a8fffe002011”没有被注册。我添加了那个设备,但我不得不重复 The Things Networks 和 RAK811 串行接口中的步骤,用我的新 DevEUI 重新配置所有的东西。
在 TTN 中配置 Cayenne 集成
我们还没有完成,因为我们需要回到 TTN,点击设备仪表板中的集成。
![TTN设备界面上的集成功能](https://cnx-software.cn/wp-content/uploads/2021/11/TTN%E8%AE%BE%E5%A4%87%E7%95%8C%E9%9D%A2%E4%B8%8A%E7%9A%84%E9%9B%86%E6%88%90%E5%8A%9F%E8%83%BD-720x203.jpg)
选择Cayenne图标,输入选择的进程 ID,然后在访问密钥字段中选择默认密钥。
![选择集成Cayenne服务](https://cnx-software.cn/wp-content/uploads/2021/11/%E9%80%89%E6%8B%A9%E9%9B%86%E6%88%90Cayenne%E6%9C%8D%E5%8A%A1-720x586.jpg)
单击添加集成按钮,转到有效负载格式,然后选择Cayenne LPP。
![选择数据格式为Cayenne LPP](https://cnx-software.cn/wp-content/uploads/2021/11/%E9%80%89%E6%8B%A9%E6%95%B0%E6%8D%AE%E6%A0%BC%E5%BC%8F%E4%B8%BACayenne-LPP-720x582.jpg)
单击“保存”,几分钟后,我们应该就会在 Cayenne 中看到温度、加速度计和 GPS 数据的良好表示。
更多问题和解决方法
![Cayenne上设备的dashboard](https://cnx-software.cn/wp-content/uploads/2021/11/Cayenne%E4%B8%8A%E8%AE%BE%E5%A4%87%E7%9A%84dashboard-720x244.jpg)
但是几个小时后,我还是看到一个空的仪表板
![TTN上设备数据和设备上的配置信息](https://cnx-software.cn/wp-content/uploads/2021/11/TTN%E4%B8%8A%E8%AE%BE%E5%A4%87%E6%95%B0%E6%8D%AE%E5%92%8C%E8%AE%BE%E5%A4%87%E4%B8%8A%E7%9A%84%E9%85%8D%E7%BD%AE%E4%BF%A1%E6%81%AF-720x589.jpg)
我可以在 TTN 中看到一些数据包,但串行控制台显示 OTAA Join 出现了一些问题。所以看起来RAK811 应该是可以直接向网关发送加入请求的,然后网关将其转发给 The Things Netwokrs,但不知什么原因它没有得到反馈。我尝试将 MatchX Gateway global_conf.json 更改为AS1 (Asia 1 – 920 – 923 MHz)提供的网关,但仍然没有成功。
最后,RAKwireless 官方的人通过 TeamViewer 会话帮助了我,并找到了“解决方案”,就是将激活方法从 OTAA 更改为了 ABP 再加入 TTN。
![TTN上设备状态页面](https://cnx-software.cn/wp-content/uploads/2021/11/TTN%E4%B8%8A%E8%AE%BE%E5%A4%87%E7%8A%B6%E6%80%81%E9%A1%B5%E9%9D%A2-720x676.jpg)
并将相关的 AT 命令粘贴到 RAK811 串口控制台中。
1 2 3 4 5 6 7 |
at+dev_eui=60C5A8FFFE002011 at+app_eui=70B3D57ED0010DE0 at+dev_addr=26041FFF at+nwks_key=A910C26D4AD9434423CE7FD436174EB2 at+apps_key=1EF109DD9B3FB5AFD6C0B56665872B14 at+region=AS923 at+join_mode=abp |
重置电路板,几秒钟后我开始在 Cayenne LPP 仪表板中获取了 RSSI 和 SNR 数据,几分钟后 GPS 数据也恢复了,我可以在 mydevice.com 中看到 RAK8711 LoRa 跟踪器的位置。
![RAK8711 LoRa 跟踪器位置和其他数据显示](https://cnx-software.cn/wp-content/uploads/2021/11/RAK8711-LoRa-%E8%B7%9F%E8%B8%AA%E5%99%A8%E4%BD%8D%E7%BD%AE%E5%92%8C%E5%85%B6%E4%BB%96%E6%95%B0%E6%8D%AE%E6%98%BE%E7%A4%BA-720x455.jpg)
这一次体验还是存在挺多问题的,但令人高兴的是最后还是成功了。RAKwireless 方面认为 OTAA 的问题可能是时间问题。MatchX 方面则认为这可能是幂表的问题,具体如下所示:
这个潜在的问题可能与幂表有关。当服务器想要向端节点发送消息时,它指定请求的功率 是 RF 级别。网关采用此功率水平并减去天线增益(在 global_config 中指定,在我们的示例中为 2.5db,但删除了 0.5,仅减去了 2db)从而去补偿使用的天线。然后它在其 LUT 功率表中查找具有此特定功率的条目以配置其内部放大器。如果它无法找到所需的功率电平,则该消息就会被丢弃。我们的 global_config 配置会符合LoRa 区域参数 1.0,我们将在不久的将来更新到版本 1.1。不过,TTN 服务器的配置可能不同。我们还没有为这个地区尝试过 TTN 服务器。
不过,我目前还没有详细调查这部分。我想先完成这篇评测,因为我有一些个人原因需要移除掉网关。
跑步、开车和四处走走
一切准备就绪后就可以正常工作了,我想在家外测试节点然后去查看一下我得到的范围。我的第一个测试是 3 公里的夜跑。我先用皮带将所有东西固定到位。
但我很快发现 RAK811 会自动关闭。歧视使用电池运行有时是会发生这种情况,这个问题很偶然。我不确定这是不是原本就存在的问题,因为我在家里进行的早期测试时摔倒了一下,这可能损坏了电路板和引脚。
捣鼓了很久,那天晚上我都没有得到任何数据。第二天早上,我尝试把车开走试试。我先开了几十米,在失去 WiFi 连接之前检查跟踪器的位置确实更新了,这确实是有效的。
![RAK811 GPS跟踪器轨迹图](https://cnx-software.cn/wp-content/uploads/2021/11/RAK811-GPS%E8%B7%9F%E8%B8%AA%E5%99%A8%E8%BD%A8%E8%BF%B9%E5%9B%BE.jpg)
好了,位置终于以合理的精度(4 到 5 米)正确更新了。然后我慢慢开车到另一个有 WiFi 、视线距离大约 500 米的位置,并通过连接的方式检查该位置是否每分钟更新一次,而 myDevices 仪表板中没有任何内容。因此,我将 RAK811 连接到我的笔记本电脑,并检查了一下它是否在串行控制台中获得了 GPS 数据,结果确实是有的。我开车往回走,回到家就无法进一步更新了。即使在 TTN 仪表板中收到了一些消息,myDevices 仪表板也不会再更新了。
不久之后,我又直线步行到500米以外的一个当地市场,一直在TTN监控数据包。
![TTN上的位置数据](https://cnx-software.cn/wp-content/uploads/2021/11/TTN%E4%B8%8A%E7%9A%84%E4%BD%8D%E7%BD%AE%E6%95%B0%E6%8D%AE-720x508.jpg)
我记得我是在 10:20 左右离开家的,收据的数据显示,我是在 10:32 到了一家室内商店。其实,在理想的情况下,我应该每分钟收到一条消息才对,但实际是有 6 分钟的时间 TTN 根本没有收到任何消息(10:25 到 10:31)。回来的路上没有出现同样的丢包,只丢了两条消息。不过遗憾的是,myDevices 仪表板中仍然没有任何内容。
还有一个很有趣的事,我在写这篇评测的时候,我仍然可以在 myDevices 中看到26号的数据,一直更新到了 17:33。
![myDevices上的位置数据](https://cnx-software.cn/wp-content/uploads/2021/11/myDevices%E4%B8%8A%E7%9A%84%E4%BD%8D%E7%BD%AE%E6%95%B0%E6%8D%AE-720x178.jpg)
现在的时间是 20:00。RAK811板子还在运行,我没有碰过它,但它已经2个半小时没有收到新数据了。当地人告诉我这里有鬼魂,所以这一定是没有收到新数据的原因吧。好吧,开个玩笑。我怀疑这就是使用OTAA时会存在的问题,或者在使用ABP的时候偶尔也出现。所以大概率就是时间问题,或者是特定频率的问题。
我对 LoRa / LoRaWAN 的第一次体验并非完全一帆风顺,以后还有很多东西要学。例如,我还没有来得及考虑功耗和电池寿命的问题,因为只是让它正常运行就花了我很多时间。但至少这是一次很好的学习经历,因为我知道如何可以更好地让它们更好的工作,以及从硬件到云的每个部分是如何集成在一起的。
如果你们有兴趣购买我测评过的这个硬件,你们可以在MatchX 网站上购买到 MatchBox LoRa 网关,价格是 350 欧元,也可以在 全球速卖通上购买 RAK811 LoRa 跟踪器,价格大约是 50 美元。
![](https://cnx-software.cn/wp-content/uploads/2021/05/微信图片_20210525120337.jpg)
文章翻译者:Taylor Lee,瑞科慧联(RAK)高级嵌入式开发工程师,有丰富的物联网和开源软硬件经验,熟悉行业主流软硬件框架,对行业发展动向有着敏锐的感知力和捕捉能力。