Ra-11 模组的 LoRaWAN Class A 应用

本示例演示如何使用 STM32L476RG 驱动 Ra-11 模组配置 Class A 模式入网 LoRaWAN 网络的应用。入网成功以后通过按键上报。

1. 硬件准备

1.1. 所需硬件

序号 硬件 说明 购买链接
1 MCU 开发板 STM32L476RG(推荐 NUCLEO-L476RG)
2 Ra-11 模组 被驱动的 LoRa Modem-E 模组 淘宝链接
3 TTL 模块 安信可 FT232TTL,用于串口 LOG 淘宝链接
4 按键 用户按键(或使用 NUCLEO 板载蓝色按键 PC13)
5 杜邦线 / 电源 3.3 V 供电,共地

1.2. MCU 与 Ra-11 接线

引脚定义见 Inc/boards/board-config.h

MCU(STM32L476RG) 信号 Ra-11 模组 说明
PA5 SCLK SCK / SCLK SPI 时钟
PA6 MISO MISO SPI 主机入 / 从机出
PA7 MOSI MOSI SPI 主机出 / 从机入
PA8 NSS NSS / CS SPI 片选(低有效)
PA0 RESET RESET / NRESET 模组复位
PB3 BUSY BUSY SPI 忙指示
PB4 EVENT EVENT / DIO 事件中断(入网、下行等)
3V3 VCC VCC / 3V3 3.3 V 供电
GND GND GND 共地

若模组另有天线座,请接好天线后再上电发射。

1.3. MCU 与 TTL(FT232)接线

串口用于打印 LOG(波特率 921600,8N1),MCU 侧引脚为 UART_TX=PA2UART_RX=PA3

MCU(STM32L476RG) 信号 FT232TTL 模块 说明
PA2 UART_TX RXD MCU 发送 → TTL 接收
PA3 UART_RX TXD TTL 发送 → MCU 接收
GND GND GND 共地
USB 接 PC,用于串口工具查看 LOG

TX/RX 交叉连接;不要把两端的 TX 对 TX。

1.4. 按键接线

应用中按键定义为 EXTI_BUTTON = PC_13(下降沿触发)。

MCU(STM32L476RG) 信号 按键 说明
PC13 EXTI_BUTTON 按键一端 按下后立即在端口 102 发上行
GND GND 按键另一端 低电平有效

2. 驱动资料获取与使用说明

2.1. 资料获取

本工程 SDK 用于驱动 Ra-11 模组完成 LoRaWAN 入网,源码仓库地址:

获取代码示例:

git clone https://github.com/Ai-Thinker-Open/Ra-11_modem-e.git
cd Ra-11_modem-e

仓库说明与更多示例介绍也可参阅上述 GitHub 页面。

2.2. 编译与烧录

需安装 ARM GCC 工具链(工程基于 GNU Arm Embedded Toolchain)。在 gcc 目录下编译:

cd gcc
make clean
make APP=lorawan

指定区域示例:

make clean
make APP=lorawan EXTRAFLAGS='-DLORAWAN_REGION_USED=MODEM_E_LORAWAN_REGION_AS923_GRP1'

说明:

2.3. 串口与运行

  1. 按第 1 章完成硬件接线后上电。
  2. 打开串口工具,参数:921600 / 8 / 1 / None
  3. 若三元组已在网关/平台注册,设备启动后自动入网,等待 JOINED
  4. 默认约每 30 s 发送一次上行;按下 PC13 按键可立即发送一帧上行。

3. 程序运行说明

设备启动以后会自动向 LoRaWAN 网络服务器发送 Join-Request。

收到 Join-Accept 后,将周期性发送上行。

按下 PC13 按键会立即在端口 102 发送一帧上行。

4. 配置

4.1. LoRaWAN 配置

若干常量定义在 main_lorawan.ccommon_app_configuration.hlorawan_commissioning.h 顶部。可通过设置这些值来配置应用的 LoRaWAN 参数。

常量 说明
PERIODICAL_UPLINK_DELAY_S 周期性上行闹钟延时(秒)。
EXTI_BUTTON 按键对应的引脚名。
LORAWAN_APP_DATA_MAX_SIZE 用户应用数据缓冲区大小。
LORAWAN_REGION_USED LoRaWAN 法规区域。

LORAWAN_REGION_USED 支持的取值:

4.2. 入网配置

LR1121 预置了 ChipEUI/DevEUI 和 JoinEUI。若 lorawan_commissioning.h 中的 USE_LR11XX_CREDENTIALS 为 true,应用将使用这些标识。

也可自行配置:将 USE_LR11XX_CREDENTIALS 设为 false,并在 Inc/apps/lorawan_commissioning/lorawan_commissioning.h 中修改 LORAWAN_DEVICE_EUILORAWAN_JOIN_EUILORAWAN_NWK_KEYLORAWAN_APP_KEY

5. 使用方法

5.1. 串口控制台

完成静态配置后,应用无需人工干预即可运行。

信息会输出到串口控制台,起始内容包括 DevEUI、AppEUI/JoinEUI 和 PIN,可用于在 LoRa Cloud Device Join 服务中注册设备。

6. 其它说明

6.1. 应用主循环

应用基于事件接收实现了一个相对简单的状态机:

按下蓝色按键可立即在端口 102 发送一帧上行。