基于树莓派的双通道LoRa网关设计

基于树莓派信道分配的双通道LoRa网关

摘要

本研究旨在通过使用信道分配方法设计和实现LoRa网关的双通道。实验结果表明,在1.15公里距离下,LoRa网关能够与传感器节点良好连接。在取得这一距离成功的基础上,可以直观地分析RSSI、数据速率及其他元数据的数值,以及如何基于队列选择信道,而目前的重点是优先考虑单通道。

引言

LoRa网关是一种利用射频(RF)的远程通信系统。LoRa网关具有低功耗和低比特率的特点,同时[1]。目前,LoRa网关本身已得到广泛应用,因其能够将数据从终端节点传输到服务器并达到非常远的距离。凭借这一能力,LoRa网关可应用于市政基础设施、健康监测以及环境质量的实时监控,或在需要时即时获取所需数据[2][3]。

在从仅使用WiFi信号的传感器中获取数据的情况下,例如在校园环境中利用WiFi将数据转发给传感器时,传感器与用户之间的距离必须较短,WiFi所能覆盖的距离仅为约30米,且数据速率较高;而使用LoRa网关后,距离问题不再存在,LoRa网关通过利用射频(RF)信号,在视距(LOS)条件下可达约2.5公里的距离,即使存在障碍物也是如此。

尽管LoRa的比特率较低,但其在距离上具有优势,因此提出了在LoRa网关上实现双通道的想法,旨在使网关能够正常连接,并利用所拥有的射频(RF)[5]将来自终端节点的数据包转发至服务器。

在实验中,The Things Network(TTN)[3] 已在单通道上实现,该通道作为 LoRa 网关。这些实验的结果是获得包含后续可分析信息的结果或元数据,但所使用的 LoRa 网关仅能将数据包转发至一个终端节点,若类比于网络拓扑,则该网关的作用仅类似于一个交换机,其缺点在于至少只能使用一个传感器模块。

本文中,LoRa采用基于树莓派的双通道网关,并使用信道分配方法。该信道分配方法可采用固定或动态方式,以优化可用信道,同时还提供了通过LoRa在单通道或双通道中发送数据的示意图。

2. LoRa网关

LoRa,其全称为LoRa(“长距离”的缩写)是由LoRa联盟推广的一种远距离通信系统,该系统旨在用于电池寿命较长的电池供电设备,其中功耗至关重要[6]。因此,尽管LoRa网关存在低比特率的缺点,但仍要求其具备低功耗特性。

示意图0

LoRa 通常指两个不同的层次:(i)使用无线电调制技术啁啾扩频(CSS)[2],的物理层;以及(ii)媒体访问控制层协议(LoRaWAN),尽管 LoRa 通信系统也意味着一种特定的接入网络架构。

LoRa物理层由Semtect开发,支持远程通信、低功耗和低吞吐量。LoRa本身工作在ISM频段的433、868和915 MHz,具体取决于使用区域。每次传输的数据负载范围为2‐255字节,当采用信道聚合时,数据速率最高可达50千比特每秒。LoRa是一种典型的星型拓扑网络,包含三种不同类型的设备,其架构如图1所示。

LoRaWAN网络的基本架构如下:终端设备与网关进行通信。网关通过高吞吐量的回传接口(通常是以太网或3G)将来自设备的帧转发到网络服务器。因此,网关仅作为双向中继或协议转换器,而网络服务器负责解码设备发送的数据包,并生成应返回给设备的数据包。LoRa 终端设备类别分为三类,它们的区别仅在于下行链路的调度方式。

3. 研究方法

a. 信道分配

本研究采用的方法是将通道选择正确地作为路径队列。如果单通道只有一条通道,会导致队列积压,从而使终端节点需要大量时间才能将数据发送到服务器;而如果是两条通道构成的双通道,则数据从终端节点传输可以通过两条线路更顺畅地进行,速度比单通道更快。

在无线网状网络(WMN)中,无线接口的数量远高于可用信道的数量。因此,许多网状节点之间的传输将使用相同的信道,这会导致相互干扰,并显著降低其使用率[7]。减少干扰的关键因素是使用非重叠信道(IEEE 802.11b/g 标准提供 3 个,IEEE 802.11a 标准最多提供 12 个非重叠信道)。为接口进行信道分配时,必须确保节点之间尽可能多的可用路径(节点在相邻传输之间必须共享相同信道以维持连通性)。

信道分配算法可以根据信道分配方案[8]所修改的频率分为三大类:固定、动态和混合。

