ESP32-S3-LR1121-HF 使用教程

产品特性

  • ESP32-S3-LR1121-XF是一款基于 ESP32-S3 主控并集成 LR1121 射频芯片的 LoRa 开发板,支持在低功耗条件下实现更远距离、更稳定的无线通信。与传统 LoRa 方案相比,在链路可靠性、能效表现和多频段适配方面具有明显优势。

  • 依托 LoRa 调制技术,系统在保证远距离通信的同时兼顾良好的抗干扰与超低功耗表现;配合 LoRa 网关,还可接入 TTN、ChirpStack 等服务器,便于进行云端联动与应用验证。主板支持多频段配置和丰富外设接口,适合户外通信、传感网络、应急互联、社区组网等多种物联网场景。

板载资源

  • 搭载 Xtensa® 32 位 LX7 双核处理器,主频高达 240MHz,性能强劲。
  • 支持 2.4GHz Wi-Fi (802.11 b/g/n) 及 Bluetooth® 5 (LE),满足多样化无线需求。
  • 内置 512KB SRAM、384KB ROM,叠封 4MB Flash 及 2MB PSRAM,资源丰富。
  • 采用邮票孔设计,提升集成度,便于用户自主设计底板。
  • 4 × SPI、2 × I2C、3 × UART、2 × I2S、2 × ADC 等丰富外设。
  • 采用 Semtech LR1121 低功耗 LoRa 收发器。
  • 支持 Sub-GHz (150MHz ~ 960MHz)、S 频段 (1.9GHz ~ 2.1GHz) 和 2.4GHz ISM 频段
  • 通过 LoRa 或 LoRaWAN 协议结合网关接入云端,构建低功耗广域网络
  • 支持 LoRa、(G)FSK 和 LR-FHSS 调制方式,与 SX126x / SX127x 频段兼容,便于产品升级
  • 集成 AES-128 加密引擎,提升数据安全性
  • 板载 TCXO 晶振,确保在高低温工况下频率稳定
  • 适用于工业遥测、智能家居、环境监测和远程数据采集等 IoT 应用场景
  • 配套 C 示例程序和使用手册,便于开发和快速应用。

产品参数

项目ESP32-S3-LR1121-HFESP32-S3-LR1121-LF
工作频段850 ~ 930MHz
1900 ~ 2100MHz
2400 ~ 2500MHz
410 ~ 510MHz
1900 ~ 2100MHz
2400 ~ 2500MHz
信号调制LoRa、(G)FSK、LR-FHSSLoRa、(G)FSK、LR-FHSS
通信速率LoRa:0.091 ~ 62.5Kbps
(G)FSK:0.6 ~ 300Kbps
LoRa:0.091 ~ 62.5Kbps
(G)FSK:0.6 ~ 300Kbps
发射功率-9 ~ 22dBm@Sub-GHz 频段
-18 ~ 13dBm@ISM 频段
-9 ~ 22dBm@Sub-GHz 频段
-18 ~ 13dBm@ISM 频段
接收灵敏度-127dBm@Sub-GHz 频段,SF=7,CR4_5,BWL=125KHz
-111dBm@ISM 频段,SF=7,CR4_5,BWL=800KHz
-127dBm@Sub-GHz 频段,SF=7,CR4_5,BWL=125KHz
-111dBm@ISM 频段,SF=7,CR4_5,BWL=800KHz
参考通信距离Sub-GHz 频段:5km
ISM 频段:2km
Sub-GHz 频段:5km
ISM 频段:2km
扩频因子SF5 ~ SF12SF5 ~ SF12
逻辑电压3.3V(其他逻辑电平需要搭配电平转换器)3.3V(其他逻辑电平需要搭配电平转换器)
模组耗流发射电流:111.2mA@22dBm、49.6mA@13dBm
接收电流:9.2mA@125KHz Sub-GHz、8.1mA@125KHz ISM
发射电流:87.7mA@22dBm、52.7mA@13dBm
接收电流:9.2mA@125KHz Sub-GHz、8.1mA@125KHz ISM
天线接口IPEX-1IPEX-1
天线保护TVS 保护TVS 保护
工作温度-40 ~ 85℃-40 ~ 85℃
接口类型邮票孔/排座,间距 2.54mm邮票孔/排座,间距 2.54mm
尺寸19.00 × 22.00mm19.00 × 22.00mm

