零基础搭建lora网关

2 篇文章 0 订阅
1 篇文章 0 订阅

目录

一、基础知识介绍

1.LoRa网关

2.网关芯片

二、物品准备

三、树莓派系统制作

方法一

闪存SD卡

使用Balena Etcher

使用Win32DiskImager

方法二

四、网关配置

1.远程连接

2.准备工作

3.配置网关并运行

下载源代码

运行


一、基础知识介绍

1.LoRa网关

  • LoRa网关是连接终端设备和LoRaWAN网络的设备,负责收集来自多个LoRa基站的数据并将其传输到云端。
  • LoRa网关收集LoRa基站传输的消息,并将这些消息转发到LoRaWAN服务器,从而实现设备到云端的通信。
  • 网关通常执行数据包的转发、加密解密以及与LoRaWAN服务器的通信。

2.网关芯片

(1)SX1301

  • SX1301是Semtech推出的第一代LoRa物理层基带处理器,专门设计用于LoRaWAN网关。
  • 它支持多通道、多调制解调的功能,能够同时监听多个LoRa通道,并处理多个终端设备的通信。
  • SX1301提供了灵活的接口,可以与不同类型的射频前端和主控制器(MCU)进行集成,使其适用于各种LoRa网关实现。

  (2)SX1302

  • SX1302是SX1301的进化版本,引入了一些改进和新功能,以提高性能和灵活性。
  • SX1302支持更多的并行通信通道,提高了网关的容量和吞吐量。
  • 它引入了Digital Front End(DFE)技术,用于增强接收性能和处理复杂的通信场景。
  • SX1302还具有更先进的自动频率和时钟校准功能,有助于提高整个LoRaWAN系统的稳定性。

  (3)SX1303

  • SX1303 是 Semtech 推出的 LoRa 物理层基带处理器系列中的最新型号。
  • 提供更高的性能和处理能力,能够更有效地处理多通道、多终端设备的通信。
  • 改进了接收性能,提高了灵敏度,使其在复杂的通信环境中更为可靠。
  • 引入 Digital Front End(DFE)技术,用于改善接收性能。

这三款处理器均设计用于 LoRaWAN 网关,通过与射频前端、微控制器和其他硬件组件配合使用,实现了 LoRaWAN 网关的功能。它们为长距离、低功耗的物联网通信提供了关键的支持。

二、物品准备

1.树莓派4/4b(记得要有转接板)

2.闪存SD卡、读卡器

3.SX1302/SX1303模块(频段需要和节点一致)

以上是树莓派和lora网关模块组合起来的实物展示图

三、树莓派系统制作

方法一

使用SD卡出厂镜像:

https://artifacts.chirpstack.io/downloads/chirpstack-gateway-os/4.2.0/raspberrypi/bcm27xx/bcm2709/chirpstack-gateway-os-4.2.0-full-bcm27xx-bcm2709-rpi-2-squashfs-factory.img.gz

Sysupgrade镜像:

https://artifacts.chirpstack.io/downloads/chirpstack-gateway-os/4.2.0/raspberrypi/bcm27xx/bcm2709/chirpstack-gateway-os-4.2.0-full-bcm27xx-bcm2709-rpi-2-squashfs-sysupgrade.img.gz

闪存SD卡

下载基础或完整 SD 卡映像,以备不时之需 Pi 版本。

使用Balena Etcher

  • 下载适用于 Raspberry Pi 的 SD 卡映像。
  • 点击 从文件刷新Balena Etcher界面中的选项。
  • 刷新 SD 卡。

使用Win32DiskImager

  • 下载 Raspberry Pi 的 SD 卡映像(以 结尾)。.wic.gz
  • 例如,使用7-zip提取图像。.img.gz
  • 在Win32DiskImager界面中,选择提取的文件。.img
  • 刷新 SD 卡。

方法二

直接使用官方提供的树莓派烧录器进行系统镜像烧录,以下是百度网盘的提取链接

链接:https://pan.baidu.com/s/1XkKuFEz9fQnigQEe2hI9vQ?pwd=1dmh 
提取码:1dmh 

系统制作完毕后将树莓派与显示器连接,操作树莓派系统进行之后的操作

如图选择好自己的设备型号,以及操作系统(注意64位的操作系统可能会烧录失败,可以选择32位的操作系统)还有要存储镜像的SD卡位置 ,点击NEXT等待一段时间就可以烧录完成啦

四、网关配置

1.远程连接

在自己主机上用ssh远程连接树莓派系统(注意需要保持树莓派与主机处于同一个局域网下)

(关于ssh的教程网上都可以查到,这里不作讲述,大家可以自行上网查找,非常简单)

2.准备工作

树莓派需要开启SPI接口和I2C接口

在树莓派终端输入命令

sudo raspi-config

进入如下界面

选择Interface Options进入下一个界面后选择SPI和I2C一直选择确认开启就好啦

3.配置网关并运行

下载源代码

git clone https://gitee.com/rejeee/gw1302s.git

之后依次进行如下操作

cd gw1302s
TARGET_DIR=/home/name/gw1302s/bin
make clean all
make install
make install_conf

之后配置global_conf.json文件,下面是我选用的json文件展示

