使用Arduino开发板连接将SX1278(Ra-02)LoRa模块

 

预计到2020年,我们将有25亿台设备连接到互联网。换句话说,该数字超过今天地球人口的三倍。随着物联网和工业4.0、物联网汽车和智能城市的概念迅速传播,这种情况最有可能发生。我们已经拥有一些无线协议,如BLE、Wi-Fi、Cellular等,但这些技术并不适合物联网传感器节点,因为它们需要在不使用太多电力的情况下长距离传输信息。这导致了LoRa技术的兴起,它可以以低功耗执行超长距离传输。

 

随着ESP模块成为Wi-Fi应用的同义词,这种LoRa技术也具备建立像互联网这样庞大网络的能力。我们以前使用ESP8266和Arduino构建了许多基于IoT的项目,在本文中我们将了解LoRa以及如何将其与Arduino开发平台一起使用。

 

什么是LoRa?

LoRa一词代表(Long Range)长距离。这是一家名为Semtech的公司推出的无线射频技术。这种LoRa技术可用于远距离传输双向信息,而不会消耗太多电力。远程传感器可以使用此属性,只需操作小型电池即可传输数据。

 

通常情况下,Lora可以达到15-20km的距离(稍后会详细说明)并且可以使用电池多年。请记住,LoRa、LoRaWAN和LPWAN是三种不同的术语,不应相互混淆。我们将在本文后面简要讨论它们。

 

了解LoRa技术

在为仓库管理或现场监控提供的任何典型物联网解决方案中,将在现场部署数百个传感器节点,这些节点将监控重要参数并将其发送到云平台进行处理。但这些传感器应该是无线的,应该使用小型电池,以便携带。像RF这样的无线解决方案可以将数据发送到远距离,但需要更多的电力才能进行电池操作,而另一方面BLE可以用很少的电力工作但不能长距离发送数据。所以这就是需要LoRa的原因。

 

在LoRa中,我们可以在不使用大量功率的情况下实现高距离通信,从而克服了Wi-Fi和BLE通信的缺点。但是怎么可能呢?如果是这种情况,为什么BLE和RF仍然存在?

 

那是因为LoRa有自己的缺点。为了实现高功率LoRa带宽的远距离,它可以在非常低的带宽上运行。 Lora的最大带宽约为5.5 kbps,这意味着您只能通过LoRa发送少量数据。因此,您无法通过此技术发送音频或视频,它仅适用于传输较少的信息,如传感器值。下图显示了LoRa与Wi-Fi、蓝牙和Cellular蜂窝设备相比的位置。

使用Arduino开发板连接将SX1278(Ra-02)LoRa模块

 

 

许多人将LoRa与Wi-Fi或蓝牙进行比较,但这两者并不能在LoRa附近。蓝牙用于在两个蓝牙设备之间传输信息,Wi-Fi用于在接入点(路由器)和站(移动)之间传输信息。但LoRa技术主要不是为了在两个LoRa模块之间传输数据而发明的。

 

你可以认为LoRa更像是蜂窝通信。来自一个LoRa节点的信号通过LoRa网关到达另一个节点,如下图所示。

使用Arduino开发板连接将SX1278(Ra-02)LoRa模块

 

然后,这些网关将信息传递到互联网,最后通过应用程序界面传递给最终用户。同样,来自用户的数据也将通过网络服务器和网关到达节点。

 

LoRa节点通常在电池上运行,由无线电模块和微处理器组成。微处理器用于从传感器读取数据并通过无线电模块在空中发送,然后由LoRa网关接收。 LoRa网关还具有无线电模块和微处理器,但通常在交流电源上运行,因为它们需要更多电力。单个LoRa网关可以监听多个LoRa节点,而单个LoRa节点也可以向多个网关发送信息,这样来自节点的信息将被接入网关而不会丢失。当信息id从节点发送到网关时,它被称为上行链路,当它从网关发送到节点时,它被称为下行链路。

 

