今天,我们要介绍的是瑞科慧联(rak)打包并发布的一款容器。该容器无需进行复杂的配置,即可快速部署一个 lora basics™ station,方便开发人员直接用于生产环境或进一步开发。本文将着重介绍使用该容器将网关连接到 the things stack(tts)的过程。
关于lora basic™ stationlora 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 concentratorrak833 concentratorrak2245 pi hatrak2247 concentratorimst ic880adragino pg1301sx1302 (spi or usb)rak2287 concentratorseeed wm1302sx1303 (spi or usb)rak5146 concentratorsx1308 (spi or usb)rak2246 concentratorrak2247-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 的网关和应用配置页面:
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 上使用过。
接着输入别的信息,例如网关名字和具体频段。此处因为我们的集中器是 us915 频段,因此我们在此填入的频段为 “united states 902-928 mhz,fsb2(used by ttn)”。
点击左下方 register gateway 来完成网关的创建在网关的控制台页面点击左侧边栏中的钥匙图案,进入 api keys 的生成页面
点击页面右上角的 add api key 按钮,填入名字并勾选以下权限:“link as gateway to a gateway server for traffic exchange, i.e. write uplink and read downlink“
接着会弹出 api key 的窗口供用户复制,请务必在这一步中将 api key 复制并保存到安全的位置。在关闭了该窗口后,将无法返回该界面获取该 api key,只能重复上面的步骤重新生成一个新的 api key。
3.接下来你需要使用 docker-compose 来启动你的 lora® 集中器,此处我们以使用 spi 接口的 rak2287 集中器为例,其频段为 us915。而 host 设备是一台树莓派 4。
首先我们需要新建一个文件夹,并在文件夹中新建一个名叫 docker-compose.yml 的文件:
mkdir example cdexamplenano 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 等:
然后你会看到网关成功入网的 log:
而此时在 tts 网络服务器侧,则可以看到网关入网的提示:
以上就是目前 ttn 官方主推的一种部署 lora® packer forwarder 的方式。rak 还提供多个基于容器技术的一键部署复杂服务的方式,包括双频段网关,接入 influxdb 数据库和 grafana 图形化面板,接入 tagocore 的案例,具体可以参考其 github 代码仓库。
大家可以参考代码仓库中的开源应用案例,只需要稍加修改,就能打造出属于你自己的解决方案。
混合动力汽车各工况分析 (上)
三电平逆变器IGBT驱动电路电磁兼容研究
电动车的电池安装注意事项
2021年彩电行业利好不断,海外市场全面增长
浮点数判零
一款可快速部署LoRa Basics™ Station并连接到TTS V3的容器
单相无刷直流电机在家电市场上的应用
Mini LED电视有何强大之处—Mini LED电视评测
2018全球生物特征识别大会,共同探讨智能时代生物识别新机遇
650V碳化硅MOSFET扩展了符合AEC-Q101标准的E3M系列
华为预测这个智能世界将呈现超出预想的智能社会形态
差分探头-电流探头-示波器探头的使用说明
无功补偿装置的集中补偿与就地补偿如何选择
常见变容二极管参数
乐视电动汽车真伪:探访美国FF厂区
一种采用超弹性模型和赫兹接触模型的柔性压力传感器
小米即将发布新机汇总:小米Note3、小米MIX2、小米6Plus、红米Note5、红米Pro2,你期待吗?
电压致动器优势
小功率开关电源芯片U6117S
利用TMC428控制器和MCS51单片机实现步进电机驱动控制系统的设计