5 使用外部NS服务器

5.1 配置LoRa网关连接外部NS服务器

网关支持多种 LoRa 通信协议和数据转发方式,可灵活对接不同的网络服务器和物联网平台。以下详细介绍各种配置方式。

5.1.1 使用UDP方式

UDP GWMP(Gateway Message Protocol)是 Semtech 定义的标准协议,广泛用于连接 TTN、chirpstack 等开源网络服务器。

应用场景:连接 The Things Network (TTN)、自建 chirpstack 服务器等。

5.1.1.1 使用UDP方式连接自建的chirpstack平台

可以先安装chirpstack,如果已经安装,请跳过下面安装的步骤

5.1.1.1.1 ubuntu 24 服务器安装chirpstack,示例:chirpstack-v4.17.0
sudo apt update
sudo apt install  mosquitto mosquitto-clients redis-server redis-tools postgresql

配置 PostgreSQL

sudo -u postgres psql

创建chirpstack的数据库

sudo -u postgres psql
-- create role for authentication
create role chirpstack with login password 'chirpstack';

-- create database
create database chirpstack with owner chirpstack;

-- change to chirpstack database
\c chirpstack

-- create pg_trgm extension
create extension pg_trgm;

-- exit psql
\q

安装ChirpStack Gateway Bridge软件

sudo apt install chirpstack-gateway-bridge

修改ChirpStack Gateway Bridge的配置 /etc/chirpstack-gateway-bridge/chirpstack-gateway-bridge.toml

更新[backend] 的配置

[backend]
type="semtech_udp"
region="US915"
frequency_min=902000000
frequency_max=928000000

更新[integration.mqtt] 的配置

示例以 US915,设备和网关测试都使用A1B1(channels 0-7 + 64)频点:902.3~903.7

[integration.mqtt]
event_topic_template="us915_0/gateway/{{ .GatewayID }}/event/{{ .EventType }}"
command_topic_template="us915_0/gateway/{{ .GatewayID }}/command/#"

重新生效ChirpStack Gateway Bridge

# restart chirpstack-gateway-bridge
sudo systemctl restart chirpstack-gateway-bridge

# start chirpstack-gateway-bridge on boot
sudo systemctl enable chirpstack-gateway-bridge
5.1.1.1.2 添加网关ID到chirpstack平台
注意事项
- 示例公网服务平台IP:62.234.52.46
- chirpstack默认用户admin,默认密码admin登录
  1. 在网关页面上Network(网络)LoRa GW(LoRa网关)Configuration(配置),拷贝网关ID:0010502df45635f8

拷贝网关ID

  1. 登录已经安装的chirpstack平台,在网关页面添加

chirpstack平台添加网关1

  • 粘贴已经复制好的网关ID:0010502df45635f8
  • 填到Name:0010502df45635f8
  • 填到Gateway ID (EUI64):0010502df45635f8

chirpstack平台添加网关2

  • 点击 "Submit"
  1. 在网关界面Network(网络)LoRa GW(LoRa网关)Configuration(配置) ,示例chirpstack平台IP:62.234.52.46配置如下:
  • Mode(模式):Normal Mode
  • LoRaWAN® regions(LoRaWAN® 频段):US902-928
  • Gateway and server communication protocol(网关和服务器通信协议):UDP
  • server address(服务器地址):62.234.52.46
  • Uplink port(UDP)(上行端口(UDP)):1700
  • Downstream port(UDP)(下行端口(UDP)):1700

chirpstack平台添加网关3

  1. 在页面右下角,点击SAVE & APPLY(保存并应用)按钮
  1. 在网关侧,Network(网络)LoRa GW(LoRa网关)Status(状态) 查看网关连接服务器状态(由于PUSH包每30秒发送一包,需要点击SAVE & APPLY(保存并应用)按钮等1分钟后再查看 ): 是否在线
  • 网关(PUSH)<--->服务器(PUSH_ACK)
  • 网关(PULL)<--->服务器(PULL_ACK)
  • 查看通信有没有ACK,代表有没有连上服务器,而且还可以知道当前网络UDP通信的延迟,这个延迟超过150ms会影响下发设备的接收成功率

chirpstack平台添加网关4

  1. 在平台侧查看网关连接状态

已经在线,并且显示US915频段的网关

chirpstack平台添加网关5

5.1.1.2 使用UDP方式连接TTN平台
注意事项
- 示例需要提前注册TTN的账号
- 示例以一个频段的网关测试,其他频段也类似