LoRa属于LPWAN类别,其中LPWAN代表低功率广域网(Low Power Wide Area Network)。在LPWAN上运行的不仅可以是LoRa,我们还有其他技术,如窄带物联网(NB-IOT)、Sigfox等,它们能够在同一个LPWAN中运行。一旦引入了LoRa技术,它就需要所有制造商遵循某些协议,因此形成了LoRa联盟,然后引入了LoRaWAN。 LoRaWAN是LPWAN的修改形式,它规定了物理层中LoRa应如何用于在节点、网关和互联网之间发送和接收数据的协议。

 

我可以使用LoRa通信多远?

关于LoRa的官方信息声称它可以达到715公里的视线距离。那是节点和网关之间没有障碍的时候。很少有人甚至实际上在212公里地面与地面之间进行通信,甚至使用气象气球达到702公里。

 

LoRa SX1278与Arduino

以上足够的理论让我们自己构建它并检查它是如何工作的。还记得我告诉你的两个LoRa模块不能相互通信的部分吗?好吧我说谎了......是的,LoRaWAN协议不允许两个LoRa模块之间的通信,但有一种称为无线电头包方法的技术,它遵循LoRaWAN协议,但允许我们与两个LoRa模块进行通信!因此,让我们使用两个LoRa模块和两个Arduino板从一块板上发送数据,然后在另一块板上接收数据。我们将在发射器端使用Arduino Uno,在接收端使用Arduino Nano。

 

我在这里使用的LoRa模块是SX1278 Ra-02,工作频率为433MHz。这里的免许可频率范围从865MHz到867MHz,因此我不允许在法律上长时间使用433MHz频率模块而不是用于教育目的。同样,检查您所在国家/地区允许的范围,并确保您可以使用特定的频率范围。 LoRa模块有不同的频率范围,最常见的是433MHz、915MHz和868MHz。模块后面将提到模块工作的频率。您也可以购买LoRa作为模块或只购买芯片。如果你计划只获得芯片,那么确保你的焊接技术是好的,因为它是一个很好的工作,焊接到LoRa芯片。以下是模块和芯片焊接线的版本,如下所示。

使用Arduino开发板连接将SX1278(Ra-02)LoRa模块

 

您的LoRa模块的下一个重要事项是您的天线。请记住,必须使用天线操作LoRa模块,否则输出发射功率将损坏模块。我使用的是433Mhz Lora模块,因此我的天线的额定频率为433MHz,您必须相应地选择天线。我的LoRa模块和天线如下所示。

使用Arduino开发板连接将SX1278(Ra-02)LoRa模块

 

 

发送端 - 连接LoRa SX1278与Arduino UNO

对于发送端,我们将使用Arduino UNO和我们的LoRa模块。将Arduino UNO与LoRa连接的电路图如下所示

使用Arduino开发板连接将SX1278(Ra-02)LoRa模块

 

LoRa模块由16个引脚组成,每侧有8个引脚。在这16个引脚中,有6个由GPIO引脚使用,范围从DIO0到DIO5,其中4个由接地引脚使用。该模块工作在3.3V,因此LoRa上的3.3V引脚连接到Arduino UNO板上的3.3V引脚。然后我们将LoRa上的SPI引脚连接到Arduino Board上的SPI引脚,如上所示。

 

我使用连接线在Arduino UNO和LoRa Module之间建立连接。设置如下所示。整个设置可以由移动电源供电,使其可移动以测试范围。

使用Arduino开发板连接将SX1278(Ra-02)LoRa模块

 

 

接收端 - 连接LoRa SX1278与Arduino Nano

对于接收端,我们将使用LoRa模块和Arduino Nano。您可以使用任何用于发射器和接收器的Arduino板,但请确保相应地连接它们。将Arduino Nano与LoRa连接的电路图如下所示

使用Arduino开发板连接将SX1278(Ra-02)LoRa模块

 

除了一个微小的变化之外,连接几乎保持不变。 LoRa模块的3.3V引脚不是由Arduino Nano供电,而是由外部3.3V稳压器供电。这是因为Arduino Nano上的板载稳压器无法为LoRa模块提供足够的电流来运行。除此之外,连接保持不变。

 

我在面包板上建立连接并使用我们之前建造的可信赖的旧面包板电源。 另请注意,我使用的LoRa模块不是很适合面包板,因此我使用了两个小面包板来进行连接,如下所示。

使用Arduino开发板连接将SX1278(Ra-02)LoRa模块