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. 预期结果
- 定位终端在Helium Mapper,Cargo平台正常显示定位数据
- 定位终端在腾讯云的IoT Explorer位置服务呈现,并可以通过微信小程序查看当前的定位信息
- 定位终端数据存储在influxDB,并通过Grafana呈现
4. 准备工作
- GNSS定位终端,本文使用的是Edwei的定位工牌,更多信息。
- Helium Console 控制台账户
- 腾讯IoT Explorer控制台账户
- 腾讯云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
5.3.2 配置Cargo 集成
创建新的http集成
- Endpoint URL: https://cargo.helium.com/api/payloads
- HTTP headers: Content-Type:application/json
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解析后发送到各个集成模块进行数据处理呈现。
5.4 定位平台数据配置及呈现
5.4.1 Mappers
成功上报定位数据的区域被成功点亮
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配置