Skip to main content

基于Wio Terminal的带有AIoTs GPS的LoRa节点

介绍

AIoTs GPS和状态测试器基于Wio Terminal底盘-LoRa-E5和GNSS开发。与传统物联网相比,它更加简洁和智能。传统物联网基本上只是接收一些数据,然后执行命令操作,而不管数据是否正确。而AIoTs使用神经网络算法能够过滤无用数据以获得正确的数据。

在这个项目中,将使用内置的3轴加速度计传感器和神经网络算法来构建智能识别系统。基于Wio Terminal的运动,它可以实时显示其状态。通常,这里的示例项目包括三种训练状态:停止(WT空闲状态)、转动(翻转WT设备)和挥动(拿着WT挥手)。建议您访问Edge Impulse网站添加更多训练动作。

特性

  • LoRa设备可以在第一页显示DevEui、APPEui和Appkey。
  • 神经网络算法校正数据
  • 高精度检测Wio Terminal状态
  • 显示经度、纬度和卫星数量。
  • 显示设备和TTN连接状态。

入门指南

硬件

所需硬件

在此演示中,您需要以下列出的设备:

硬件连接

通过Type-C线缆连接到计算机。

使用Wio Terminal进行机器学习

这里我们将向您展示如何使用Wio Terminal训练机器学习模型并使用它。该项目基于Arduino平台,这意味着需要Arduino IDE和各种Arduino库。如果这是您第一次使用Wio terminal,我们推荐一个快速Wio Terminal入门指南

下载并安装到您的Arduino库中:

Edge Impulse训练入门

首先,您需要拥有自己的Edge Impulse账户,然后创建一个项目。

  • 步骤2. 创建一个新项目。

网站与Wio Terminal连接

Wio Terminal入门指南所建议:

双击Wio Terminal(已连接到您的PC)左下角,您将看到一个驱动器(如下面的Arduino (F:))在计算机上弹出。然后您可以将wio-terminal-ei-1.4.0.uf2固件拖到驱动器中。当您看到驱动器消失时,意味着固件已被编程。现在您可以访问网站连接Wio Terminal。

  • 步骤4. 固件设置完成后,点击connect using WebUSB将Wio Terminal连接到网站。

DeviceLabelSensor如下所示出现时,意味着连接完成,可以激活数据采集。

数据采集

现在您可以在Edge Impulse上收集数据。

  • 步骤5. 输入LabelSample length (ms.)并点击Start sampling

    • Label表示您想要分类的类别。
    • Sample length表示采样期间的时间。

您可能还想选择不同的SensorFrequency来看看会发生什么。

强烈建议采样数据超过10次。

机器学习模型生成

收集数据后,您可以使用它来训练您的ML模型。

  • 步骤6. 采样数据后,点击create impulse来处理数据。

这里我们选择的处理块和学习块与网站推荐的相同。另一方面,我们强烈建议您选择其他选项来看看会有什么不同。一旦设置了块,点击Save Impulse来存储脉冲。

  • 步骤7. 移动到Spectral features页面,然后在底部点击Save parameters,它将自动移动到Generate feature侧。

这里是Generate feature侧,它可以帮助将您的数据转换为机器学习中需要的特征。

点击Generate feature,结果应该显示在右侧:

  • 步骤 8. 移动到 NN Classifier 页面,使用您的特征训练机器学习模型。在页面底部,点击 Start training

训练输出在页面右侧,当您看到输出时,意味着模型已经生成。

机器学习模型部署

现在您可以将机器学习模型部署到您的 Wio Terminal。

  • 步骤 9. 选择并点击左侧的 Deployment 列。

然后选择 Arduino Library,在底部选择 build 来创建您的 Arduino 中需要的库。它将自动下载一个包含第三方库的 zip 文件。

所需库的名称与项目名称相关,这意味着您在步骤 2中为项目写的任何名称都将在这里显示。这可以帮助您找到所需的正确文件。

  • 步骤 10. 从 Github 下载代码文件,并用 Arduino IDE 打开它。像上面一样更改您自己的第三方库,然后运行代码。

note

由于全球区域之间的差异,文件中的代码应该稍作更改:

如果您连接了'美国服务器',那么示例代码没有问题,但其他地方应该按如下所示设置('CN_470_510' 意味着在中国,值应该在 470 到 510 的范围内):

最终,结果应该是这样的:

note

如果您想了解更多关于 Edge Impulse 的信息,或者仍有不清楚的地方,请访问 Wio Terminal Edge Impulse Getting Started 获取更多信息。

通过 LoRa 在 TheThingsNetwork 上显示数据

在我们训练了机器学习模型并收集了数据之后,如果我们能将数据传输到云端会更有趣。在这个项目中,我们将能够通过 LoRa 在 TheThingsNetwork 平台(云端)上显示数据。

所需硬件

  • 网关

您需要首先设置一个网关,允许您连接 Wio Terminal 和 TTN(TheThingsNetwork) 云。

TheThingsNetwork 显示数据入门

步骤 1 登录 TTN 网站 并创建您的账户,然后点击 go to gateways 来设置设备。

步骤 2 在网关页面点击 Add gateway

添加您自己的网关信息:

  • Owner(您的姓名)
  • Gateway ID(取决于网关)
  • Gateway EUI(取决于网关,有时与网关 ID 相同)
  • Gateway name(您的选择)

LoRaWAN 选项中的 Frequence plan 取决于您居住的地方。在 Add gateway 之前,您可能会找到一个包含一些集群的页面。Frequence Plan 和集群的选择应该相同,这意味着您应该选择离您所在地最近的区域。

步骤 3 一旦网关设置完成,您现在可以在应用程序页面添加与其连接的 Wio Terminal 节点。点击 Add application

根据您的意愿填写这些信息:

  • Owner
  • Application ID
  • Application name

步骤 4 一旦您创建了应用程序,您可以看到在右下角有一个 Add end device,可以帮助您添加 Wio Terminal 设备。

  • 选择 BrandSelect Sense CAP
  • 选择 ModelLoRa-E5
  • Hardware Ver 和 Firmware Ver 默认设置
  • Profile(Region) 根据您的位置(与 Frequncy plan 相同区域)
  • Frequency plan 与您在步骤 2中的选择相同
  • AppEUI、DevEUI 和 AppKey 在不同的 LoRa-E5 设备中是唯一的。您可以通过将固件 Gateway_Tester.uf2 编程到您的设备中轻松找到它们。就像 Edge Impulse 教程中一样,编程固件您只需在拉下 Wio Terminal 左按钮后将 uf2 文件拖到驱动器中。

  • End Device ID 将在您输入 DevEUI 后自动预填。

步骤 5 连接设备后,有 Payload formatters 选择,您需要添加一些代码来解码数据(选择格式化程序类型为 'Javascript'):

function Decoder(bytes, port) {

var decoded = {};
if (port === 8) {
decoded.Stop = bytes[1];
decoded.Turn = bytes[3];
decoded.Wave = bytes[5];
}

return decoded;
}

步骤 6 最后,转到网关,然后点击 Live data。您可能会看到结果:

Loading Comments...