接口说明

ESP32-S3-LR1121-XF的引脚对照表(点击展开)

产品尺寸


Arduino 开发

本章节包含以下部分,请按需阅读:

Arduino 入门教程

初次接触 Arduino ESP32 开发,想要快速上手?我们为您准备了一套通用的 入门教程

请注意:该教程使用 ESP32-S3-Zero 作为教学示例,所有硬件代码均基于其引脚布局。在动手实践前,建议您对照手中的开发板引脚图,确认引脚配置无误。

配置开发环境

1. 安装和配置 Arduino IDE

请参考 安装和配置 Arduino IDE 教程 下载安装 Arduino IDE 并添加 ESP32 支持。

2. 示例程序使用说明

下载示例,进入到 ESP32-S3-LR1121-XF/esp32s3/Arduino 中,将 waveshare_lora_1121 复制到项目文件夹的 libraries 文件夹下,项目文件夹路径在 文件 -> 首选项 -> 项目文件夹地址 下查看


复制完之后,打开 Arduino IDE,就可以在 File -> Examples -> waveshare lora spi 下看到所有示例,打开后即可烧录测试 环境搭建好后,选好开发板端口,不知道如何烧录的,参考下图:

①:编译程序

②:编译并上传


3. Arduino 参数设置


注意:请务必按照以下参数进行配置,否则程序可能无法正常运行:

示例程序

示例程序位于示例包的 Arduino 目录: ESP32-S3-LR1121-XF-Demo.zip 以下示例名称与说明对齐 ESP32-S3-LR1121-XF 示例包的目录结构,可用于快速定位对应功能点:

示例程序基础例程说明
lr1121_cad执行通道活动检测(CAD)- 仅限 LoRa
lr1121_firmware_updateLR1121 更新固件工具
lr1121_lr_fhss传输 LR-FHSS 格式数据包
lr1121_per执行数据包错误率(PER)测试 — Tx 和 Rx 角色
lr1121_ping_pong在两台设备之间启动数据交换
lr1121_read进入接收模式
lr1121_sigfox发送符合 Sigfox 标准的上行链路
lr1121_spectral_scan获取 RX 模式下的 inst-RSSI 值以形成热图
lr1121_spetrum_display获取 RX 模式下的 inst-RSSI 值,形成动态频谱曲线
lr1121_tx_cwTx 连续波模式
lr1121_tx_infinite_preamble传输无限前导码
lr1121_write周期性发送数据
lr1121_LoRaWAN简单的 LoRaWAN A 类应用程序

lr1121_cad

  • 该应用程序将执行通道活动检测(CAD)- 仅限 LoRa。
  • 一台设备刷入CAD_EXIT_MODE为TX,一台CAD_EXIT_MODE为RX,就可开始测试
  • 效果如下:


lr1121_firmware_update

  • 该应用程序将更新 LR1121 上的固件。
  • 默认烧录 收发器 0101版本的固件,如果需要测试其他固件版本,需要注释掉 lr1121_firmware_update.h 中的#include "lr1121_transceiver_0101.h",解除注释其他头文件即可编译烧录,每次只能选择一个固件进行烧录。
  • 效果如下:


lr1121_lr_fhss

  • 该应用程序将配置设备以在 LR-FHSS 中传输数据包。
  • 效果如下:


lr1121_per

  • PER(包错误率)测试,在 lr1121_per.h 中将一个设备设置成发送即 #define RECEIVER 1 ,另一台设备设置成接收即#define RECEIVER 0
  • 效果如下:


lr1121_ping_pong

  • 该应用程序将设备设置为乒乓模式(点对点双向通信测试)。
  • 效果如下:


