Helium网络系列之GNSS定位应用

2021-09-20 00:45:17 浏览数 (1)

1. 简介

本文介绍GNSS定位终端在Helium网络以及腾讯云物联网开发平台IoT Explorer的应用。

2. 定位工具和平台介绍

2.1 Mappers

Helium Mappers 项目是一项众包工作,旨在构建全球 Helium 网络的真实信号覆盖图。在Mappers查看Mappers数据。Mappers 工具可让您查看项目参与者已探索的区域,以及为这些区域提供覆盖的 Helium 热点。通过映射现实世界的覆盖范围,网络用户可以了解传感器部署在何处被证明有效。参考链接Mappers

2.2 Cargo

Helium Cargo 是一个评估工具,数据对所有开发人员开放,可以看到所有的设备最近一段时期内的定位数据。参考链接Cargo介绍

2.3 腾讯云 IoT Explorer位置服务

IoT Explorer 位置服务支持多种设备定位属性,包括 GPS 定位、蜂窝定位以及 Wi-Fi 定位,从而确定设备所在具体位置。同时支持腾讯连连小程序快速浏览位置信息。

  • GPS 定位:设备能够直接上报经纬度,可使用位置服务属性(GPS_Info、GPS_ExtInfo)定位设备。
  • 蜂窝定位:若设备为2G/4G类设备,则可通过上报基站信息,使用位置服务属性(Cell_Info)定位设备。
  • Wi-Fi 定位:若设备为 Wi-Fi 类设备,可通过上报附近 Wi-Fi 路由器的 MAC 地址,使用位置服务功能属性(Wifi_Info )定位设备。

2.4 Grafana位置功能

Worldmap Panel 是开源Grafana项目上的一个地图插件,通过圆点图示显示查询的位置信息,可以与influxDB搭配使用。

3. 预期结果

  1. 定位终端在Helium Mapper,Cargo平台正常显示定位数据
  2. 定位终端在腾讯云的IoT Explorer位置服务呈现,并可以通过微信小程序查看当前的定位信息
  3. 定位终端数据存储在influxDB,并通过Grafana呈现

4. 准备工作

  1. GNSS定位终端,本文使用的是Edwei的定位工牌,更多信息。
Edwei定位工牌Edwei定位工牌
  1. Helium Console 控制台账户
  2. 腾讯IoT Explorer控制台账户
  3. 腾讯云CVM主机,已安装Mosquitto Telegraf InfluxDB Grafana组件,参考教程

5. Helium Console 设置配置

5.1 Helium Console控制台添加设备

5.2 添加新的Function,解析Edwei工卡设备,脚本文件

代码语言:txt复制
function Decoder(bytes, port)
 {
    var decoded = {};
    if(port == 11)
    { 
        var longi = (bytes[0] & 0xf) << 24 | bytes[1] << 16 | bytes[2] << 8 | bytes[3];
        var lati = (bytes[4] & 0xf) << 24 | bytes[5] << 16 | bytes[6] << 8 | bytes[7];
        var long_str = (parseInt(longi / 1000000)   (longi % 1000000) / 10000 / 60).toFixed(7);
        var lat_str = (parseInt(lati / 1000000)   (lati % 1000000) / 10000 / 60).toFixed(7);
        decoded.longitude = parseFloat(long_str);
        decoded.latitude = parseFloat(lat_str);
        decoded.accuracy =  2;
        decoded.altitude = 2;
      }
    return decoded;
    
}

5.3 创建集成

5.3.1 配置Mapper集成

创建一个新的http集成

  • Endpoint URL: https://mappers.helium.com/api/v1/ingest/uplink
  • HTTP headers: Content-Type:application/json
Mapper IntegrationMapper Integration

5.3.2 配置Cargo 集成

创建新的http集成

  • Endpoint URL: https://cargo.helium.com/api/payloads
  • HTTP headers: Content-Type:application/json
Mapper IntegrationMapper Integration

5.3.3 配置腾讯IoT Explorer集成

创建新的MQTT集成,具体步骤可以参考Helium 去中心化的LoRaWAN网络在腾讯云物联网开发平台的应用实战

