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
  • To receive all messages from all devices under the application:
application/+/device/+/event/+
  • To receive all device messages from all gateways:
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...