lr1121_read

  • 该应用程序将设备设置为读模式,自动识别字符串跟十六进制数,搭配 lr1121_write 可以实现点对点通信。
  • 效果如下:


lr1121_write

  • 该应用程序将设备设置为写模式,自动发送数据,搭配 lr1121_read 可以实现点对点通信。
  • 效果如下:


lr1121_sigfox

  • 该应用程序将配置设备以发送符合 Sigfox 标准的上行链路。
  • 效果如下:


lr1121_spectral_scan

  • 该应用程序通过将设备设置为 Rx continuous 模式并定期逐个频率通道读取瞬时 RSSI 来实现频谱扫描操作。
  • 可以搭配 lr1121_tx_cw 来进行测试。
  • 使用 lr1121_tx_cw 发出一个频率 868MHz,功率22dBm的信息进行测试,效果如下:


lr1121_spetrum_display

  • 该应用程序通过将设备设置为 Rx continuous 模式并定期逐个读取各个频道的瞬时 RSSI 来实现频谱显示操作。
  • 可以搭配 lr1121_tx_cw 来进行测试。
  • 绘图功能需要 VT100 控制代码的支持,例如:MobaXterm
  • 使用 lr1121_tx_cw 发出一个频率 868MHz,功率22dBm的信息进行测试,效果如下:


lr1121_tx_cw

  • 该应用程序将配置设备持续发射一个无线前导信号(Preamble)。
  • 效果如下:


lr1121_tx_infinite_preamble

  • 该应用程序将配置设备持续发射一个无线前导信号(Preamble)。
  • 会一直发射一个波形,这个波形属于有调制(LoRa 格式),主要测试 LoRa 发射性能、频谱、认证(LoRa 模式)
  • 不发完整包,但是合法 LoRa 前导码调制

LoRa和LoRaWAN

什么是LoRa?

Semtech 的 LoRa 是一种长距离、低功耗的物联网 (IoT) 无线平台,一般情况下泛指使用LoRa技术的射频芯片.主要特点如下

  • LoRa(long range 的缩写)采用的扩频调制技术源于啁啾扩频 (CSS) 技术,是远距离无线传输技术和LPWAN通信技术中的一种.扩频技术用带宽换取灵敏度的技术,Wi-Fi,ZigBee等都使用了扩频技术,但LoRa调制的特点是接近香农定理的极限,最大效率地提高灵敏度.相比于传统FSK技术,在相同的通信速率下,LoRa比FSK灵敏度好8~12dBm.目前,LoRa 主要在Sub-GHz的ISM频段运行,

  • LoRa技术融合了数字扩频、数字信号处理和前向纠错编码等技术使得在长距离通信性能层面大幅度提高,LoRa的链路预算优于其他任何标准化的通信技术,链路预算是指给定的环境中决定距离的主要因素.

  • LoRa射频芯片主要有 SX127X系列,SX126X系列,SX130X系列,其中SX127X,SX126X系列用于LoRa节点,SX130X用于LoRa网关,详情可参考Semtech的产品列表

什么是LoRaWAN?

  • LoRaWAN 是一种建立在 LoRa 无线电调制技术之上的低功耗广域网开放协议。旨在将电池供电的“事物”无线连接到区域、国家或全球网络中的互联网,并针对关键的物联网 (IoT) 要求,例如双向定向通信、端到端安全、移动性和本地化服务。其中节点无线连接到互联网有入网认证,相当于建立节点和服务器间的加密通信信道,LoRaWAN协议层次下图所示。

  • MAC层中的Class A/B/C 三类节点设备基本覆盖了物联网所有的应用场景,三者之间不同点在于节点收发的时隙不同

  • Modulation层中EU868,AS430等表明不同国家使用频段参数不同,地区参数请点击参考链接


  • 实现LoRaWAN网络覆盖城市或其它区域需要由节点(LoRa节点射频芯片)、网关(或称基站,LoRa网关射频芯片)、Server和云四部分组成,如下图所示

  • DEVICE(节点设备)需先发起入网请求数据包到GATEWAY(网关)再到服务器,认证通过后才可以正常和服务器收发应用数据

  • GATEWAY(网关)可通过有线网络,3/4/5G无线网络与服务器进行通信

  • 服务器端主要运营商有TTN等,自行搭建云端服务请参考lorawan-stack,chirpstack