{
    "SX130x_conf": {
        "com_type": "SPI",
        "com_path": "/dev/spidev0.0",
        "lorawan_public": true,
        "clksrc": 0,
        "antenna_gain": 0, /* antenna gain, in dBi */
        "full_duplex": false,
        "fine_timestamp": {
            "enable": false,
            "mode": "all_sf" /* high_capacity or all_sf */
        },
        "sx1261_conf": {
            "spi_path": "/dev/spidev0.1",
            "rssi_offset": 0, /* dB */
            "spectral_scan": {
                "enable": false,
                "freq_start": 903900000,
                "nb_chan": 8,
                "nb_scan": 2000,
                "pace_s": 10
            },
            "lbt": {
                "enable": false /* LBT for 500 Khz channels is not supported */
            }
        },
        "radio_0": {
            "enable": true,
            "type": "SX1250",
            "freq": 904300000,
            "rssi_offset": -215.4,
            "rssi_tcomp": {"coeff_a": 0, "coeff_b": 0, "coeff_c": 20.41, "coeff_d": 2162.56, "coeff_e": 0},
            "tx_enable": true,
            "tx_freq_min": 923000000,
            "tx_freq_max": 928000000,
            "tx_gain_lut":[
                {"rf_power": 12, "pa_gain": 0, "pwr_idx": 15},
                {"rf_power": 13, "pa_gain": 0, "pwr_idx": 16},
                {"rf_power": 14, "pa_gain": 0, "pwr_idx": 17},
                {"rf_power": 15, "pa_gain": 0, "pwr_idx": 19},
                {"rf_power": 16, "pa_gain": 0, "pwr_idx": 20},
                {"rf_power": 17, "pa_gain": 0, "pwr_idx": 22},
                {"rf_power": 18, "pa_gain": 1, "pwr_idx": 1},
                {"rf_power": 19, "pa_gain": 1, "pwr_idx": 2},
                {"rf_power": 20, "pa_gain": 1, "pwr_idx": 3},
                {"rf_power": 21, "pa_gain": 1, "pwr_idx": 4},
                {"rf_power": 22, "pa_gain": 1, "pwr_idx": 5},
                {"rf_power": 23, "pa_gain": 1, "pwr_idx": 6},
                {"rf_power": 24, "pa_gain": 1, "pwr_idx": 7},
                {"rf_power": 25, "pa_gain": 1, "pwr_idx": 9},
                {"rf_power": 26, "pa_gain": 1, "pwr_idx": 11},
                {"rf_power": 27, "pa_gain": 1, "pwr_idx": 14}
            ]
        },
        "radio_1": {
            "enable": true,
            "type": "SX1250",
            "freq": 905000000,
            "rssi_offset": -215.4,
            "rssi_tcomp": {"coeff_a": 0, "coeff_b": 0, "coeff_c": 20.41, "coeff_d": 2162.56, "coeff_e": 0},
            "tx_enable": false
        },
        "chan_multiSF_All": {"spreading_factor_enable": [ 5, 6, 7, 8, 9, 10, 11, 12 ]},
        "chan_multiSF_0": {"enable": true, "radio": 0, "if": -400000},  /* Freq : 903.9 MHz*/
        "chan_multiSF_1": {"enable": true, "radio": 0, "if": -200000},  /* Freq : 904.1 MHz*/
        "chan_multiSF_2": {"enable": true, "radio": 0, "if":  0},       /* Freq : 904.3 MHz*/
        "chan_multiSF_3": {"enable": true, "radio": 0, "if":  200000},  /* Freq : 904.5 MHz*/
        "chan_multiSF_4": {"enable": true, "radio": 1, "if": -300000},  /* Freq : 904.7 MHz*/
        "chan_multiSF_5": {"enable": true, "radio": 1, "if": -100000},  /* Freq : 904.9 MHz*/
        "chan_multiSF_6": {"enable": true, "radio": 1, "if":  100000},  /* Freq : 905.1 MHz*/
        "chan_multiSF_7": {"enable": true, "radio": 1, "if":  300000},  /* Freq : 905.3 MHz*/
        "chan_Lora_std":  {"enable": true, "radio": 0, "if":  300000, "bandwidth": 500000, "spread_factor": 8,						/* Freq : 904.6 MHz*/
                           "implicit_hdr": false, "implicit_payload_length": 17, "implicit_crc_en": false, "implicit_coderate": 1},
        "chan_FSK":       {"enable": false, "radio": 1, "if":  300000, "bandwidth": 125000, "datarate": 50000}						/* Freq : 868.8 MHz*/
    },

    "gateway_conf": {
        "gateway_ID": "AA555A0000000000",
        /* change with default server address/ports */
        "server_address": "",
        "serv_port_up": 1700,
        "serv_port_down": 1700,
        /* adjust the following parameters for your network */
        "keepalive_interval": 10,
        "stat_interval": 30,
        "push_timeout_ms": 100,
        /* forward only valid packets */
        "forward_crc_valid": true,
        "forward_crc_error": false,
        "forward_crc_disabled": false,
        /* GPS configuration */
        "gps_tty_path": "/dev/ttyS0",
        /* GPS reference coordinates */
        "ref_latitude": 0.0,
        "ref_longitude": 0.0,
        "ref_altitude": 0,
        /* Beaconing parameters */
        "beacon_period": 0, /* disable class B beacon */
        "beacon_freq_hz": 869525000,
        "beacon_datarate": 9,
        "beacon_bw_hz": 125000,
        "beacon_power": 14,
        "beacon_infodesc": 0
    },

    "debug_conf": {
        "ref_payload":[
            {"id": "0xCAFE1234"},
            {"id": "0xCAFE2345"}
        ],
        "log_file": "loragw_hal.log"
    }
}

将json文件中server_address之后的内容改成所搭建服务器的ip,两个port改为1700

(chirpstack服务器搭建教程在我的上一篇博客中有详细讲述)

运行

输入命令开启网关

./lora_pkt_fwd -c ***.json

有下面的显示就说明网关已经成功开启,可以接入服务器

以上就是Lora网关搭建的全部教程,有疑问也可以私信提问哦,有问题的话也欢迎各路大神指出

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值