littlebot
Published on 2025-04-09 / 0 Visits
0

【源码】基于Arduino的SX12XX LoRa通信库

项目简介

本项目是一个Arduino LoRa库,与其他库不同之处在于,它为常见应用提供了大量工作示例。该库支持多种Semtech LoRa设备,可用于各类LoRa模块的开发,致力于让相同的程序草图能跨不同频段的LoRa模块使用。此外,它实现了直接访问LoRa设备内部数据缓冲区的功能,代码风格简单易懂,便于用户根据自定义应用进行修改。

项目的主要特性和功能

  1. 丰富的示例程序:包含基本收发示例,以及发送接收传感器数据、远程控制设备、GPS跟踪、低功耗睡眠模式应用、高空气球跟踪、大数据数组或文件传输、图像收发、可靠数据包传输、距离测量等多种实际应用场景。
  2. 可靠数据包传输:库函数自动为每个数据包附加有效负载CRC和网络ID,接收器可确认数据包来源和顺序,发送器可要求接收器有效确认响应后再继续传输。
  3. 直接访问内部缓冲区:可将变量或字符数据直接写入LoRa设备内部缓冲区,无需在Arduino中使用内存缓冲区,简化数据包收发方式。
  4. 多设备支持:支持SX1262、SX1268、SX1272、SX1276 - SX1279、SX1280、SX1281等Semtech LoRa设备。
  5. 灵活的引脚配置:支持SPI总线,可根据不同模块灵活设置引脚,还提供减少引脚使用的方法。
  6. 详细的设备设置:提供多种库函数用于设置LoRa设备的工作模式、频率、调制参数、数据包参数等。

安装使用步骤

安装库

  1. 打开Arduino IDE,选择“Sketch”,然后选择“Include Library”。
  2. 选择“Add .ZIP library”,浏览并选择下载的ZIP文件(“SX12xx - master.zip”)。

测试新设置

可以先运行“Basics”文件夹中的“2_Register_Test”示例程序,该程序仅对LoRa设备进行简单的寄存器打印。若此程序无法运行,则其他示例程序也可能无法正常工作。此程序独立运行,无需安装库。

运行示例程序

  1. 许多示例程序已在SX126x设备上测试通过,在SX127x库上编写并测试的示例程序,只需进行一些小修改即可在SX126x和SX128x设备上运行。
  2. 部分示例中的“Settings.h”文件包含LoRa设备的设置,如频率、扩频因子、带宽和编码率等。使用时需检查所在地区是否允许使用相应频率。
  3. 一些示例草图,特别是相机和文件传输草图,使用了额外的Arduino库,部分库需自行下载安装。

注意事项

  1. 此库支持的Semtech设备为3.3V逻辑电平设备,若使用5V逻辑电平的Arduino,需实现某种形式的逻辑电平转换。
  2. 本库仅支持基于SPI接口的LoRa模块,不支持基于UART接口的模块,如Ebyte和Microchip的模块。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】