应用

  • 本应用基于 LoRaWAN 官方示例ModemE_application_examples,仅演示了基础的 LoRaWAN Class A 应用。其他高级示例可参考官方仓库自行移植,包括:认证申请、LoRaWAN B 类应用、LoRaWAN 多播 B/C 类示例和FUOTA 示例。

器件准备

  • 树莓派4B(含配套电源)

  • SD卡(建议使用容量大于 8GB 的 SD 卡)

  • 读卡器

  • 网关设备

  • 节点设备

  • 开发板(可选型号):ESP32、树莓派、STM32 和 Raspberry Pi Pico


服务器搭建

  • 本示例使用ChirpStack作为 LoRaWAN 网络服务器,请按照官方提供的 Raspberry Pi 安装步骤进行配置。

  • 先下载ChirpStack Gateway OS 镜像,将其解压后,使用Win32DiskImager将镜像写入 SD 卡。

    下载镜像


    写入镜像


  • 写入完成后,请参考官方文档进行详细配置。本文仅提供简要安装流程,详细信息请参见:ChirpStack Gateway OS 入门指南

  • 将 SD 卡插入树莓派并通电启动。启动后,电脑 Wi-Fi 将扫描到名为 ChirpStackAP-XXXXXX 的无线热点,密码为 ChirpStackAP。连接成功后,在浏览器中访问:192.168.0.1,即可打开 ChirpStack 管理界面,首次登录无需密码。

    连接 Wi-Fi


    访问 Web 界面


  • 启动后可通过以太网或 Wi-Fi 接入外部网络。此处以连接以太网为例,若需配置 Wi-Fi,请参考:Wi-Fi 配置,联网后可在 Web 管理界面查看当前 IP 地址。


添加网关

  • 服务器配置完成并获取 IP 地址后,关闭树莓派并断电,将 SX1303-868M-LoRaWAN-Gateway-HAT(网关设备)连接至树莓派,并接上天线。启动树莓派后,使用前面获取的 IP 地址通过 SSH 工具(如 MobaXterm)远程访问设备。默认用户名为 root,连接成功后,在终端中输入以下命令获取网关 ID:gateway-id,系统将输出当前设备的网关 ID,请记下该 ID,稍后添加网关时将用到。


  • 在浏览器中访问前面获取的 IP 地址,进入 ChirpStack 管理界面,依次点击ChirpStack -> Concentratord,启用网关功能。以 SX1303(868 MHz)为例,配置如下,配置完成后点击“保存并应用”:


    使能网关


    配置网关参数

  • 进入应用程序:Applications -> ChirpStack,首次进入时需要登录,默认账号和密码均为 admin。登录后,点击 Gateways -> Add gateway,在添加页面中填写前面获取的 gateway-id,并保存。返回 Gateways 页面,即可看到网关是否已经成功上线。


    添加网关到服务器


    查看网关是否上线

