广告招募

当前位置:全球装备网 > 技术中心 > 所有分类

如何在网关上使用编

2023年04月22日 18:46:04      来源:厦门星纵物联科技有限公司 >> 进入该公司展台      阅读量:56

分享:

目录

概述

星纵物联LoRaWAN®网关内置网络服务器Network Server,支持通过MQTT / HTTP(S)转发传感器数据到第三方服务器。为提高上报内容的可读性,可使用网关自带的解析上报内容。本文主要描述如何在网关上使用载荷编。

准备

  • 星纵物联LoRaWAN®网关

步骤

1. 网关配置

登录网关配置界面,进入“Network Server > 载荷编” 界面,可对编进行配置与管理。

1.1 内置载荷编解码库

星纵物联LoRaWAN®网关程序内置载荷编解码库,为所有星纵物联终端节点设备提供编解码示例。内置载荷编解码库支持两种获取方式:

    • 在线获取:网关联网后,可获取云端的载荷编解码库。请先确保网关可正常访问公网。
    • 本地上传:手动上传载荷编解码库压缩包。

1.2 自定义载荷编

若需要对第三方终端节点设备进行编解码,可点击自定义编解码函数。

    • 名称:自定义
    • 描述:自定义
    • 模板:选择None

然后在解码函数功能框写入终端节点设备对应的解码函数,点击保存。

1.3 调用编解码

当您在网关“Network Server > 设备” 界面添加终端节点设备时,可在载荷编位置选择所需的编解码。

    • 自定义:显示自定义编
    • 默认:显示内置编

2. 应用示例

如下以EM300-TH设备为例,列举三种数据转发的情景供参考。

注意:

    • 星纵物联设备数据示例可参考:。
    • 若您对接的是第三方终端节点设备,请向第三方厂家获取示例。

2.1 仅转发传感器解析数据

  • 方式一:参考1.3章节,直接调用网关内置载荷编解码库中的EM300-TH解码示例。
  • 方式二:参考1.3章节,调用自定义编。在这之前需要创建一个自定义,复制,粘贴到解码函数功能框。

保存配置后,在网关“Network Server > 数据流” 界面,点击上报数据流详情信息,可以看到解码后的JSON数据。

网关收到EM300-TH数据后将会转发如下数据

{
"temperature": 30.8,
"humidity": 50.5,
}

2.2 转发原始数据与部分属性包

星纵物联LoRaWAN®网关支持通过LoRaObject语句,在原始转发内容上筛选需要的字段。假如需要转发DevEUI,RSSI,SNR等属性包及原始数据至服务器,可以在解码函数功能框输入如下内容:

function Decode(fPort, bytes) {
var decoded = {};
decoded.devEUI = LoRaObject.devEUI;
decoded.rssi = LoRaObject.rxInfo[0].rssi;
decoded.snr = LoRaObject.rxInfo[0].loRaSNR;
decoded.data = LoRaObject.data;
return decoded;
}

将会收到如下格式数据

{
"devEUI":24e1611234567890
"rssi": -5,
"snr": 11,
"data": AXVkA2cgAQRoeg==
}

2.3 转发解析数据与部分属性包

若想要转发解析数据并附带设备DevEUI信息到第三方服务器,可将EM300-TH复制粘贴到解码函数功能框中,并添加LoRaObject内容。

注意:当需要在解析数据中添加所有信息,可使用decoded.obj= LoRaObject;来实现。点击获取所有属性包。

function Decode(fPort, bytes) {
var decoded = {};

//Data decoder
for (var i = 0; i < bytes.length;) {
var channel_id = bytes[i++];
var channel_type = bytes[i++];

//BATTERY
if (channel_id === 0x01 && channel_type === 0x75) {
decoded.battery = bytes[i];
i += 1;
}
//TEMPERATURE
else if (channel_id === 0x03 && channel_type === 0x67) {
decoded.temperature = readInt16LE(bytes.slice(i, i + 2)) / 10;
i += 2;
}
//HUMIDITY
else if (channel_id === 0x04 && channel_type === 0x68) {
decoded.humidity = bytes[i] / 2;
i += 1;
} else {
break;
}
}

decoded.devEUI = LoRaObject.devEUI;
return decoded;
}

/* ******************************************
* bytes to number
********************************************/
function readUInt16LE(bytes) {
var value = (bytes[1] << 8) + bytes[0];
return value & 0xffff;
}

function readInt16LE(bytes){
var ref = readUInt16LE(bytes);
return ref > 0x7fff ? ref - 0x10000 : ref;
}

将转发如下数据

{
"battery": 92,
"temperature": 30.8,
"humidity": 50.5,
"devEUI":24e1611234567890
}

版权与免责声明:
1.凡本网注明"来源:全球装备网"的所有作品,版权均属于全球装备网,转载请必须注明全球装备网。违反者本网将追究相关法律责任。
2.企业发布的公司新闻、技术文章、资料下载等内容,如涉及侵权、违规遭投诉的,一律由发布企业自行承担责任,本网有权删除内容并追溯责任。
3.本网转载并注明自其它来源的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品来源,并自负版权等法律责任。 4.如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系。