Skip to main content

LNS 配置

SenseCAP M2 多平台网关内置了 LoRaWAN 网络服务器,基于 Chirpstack,为启动 LoRaWAN 网络提供快速可靠的解决方案。

网关配置​

通过 Web UI 配置网关,请查看快速入门以登录 Luci。

信道计划设置​

导航到 LoRa > Channel Plan

pir

选择区域和频率计划。

pir

设置完成后,点击 Save&Apply

本地网络服务器配置​

导航到 LoRa > LoRa Network

pir

将模式设置为 Local Network Server,添加您的 MQTT 信息(代理主机/端口/用户/密码),其他参数可以保持默认值。

pir

点击 Save&Apply 应用您的设置。

注意

启动过程大约需要 1 分钟,然后您可以访问 GUI 配置。

ChirpStack GUI 配置​

通过 http://localhost:8080 登录 ChirpStack GUI。

pir

默认账户和密码:admin。

pir

然后您将看到仪表板页面。

pir

检查区域​

导航到 Network Server > Regions。

应该有一个区域 ID,点击它并确认信息,它应该与您在前面步骤中的设置相同。

pir

pir

添加设备配置文件​

导航到 Tenant > Device Profiles,然后点击 Add Profile。

pir

MAC version: LoRaWAN 1.0.3

Regional parameters reversion: A

ADR algorithm: Default ADR algorithm(LoRa only)

Expected uplink interval: 自定义,默认 3600s

pir

导航到 Codec,选择 JavaScript functions,复制 SenseCAP Decoder for TTN 并提交。

pir

添加网关​

导航到 Gateway,然后点击 Add Gateway。

pir

定义名称和网关 ID(您可以点击随机生成 ID),然后提交。

pir

添加设备​

导航到 Tenant > Application,然后点击 Add Application。

为您的应用程序命名并提交。

pir

导航到您的应用程序,然后点击 Add device。

pir

粘贴您的设备 EUI 并选择我们之前添加的设备配置文件,然后提交。

pir

粘贴应用程序密钥并点击提交。

pir

tip

请查看用户指南以正确设置设备,选择平台为 Other Platform。

检查设备状态​

检查您设备的 Events,当设备加入网络时,您将获得加入数据包。

pir

您还可以查看数据包详细信息。

pir

集成​

本章节用于云服务开发,以下指南仅供参考。

MQTT​

主题​

MQTT 集成公开了事件类型文档中记录的所有事件。

默认事件主题是:

application/APPLICATION_ID/device/DEV_EUI/event/EVENT

查看 事件类型 了解更多详情。

您可以在应用程序选项卡中找到应用程序 ID:

pir

  • 事件类型
up上行链路事件
status边际和电池状态
join设备加入事件
ack确认下行链路 (n)ack
txack下行链路传输确认
log日志(或错误)事件
location位置事件
integration集成事件
Note

+ 表示接收所有消息

示例:

  • 接收特定网关下所有设备的上行链路消息:
gateway/<GATEWAY_EUI>/device/+/event/up
  • 接收来自应用程序下所有设备的所有消息:
application/+/device/+/event/+
  • 接收来自所有网关的所有设备消息:
gateway/+/device/+/event/+

您可以通过检查 gatewayid 来区分网关。

pir

载荷​

当 object.valid 为 true 时,表示数据解析成功,然后您可以遍历 object.messages,并提取您需要的数据类型。

pir

  1. SenseCAP LoRaWAN S210X 传感器载荷示例描述的上行事件:

pir

  • upload_battery:电池
  • upload_interval:上传间隔,单位:秒
  • upload_version:硬件/固件版本
  • report_telemetry:测量值

'report_telemetry' 消息中的 measurementId 请查看 SenseCAP 测量 ID 了解更多详情。

pir

  1. SenseCAP 数据记录器载荷示例描述的上行事件:

pir

'report_telemetry' 消息中的 measurementId 请查看 SenseCAP 测量 ID 了解更多详情。

HTTP​

在 HTTP 选项卡中点击 + 添加新的 HTTP 集成。

LNS 将以 POST 方式向配置的 URL 发送消息。

pir

提交您的 URL 信息。

注意

仅支持 http,不支持 https。

pir

HTTP 集成将向配置的事件端点发送 POST 请求(可以配置多个 URL,用逗号分隔)。事件 URL 查询参数指示事件的类型。

HTTP 集成公开所有事件,如 事件类型 文档所述。

示例:

(main.py)

from http.server import HTTPServer, BaseHTTPRequestHandler 

from urllib.parse import urlparse, parse_qs

from chirpstack_api import integration

from google.protobuf.json_format import Parse

class Handler(BaseHTTPRequestHandler):

\# True - JSON marshaler

\# False - Protobuf marshaler (binary)

json = False

def do_POST(self):

self.send_response(200)

self.end_headers()

query_args = parse_qs(urlparse(self.path).query)

content_len = int(self.headers.get('Content-Length', 0))

body = self.rfile.read(content_len)

if query_args["event"][0] == "up":

self.up(body)

elif query_args["event"][0] == "join":

self.join(body)

else:

print("handler for event %s is not implemented" % query_args["event"][0])

def up(self, body):

up = self.unmarshal(body, integration.UplinkEvent())

print("Uplink received from: %s with payload: %s" % (up.device_info.dev_eui, up.data.hex()))

def join(self, body):

join = self.unmarshal(body, integration.JoinEvent())

print("Device: %s joined with DevAddr: %s" % (join.device_info.dev_eui, join.dev_addr))

def unmarshal(self, body, pl):

if self.json:

return Parse(body, pl)

pl.ParseFromString(body)

return pl

httpd = HTTPServer(('', 8090), Handler)

httpd.serve_forever()

下行链路​

下行链路消息:

info

建议将下行链路标记为保留,这样命令就不会重复执行。

默认主题是:application/APPLICATION_ID/device/DEV_EUI/command/down

command:请查看设备用户手册中的下行链路命令以获取更多详细信息。

主题application/APPLICATION_ID/device/DEV_EUI/command/down
devEUI设备 EUI
confirmedtrue/false(载荷是否必须作为确认数据下行发送)
fPort要使用的 FPort(必须 > 0)
database64 编码数据(明文,将由 ChirpStack 加密)

示例:

  1. 重启 SenseCAP S210x LoRaWAN 传感器:

主题:

application/dbf6\*\*\*\*6c92/device/2CF7F1C2\*\*\*/command/down Json:

{

"devEui":"2CF7F1C2\*\*\*",

"confirmed":true,

"fPort":2,

"data":"AMgAAAAAACsm"

}
  1. 将 SenseCAP S210x LoRaWAN 传感器的上传间隔设置为 1 分钟:

主题:

application/dbf6\*\*\*\*6c92/device/2CF7F1C2\*\*\*/command/down

Json:

{

"devEui":"2CF7F1C2\*\*\*",

"confirmed":true,

"fPort":2,

"data":"AIkAESIBAJBQ

"
}
Loading Comments...