零基础搭建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网关搭建的全部教程,有疑问也可以私信提问哦,有问题的话也欢迎各路大神指出

  • 27
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
E106 LoRa网关代码是用于管理和控制E106型号的LoRa网关设备的程序代码。这些代码负责与物联网设备通信并传输数据。在编写代码之前,需要了解以下几个关键概念和功能: 1. LoRa技术:LoRa是一种低功耗的长距离无线通信技术,适用于物联网应用。LoRa通过使用长距离、低速率和低功耗的调制方式,实现了在室内和室外环境下的长距离通信。 2. 网关网关是连接物联网设备和云服务器的中间设备,负责将物联网设备发送的数据传输给云服务器,并将云服务器的命令传输给物联网设备。 3. E106:E106是一种常见的LoRa网关设备,具有低功耗、高性能和可靠性。它支持多种通信方式,如Wi-Fi和以太网,可以连接到云服务器,并与物联网设备进行双向通信。 在编写E106 LoRa网关代码时,需要实现以下功能: 1. 网络连接:代码需要确保LoRa网关与云服务器的网络连接可用。可以使用Wi-Fi或以太网连接来实现网络通信。 2. 数据接收:代码需要接收来自物联网设备的数据。E106 LoRa网关可以同时接收多个物联网设备发送的LoRa数据包。 3. 数据传输:代码需要将接收到的数据传输给云服务器。可以使用MQTT或HTTP等通信协议来实现数据传输。 4. 数据解析:代码需要解析接收到的数据,并将其格式化为可读性强的格式。可以使用JSON或其他数据格式来实现数据的解析和处理。 5. 云服务器通信:代码需要处理来自云服务器的命令,并将其传输给物联网设备。可以使用MQTT或HTTP等通信协议来实现与云服务器的通信。 总之,E106 LoRa网关代码是为了实现LoRa网关物联网设备和云服务器之间的通信和数据传输而编写的程序代码。这些代码可以确保LoRa网关设备的正常运行,并可靠地将数据从物联网设备传输到云服务器,同时也能接收来自云服务器的命令,并将其传输给物联网设备。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值