添加节点

  • 首先,在 Web 界面中添加一个设备配置文件:Device Profiles -> Add device profile,配置如下图所示:


  • 然后添加一个应用程序:Applications -> Add application,填写相关信息并保存:



    设置 EUI


    设置密钥

  • 注意:ESP32-S3-LR1121 模块默认工作在收发器(Transceiver)模式。若要运行 LoRaWAN 协议,需先通过开发板烧录对应的固件。 示例可参考Demo中的 lr1121_firmware_update 示例,并运行 lr1121_firmware_update + lr1121_modem_05020001。


    ESP-IDF 示例


    Arduino ESP32 示例

  • 烧录成功效果如下图所示


  • 如果后续需要恢复收发器模式(非 LoRaWAN),请重新烧录 lr1121_transceiver_0101 固件。

  • 固件烧录完成后,下载 LoRaWAN 示例程序,打开后进入目录:ESP32-S3-LR1121\esp32s3\ESP-IDF\main\examples\lr1121_LoRaWAN中,编辑其中的 lorawan_commissioning.h 文件,将前面生成的 EUI 和 密钥 等信息填入对应位置。完成后编译并烧录。


    填入 EUI


    填入密钥

  • 烧录完成后,节点将自动请求加入 LoRaWAN 网络。加入成功后,节点将定时发送上行数据。可通过 Web 界面查看设备事件与通信状态:

    ①、点击 Events,查看节点运行状态

    ②、观察是否加入失败

    ③、若加入成功,可看到入网事件

    ④、查看节点上报的数据

    ⑤、通过串口查看调试信息


  • 服务器也支持向节点下发数据:

    ①、点击 Queue

    ②、输入需要下发的十六进制数据

    ③、点击发送

    ④、节点接收数据并在串口打印




ESP-IDF 开发

本章节包含以下内容:

ESP-IDF 入门教程

初次接触 ESP32 ESP-IDF 开发,想要快速上手?我们为您准备了一套通用的 入门教程

请注意:该教程使用 ESP32-S3-Zero 作为教学示例,所有硬件代码均基于其引脚布局。在动手实践前,建议您对照手中的开发板引脚图,确认引脚配置无误。

配置开发环境

备注

以下内容以 Windows 系统为例,使用 VS Code + ESP-IDF 扩展 的方式进行开发。Mac/Linux 用户请参考 官方说明

版本选择

此部分图示以安装 ESP-IDF V5.5.2 为例示范,安装时请选用与您开发板示例匹配的 ESP-IDF 版本。

安装 ESP-IDF 开发环境

  1. 前往 ESP-IDF Installation Manager 下载 ESP-IDF 安装管理器。这是乐鑫最新推出的跨平台安装工具,下文将演示如何使用其离线安装功能。

    在页面中点击 Offline Installer 标签,然后在筛选栏中选择 Windows 操作系统和你需要的 ESP-IDF 版本(图示仅为参考,请以实际为准)。


    确认选择无误后,点击下载按钮。浏览器将自动同时下载两个文件:一个是 ESP-IDF 离线整合包(.zst),另一个是 ESP-IDF 安装器(.exe)


    请耐心等待两个文件下载完成。

  2. 下载完成后,双击运行 ESP-IDF 安装器(eim-gui-windows-x64.exe)

    启动后,可在右上角将界面语言切换为中文。


    安装工具会自动检测同一目录下是否存在离线整合包。点击 从存档安装


    接下来,选择安装路径。建议使用默认路径;若需自定义,请确保路径中不包含中文或空格。确认无误后,点击 开始安装


  3. 当看到如下界面时,表示 ESP-IDF 已安装成功。


  4. 建议同时安装驱动程序。点击 完成安装,然后点击 安装驱动程序


安装 Visual Studio Code 与 ESP-IDF 扩展

  1. 下载并安装 Visual Studio Code

  2. 安装时建议勾选 通过 Code 打开操作添加到 Windows 资源管理器文件上下文菜单,以便快速打开项目文件夹。

  3. 在 VS Code 中,点击侧边活动栏中的 扩展图标 扩展图标(或使用快捷键 Ctrl + Shift + X)打开 扩展 视图。

  4. 在搜索框中输入 ESP-IDF,找到 ESP-IDF 扩展并点击安装。


  5. 当 ESP-IDF 扩展版本 ≥ 2.0 时,扩展会自动检测并识别上述步骤中安装的 ESP-IDF 环境,无需手动配置。

示例程序

示例程序位于示例包的 ESP-IDF 目录: ESP32-S3-LR1121-XF-Demo.zip

以下示例名称与说明对齐 ESP32-S3-LR1121-XF 示例包的目录结构,可用于快速定位对应功能点:

