littlebot
Published on 2025-04-15 / 1 Visits
0

【源码】基于Arduino和C语言的LoRaWAN通信库项目

项目简介

本项目是经修改后可在Arduino环境运行的IBM LMIC(LoraMAC-in-C)库,支持SX1272、SX1276收发器及兼容模块。它提供完整的LoRaWAN Class A和Class B实现,支持EU - 868和US - 915频段,助力开发者在Arduino平台实现LoRaWAN通信功能。

项目的主要特性和功能

  1. LoRaWAN功能实现:实现完整的LoRaWAN Class A和Class B功能,支持设备入网、数据收发及网络消息处理。
  2. 硬件适配:支持SX1272和SX1276系列收发器,可与多种Arduino板配合使用。
  3. 数据传输:支持考虑占空比的上行数据包发送、RX2窗口的下行数据包接收,支持自定义频率和数据速率。
  4. 安全机制:具备加密和消息完整性检查功能。
  5. 网络激活:支持空中激活(OTAA / 加入)方式。

安装使用步骤

安装库

  • 使用Arduino库管理器安装:选择“Sketch” -> “Include Library” -> “Manage Libraries...”进行安装。
  • 复制仓库安装:将此Git仓库复制到你的sketchbook/libraries文件夹。

配置

  1. 编辑库文件夹中的config.h文件,配置或禁用部分功能,至少设置正确的收发器类型(SX1272或SX1276)。
  2. 在草图文件中设置引脚映射,示例如下: c lmic_pinmap lmic_pins = { .nss = 6, .rxtx = LMIC_UNUSED_PIN, .rst = 5, .dio = {2, 3, 4}, };

运行示例

本库提供三个示例: - ttn - abp.ino:使用激活-by - 个性化(ABP)方式发送“Hello, world!”消息,支持数据包接收。 - ttn - otaa.ino:使用空中激活(OTAA)方式发送“Hello, world!”消息。 - raw.ino:展示如何在较低级别访问无线电,可直接在节点之间发送原始(非LoRaWAN)数据包。

编译运行

根据硬件平台和网络环境,配置相关参数和设置,然后编译并运行项目,测试LoRaWAN功能是否正常。

注意事项

  • 该库部分功能未充分测试,使用未测试功能时需谨慎。
  • 若遇到下行链路和OTAA问题,可调整时钟误差尝试解决。
  • 不同网络的下行数据速率可能不同,使用时需根据实际情况设置。

下载地址

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