Skip to main content

LoRaWAN® 网关模块 WM1302

pir

pir

LoRaWAN® 是 LoRa Alliance® 授权使用的标志。
LoRa® 标志是 Semtech Corporation 或其子公司的商标。

note

我们最近发布了基于 Wio-E5 模块的 Wio-E5 系列。

点击这里了解 LoRa-E5 家族的新成员,包括 Wio-E5 模块Grove 模块迷你开发板开发套件

如果想了解如何使用 STM32WL 系列的 STM32Cube MCU 软件包 (SDK) 创建 LoRaWAN® 终端节点、加入并向 LoRaWAN® 网络发送数据,请阅读关于迷你开发板开发套件的 Wiki 页面。

WM1302 模块是一款新一代的 LoRaWAN® 网关模块,采用 mini-PCIe 形式。基于 Semtech® SX1302 基带 LoRaWAN® 芯片,WM1302 为网关产品解锁了更大的远程无线传输潜力。与之前的 SX1301 和 SX1308 LoRa® 芯片相比,它具有更高的灵敏度、更低的功耗和更低的工作温度。

WM1302 LoRaWAN® 网关模块提供 SPI 和 USB 两种版本,支持 US915 和 EU868 频段,您可以选择包括 EU868、US915、AS923、AS920、AU915、KR920 和 IN865 在内的多种 LoRaWAN® 频率计划。

WM1302 模块已通过 CE、FCC 和 Telec 认证,这有助于简化 LoRaWAN® 网关设备的开发和认证流程。

WM1302 专为 M2M 和物联网应用设计,可广泛应用于支持 LPWAN 网关的场景。它是开发 LoRa® 网关设备(包括 LoRaWAN® 网关、热点等)时显著降低技术难度和时间消耗的理想选择。

特性

  • 由 Semtech® SX1302 基带 LoRa® 芯片驱动,极低功耗和高性能。
  • 标准 52 针金手指的 mini-PCIe 形式,易于集成到各种网关设备中。
  • 超低工作温度,无需额外散热,减少 LoRaWAN® 网关的尺寸。
  • 高灵敏度,使用 SX1250 TX/RX 前端,灵敏度低至 -139 dBm @SF12;TX 功率高达 26 dBm @3.3V。
  • 通过 CE、FCC 和 TELEC 认证,简化最终产品认证流程。

硬件概述

图示

pir

引脚图

pir

pir

规格

区域EU868US915
频率863-870MHz902-928MHz
灵敏度-125dBm @125K/SF7
-139dBm @125K/SF12
-125dBm @125K/SF7
-139dBm @125K/SF12
发射功率26 dBm (使用 3.3V 电源)25 dBm (使用 3.3V 电源)
LED 指示灯电源:绿色 配置:红色 发射:绿色 接收:蓝色
外形尺寸Mini PCIe,52 针金手指
功耗(SPI 版本)待机:7.5 mA
最大发射功率:415 mA
接收:40 mA
功耗(USB 版本)待机:20 mA
最大发射功率:425 mA
接收:53 mA
LBT(先听后说)支持
天线接口U.FL
工作温度-40°C 至 85°C
尺寸30 mm(宽)× 50.95 mm(长)
认证CE

应用

  • LPWAN 网关设备开发

  • 任何远距离无线通信应用开发

  • LoRa® 和 LoRaWAN® 应用学习与研究

尺寸

pir

入门指南

SPI 版本与 USB 版本的区别

对于 WM1302 LoRaWAN® 网关模块 SPI 版本,Semtech SX1302 和 SX126x 芯片通过相同的 SPI 总线连接到树莓派,不同的芯片选择(CS)引脚用于区分。

对于 WM1302 LoRaWAN® 网关模块 USB 版本,Semtech SX1302 和 SX126x 芯片连接到一个 STM32L4 MCU,该 MCU 已由工厂编程,将作为 USB 设备工作,成为树莓派与 SX1302/SX126x 之间的桥梁。

