时间:2022-10-21 14:30
人气:
作者:admin
今天,我们要介绍的是瑞科慧联(RAK)打包并发布的一款容器。该容器无需进行复杂的配置,即可快速部署一个LoRa Basics™ Station,方便开发人员直接用于生产环境或进一步开发。本文将着重介绍使用该容器将网关连接到 The Things Stack(TTS)的过程。
LoRaBasics™Station 协议简化了大规模 LoRaWAN® 网络的管理,是将网关连接到 TTS的首选方式。相对于传统的 UDPpacketforwarder,LoRa Basics™ Station的优势是:
需要注意的是,在LoRa Basics™ Station的部署中,最重要的是在 TTS上能生成对应的 APIkey。
该镜像的原始仓库中提供了非常详细的使用指南,包括支持平台、前置准备、进阶配置指南、权限配置和其他注意事项。该镜像支持的LoRa®集中器型号包括SX1301,SX1302,以及SX1303。RAK在每种集中器都提供了USB 和SPI 规格的接口,以及可选的GPS 和LTE 模块,所以用户可以根据实际需求来购买具有对应接口和功能的集中器,并且通过修改 docker-compose或者Portainer应用模板中的对应配置来启动服务。
RAK提供的LoRa Basics™ Station镜像支持的集中器包括如下:
下面我将以US915 频段的RAK2287 集中器的SPI 版本为例,展示如何使用docker-compose,实现一键部署LoRa Basics™ Station,并将其连接到 TTSV3。
硬件准备:
软件准备:
在本地预安装了docker 和docker-compose,以及相关的依赖(docker和docker-compose 的安装请参照代码仓库中的介绍或者直接查看 docker的官方文档)。
具体步骤:
1.你需要首先配置网络服务器(ns),此处我们以TTS为例: 复制该地址eu1.cloud.thethings.network到你的浏览器并注册账号。进入控制台后即可看到TTS 的网关和应用配置页面:

2.创建一个 Gateway并且生成对应的 apikey,用于在docke-compose中启用该容器:
当然你也可以自定义一个EUI,但是需要确保该DeviceEUI没有被别的用户在 TTS上使用过。

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




3.接下来你需要使用 docker-compose来启动你的 LoRa®集中器,此处我们以使用SPI接口的 RAK2287集中器为例,其频段为 US915。而 host设备是一台树莓派 4。
mkdir example cd
example
nano docker-compose.ymlversion: '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 up4.完成以上步骤后,请稍等片刻,网关将自动连上TTS 网络服务器。Basicstation的容器会打印如下log,包含对应的配置选项,例如集中器型号,deviceEUI等:

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

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

以上就是目前 TTN官方主推的一种部署LoRa®packerforwarder的方式。RAK 还提供多个基于容器技术的一键部署复杂服务的方式,包括双频段网关,接入influxdb 数据库和Grafana 图形化面板,接入TagoCore 的案例,具体可以参考其Github 代码仓库。
大家可以参考代码仓库中的开源应用案例,只需要稍加修改,就能打造出属于你自己的解决方案。