如何简单地设置一个LoRa网关?

设置一个LoRa网关看起来很复杂,不过不用担心。我会先讲述一下原理,然后给大家演示一下如何完成一个LoRa网关的设置。
如何简单地设置一个LoRa网关?_第1张图片
在本文中需要准备的软硬件:
如何简单地设置一个LoRa网关?_第2张图片
我最近经常在玩LoRa模块,甚至自己制作了一块LoRa开发板。通过LoRa技术可以实现低功率远程无线电通信,这是一种载荷较小、有效而又简单的方法。你甚至可以解锁LoRa的更多功能:设置一个可以连接到互联网的LoRaWAN网络,允许移动节点在不同网管之间跳跃——就像是你的手机一样,当你在移动的时候,它会连接到不同的信号发射塔。所以这个夏天我打算制作一个低成本的LoRa网关,并将其运行在TTN的网络上。它比我想象的要简单的多了~

网关硬件

网关是一个连接到互联网的LoRa设备,它可以监听多个不同的LoRa频道,在网路回程(例如TTN)和终端节点设备之间进行转发数据包。你可以把它想象成低功耗移动终端设备节点的蜂窝塔。

TTN给出了一些可供选择的网关硬件的建议设备,而我选择了RAK Wireless的RAK831来进行此次尝试:

RAK831是一个LoRa集中器板,可以与树莓派搭配使用。我直接购买了这样的一个LoRa开发套装,这里面包含了所有在本项目中需要的硬件:

  • RAK831 LoRaWAN集中器板
  • 树莓派3B(包含了内置TTN驱动和设置的内存卡)
  • GPS转接板(将RAK831与树莓派相连)
  • GPS天线
  • 玻璃纤维天线(60dB增益,用于设计高天线杆)
  • RG-58连接线(用于连接天线,长度5米)
  • 集中器板散热器

套件中还包含一个WisNode板,类似于一个Arduino+LoRa的终端设备;此外套件内还包含一个LoRa Tracker板,但是我就不需要了,因为我已经自制了一个带GPU的LoRa节点。
如何简单地设置一个LoRa网关?_第3张图片

配置

因为很多软件已经预先在内存卡中配置好了,所以还是比较简单的。并不必在树莓上启用SPI,也不必从GitHub下载基于iC880a的网关软件。这些都已经搞定了,基本上可以做到开箱即用。

我按照指示在 /etc/wpa_supplicant/wpa_supplicant.conf中设置了WiFi凭证。

接下来主要工作是为网关进行参数配置。首先要确认网关标识,每个网关都有自己的ID,因为这样才可以通过网络接口的MAC地址来实现访问。可以通过这个脚本来获取网关的ID:

GATEWAY_ID=$(ip link show eth0 | awk '/ether/ {print $2}' | awk -F\: '{print $1$2$3"FFFE"$4$5$6}'); echo ${GATEWAY_ID^^}

网关的配置有点混乱,首先,有一个全局配置文件并非特定于您的网关,而是特定于您所在的区域(欧盟,美国,澳大利亚等)。我在美国,所以我在GitHub上使用了物联网网关配置项目中的美国全球配置文件。

靠近末尾的gateway_conf是重要的部分,这是您所在地区的正确路由器信息,这个文件将进入到**/opt/ttn-gateway/bin**的位置。

重要:为了使我的网关能够工作,我必须将以下代码加入到gateway_conf部分中,来激活global_config.json文件中的GPS:

{
  "gateway_conf": {
  	...
    "gps": true,
    "gps_tty_path": "/dev/ttyAMA0",
    "fake_gps": false,
  	...
  }
}

该网关的特定信息会保存在这个文件里面**/opt/ttn-gateway/bin/local_config.json**。在这里,您可以使用global_config.json中的密钥信息以及您的gateway_ID,有关网关位置的位置信息以及联系信息。

这是我的:

{
  "gateway_conf": {
    "gateway_ID": "B827EBFFFEF11045",
    "servers": [
      {
        "server_address": "router.us.thethings.network",
        "serv_port_up": 1700,
        "serv_port_down": 1700,
        "serv_enabled": true
      }
    ],
    "ref_latitude": 45.0466,
    "ref_longitude": -93.4747,
    "ref_altitude": 277,
    "contact_email": "[email protected]",
    "description": "nootropic design RAK831 LoRa gateway"
  }
}

网关启动时,local_config.json信息与global_config.json信息合并。

棘手的是,您的网关配置可以由GitHub中的远程文件控制。gateway-remote-config GitHub repo是TTN网关的许多本地配置文件的集合。当您的网关启动时,它实际上从GitHub中提取最新内容。如果可以为你的网关找到相关的文件,它将删除local_config.json文件,并创建一个符号链接,从bin / local_config.json到树莓派上克隆仓库中文件!

如果您想这样做,请在GitHub上分解网关远程配置报告,将您自己的本地配置文件提交到以您的GatewayID命名的分叉报告中(例如,B827EBFFFEF11045.json),然后向主仓库提交拉取请求。几天后,您的本地配置文件将被合并,当您的网关启动时,它将使用它。

我的最终配置是**/opt/ttn-gateway/bin/local_config.json**,它是连接到GitHub中my config file in GitHub的链接。

global_config.json中的gateway_conf部分只包含以下内容:

{
  "gateway_conf": {
    "gps": true,
    "gps_tty_path": "/dev/ttyAMA0",
    "fake_gps": false
  }
}

TTN

你需要学习注册说明,在TTN上注册你的网关。这很简单。
如何简单地设置一个LoRa网关?_第4张图片

外壳和天线

我把网关安装在一个防水的外壳里,里面有5V电源、LoRa天线和GPS天线。夏天天气不太热,我很快就会看到此网关在明尼苏达州冬天天气中表现如何。我希望在封闭外壳内树莓派产生的热量可以防止硬件结冰,但是我不知道能不能行!(更新:树莓派即使在零下28华氏度(-33摄氏度)时也没有问题!!!)

天线杆是聚氯乙烯管,我用一根5米长的RG-58电缆将集中器板连接到玻璃纤维天线上。5米长的电缆有功率损耗,但考虑到这一点后,天线仍能提供净增益。我认为它看起来很棒,我希望我的邻居不要认为它碍眼。

我希望这个网关的设置文章对其他人有用!LoRa真是一项令人兴奋的学习技术。

你可能感兴趣的:(LoRa,实战)