快速开始使用 WM1302

所需硬件

  • WM1302 LoRaWAN® 网关模块

  • 带有 40 针 GPIO 接口的树莓派(例如树莓派 4B 或树莓派 3B+)

  • 树莓派用的 WM1302 Pi Hat

  • 树莓派电源适配器

  • 一个 LoRa® 天线

  • 一个 8G 或更大容量的 SD 卡和一个读卡器

  • 如果使用 WM1302 LoRaWAN® 网关模块 USB 版本,还需要一根 Type C USB 数据线

所需软件

第一步:安装 WM1302 树莓派 Hat 并安装 WM1302 模块

将 Pi Hat 安装到树莓派 40 针接口上非常简单。首先关闭树莓派电源,将 WM1302 模块插入 Pi Hat,如下图所示,并用螺丝固定。

pir

如果使用的是 USB 版本的 WM1302 模块,请使用 Type C USB 数据线将其 Type C 接口连接到树莓派的 USB 接口。

pir

第二步:启用树莓派的 I2C 和 SPI 接口

WM1302 模块通过 SPI 和 I2C 与树莓派通信。但这两个接口在树莓派操作系统中默认未启用,因此开发者需要在使用 WM1302 之前启用它们。这里介绍一种通过命令行启用 SPI 和 I2C 接口的方法。

首先,通过 SSH 登录到树莓派,或者使用显示器(不要使用串口控制台,因为 Pi Hat 上的 GPS 模块占用了树莓派的硬件 UART 引脚),然后在命令行中输入 sudo raspi-config 打开树莓派软件配置工具:

sudo raspi-config

pir

  1. 选择 Interface Options

  2. 选择 SPI,然后选择 Yes 启用它

  3. 选择 I2C,然后选择 Yes 启用它

  4. 选择 Serial Port,然后在 "Would you like a login shell..." 中选择 No,在 "Would you like the serial port hardware..." 中选择 Yes

  5. 接下来,请重启树莓派以确保这些设置生效。

第三步:获取并编译 SX1302 源代码

现在我们来安装 git 并从 GitHub 下载 sx1302_hal(SX1302 LoRa 网关的库和程序):

sudo apt update
sudo apt install -y git
cd ~
git clone https://github.com/Lora-net/sx1302_hal

进入 sx1302_hal 文件夹并编译所有内容:

cd ~/sx1302_hal
make

第四步:运行 Semtech SX1302 数据包转发器

注意

在新的 Linux 内核中,sysfs 接口已被 chardev 接口取代。

这会导致 sx_1302 仓库中提供的 reset_lgw.sh 无法正确重置模块,并输出以下日志:

...
./reset_lgw.sh: 26: echo: echo: I/O error
./reset_lgw.sh: 27: echo: echo: I/O error
./reset_lgw.sh: 28: echo: echo: I/O error
./reset_lgw.sh: 29: echo: echo: I/O error
./reset_lgw.sh: 32: cannot create /sys/class/gpio/gpio17/direction: Directory nonexistent
./reset_lgw.sh: 33: cannot create /sys/class/gpio/gpio5/direction: Directory nonexistent
./reset_lgw.sh: 34: cannot create /sys/class/gpio/gpio18/direction: Directory nonexistent
./reset_lgw.sh: 35: cannot create /sys/class/gpio/gpio13/direction: Directory nonexistent
CoreCell reset through GPIO17...
SX1261 reset through GPIO17...
CoreCell power enable through GPIO18...
CoreCell ADC reset through GPIO13...
./reset_lgw.sh: 45: cannot create /sys/class/gpio/gpio18/value: Directory nonexistent
./reset_lgw.sh: 47: cannot create /sys/class/gpio/gpio17/value: Directory nonexistent
./reset_lgw.sh: 48: cannot create /sys/class/gpio/gpio17/value: Directory nonexistent
./reset_lgw.sh: 50: cannot create /sys/class/gpio/gpio5/value: Directory nonexistent
./reset_lgw.sh: 51: cannot create /sys/class/gpio/gpio5/value: Directory nonexistent
./reset_lgw.sh: 53: cannot create /sys/class/gpio/gpio13/value: Directory nonexistent
./reset_lgw.sh: 54: cannot create /sys/class/gpio/gpio13/value: Directory nonexistent
...

