项目简介
本项目是一个基于 LoRaWAN 的 Helium 网络覆盖测绘系统,旨在对 Helium 网络的覆盖情况进行测绘。通过一系列功能优化和特性设计,提升了系统在定位、网络连接、电量显示、运动检测等方面的性能。
项目的主要特性和功能
- GPS 定位优化:避免每次发送数据后停止 GPS,加速下次定位;在 JOIN 和 GPS 定位等待界面添加计数器,便于对比不同天线定位时间。
- 网络参数存储:成功入网后可存储网络参数,重启无需重新入网。
- 电池信息显示:部分屏幕显示电池电量,默认显示电压,也可在菜单切换为百分比显示。
- 运动检测改进:优化运动检测功能,停止一定周期后切换更新频率;添加振动传感器唤醒功能。
- 菜单模式:短按 USR 按钮显示菜单,再次短按循环切换选项,长按激活选项,可开启屏幕关闭模式、调整移动更新频率。
- 睡眠模式:短按用户按钮使 GPS 进入睡眠模式,更新频率降至每 6 小时一次;再次按下唤醒设备。添加长时间停止自动睡眠和长时间等待 GPS 定位自动睡眠功能。
- 多 GPS 支持:支持 Air530Z GPS(适用于 1.1 版本电路板)。
安装使用步骤
代码上传
- 安装驱动和软件
- 安装串口驱动,点击此处查看安装说明。
- 安装 Visual Studio Code,点击此处下载。
- 安装 PlatformIO IDE,点击此处安装。
- 复制项目并编辑代码
- 复制本项目仓库并打开文件夹。
- 编辑
\src
文件夹下的main.cpp
文件:- 根据电路板版本(GPS 为 Air530 或 Air530Z)注释或取消注释相应行。
- 注释或取消注释
#define
行以配置振动传感器、振动唤醒、最大停止周期等参数,可按需修改定时器值。 - 在
main.cpp
相应位置输入 Helium Console 中的 DevEUI(msb)、AppEUI(msb) 和 AppKey(msb),值必须为 MSB 格式。
- 若需更改 LoRaWAN 设置(如区域),修改
platformio.ini
文件。
- 编译和上传代码
- 点击 PlatformIO: Build 按钮进行编译。
- 使用 USB 线将 CubeCell 连接到计算机。
- 点击 PlatformIO: Upload 按钮上传代码。
调试(可选)
- 取消注释
#define DEBUG
行以启用调试代码,重新编译。 - 点击 PlatformIO: Serial Monitor 按钮进行调试。
控制台设置
- 在 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 }; }
- 创建两个集成,一个用于 CARGO(可选),一个用于 MAPPERS。
- 对于 CARGO,使用可用的预构建集成。
- 对于 MAPPERS,使用自定义 HTTP 集成,POST 端点 URL 为
https://mappers.helium.com/api/v1/ingest/uplink
。
- 进入 Flows,从 Nodes 菜单添加设备、解码器函数和集成。将设备连接到解码器,解码器连接到集成。
有用链接
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】