本研究将聚焦于两种方法:固定信道分配和动态信道分配,两者的区别在于:

  • 固定信道分配 (FCA)
    固定信道分配是一种在每个小区中永久性分配信道的技术。由于在此系统中每个小区的分配保持不变,因此需要进行固定信道管理。如果所有信道都被占满,则小区将被阻塞,有时会采用从邻近小区借用信道的策略[7]。

  • 动态信道分配(Dynamic Channel Allocation,DCA)
    动态信道分配是一种在小区中不永久分配信道的技术。DCA策略的基本概念是:当每个小区的业务负载不均匀时,若为各小区平均分配频率信道,则在业务负载稀疏的小区中频率信道常常未被使用,而在高密度业务负载的小区中则会发生阻塞。DCA技术能够在业务负载增加时分配频率信道,并在业务负载减少时释放该频率信道[7]

b. 设计工具

本实验中,节点端使用LoRa Mini Dev结合温湿度传感器DHT11,而网关端则采用GPS LoRa HAT与树莓派B型组合。

示意图1

示意图2

在节点侧,使用已配置所需库的Arduino IDE程序向LoRa mini上传草图;而在网关侧,则需要一个转发器,用于将数据包转发至服务器,该转发器已在GitHub上提供,可根据所用工具调整其设置。

因此,设备要被TTN服务器检测到,需要激活方法,激活方法本身分为两种:ABP(通过个性化激活)和 OTAA(空中激活)。

a. OTAA(空中激活)

这种激活方法是一种空中激活方式,更准确地说是通过握手方案实现的,该激活方法需要在其他方之间共享信息:

  • AppEUI :用于唯一标识应用程序的64位地址,可用来对数据进行分类,还可用于对外围设备进行分类,并可调整相应设置。
  • DevEUI :应用标识符在出厂时设置,无法更改
  • APPKey :这是设备与网络外围设备之间共享的密钥,用于确定会话密钥。这些设置可以调整。

使用OTAA激活方式的优点是具有强大的安全系统,因为网络会生成并发送加密密钥。

b. ABP(Activation By Personalization)

此激活方法更简单,因为只需输入所需信息设备即可连接,但此方法的安全性非常弱,所需信息包括:

  • 设备地址 :逻辑地址用于标识网络。
  • 网络会话密钥 :用于对象与载体之间传输的加密密钥,并用于验证消息的完整性。
  • 应用会话密钥 :对象与用户之间(通过应用程序)用于传输并验证消息完整性的加密密钥。

本研究采用了ABP激活方法,尽管该方法在安全性方面存在不足,但其激活过程在节点和服务器两侧均较为简便。在两侧完成激活后,网关的任务是将传感器节点传输的数据转发至服务器,使用的无线电信号频率相同,均位于868兆赫。

示意图3

在树莓派的一侧,LoRa GPS/帽子模块负责将来自LoRa mini的数据包转发到服务器。当 LoRa帽子与LoRa mini之间频率相同时,它们将能够正确连接。数据包成功转发的距离取决于两者之间的距离和障碍物。

伪代码:节点/传感器程序

输入 :来自传感器的数据
输出 :温度和湿度值

全局声明:
网络会话密钥 <- 0xD0, 0x9F, 0xDB, 0x55, 0x95, 0xF6, 0x69, 0xA7, 0x6D, 0x06, 0x5F, 0x50, 0xEC, 0x82, 0xBB, 0x1D -> 常量字符
应用会话密钥 <- 0x84, 0xD0, 0x2F, 0xD1, 0x08, 0xAD, 0xB8, 0xBE, 0x5E, 0xCD, 0xC7, 0x97, 0x48, 0xAE, 0x67, 0x37 -> 常量字符
设备地址 <- 0x26011C47 -> 常量字符

初始化程序():
{
    设置D0引脚模式
    启动串口()
    启动激活(网络会话密钥,应用会话密钥,设备地址)
    当激活未连接时
        设置延迟 1000 毫秒
        向串口打印“正在连接”
    结束循环
}
结束设置

循环程序():
{
    湿度 <- 读取湿度() -> float
    温度 <- 读取温度() -> float
    将湿度打印到串口
    将温度打印到串口
    数据 <- 温度, 湿度 -> 字符
    如果已连接的激活则
        HTTP -> HTTP客户端
        启动HTTP
        HTTP状态码 <- GET请求() -> 整数
        如果 HTTP状态码 大于0 则
            负载 <- 获取字符串() -> 字符串
            将负载打印到串口
        结束如果
        停止 HTTP
    结束 if
    设置延迟 1000 毫秒
}
结束循环

4. 结果与讨论

