摘要:将树莓派设置为LoRaWAN网关乍一看可能令人望而生畏,但有了合适的工具和指导,它就会成为一个有意义的DIY网络项目。
使用BasicStation或PiWAN连接到The Things Network
将树莓派设置为LoRaWAN网关乍一看可能令人望而生畏,但有了合适的工具和指导,它就会成为一个有意义的DIY网络项目。
在本文中,我们将介绍如何使用手动构建的BasicStation或基于Docker的PiWAN堆栈将树莓派连接到The Things Network(TTN)。
但首先,什么是The Things Network(TTN)?
The Things Network是一个全球性的开放LoRaWAN基础设施,允许设备以极低的功耗进行长距离无线通信。
公共LoRaWAN网络与私有LoRaWAN网络
公共LoRaWAN网络:如TTN,由社区驱动,可免费使用。
私有网络:提供更多控制权,通常用于企业或工业物联网设置。
但为什么要使用公共网关?
通过向TTN贡献一个公共网关,你可以:
扩展所在地区的LoRaWAN覆盖范围。
帮助支持开放的物联网计划。
访问全球各地设备的实时数据。
1.在TTN上设置你的网关
在深入树莓派配置之前,让我们先在TTN上准备好后端。
步骤1:创建TTN账户
访问 https://console.thethingsnetwork.org 并注册。
步骤2:注册你的网关
前往“网关”→“+添加网关”,然后:
使用或生成一个网关EUI(通常从你的MAC地址派生而来)。
选择正确的频率计划(例如,EU868、US915等)。
选择一个有意义的网关ID(小写,无空格)。
生成一个网关API密钥,用于安全认证。
请妥善保管此API密钥。在BasicStation或PiWAN设置中需要用到它。
2.轻松设置你的树莓派网关:PiWAN
手动设置LoRaWAN网关可能既繁琐又容易出错,因此我开发了PiWAN来简化这一过程。
https://github.com/cosmic-pulse/PiWAN
PiWAN是一个轻量级的基于Docker的堆栈,用于使用BasicStation部署树莓派LoRaWAN网关。它完全开源,只需一个文件即可轻松配置。
步骤1:安装先决条件
首先安装Docker和Docker-Compose:
curl -fsSL https://get.docker.com | sh
然后将你的用户添加到docker组:
sudo usermod -aG docker ${USER}
newgrp docker
接着安装Docker-Compose:
sudo apt-get install docker-compose-plugin
步骤2:克隆PiWAN
git clone
cd PiWAN
步骤3:修改配置
nano gateway.conf
将占位符值替换为你的实际配置:
- `YOUR_INFLUXDB_USER`: 你的InfluxDB用户名。(可以是任意值)
- `YOUR_INFLUXDB_PASSWORD`: 你的InfluxDB密码。(可以是任意值)
- `YOUR_TTN_APP_ID`:你的TTN应用程序ID。(来自TTN仪表板)
- `YOUR_TTN_API_KEY`: 你的TTN API密钥。(来自TTN仪表板)
- `YOUR_TTN_REGION`:你的TTN区域(例如,nam1)。
- `YOUR_GATEWAY_EUI`: 你的网关EUI。(来自TTN仪表板)
- `YOUR_GATEWAY_API_KEY`:你的网关API密钥。(来自TTN仪表板)
为Grafana设置适当的权限(解决PiWAN当前已知的一些问题):
sudo chown -R 472:472 ./grafana
步骤4:构建并启动
docker-compose up -d
就这样。PiWAN将处理其余一切,从容器编排到管理更新。
3.手动设置BasicStation
如果你喜欢亲自动手,你仍然可以手动设置BasicStation。本节将指导你从头开始在树莓派上构建和配置它。
步骤1:克隆BasicStation仓库
git clone https://github.com/lorabasics/basicstation.git --recurse-submodules
cd basicstation
步骤2:修复树莓派架构问题
nano setup.gmk
将ARCH.rpi设置为aarch64-linux-gnu,然后保存并退出。
这解决了在64位树莓派操作系统上已知的构建问题。
步骤3:构建BasicStation
make platform=rpi variant=std deps s-clean s-all
步骤4:配置网关
为你的网关创建一个目录,然后复制站点配置文件:
mkdir ../gateway
cp examples/live-s2.sm.tc/station.conf ../gateway/station.conf
cd ../gateway
nano station.conf
你需要在station.conf文件中为你的网关设置EUI(来自前面的步骤)。
接下来,我们需要创建tc文件:
tc.uri → 添加你的网关URI(例如,wss://nam1.cloud.thethings.network:8887)
nano tc.uri
tc.key → 添加你的网关API密钥
export API_KEY="PUT_YOUR_GATEWAY_API_KEY_HERE"
echo "Authorization: Bearer $API_KEY" | perl -p -e 's/ | | / /g' | sudo tee -a tc.key
tc.trust → 创建你的CA证书
sudo ln -s /etc/ssl/certs/ca-certificates.crt ~/gateway/tc.trust
步骤5:运行网关
../basicstation/build-rpi-std/bin/station
现在,你的网关应该出现在TTN控制台中并显示为在线状态。
大功告成!
你现在已成功使用手动BasicStation设置或PiWAN Docker堆栈将树莓派LoRaWAN网关连接到The Things Network。此设置非常适合物联网实验、智能农业或智慧城市解决方案。
成功!你的网关已连接到TTN
额外福利(还有一件事):PiWAN内置仪表盘
PiWAN网关健康仪表盘
PiWAN的突出特点之一是其内置的Grafana仪表盘。无需额外设置。
你可以实时查看:
网关健康状况:CPU、内存、磁盘使用情况
LoRaWAN流量:上行/下行数据包、信号质量等
PiWAN运行后,可以通过树莓派的IP地址(默认端口3000)访问Grafana:
http://:3000
然后使用你在gateway.conf文件中设置的用户名和密码登录。
网关CPU监控
网关内存监控
网关磁盘空间监控
仪表盘已预先配置好,开箱即用。只需打开Grafana即可开始监控。
这将你的网关变成了一个全栈网络可观测性中心,非常适合生产环境或高级测试。
如果觉得文章不错记得点赞,收藏,关注,转发~
来源:上海晶珩