示例程序基础例程说明
lr1121_cad执行通道活动检测(CAD)- 仅限 LoRa
lr1121_firmware_updateLR1121 更新固件工具
lr1121_lr_fhss传输 LR-FHSS 格式数据包
lr1121_per执行数据包错误率(PER)测试 — Tx 和 Rx 角色
lr1121_ping_pong在两台设备之间启动数据交换
lr1121_read进入接收模式
lr1121_sigfox发送符合 Sigfox 标准的上行链路
lr1121_spectral_scan获取 RX 模式下的 inst-RSSI 值以形成热图
lr1121_spetrum_display获取 RX 模式下的 inst-RSSI 值,形成动态频谱曲线
lr1121_tx_cwTx 连续波模式
lr1121_tx_infinite_preamble传输无限前导码
lr1121_write周期性发送数据
lr1121_LoRaWAN简单的 LoRaWAN A 类应用程序

示例代码框架

下载示例,进入到 ESP32-S3-LR1121/esp32s3/ESP-IDF 中,使用 VS Code 打开示例 ESP-IDF 的示例使用需要配置 ESP32-S3-LR1121/esp32s3/ESP-IDF/main/CMakeLists.txt 的脚本文件,默认为 lr1121_ping_pong 示例,如果需要其他示例,像下图去解除注释即可:


环境搭建好后,选好开发板端口,不知道如何烧录的,参考下图:

①:选择 UART ②:选择端口 ③:选择芯片 ④:编译烧录


lr1121_cad

  • 该应用程序将执行通道活动检测(CAD)- 仅限 LoRa。
  • 一台设备刷入 CAD_EXIT_MODE 为 TX,一台 CAD_EXIT_MODE 为 RX,就可开始测试
  • 效果如下:


lr1121_firmware_update

  • 默认烧录 收发器 0101 版本的固件,如果需要测试其他固件版本,需要注释掉 lr1121_firmware_update.h 中的#include "lr1121_transceiver_0101.h",解除注释其他头文件即可编译烧录,每次只能选择一个固件进行烧录。 效果如下:


lr1121_lr_fhss

  • 该应用程序将配置设备以在 LR-FHSS 中传输数据包。
  • 效果如下:


lr1121_per

  • PER(包错误率)测试,在 lr1121_per.h 中将一个设备设置成发送即 #define RECEIVER 1 ,另一台设备设置成接收即#define RECEIVER 0
  • 效果如下:


lr1121_ping_pong

  • 该应用程序将设备设置为乒乓模式(点对点双向通信测试)。
  • 效果如下:


lr1121_read

  • 该应用程序将设备设置为读模式,自动识别字符串跟十六进制数,搭配 lr1121_write 可以实现点对点通信。
  • 效果如下:


lr1121_write

  • 该应用程序将设备设置为写模式,自动发送数据,搭配 lr1121_read 可以实现点对点通信。
  • 效果如下:


lr1121_sigfox

  • 该应用程序将配置设备以发送符合 Sigfox 标准的上行链路。
  • 效果如下:


lr1121_spectral_scan

  • 该应用程序通过将设备设置为 Rx continuous 模式并定期逐个频率通道读取瞬时 RSSI 来实现频谱扫描操作。
  • 可以搭配 lr1121_tx_cw 来进行测试。
  • 使用 lr1121_tx_cw 发出一个频率 868MHz, 功率 22dBm 的信息进行测试,效果如下:


lr1121_spetrum_display

  • 该应用程序通过将设备设置为 Rx continuous 模式并定期逐个读取各个频道的瞬时 RSSI 来实现频谱显示操作。
  • 可以搭配 lr1121_tx_cw 来进行测试。
  • 绘图功能需要 VT100 控制代码的支持,例如:MobaXterm
  • 使用 lr1121_tx_cw 发出一个频率 868MHz, 功率 22dBm 的信息进行测试,效果如下:


lr1121_tx_cw

  • 该应用程序将配置设备持续发射一个无线前导信号(Preamble)。
  • 效果如下:


