手把手教你用树莓派打造 LoRaWAN 网关!

描述

使用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 https://github.com/cosmic-pulse/PiWAN.gitcd 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-submodulescd 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 ../gatewaycp examples/live-s2.sm.tc/station.conf ../gateway/station.confcd ../gatewaynano 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/\r\n|\n|\r/\r\n/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即可开始监控。

这将你的网关变成了一个全栈网络可观测性中心,非常适合生产环境或高级测试。

 

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

全部0条评论

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

×
20
完善资料,
赚取积分