您好,欢迎来到全球供应商网!请 |免费注册

产品展厅本站服务收藏该商铺

厦门星纵物联科技有限公司

免费会员
手机逛
18059232671
厦门星纵物联科技有限公司

Technical article

技术文章

当前位置:厦门星纵物联科技有限公司>>技术文章>>如何在网关上使用编

如何在网关上使用编

发布时间:2024/12/1020

目录

概述

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

准备

步骤

1. 网关配置

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

1.1 内置载荷编解码库

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

1.2 自定义载荷编

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

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

1.3 调用编解码

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

2. 应用示例

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

注意:

2.1 仅转发传感器解析数据

保存配置后,在网关“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
}

标签关键词:

上一篇: 如何在网关上测试下行指令

下一篇: 星纵网关登录与联网配置

在线询价

X

已经是会员?点击这里 [登录] 直接获取联系方式

会员登录

X

请输入账号

请输入密码

=

请输验证码

收藏该商铺

X
该信息已收藏!
标签:
保存成功

(空格分隔,最多3个,单个标签最多10个字符)

常用:

提示

X
您的留言已提交成功!我们将在第一时间回复您~