lr1121_tx_infinite_preamble

  • 该应用程序将配置设备持续发射一个无线前导信号(Preamble)。
  • 会一直发射一个波形,这个波形属于有调制(LoRa 格式),主要测试 LoRa 发射性能、频谱、认证(LoRa 模式)
  • 不发完整包,但是合法 LoRa 前导码调制

LoRa 和 LoRaWAN

什么是 LoRa?

Semtech 的 LoRa 是一种长距离、低功耗的物联网 (IoT) 无线平台,一般情况下泛指使用 LoRa 技术的射频芯片。主要特点如下

  • LoRa(long range 的缩写)采用的扩频调制技术源于啁啾扩频 (CSS) 技术,是远距离无线传输技术和 LPWAN 通信技术中的一种。扩频技术用带宽换取灵敏度的技术,Wi-Fi,ZigBee 等都使用了扩频技术,但 LoRa 调制的特点是接近香农定理的极限,最大效率地提高灵敏度。相比于传统 FSK 技术,在相同的通信速率下,LoRa 比 FSK 灵敏度好 8~12dBm. 目前,LoRa 主要在 Sub-GHz 的 ISM 频段运行,
  • LoRa 技术融合了数字扩频、数字信号处理和前向纠错编码等技术使得在长距离通信性能层面大幅度提高,LoRa 的链路预算优于其他任何标准化的通信技术,链路预算是指给定的环境中决定距离的主要因素。
  • LoRa 射频芯片主要有 SX127X 系列,SX126X 系列,SX130X 系列,其中 SX127X,SX126X 系列用于 LoRa 节点,SX130X 用于 LoRa 网关,详情可参考 Semtech 的产品列表

什么是 LoRaWAN?

  • LoRaWAN 是一种建立在 LoRa 无线电调制技术之上的低功耗广域网开放协议。旨在将电池供电的“事物”无线连接到区域、国家或全球网络中的互联网,并针对关键的物联网 (IoT) 要求,例如双向定向通信、端到端安全、移动性和本地化服务。其中节点无线连接到互联网有入网认证,相当于建立节点和服务器间的加密通信信道,LoRaWAN 协议层次下图所示。

  • MAC 层中的 Class A/B/C 三类节点设备基本覆盖了物联网所有的应用场景,三者之间不同点在于节点收发的时隙不同

  • Modulation 层中 EU868,AS430 等表明不同国家使用频段参数不同,地区参数请点击参考链接


  • 实现 LoRaWAN 网络覆盖城市或其它区域需要由节点(LoRa 节点射频芯片)、网关(或称基站,LoRa 网关射频芯片)、Server 和云四部分组成,如下图所示

  • DEVICE(节点设备)需先发起入网请求数据包到 GATEWAY(网关)再到服务器,认证通过后才可以正常和服务器收发应用数据

  • GATEWAY(网关)可通过有线网络,3/4/5G 无线网络与服务器进行通信

  • 服务器端主要运营商有 TTN 等,自行搭建云端服务请参考 lorawan-stack,chirpstack


应用

  • 本应用基于 LoRaWAN 官方示例 ModemE_application_examples, 仅演示了基础的 LoRaWAN Class A 应用。其他高级示例可参考官方仓库自行移植,包括:认证申请、LoRaWAN B 类应用、LoRaWAN 多播 B/C 类示例和 FUOTA 示例。

器件准备

  • 树莓派 4B(含配套电源)

  • SD 卡(建议使用容量大于 8GB 的 SD 卡)

  • 读卡器

  • 网关设备

  • 节点设备

  • 开发板(可选型号):ESP32、树莓派、STM32 和 Raspberry Pi Pico