要确定您运行的系统是否仍然具有 sysfs 接口,可以运行以下命令:

ls /sys/class/gpio

对于具有 sysfs 接口的 Linux:

如果其中出现了一系列 gpiox 文件夹,则说明您的系统内核仍然具有 sysfs 接口,您可以使用上述脚本来重置模块。

使用文本编辑器 nano 修改 reset_lgw.sh 脚本中的 SX1302 和 SX1261 的 reset pin

nano tools/reset_lgw.sh

在文本编辑器的开头会显示以下代码:

# GPIO mapping has to be adapted with HW
#

SX1302_RESET_PIN=23 # SX1302 reset
SX1302_POWER_EN_PIN=18 # SX1302 power enable
SX1261_RESET_PIN=22 # SX1261 reset (LBT / Spectral Scan)
AD5338R_RESET_PIN=13 # AD5338R reset (full-duplex CN490 reference design)

使用导航键移动光标,将 SX1302_RESET_PIN=23 修改为 SX1302_RESET_PIN=17,将 SX1261_RESET_PIN=22 修改为 SX1261_RESET_PIN=5,如下所示:

# GPIO mapping has to be adapted with HW
#

SX1302_RESET_PIN=17 # SX1302 reset
SX1302_POWER_EN_PIN=18 # SX1302 power enable
SX1261_RESET_PIN=5 # SX1261 reset (LBT / Spectral Scan)
AD5338R_RESET_PIN=13 # AD5338R reset (full-duplex CN490 reference design)

按下 CTRL + x 保存更改,然后按 y,最后按 Enter 关闭文本编辑器。

对于不具有 sysfs 接口的 Linux:

如果其中没有名为 gpiox 的文件夹,则需要使用 Libgpiod 包调用 GPIO。

使用 Libgpiod 包控制 GPIO 的 reset_lgw.sh 脚本如下:

reset_lgw.sh
SX1302_RESET_PIN=17     # SX1302 reset
SX1302_POWER_EN_PIN=18 # SX1302 power enable
SX1261_RESET_PIN=5 # SX1261 reset (LBT / Spectral Scan)


WAIT_GPIO() {
sleep 0.1
}

reset() {
echo "CoreCell reset through GPIO$SX1302_RESET_PIN..."
echo "SX1261 reset through GPIO$SX1261_RESET_PIN..."
echo "CoreCell power enable through GPIO$SX1302_POWER_EN_PIN..."

# write output for SX1302 CoreCell power_enable and reset
gpioset gpiochip0 $SX1302_POWER_EN_PIN=1; WAIT_GPIO

gpioset gpiochip0 $SX1302_RESET_PIN=1; WAIT_GPIO
gpioset gpiochip0 $SX1302_RESET_PIN=0; WAIT_GPIO

gpioset gpiochip0 $SX1261_RESET_PIN=0; WAIT_GPIO
gpioset gpiochip0 $SX1261_RESET_PIN=1; WAIT_GPIO
}

case "$1" in
start)
reset
;;
stop)
reset
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
;;
esac

exit 0

reset_lgw.sh 复制到 packet_forwarder 文件夹,然后运行 lora_pkt_fwd。请注意,您需要根据所使用的模块选择一个 global_conf.json.sx1250.xxxx 配置文件:

cp tools/reset_lgw.sh packet_forwarder/
cd packet_forwarder

# 请根据您的模块选择以下命令之一
# 对于 WM1302 LoRaWAN 网关模块(SPI) - EU868
./lora_pkt_fwd -c global_conf.json.sx1250.EU868

