设置一个 洛拉 网关可能看起来很复杂, but don’t worry. 我先解释一下原理, 然后教你如何完成LoRa网关的设置.
本文中你需要准备的软硬件:
我一直在玩 LoRa模块 最近很多, 甚至自己做了一个LoRa开发板. 通过LoRa技术可实现低功耗远距离无线电通信, 这是一个小, 简单有效的方法. 你甚至可以解锁更多的 LoRa 功能: 建立一个可以连接互联网的LoRaWAN网络, 允许移动节点在不同的网管之间跳转——就像你的手机一样, 当你移动时, 它将连接到不同的信号塔. 所以今年夏天我计划制作一个低成本的 LoRa 网关并在 MOKO 网络上运行. 比我想象的简单多了~
网关是一个 LoRa设备 连接到互联网. 它可以监控多个不同的 LoRa 通道并在网络回程之间转发数据包 (比如MOKO) 和终端节点设备. 您可以将其视为低功耗移动终端设备节点的蜂窝塔.
MOKO 给出了一些推荐的网关硬件选项, 我选择了 RAK Wireless 的 RAK831 进行这次尝试:
RAK831 是一个 LoRa 集中器板,可以与树莓派一起使用. 我直接购买了这样的LoRa开发包, 其中包含该项目所需的所有硬件:
该套件还包括一个 WisNode 板, 类似于 Arduino+LoRa 终端设备; 此外, 该套件还包括一个 LoRa 跟踪器板, but I don’t need it because I have made a LoRa node with GPU.
因为存储卡里已经预配置了很多软件, 比较简单. 这些软件将在购买设备时预先安装. 基本上, 这些设备购买后可直接使用. 无需在GitHub上查找和下载ic880a相关的网关软件, 也不在树莓派上启用SPI
我按照说明设置了 WiFi 凭据 /etc/wpa_supplicant/wpa_supplicant.conf.
下一个, 我们的主要工作是找出网关各个参数的含义并配置参数. 首先, 我们必须确认网关标识, 每个网关都有自己的 ID, 因为这个可以通过网络接口的MAC地址访问. 通过这个脚本可以获取到网关的ID:
网关_ID=$(ip 链接显示 eth0 | awk’/ether/ {打印 $2}’ | awk -F:'{print $1$2$3″FFFE”$4$5$6}’); 回声 ${网关_ID^^}
网关的配置有点混乱. 首先, 网关配置文件为通用配置文件. 通用配置文件适用于所有网关设置, 然后是特定区域的配置文件设置. 因为不同国家的Lora通信频谱可能不同, 所有特征区域的配置文件参数可能不同. 我住在中国, and the configuration files of all Lora gateways I used in the test are China’s global configuration files. GitHub 有各个地区的配置文件, 非常方便开发者下载所需的配置文件.
接近尾端的 gateway_conf 是一个重要的部分. 这是您所在地区的正确路由器信息. 这个文件会进入 /opt/moko-gateway/bin 的位置.
GPS中的同步时钟对网关的工作非常重要. Lora网关可以判断目标物体的位置,必须依靠GPS发送同步信号. 激活文件中的GPS是一项很重要的工作. 我们必须在Lora网关配置文件中配置网关_在conf中添加以下代码, which is very important for Lora’s work:
{
“gateway_conf”: {
…
“gps”: 真的,
“gps_tty_path”: “/dev/ttyAMA0”,
“fake_gps”: 错误的,
…
}
}
网关的具体信息会保存在/opt/moko-gateway/bin/local_config.json这个文件中. 这里, 您可以使用 global_config.json 中的关键信息和您的 gateway_ID, 有关网关位置的位置信息, 和联系方式.
这是我的:
{
“gateway_conf”: {
“gateway_ID”: “MFP254862KEF1034”,
“ref_latitude”: 22.24851,
“ref_longitude”: 114.06611,
“ref_altitude”: 114,
“contact_email”: “mokofeipeng@mokolora.com”,
“description”: “mokolora design lora gateway lw0003”,
“servers”: [
{
“server_address”: “router.us.mokolora.network”,
“serv_port_up”: 433,
“serv_port_down”:433,
“serv_enabled”: 真的
}
]
}
}
网关的具体信息会保存在/opt/moko-gateway/bin/local_config.json这个文件中. 这里, 您可以使用 global_config.json 中的关键信息和您的 gateway_ID, 有关网关位置的位置信息, 和联系方式.
这是我的:
{
“gateway_conf”: {
“gateway_ID”: “MFP254862KEF1034”,
“ref_latitude”: 22.24851,
“ref_longitude”: 114.06611,
“ref_altitude”: 114,
“contact_email”: “mokofeipeng@mokolora.com”,
“description”: “mokolora design lora gateway lw0003”,
“servers”: [
{
“server_address”: “router.us.mokolora.network”,
“serv_port_up”: 433,
“serv_port_down”:433,
“serv_enabled”: 真的
}
]
}
}
当 Lora 网关启动时, Lora网关会同时调用local_config.json信息和global_config.json的配置信息.
Lora网关的配置可以与GitHub文件同步. 我们可以通过GitHub的同步信息实时关注新Lora网关的配置文件. 操作非常方便. Lora网关配置文件的收集路径为 [网关远程配置 GitHub 存储库] (莫科 / 网关远程配置). 每当网关中心正常启动时, 它将读取 GitHub 文件上的消息, 判断配置文件是否更新, 并下载最新的配置文件(如果有更新). 如果它可以找到您网关的相关文件, 它将删除 local_config.json 文件并创建一个符号链接以将仓库中的文件从 bin/local_config.json 克隆到 Raspberry Pi!
如果你想这样做, 请在GitHub上拆解网关远程配置报告, 将您自己的本地配置文件提交到以您的 GatewayID 命名的 fork 报告 (例如, MFP254862KEF1034.json), 然后将 pull 提交到主存储库 ask. 一段时间后, 您提交给仓库的请求通过, 本地配置文件与GitHub上的文件合并, 并且修改了GitHub上的配置文件. Lora网关重启时, Lora 网关将下载新的配置文件, 新的配置文件就会生效。我的最终配置是/opt/moko-gateway/bin/local_config.json, 连接到 GitHub [我在 GitHub 中的配置文件](https://www.github.com/moko-zh/gateway-remote-config/ blob/master/MFP254862KEF1034.json) 关联.
global_config.json 中的 gateway_conf 部分仅包含以下内容:
{
“gateway_conf”: {
“gps”: 真的,
“gps_tty_path”: “/dev/ttyAMA0”,
“fake_gps”: 错误的
}
}
你需要学习 [注册说明](https://www..thethingsnetwork.org/docs/gateways/registration.html) 在 TTN 上注册您的网关. 这很简单.
我将网关安装在带有 5V 电源的防水外壳中, LoRa天线和GPS天线. 夏天的天气不会太热, 我很快就会看到这个网关在明尼苏达州的冬季天气中的表现. 我希望树莓派在封闭外壳中产生的热量可以防止硬件冻结, but I don’t know if it will work! (更新: 树莓派即使在负值也没有问题 28 华氏度 (-33 摄氏度)!!!)
天线装置是一根普通的塑料管. 我用长线集线器连接到Lora网关的天线. 5米电缆有功率损耗, 但考虑到这一点之后, 天线仍然可以提供净增益. Lora网关已经建成. 看起来不错. 这个过程很有趣,让我对Lora有了更深入的了解.
我希望这篇网关设置文章对其他人有用! LoRa真的是一种令人兴奋的学习技术.
Imagine a world without light...scary, 正确的? We’d all be stumbling around in the dark like…