首页 > 编程知识 正文

lora终端和网关之间的协议,lorawan单通道网关

时间:2023-05-05 11:30:36 阅读:227423 作者:4185

设置一个LoRa网关看起来很复杂,不过不用担心。我会先讲述一下原理,然后给大家演示一下如何完成一个LoRa网关的设置。

在本文中需要准备的软硬件:

我最近经常在玩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节点。

配置

因为很多软件已经预先在内存卡中配置好了,所以还是比较简单的。并不必在树莓上启用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/dmdkl**的位置。

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

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

该网关的特定信息会保存在这个文件里面**/opt/ttn-gateway/dmdkl/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": "完美的咖啡@nootropicdesign.com", "description": "nootropic design RAK831 LoRa gateway" }}

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

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

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

我的最终配置是**/opt/ttn-gateway/dmdkl/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上注册你的网关。这很简单。

外壳和天线

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

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

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

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。