# 对于 WM1302 LoRaWAN 网关模块(USB) - EU868
./lora_pkt_fwd -c global_conf.json.sx1250.EU868.USB

# 对于 WM1302 LoRaWAN 网关模块(SPI) - US915
./lora_pkt_fwd -c global_conf.json.sx1250.US915

# 对于 WM1302 LoRaWAN 网关模块(USB) - US915
./lora_pkt_fwd -c global_conf.json.sx1250.US915.USB

现在,数据包转发器可以正常运行了。但如果开发者需要将 LoRa® 数据包转发到他们的 LoRa® 服务器(例如 TTN 或 chirpstack),仍需进行一些操作。

为了实现这一目标,开发者必须先将树莓派网关添加到 LoRa 服务器中。以 TTNv3 为例,登录 TTNv3 控制台,点击 Go to gateways,然后点击 Add gateway。在 Add gateway 页面中,您会看到需要填写的多个设置。您需要关注的是 Gateway EUIGateway Server addressFrequency plan,其他设置保持默认即可。

  • Gateway EUI:网关的 64 位扩展唯一标识符,在本教程中我们将其设置为 AA555A0000000000

  • 网关服务器地址:网关将连接的服务器地址,将其复制到剪贴板,开发者需要稍后将其保存到配置文件中。

  • 频率计划:如果使用 EU868 模块,选择 Europe 863-870 MHz (SF9 for RX2);如果使用 US915 模块,选择 United States 902-928 MHz, FSB 2

pir

添加网关后,返回到树莓派,按下 CTRL + c 停止 lora_pkt_fwd,然后使用文本编辑器 nano 编辑刚才使用的 global_conf.json.sx1250.xxxx 配置文件:

# 请根据您的模块选择以下命令之一
# 对于 WM1302 LoRaWAN 网关模块 (SPI) - EU868
nano global_conf.json.sx1250.EU868

# 对于 WM1302 LoRaWAN 网关模块 (USB) - EU868
nano global_conf.json.sx1250.EU868.USB

# 对于 WM1302 LoRaWAN 网关模块 (SPI) - US915
nano global_conf.json.sx1250.US915

# 对于 WM1302 LoRaWAN 网关模块 (USB) - US915
nano global_conf.json.sx1250.US915.USB

基本上,您需要修改以下参数:"gateway_ID""server_address""serv_port_up""serv_port_down",这些参数可以在配置文件的末尾找到。将 网关服务器地址 复制到 "server_address",将 "serv_port_up""serv_port_down" 更改为 1700,这些参数应编辑如下:

"gateway_conf": {
"gateway_ID": "AA555A0000000000",
/* 使用默认服务器地址/端口进行更改 */
"server_address": "eu1.cloud.thethings.network",
"serv_port_up": 1700,
"serv_port_down": 1700,

按下 CTRL + x 保存更改,然后按 y,最后按 Enter 关闭文本编辑器。

重新启动 lora_pkt_fwd,您会发现您的树莓派网关已连接到 TTNv3。

# 请根据您的模块选择以下命令之一
# 对于 WM1302 LoRaWAN 网关模块 (SPI) - EU868
./lora_pkt_fwd -c global_conf.json.sx1250.EU868

# 对于 WM1302 LoRaWAN 网关模块 (USB) - EU868
./lora_pkt_fwd -c global_conf.json.sx1250.EU868.USB

# 对于 WM1302 LoRaWAN 网关模块 (SPI) - US915
./lora_pkt_fwd -c global_conf.json.sx1250.US915

# 对于 WM1302 LoRaWAN 网关模块 (USB) - US915
./lora_pkt_fwd -c global_conf.json.sx1250.US915.USB

来源

证书

技术支持与产品讨论

请将任何技术问题提交到我们的 论坛

感谢您选择我们的产品!我们致力于为您提供不同的支持,以确保您使用我们的产品时体验顺畅。我们提供多种沟通渠道,以满足不同的偏好和需求。

Loading Comments...