在这项深入的研究中共同进行了一项实验,有障碍物时的距离为± 1.15公里,视距(LOS)下为700米。实际上LoRa本身的通信距离超过该范围,但由于空间有限,因此获得的最大距离为± 1.15公里。以下是来自谷歌地图距离的截图:

示意图4

示意图5

在LoRa中有一种称为扩频因子(SF)的技术,LoRa扩频调制通过生成频率连续变化的线性调频信号来实现。这种技术的优势在于方法是发射器和接收器之间的定时和频率偏移相等,从而大大降低了接收器设计的复杂性。扩频因子是一组参数,用于指定发射功率、子频率和空中传输时间。LoRa定义了从6到12的扩频因子,其中LoRaWAN使用7到12。扩频因子越低,吞吐量越高,覆盖距离越短。此外,较低的扩频因子意味着更低的功耗。

扩频因子 (SF) 带宽 (kHz) 数据速率范围 (bps)
7 125 ~5.47
8 125 ~3.91
9 125 ~2.15
10 125 ~1.08
11 125 ~0.54
12 125 ~0.27

表1. 数据速率和扩频因子

从实验输出数据中,除了温度和湿度外,还有其他数据,如下图所示:

示意图6

在图4中,元数据列包含其自身的值,而图4中出现的值的平均值为:
1. 频率 :使用的频率“868.1”为868.1。
2. LoRa扩频因子 :在LoRa扩频调制中,通过生成频率连续变化的线性调频信号来实现。该方法的优点是发射器与接收器之间的定时和频率偏移等效,大大降低了接收器设计的复杂性。
3. 调制 :“LORA”是一种用于研究的模块,即LORA。
4. 数据速率 :“SF7BW125”是每秒发送的比特数,可通过以下公式计算数据速率:

$$
R_b = \frac{SF \times BW}{2^{SF} \times CR}
$$

其中:
- $ R_b $ = 数据速率
- $ SF $ = 扩频因子
- $ BW $ = 带宽
- $ CR $ = 编码率

代入数值:
$$
R_b = \frac{7 \times 125}{2^7 \times 4/5} = \frac{875}{128 \times 0.8} = \frac{875}{102.4} \approx 5.46875 \text{ bps}
$$

因此,生成的数据速率为 5.46875 bps

  1. 网关 :在本节中,RSSI和SNR值受距离和障碍物的影响较大,图4显示了RSSI = -71和 SNR = 9的值。为确定所获得信号的质量,需使用以下公式:

$$
\text{质量} = 2 \times (dBm + 100)
$$

其中 $ dBm \in [-100, -50] $

计算得:
$$
\text{质量} = 2 \times (-71 + 100) = 2 \times 29 = 58\%
$$

因此,在图4的数据接收中,信号质量处于正常范围,其SNR值为9,意味着噪声水平一般(足够),但容易受到网络变化的影响。在质量方面,数值为58%,这意味着信号质量处于良好水平;当RSSI在-100至-50的敏感范围内增加时,信号质量更加理想。RSSI的值会根据发射器到接收器之间的距离和阻碍接收过程的障碍物而变化。

5. 结论

在测试中已完成,然后得出以下结论:
1. LoRa能够在视距(LoS)条件下以± 1.15公里的远距离很好地接收节点/传感器发送的数据,但如果存在距离障碍或遮挡物,则在数据发送前需要更长时间并面临较多障碍。
2. RSSI受距离和遮挡物影响显著,距离越远、障碍物越多,RSSI值越小,可能导致网关接收数据包时出现阻碍。这一点通过节点与网关之间的连接得以证实,并在图7所示的数据结果中体现出来;在此情况下,即使通信耗时较长,1.15公里距离仍能保持连接,原因在于节点与网关之间存在距离和障碍物。
3. 使用ABP激活方式的节点能够快速获得准确结果并迅速连接,但必须手动注册,且该激活方式安全性较低,因为设备ID不会像OTAA方法那样自动加密。
4. LoRa扩频因子对节点与网关之间的连通性影响很大,当SF设置为7时,尽管通信过程中存在较多噪声,但第二个设备(chirp)仍能持续接收到重复的ping数据包。
5. 在本案例中使用信道分配时,采用固定信道分配方式进行数据发送仍然依赖于队列机制,导致待传输数据在队列中积压,造成较长时间的等待后才能继续发送后续数据。
6. 经过对数据速率值的计算,得出实际使用的LoRa数据速率为 5.46875 bps ,这表明当前使用的是 SF7,使得发射器与接收器之间的连接更加迅速,也更容易将传感器数据发送到服务器。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值