服务器搭建

  • 本示例使用 ChirpStack 作为 LoRaWAN 网络服务器,请按照官方提供的 Raspberry Pi 安装步骤进行配置。

  • 先下载 ChirpStack Gateway OS 镜像,将其解压后,使用 Win32DiskImager 将镜像写入 SD 卡。

    下载镜像


    写入镜像


  • 写入完成后,请参考官方文档进行详细配置。本文仅提供简要安装流程,详细信息请参见:ChirpStack Gateway OS 入门指南

  • 将 SD 卡插入树莓派并通电启动。启动后,电脑 Wi-Fi 将扫描到名为 ChirpStackAP-XXXXXX 的无线热点,密码为 ChirpStackAP。连接成功后,在浏览器中访问:192.168.0.1,即可打开 ChirpStack 管理界面,首次登录无需密码。

    连接 Wi-Fi


    访问 Web 界面


  • 启动后可通过以太网或 Wi-Fi 接入外部网络。此处以连接以太网为例,若需配置 Wi-Fi,请参考:Wi-Fi 配置,联网后可在 Web 管理界面查看当前 IP 地址。


添加网关

  • 服务器配置完成并获取 IP 地址后,关闭树莓派并断电,将 SX1303-868M-LoRaWAN-Gateway-HAT(网关设备)连接至树莓派,并接上天线。启动树莓派后,使用前面获取的 IP 地址通过 SSH 工具(如 MobaXterm)远程访问设备。默认用户名为 root,连接成功后,在终端中输入以下命令获取网关 ID:gateway-id,系统将输出当前设备的网关 ID,请记下该 ID,稍后添加网关时将用到。


  • 在浏览器中访问前面获取的 IP 地址,进入 ChirpStack 管理界面,依次点击 ChirpStack -> Concentratord,启用网关功能。以 SX1303(868 MHz)为例,配置如下,配置完成后点击“保存并应用”:


    使能网关


    配置网关参数

  • 进入应用程序:Applications -> ChirpStack,首次进入时需要登录,默认账号和密码均为 admin。登录后,点击 Gateways -> Add gateway,在添加页面中填写前面获取的 gateway-id,并保存。返回 Gateways 页面,即可看到网关是否已经成功上线。


    添加网关到服务器


    查看网关是否上线

添加节点

  • 首先,在 Web 界面中添加一个设备配置文件:Device Profiles -> Add device profile, 配置如下图所示:


  • 然后添加一个应用程序:Applications -> Add application,填写相关信息并保存:



    设置 EUI


    设置密钥

  • 注意:ESP32-S3-LR1121 模块默认工作在收发器(Transceiver)模式。若要运行 LoRaWAN 协议,需先通过开发板烧录对应的固件。 示例可参考 Demo 中的 lr1121_firmware_update 示例,并运行 lr1121_firmware_update + lr1121_modem_05020001。


    ESP-IDF 示例


    Arduino ESP32 示例

  • 烧录成功效果如下图所示


  • 如果后续需要恢复收发器模式(非 LoRaWAN),请重新烧录 lr1121_transceiver_0101 固件。

  • 固件烧录完成后,下载 LoRaWAN 示例程序,打开后进入目录:ESP32-S3-LR1121\esp32s3\ESP-IDF\main\examples\lr1121_LoRaWAN 中,编辑其中的 lorawan_commissioning.h 文件,将前面生成的 EUI 和 密钥 等信息填入对应位置。完成后编译并烧录。


    填入 EUI


    填入密钥

  • 烧录完成后,节点将自动请求加入 LoRaWAN 网络。加入成功后,节点将定时发送上行数据。可通过 Web 界面查看设备事件与通信状态:

    ①、点击 Events,查看节点运行状态

    ②、观察是否加入失败

    ③、若加入成功,可看到入网事件

    ④、查看节点上报的数据

    ⑤、通过串口查看调试信息


  • 服务器也支持向节点下发数据:

    ①、点击 Queue

    ②、输入需要下发的十六进制数据

    ③、点击发送

    ④、节点接收数据并在串口打印



相关资料

1. 硬件资料

开发板设计文件

2. 技术手册

3. 示例程序


技术支持

周一-周五(9:30-6:30)周六(9:30-5:30)

手机:13434470212

邮箱:services04@spotpear.cn

QQ:202004841