Helium Console TEMPLATE BODY脚本文件,发送到IoT Explorer数据格式

代码语言:txt复制
{
  "method": "report",
  "params": {
    "GPS_Info":{
    {{#decoded}}{{#payload}}"latitude": "{{latitude}}",
    "longitude": "{{longitude}}",
    "voltage":"{{voltage}}"{{/payload}}{{/decoded}}
    }
  }
}

5.3.4 配置MQTT InfluxDB集成

创建MQTT集成,具体步骤可以参考Grafana 面板监控 Helium 网络中的LoRaWAN温湿度终端

Helium Console TEMPLATE BODY脚本文件,发送到MQTT

代码语言:txt复制
{
{{#decoded}}{{#payload}}"latitude": {{latitude}},
"longitude": {{longitude}},{{/payload}}{{/decoded}}
"dev_eui": "{{dev_eui}}",
"fcnt": {{fcnt}},{{#hotspots}}
"channel": {{channel}},
"frequency": {{frequency}},
"hotspot_name": "{{name}}",
"rssi": {{rssi}},
"snr": {{snr}},
"spreading": "{{spreading}}"{{/hotspots}}
}

5.3.5 配置Flows

设备数据通过Function解析后发送到各个集成模块进行数据处理呈现。

配置Flows配置Flows

5.4 定位平台数据配置及呈现

5.4.1 Mappers

成功上报定位数据的区域被成功点亮

Mapper点亮区域Mapper点亮区域

5.4.2 Cargo

选择设备名称查看当前设备的位置信息以及历史数据

设备定位信息设备定位信息

5.4.3 腾讯云IoT Explorer 位置

Explorer平台属性配置

代码语言:txt复制
{
  "version": "1.0",
  "properties": [
    {
      "id": "GPS_Info",
      "name": "GPS定位",
      "desc": "",
      "mode": "rw",
      "define": {
        "type": "struct",
        "specs": [
          {
            "id": "longitude",
            "name": "GPS经度",
            "dataType": {
              "type": "float",
              "min": "-180",
              "max": "180",
              "start": "0",
              "step": "0.001",
              "unit": "度"
            }
          },
          {
            "id": "latitude",
            "name": "GPS纬度",
            "dataType": {
              "type": "float",
              "min": "-90",
              "max": "90",
              "start": "0",
              "step": "0.001",
              "unit": "度"
            }
          }
        ]
      },
      "required": false
    }
  ],
  "events": [],
  "actions": [],
  "profile": {
    "ProductId": "3G7FI1NWIJ",
    "CategoryId": "550"
  }
}

位置服务配置

位置服务配置位置服务配置

位置服务平台数据呈现

位置服务平台数据呈现位置服务平台数据呈现

腾讯连连位置服务面板设置

位置服务面板设置位置服务面板设置

腾讯连连位置服务数据呈现

腾讯连连位置服务数据呈现腾讯连连位置服务数据呈现

5.4.4 Grafana Worldmap

Telegraf新增表存储GNSS数据

修改配置文件,/etc/telegraf/telegraf.d/mqtt.conf,新增GNSS表单数据

代码语言:txt复制
[[inputs.mqtt_consumer]]
#  servers = ["tcp://192.168.1.76:1883"]
  name_override = "edwei"
  servers = ["tcp://127.0.0.1:1883"]
  qos = 0
  connection_timeout = "30s"
  topics = [ "helium/Edwei_1/rx" ]
  username = "telegraf"
  password = "telegraf123"
  persistent_session = false
  client_id = ""
  data_format = "json"
 json_string_fields = ["name","device_id","hotspot_name","spreading"]

Grafana安装worldmap插件

使用Grafana-cli 工具安装 Worldmap

代码语言:txt复制

grafana-cli plugins install grafana-worldmap-panel

代码语言:txt复制

配置DashBoard,可以直接导入配置文件使用:

DashBoard文件

Grafana配置

Grafana Worldmap基本配置Grafana Worldmap基本配置
Grafana数据呈现Grafana位置服务Grafana位置服务

0 人点赞