操作步骤

  1. 登录网关界面,在 Network(网络)LoRa GW(LoRa网关)Configuration(配置),如果要配置第二个LoRa(16通道版本),则在 Network(网络)->16通道扩展(16-channel expansion)

loRa网关页面

16通道,需要再配置第二个lora页面:16通道扩展(16-channel expansion)

loRa16通道扩展页面

  1. 导航至 LoRa网关(LoRa GW)配置(Configuration)

loRa配置页面

  1. 切换需要使用的LoRaWAN频段

切换频段不会更改网关默认的EUI,如果之前配置页面参数填乱了,也可以通过切换到别的频段,再切换回来,让频段的参数重新初始化

  • 470版本仅支持CN470版本,470的硬件不需要切换频段
  • 868版本可以支持EU868、RU864、IN865三个频段切换
  • 915版本可以支持US902-928、AU915-928、AS923-1、AS923-2、AS923-3、AS923-4、KR920
  • 具体切换频段方法可以参考:
  1. 以连接到TTN(console.cloud.thethings.network)平台示例(需要自行注册平台的登录账号)

登录TTN控制台

在ttn平台找到"Register gateway"

找到注册网关按钮

ttn平台出现输入网关ID输入框

输入网关

在浏览器另一窗口,登录网关页面,找到lora网关的ID,复制它

复制网关ID

在ttn平台粘贴网关ID,并且点击"Confirm" 粘贴网关ID

在ttn平台用刚刚复制的网关ID,粘贴到"Gateway ID"、"Gateway name",选择"frequency plan",填完并且点击"Register gateway" 填完网关ID

已经注册到ttn平台,此时需要在网关填写服务器地址

注册到ttn平台

注意事项
- 配置UDP服务器地址前,请确认域名地址,我们查看当前ttn为我们网关分配的域名前缀,为: au1

所以需要在网关里,选择UDP协议,服务器选择ttn的au1域名节点

