一款可快速部署LoRa Basics™ Station并连接到TTS V3的容器

描述

 

今天,我们要介绍的是瑞科慧联(RAK)打包并发布的一款容器。该容器无需进行复杂的配置,即可快速部署一个 LoRa Basics™ Station,方便开发人员直接用于生产环境或进一步开发。本文将着重介绍使用该容器将网关连接到 The Things Stack(TTS)的过程。

关于LoRa Basic™ Station

LoRa Basics™ Station 协议简化了大规模 LoRaWAN® 网络的管理,是将网关连接到 TTS 的首选方式。相对于传统的 UDP packet forwarder,LoRa Basics™ Station 的优势是:

  • 支持集中更新和配置管理
  • 支持 TLS 和基于 token 的身份验证
  • 支持集中式渠道计划管理
  • 不依赖本地时间保持

 

需要注意的是,在 LoRa Basics™ Station 的部署中,最重要的是在 TTS 上能生成对应的 API key。

 

该镜像的原始仓库中提供了非常详细的使用指南,包括支持平台、前置准备、进阶配置指南、权限配置和其他注意事项。该镜像支持的 LoRa® 集中器型号包括 SX1301,SX1302,以及 SX1303。RAK 在每种集中器都提供了 USB 和 SPI 规格的接口,以及可选的 GPS 和 LTE 模块,所以用户可以根据实际需求来购买具有对应接口和功能的集中器,并且通过修改 docker-compose 或者 Portainer 应用模板中的对应配置来启动服务。

 

RAK 提供的 LoRa Basics™ Station 镜像支持的集中器包括如下:

 

  • SX1301 (only SPI)
    • RAK831 Concentrator
    • RAK833 Concentrator
    • RAK2245 Pi Hat
    • RAK2247 Concentrator
    • IMST iC880a
    • Dragino PG1301
  • SX1302 (SPI or USB)
    • RAK2287 Concentrator
    • Seeed WM1302
  • SX1303 (SPI or USB)
    • RAK5146 Concentrator
  • SX1308 (SPI or USB)
    • RAK2246 Concentrator
    • RAK2247-1308 Concentrator

容器的特性

  • 支持 AMD64 (x86_64)、ARMv8 和 ARMv7 架构。
  • 支持 SX1301 SPI 集中器。
  • 支持 SX1302 和 SX1303 SPI 和 USB (CoreCell) 集中器
  • 支持 SX1308 SPI 和 SX1308 USB (PicoCell) 集中器
  • 支持同一设备上的多个集中器(使用一个basic station服务)
  • 与 TTS(社区版/TTNv3)或 Chirpstack LNS 等兼容
  • 支持 CUPS 和 LNS 协议配置
  • TTS 服务器(TTI 或 TTN)的网关自动配置
  • 几乎一键部署,同时高度可配置

应用示例

下面我将以 US915 频段的 RAK2287 集中器的 SPI 版本为例,展示如何使用 docker-compose,实现一键部署 LoRa Basics™ Station,并将其连接到 TTS V3。

 

硬件准备:

 

  • RAK2287 集中器
  • 树莓派 3/4/CM3/CM4(CM3 或者 CM4 需要对应的载板),或者任意其他有 PCIe/GPIO 的 ARM 平台或者 x86 平台
  • 如果你的 host 设备上没有 PCIe 接口,需要使用一个额外的  RAK2287 Pi HAT 板载 PCle 连接器

 

软件准备:

 

在本地预安装了 docker 和 docker-compose,以及相关的依赖(docker 和 docker-compose 的安装请参照代码仓库中的介绍或者直接查看 docker 的官方文档)。

 

具体步骤:

 

1.你需要首先配置网络服务器(ns),此处我们以 TTS 为例: 复制该地址eu1.cloud.thethings.network 到你的浏览器并注册账号。进入控制台后即可看到 TTS 的网关和应用配置页面:

 

LoRa

 

2.创建一个 Gateway 并且生成对应的 api key,用于在 docke-compose 中启用该容器:

 

  • 点击 Go to gateways
  • 点击页面右上角的 Register gateway 来创建新的网关
  • 依次填入网关的信息,例如 ID,名字,EUI,以及频段. 其中,EUI 往往是根据网口的 MAC 地址来的,可以在终端中使用以下命令来获取默认的 EUI:docker run -it --network host --rm xoseperez/basicstation:latest ./get_eui.sh 

 

当然你也可以自定义一个 EUI,但是需要确保该 Device EUI 没有被别的用户在 TTS 上使用过。

 

LoRa

 

接着输入别的信息,例如网关名字和具体频段。此处因为我们的集中器是 US915 频段,因此我们在此填入的频段为 “United States 902-928 MHz,FSB2(used by TTN)”。

 

LoRa

 

  • 点击左下方 Register Gateway 来完成网关的创建
  • 在网关的控制台页面点击左侧边栏中的钥匙图案,进入 API keys 的生成页面

 

LoRa

 

  • 点击页面右上角的 Add API key 按钮,填入名字并勾选以下权限:“link as Gateway to a Gateway Server for traffic exchange, i.e. write uplink and read downlink“

 

LoRa

 

  • 接着会弹出 API key 的窗口供用户复制,请务必在这一步中将 API key 复制并保存到安全的位置。在关闭了该窗口后,将无法返回该界面获取该 API key,只能重复上面的步骤重新生成一个新的 API key。

 

LoRa

 

3.接下来你需要使用 docker-compose 来启动你的 LoRa® 集中器,此处我们以使用 SPI 接口的 RAK2287 集中器为例,其频段为 US915。而 host 设备是一台树莓派 4。

 

  • 首先我们需要新建一个文件夹,并在文件夹中新建一个名叫 docker-compose.yml 的文件:

 

mkdir example cd
example
nano docker-compose.yml

 

  • 接着将下列内容粘贴进该文件并保存:

 

version: '2.0'

services:

  basicstation:
    image: xoseperez/basicstation:latest
    container_name: basicstation 
    restart: unless-stopped devices:
       -/dev/spidev0.0 
       -/dev/gpiochip0
   environment:	
       MODEL: "RAK2287"          
       INTERFACE: "SPI"
       TTS_REGION: "eu1"
       GATEWAY_EUI: "E45F01FFFF222233"                              #可以自由指定,需要保证在TTS上不进
       TTS_FREQUENCY_PLAN_IDBAND: "US_902_928_FSB_2"	 #此处以US915为例,根据集中器支持频段修改即可
       TC_KEY: "NNSXS.VRUYFHQ7J5NWWNB3KSW2VWFRGBZF……”#该api key是先在在TTS上生成,然后填入再启动容器

 

  • 保存后,在终端同一个目录下中执行以下命令:

 

pi@rasperry:docker-compose up
#如果安装了新版docker compose,请运行如下命令
docker compose up

 

4.完成以上步骤后,请稍等片刻,网关将自动连上 TTS 网络服务器。Basic station 的容器会打印如下 log,包含对应的配置选项,例如集中器型号,device EUI 等:

 

LoRa

 

然后你会看到网关成功入网的 log:

 

LoRa

 

而此时在 TTS 网络服务器侧,则可以看到网关入网的提示:

 

LoRa

 

以上就是目前 TTN 官方主推的一种部署 LoRa® packer forwarder 的方式。RAK 还提供多个基于容器技术的一键部署复杂服务的方式,包括双频段网关,接入 influxdb 数据库和 Grafana 图形化面板,接入 TagoCore 的案例,具体可以参考其 Github 代码仓库。

 

大家可以参考代码仓库中的开源应用案例,只需要稍加修改,就能打造出属于你自己的解决方案。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分