在过去的几年里,有许多通信技术可用于物联网设备之间的交互。最受欢迎的是Wi-Fi技术和蓝牙模块。但是它们都有一些不足之处,例如有限的通信距离和接入点。Wi-Fi和蓝牙技术的功耗很高,如果您使用电池供电的移动设备,电池电量会很快耗尽。
蜂窝网络和局域网也是如此,它们也存在高功耗问题。局域网和蜂窝网络覆盖广泛区域都非常昂贵。在过去的几年里,物联网行业引入了许多技术,但没有一个被证明是理想的。物联网设备需要在不消耗大量电力的情况下长距离传输信息。因此,当LoRa技术被引入时,物联网领域发生了一场革命。LoRa技术可以以低功耗执行超远距离传输。Lora应用包括智能水监测、电器远程控制、智能停车、自主灌溉、智能农业和土壤健康监测。
在本篇文章中,我们将介绍如何将SX1278 LoRa模块Ra-02连接到Arduino开发板。在示例中,我们将使用SX1278 LoRa和Arduino制作发射器和接收器电路,实现使用电位器无线控制LED灯的亮度。
什么是LoRa技术?
LoRa一词全称是Long Range,代表长距离。它是一个远程、低功耗的无线平台,已成为全球物联网网络的事实技术。LoRa是一种源自啁啾扩频 (CSS) 技术的扩频调制技术。该技术是由一家名为Semtech的公司推出的。
LoRa模块实际上有不同的频率范围,最常见的是433MHz、915MHz和868MHz。这种LoRa技术可用于将双向信息传输到长距离(15-20 公里),而不会消耗太多功率。该技术可用于公共、专用或混合网络,并提供比蜂窝网络更大的覆盖范围。LoRa技术可以轻松插入现有基础设施,并支持低成本电池供电的物联网应用。
了解LoRa技术及其工作原理 基本原理是使用啁啾(chirp)(载波频率随时间逐渐增加或减少)对信息进行编码。在发送消息之前,LoRa发射器会发出一个啁啾信号,以检查频段是否可以自由发送消息。一旦LoRa接收器从发送器接收到前导码啁啾,反向啁啾会发出前导码结束的信号,这会告诉LoRa发送器可以开始传输。
在上图所示的架构中的各个组件信息如下: 1. 设备: 由LoRa调制、收发器和终端节点以及微微蜂窝和网关组成。 A. LoRa调制:LoRa技术是物理 (PHY) 硅层或无线调制,用于创建远程通信链路。 B. 收发器和终端节点:采用LoRa技术配置的收发器嵌入到终端节点或传感器设备中,专为众多行业应用而设计。 C. Picocells和网关:传感器以最小的功率要求捕获远近、室内和室外的距离并将数据传输到网关。
2. 网络服务器: 网关通过Wi-Fi、以太网或蜂窝网络向网络服务器发送信息,网络服务器负责无线激活、重复数据删除、动态帧路由、自适应速率控制、流量管理和管理等网络管理功能。
3. 应用服务器和云物联网服务: 应用程序解释由支持LoRa的设备收集的数据,应用机器学习和人工智能等技术来解决智慧星球的业务问题。
Semtech SX1278 LoRa模块 SX1276/77/78/79收发器采用LoRa远程调制解调器,可提供超远程扩频通信和高抗干扰性,同时最大限度地减少电流消耗。
SX1278可以使用低成本晶振实现超过-148dBm的灵敏度。高灵敏度与集成的+20dBm功率放大器相结合,产生了行业领先的链路预算,使其成为任何需要范围或稳健性的应用的最佳选择。与传统调制技术相比,Lora SX1278在阻塞和选择性方面也具有显着优势,解决了传统设计在范围、抗干扰性和能耗之间的折衷问题。
Semtech SX1278模块的应用 1. 自动抄表 2. 家庭和楼宇自动化 3. 无线报警和安全系统 4. 工业监控 5. 远程灌溉系统
Semtech SX1278模块引脚排列 市场上有不同版本和类型的SX1278分线板模块。但基本上它们都具有相同的引脚排列,因为LoRa SX1278是一个SPI模块。本文使用的是以下的模块。
该SX1278模块有12个用于与微控制器连接的引脚以及另外两个用于天线的引脚。
SX1278 LoRa模块与Arduino的硬件连接 本文使用的LoRa模块是SX1278 Ra-02,工作频率为433MHz。但是这个模块不是面包板友好的,也没有焊接天线。因此,需要焊接了几个插头,使其对面包板友好。同时还焊接了天线。
现在让我们学习SX1278模块与Arduino的连接。本文将使用两个LoRa模块和两个Arduino开发板,从其中一个Arduino开发板上发送数据并在另一个板上接收数据。我们将在发送端使用Arduino Nano,在接收端使用Arduino Uno。
让我们分别看看发射器和接收器部分的电路。
Arduino和LoRa SX1278组成的发射器部分 Arduino开发板和LoRa SX1278模块组成的发射器的电路图如下所示。您可以为该电路制作PCB,也可以在面包板上将其组装。
LoRa SX1278模块不兼容5V电平,因此不要为其提供5V电压,否则电路板会损坏。将VCC引脚连接至Arduino的3.3V引脚。将所有GND引脚连接到Arduino的GND。将RST引脚连接到Arduino开发板的D9引脚,DIO0引脚连接到D2。将SPI引脚NSS、MOSI、MISO、SCK分别连接到Arduino开发板的D10、D11、D12、D13,如上图电路图所示。
使用10K电位器,将电位器的中间引脚连接到Arduino开发板的A0,其余两个引脚分别连接到GND和5V。
Arduino和LoRa SX1278组成的接收器 同样,Arduino开发板和LoRa SX1278模块组成的接收器的电路图如下所示。您可以为该电路制作PCB,也可以在面包板上将其组装。
LoRa SX1278模块不兼容5V电平,因此不要为其提供5V电压,否则电路板会损坏。将VCC引脚连接至Arduino的3.3V引脚。将所有GND引脚连接到Arduino的GND。将RST引脚连接到Arduino开发板的D9引脚,DIO0引脚连接到D2。将SPI引脚NSS、MOSI、MISO、SCK分别连接到Arduino开发板的D10、D11、D12、D13,如上图电路图所示。
将LED指示灯连接到Arduino开发板的D3引脚。
代码 要实现在两个LoRa模块之间的通信,需要使用LoRa库。转到库管理器,搜索LoRa并安装。
发射器电路部分的完整代码:
Transmitter.rar
(386 Bytes, 下载次数: 15)
接收器电路部分的完整代码:
Receiver.rar
(478 Bytes, 下载次数: 16)
上传代码后,您可以开始测试,旋转电位器的旋钮并观察LED的亮度。也可以检查串口监视器中的值。
以上就是将SX1278 LoRa模块Ra-02连接到Arduino开发板的全部内容。如果有任何疑问,请随时在本帖下面回复。 |