ttn平台的域名

  • Mode(模式):Normal Mode
  • Gateway and server communication protocol(网关和服务器通信协议):UDP
  • server address(服务器地址):目标 NS 的域名或 IP(例如:au1.cloud.thethings.network
  • Uplink port(UDP)(上行端口(UDP)):1700
  • Downstream port(UDP)(下行端口(UDP)):1700

网关页面配置UDP方式连接ttn平台

网关配置ttn平台的域名

在页面右下角,点击SAVE & APPLY(保存并应用)按钮

网关配置完点击保存并应用

等待30-60秒,在ttn平台看网关状态,已经在线

网关在ttn平台在线

5.1.2 使用MQTT-GWMP方式

MQTT 协议适用于需要更灵活消息机制的场景,支持连接唯传公司的IoT Vision公有云平台,包括唯传公司提供的私有化部署IoT Vision。

应用场景:IoT Vision公有云、IoT Vision私有化部署。

5.1.2.1 使用MQTT GWMP方式连接公有云IoT Vision
  • 以CN470频段的网关为例
  1. 使用账号登录以后,在菜单找到 网关管理,点击添加网关按钮

在IoT Vision平台添加网关1


  1. 填写网关信息,授权码需要联系技术支持获得

在IoT Vision平台添加网关2


  1. 登录网关界面,在 Network(网络)LoRa GW(LoRa网关)Configuration(配置)
  • Mode(模式):正常模式
  • Gateway and server communication protocol(网关和服务器通信协议):MQTT(GWMP)
  • External NS MQTT Server(外部NS MQTT服务器地址):目标 NS 的域名或 IP(例如:39.108.64.113
  • External NS MQTT port(外部NS MQTT服务器端口):1879
  • External NS MQTT Username(外部NS MQTT 用户名):wangw
  • External NS MQTT password(外部NS MQTT 密码):ww1030

在IoT Vision平台添加网关3


  1. 在页面右下角,点击SAVE & APPLY(保存并应用)按钮
  1. 在网关侧Network(网络)LoRa GW(LoRa网关)Status(状态) 查看网关连接平台的在线状态

在IoT Vision平台添加网关4


  1. 在平台侧刷新页面,查看网关在线状态

在IoT Vision平台添加网关5


5.1.2.2 使用MQTT GWMP方式连接私有部署IoT Vision

参考连接公有云


5.1.3 使用ChirpStack MQTT Forwarder方式

chirpstack-mqtt-forwarder 是 chirpstack 开源项目提供的 MQTT 转发协议,使用 Protobuf 编码,效率更高。

应用场景:连接 chirpstack V4.x 网络服务器。

5.1.3.1 使用ChirpStack MQTT Forwarder方式连接自建的chirpstack平台

操作步骤

  1. 网关页面导航至 在 Network(网络)LoRa GW(LoRa网关)Configuration(配置)
  1. 配置 MQTT 连接参数:
  • Gateway and server communication protocol(网关和服务器通信协议):MQTT(chirpstack-mqtt-forwarder)
  • chirpstack-mqtt-forwarder MQTT Server(chirpstack-mqtt-forwarder MQTT服务器地址):目标 NS 的域名或 IP(例如:62.234.52.46
  • chirpstack-mqtt-forwarder MQTT port(chirpstack-mqtt-forwarder MQTT服务器端口):1883 或 8883
  • chirpstack-mqtt-forwarder MQTT Username(chirpstack-mqtt-forwarder MQTT 用户名):根据自己的MQTT Broker(Mosquitto、EMQX‌)配置填写
  • chirpstack-mqtt-forwarder MQTT password(chirpstack-mqtt-forwarder MQTT 密码):根据自己的MQTT Broker(Mosquitto、EMQX‌)配置填写
  • Modify the topic prefix of chirpstack MQTT(修改chirpstack MQTT的topic前缀):可以修改部署的topic 前缀,默认使用频段的值:cn470/eu868/ru864/in865/us915/au915/as923_1/as923_2/as923_3/as923_4/kr920
  • Use JSON(使用json协议): 勾选使用json,不勾选使用Protobuf 编码方式(推荐 Protobuf)

示例里部署的chirpstack配置 /etc/chirpstack/chirpstack.toml,找到enabled_regions的配置

[network]
  enabled_regions = [
    "as923",
    "as923_2",
    "as923_3",
    "as923_4",
    "au915_0",
    "cn470_10",
    "cn779",
    "eu433",
    "eu868",
    "in865",
    "ism2400",
    "kr920",
    "ru864",
    "us915_0",
    "us915_1",
  ]

示例以 US915,设备和网关测试都使用A1B1(channels 0-7 + 64)频点:902.3~903.7,

那么我需要修改chirpstack MQTT的topic前缀为:us915_0

  • Modify the topic prefix of chirpstack MQTT(修改chirpstack MQTT的topic前缀):use a custom
  • Topic prefix(MQTT topic前缀):us915_0

chirpstack-mqtt-forwarder连接chirpstack配置

  1. 在页面右下角,点击 Save & Apply(保存并应用)
  1. 在网关侧Network(网络)LoRa GW(LoRa网关)Status(状态) 查看网关连接平台的在线状态

chirpstack-mqtt-forwarder连接chirpstack状态1

  1. 在chirpstack平台页面,查看网关在线状态

chirpstack-mqtt-forwarder连接chirpstack状态2


5.1.4 使用Basic Station CUPS方式

CUPS(Configuration and Update Server)协议用于自动获取 LNS 配置和证书,常用于 AWS IoT Core。

应用场景:AWS IoT Core for LoRaWAN。

5.1.4.1 使用Basic station CUPS方式连接亚马逊平台
注意事项
- 需要提前注册亚马逊平台的账号
- 以us-west-2地区为例: https://us-west-2.console.aws.amazon.com/iot/home?region=us-west-2#/wireless/gateways
- 注册完账号,由于网关接入亚马逊平台,是使用CUPS证书形式,需要查阅亚马逊文档,增加角色几种权限
- IoTWirelessGatewayCertManagerRole 在页面查看 https://us-east-1.console.aws.amazon.com/iam/home?region=us-east-1&redirectFrom=iamv2#/roles
- AWSIoTWirelessGatewayCertManager
- 网关接入亚马逊,流量需要付费,需要绑定一张信用卡

操作步骤

  1. 导航网关页面至 Network(网络)LoRa GW(LoRa网关)Configuration(配置) 拷贝网关ID,示例网关ID:0010502df45635f8
  2. 在亚马逊平台添加网关,链接:https://us-west-2.console.aws.amazon.com/iot/home?region=us-west-2#/wireless/gateways

cups连接aws配置1

  • 粘贴网关ID
  • 选择频段,示例US915
  • 点击右下角 Add gateway 按钮

cups连接aws配置2

  1. 创建网关CUPS接入的证书,复制cups接入的链接到网关页面,并且点击下载证书

cups连接aws配置3

cups连接aws配置4

  1. Gateway permissions选择 AWSIoTWirelessGatewayCertManager,然后提交

cups连接aws配置5

  1. 回到网关页面Network(网络)LoRa GW(LoRa网关)Configuration(配置),网关页面配置 :
  • Gateway and server communication protocol(网关和服务器通信协议):CUPS(Basic Station)
  • CUPS:HTTPS 地址(例如:https://<account-id>.cups.lorawan.amazonaws.com:443
  • CUPS CA certificate 'cups.trust'(cups服务器的根证书'cups.trust'):打开cups.trust文件,复制证书内容粘贴到文本框里
  • CUPS client certificate 'cups.crt'(cups服务器的客户端证书'cups.crt'):打开xxx.cert.pem文件,复制证书内容粘贴到文本框里
  • CUPS client private key 'cups.key'(cups服务器的客户端密钥'cups.key'):打开xxx.private.key文件,复制证书内容粘贴到文本框里

cups连接aws配置6


  1. 在页面右下角,点击 Save & Apply(保存并应用)
  2. 网关会自动从 CUPS 服务器获取 LNS 配置,可以查看对应的通信 log

cups连接aws配置7


cups连接aws配置8

  1. 在网关侧Network(网络)LoRa GW(LoRa网关)Status(状态) 查看网关连接平台的在线状态

cups连接aws配置9

  1. 在亚马逊平台页面,查看网关在线状态

cups连接aws配置10


5.1.5 使用Basic Station LNS方式

LNS(LoRaWAN Network Server)协议基于 WebSocket,支持连接 TTN、chirpstack、Microsoft Azure IoT 等平台。

应用场景:chirpstack、TTN、Microsoft Azure IoT Central。

5.1.5.1 使用Basic station LNS方式连接TTN平台
注意事项
- 需要提前注册TTN平台的账号
- 以au1地区为例: https://au1.cloud.thethings.network/console/gateways
  1. 导航网关页面至 Network(网络)LoRa GW(LoRa网关)Configuration(配置) 拷贝网关ID,示例网关ID:0010502df45635f8
  1. 在ttn平台添加网关

lns连接ttn配置1

  • gateway EUi粘贴0010502df45635f8,点击Confirm
  • 下一步
  • gateway ID粘贴0010502df45635f8
  • gateway name粘贴0010502df45635f8
  • Frequency plan选择United States 902-928MHz,FSB1
  • Require authenticated connection 打勾选上
  • Generate API key for LNS打勾选上

lns连接ttn配置2

  1. 在页面底部点击Register gateway
  1. 在弹框中点击下载证书

lns连接ttn配置3

  1. 回到网关页面Network(网络)LoRa GW(LoRa网关)Configuration(配置),网关页面配置 :
  • Gateway and server communication protocol(网关和服务器通信协议):LNS(Basic Station)
  • LNS:WebSocket 地址(例如:wss://au1.cloud.thethings.network:8887
  • LNS CA certificate 'tc.trust'(lns服务器的根证书'tc.trust'): 下载路径https://www.thethingsindustries.com/docs/concepts/advanced/root-certificates/
  • LNS client certificate 'tc.crt'(lns服务器的客户端证书'tc.crt'):留空,TTN不需要填这个
  • LNS client private key 'tc.key'(lns服务器的客户端密钥'tc.key'):打开下载的tc.key文件,复制证书内容粘贴到文本框里

lns连接ttn配置4


lns连接ttn配置5


  1. 在页面右下角,点击 Save & Apply(保存并应用)
  1. 网关与服务器wss对应的通信 log,如下

lns连接ttn配置6


lns连接ttn配置7


  1. 在网关侧Network(网络)LoRa GW(LoRa网关)Status(状态) 查看网关连接平台的在线状态

lns连接ttn配置8

  1. 在ttn平台页面,查看网关在线状态

lns连接ttn配置9


5.1.5.2 使用Basic station LNS方式连接chirpstack
注意事项
- 需要提前查看chirpstack的文档,部署好域名和证书,因为lns连接,不能使用IP地址,必须使用域名
- 以网关内部的chirpstack-4.17.0软件为例
- 如果客户不会部署LNS模式的chirpstack,建议使用UDP、MQTT方式,或者查阅更多资料
- 示例网关ID:0010502df45635f8
  1. 在chirpstack页面,添加网关ID:0010502df45635f8,在网关里TLS certificate,点击Generate certificate,生成LNS的证书

lns连接chirpstack配置1


lns连接chirpstack配置2

  1. 回到网关页面Network(网络)LoRa GW(LoRa网关)Configuration(配置),网关页面配置 :
  • Gateway and server communication protocol(网关和服务器通信协议):LNS(Basic Station)
  • LNS:WebSocket 地址(例如:wss://gateway.lan:3001
  • LNS CA certificate 'tc.trust'(lns服务器的根证书'tc.trust'): 在第一步,chirpstack页面生成的CA certificate证书
  • LNS client certificate 'tc.crt'(lns服务器的客户端证书'tc.crt'):在第一步,chirpstack页面生成的TLS certificate证书
  • LNS client private key 'tc.key'(lns服务器的客户端密钥'tc.key'):在第一步,chirpstack页面生成的TLS key证书

lns连接chirpstack配置3

  1. 在页面右下角,点击 Save & Apply(保存并应用)
  1. 在网关侧Network(网络)LoRa GW(LoRa网关)Status(状态) 查看网关连接平台的在线状态

lns连接chirpstack配置4

  1. 在chirpstack平台页面,查看网关在线状态

lns连接chirpstack配置5

查看chirpstack通信日志

lns连接chirpstack配置6

5.2 16通道网关频段以及频点

在网关页面Network(网络)16-channel expansion(16通道扩展)Configuration(配置)


5.2.1 配置16通道网关cn470频段以及频点说明

在网关页面Network(网络)16-channel expansion(16通道扩展)Configuration(配置)


5.2.2 配置16通道网关868半双工硬件切换频段说明

在网关页面Network(网络)16-channel expansion(16通道扩展)Configuration(配置)


5.2.3 配置16通道网关915半双工硬件切换频段说明

在网关页面Network(网络)16-channel expansion(16通道扩展)Configuration(配置)


5.3 16通道网关连接外部NS服务器

网关支持多种 LoRa 通信协议和数据转发方式,可灵活对接不同的网络服务器和物联网平台。以下详细介绍各种配置方式。

5.3.1 配置16通道网关使用udp方式

UDP GWMP(Gateway Message Protocol)是 Semtech 定义的标准协议,广泛用于连接 TTN、chirpstack 等开源网络服务器。

应用场景:连接 The Things Network (TTN)、自建 chirpstack 服务器等。

5.3.1.1 配置16通道网关使用udp方式连接chirpstack

在网关页面Network(网络)16-channel expansion(16通道扩展)Configuration(配置)


5.3.1.2 配置16通道网关使用udp方式连接ttn

在网关页面Network(网络)16-channel expansion(16通道扩展)Configuration(配置)


5.3.2 配置16通道网关使用mqtt-gwmp方式

MQTT 协议适用于需要更灵活消息机制的场景,支持连接唯传公司的IoT Vision公有云平台,包括唯传公司提供的私有化部署IoT Vision。

应用场景:IoT Vision公有云、IoT Vision私有化部署。

5.3.2.1 配置16通道网关使用mqtt-gwmp方式连接公有云iot

在网关页面Network(网络)16-channel expansion(16通道扩展)Configuration(配置)


5.3.2.2 配置16通道网关使用mqtt-gwmp方式连接私有iot

在网关页面Network(网络)16-channel expansion(16通道扩展)Configuration(配置)


5.3.3 配置16通道网关使用chirpstack-mqtt-forwarder方式

在网关页面Network(网络)16-channel expansion(16通道扩展)Configuration(配置)


5.3.4 配置16通道网关使用basic-station-cups方式

CUPS(Configuration and Update Server)协议用于自动获取 LNS 配置和证书,常用于 AWS IoT Core。

应用场景:AWS IoT Core for LoRaWAN。

5.3.4.1 配置16通道网关使用basic-station-cups方式连接亚马逊平台

在网关页面Network(网络)16-channel expansion(16通道扩展)Configuration(配置)


5.3.5 配置16通道网关使用basic-station-lns方式

LNS(LoRaWAN Network Server)协议基于 WebSocket,支持连接 chirpstack、TTN、Microsoft Azure IoT 等平台。

应用场景:chirpstack、TTN、Microsoft Azure IoT Central。

5.3.5.1 配置16通道网关使用basic-station-lns方式连接ttn平台

在网关页面Network(网络)16-channel expansion(16通道扩展)Configuration(配置)


5.3.5.2 配置16通道网关使用basic-station-lns方式连接chirpstack平台

在网关页面Network(网络)16-channel expansion(16通道扩展)Configuration(配置)