littlebot
Published on 2025-04-17 / 0 Visits
0

【源码】基于LoRaWAN的Helium网络覆盖测绘系统

项目简介

本项目是一个基于 LoRaWAN 的 Helium 网络覆盖测绘系统,旨在对 Helium 网络的覆盖情况进行测绘。通过一系列功能优化和特性设计,提升了系统在定位、网络连接、电量显示、运动检测等方面的性能。

项目的主要特性和功能

  1. GPS 定位优化:避免每次发送数据后停止 GPS,加速下次定位;在 JOIN 和 GPS 定位等待界面添加计数器,便于对比不同天线定位时间。
  2. 网络参数存储:成功入网后可存储网络参数,重启无需重新入网。
  3. 电池信息显示:部分屏幕显示电池电量,默认显示电压,也可在菜单切换为百分比显示。
  4. 运动检测改进:优化运动检测功能,停止一定周期后切换更新频率;添加振动传感器唤醒功能。
  5. 菜单模式:短按 USR 按钮显示菜单,再次短按循环切换选项,长按激活选项,可开启屏幕关闭模式、调整移动更新频率。
  6. 睡眠模式:短按用户按钮使 GPS 进入睡眠模式,更新频率降至每 6 小时一次;再次按下唤醒设备。添加长时间停止自动睡眠和长时间等待 GPS 定位自动睡眠功能。
  7. 多 GPS 支持:支持 Air530Z GPS(适用于 1.1 版本电路板)。

安装使用步骤

代码上传

  1. 安装驱动和软件
  2. 复制项目并编辑代码
    • 复制本项目仓库并打开文件夹。
    • 编辑 \src 文件夹下的 main.cpp 文件:
      • 根据电路板版本(GPS 为 Air530 或 Air530Z)注释或取消注释相应行。
      • 注释或取消注释 #define 行以配置振动传感器、振动唤醒、最大停止周期等参数,可按需修改定时器值。
      • main.cpp 相应位置输入 Helium Console 中的 DevEUI(msb)、AppEUI(msb) 和 AppKey(msb),值必须为 MSB 格式。
    • 若需更改 LoRaWAN 设置(如区域),修改 platformio.ini 文件。
  3. 编译和上传代码
    • 点击 PlatformIO: Build 按钮进行编译。
    • 使用 USB 线将 CubeCell 连接到计算机。
    • 点击 PlatformIO: Upload 按钮上传代码。

调试(可选)

  • 取消注释 #define DEBUG 行以启用调试代码,重新编译。
  • 点击 PlatformIO: Serial Monitor 按钮进行调试。

控制台设置

  1. Helium Console 创建一个新的函数,命名为 Heltec decoder,类型选择 Decoder,使用自定义脚本。将以下代码复制粘贴到自定义脚本面板: function Decoder(bytes, port) { return { latitude: ((bytes[0] << 24) | (bytes[1] << 16) | (bytes[2] << 8) | bytes[3]) / 1E7, longitude: ((bytes[4] << 24) | (bytes[5] << 16) | (bytes[6] << 8) | bytes[7]) / 1E7, altitude: 0, sats: (bytes[9]), speed: (((bytes[8]))/1.609).toFixed(2), battery: (bytes[10]/100 + 2).toFixed(2), accuracy: 2.5 }; }
  2. 创建两个集成,一个用于 CARGO(可选),一个用于 MAPPERS。
    • 对于 CARGO,使用可用的预构建集成。
    • 对于 MAPPERS,使用自定义 HTTP 集成,POST 端点 URL 为 https://mappers.helium.com/api/v1/ingest/uplink
  3. 进入 Flows,从 Nodes 菜单添加设备、解码器函数和集成。将设备连接到解码器,解码器连接到集成。

有用链接

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】