Módulo de Gateway LoRaWAN® WM1302
LoRaWAN® es una marca utilizada bajo licencia de LoRa Alliance®. La marca LoRa® es una marca comercial de Semtech Corporation o sus subsidiarias.
Recientemente hemos lanzado la Serie Wio-E5 basada en el módulo Wio-E5.
Haz clic aquí para conocer los nuevos miembros de la familia LoRa-E5 desde el Módulo Wio-E5 módulo Grove, placas de desarrollo mini hasta el Kit de Desarrollo.
Para aprender más sobre la creación de un Nodo Final LoRaWAN® con el Paquete MCU STM32Cube para la serie STM32WL (SDK), para unirse y enviar datos a la Red LoRaWAN®, lee más en las páginas wiki para placas de desarrollo mini y Kit de Desarrollo.
El módulo WM1302 es una nueva generación de módulo de gateway LoRaWAN® con factor de forma mini-PCIe. Basado en el chip LoRaWAN® de banda base Semtech® SX1302, WM1302 desbloquea el mayor potencial de capacidad de transmisión inalámbrica de largo alcance para productos de gateway. Presenta mayor sensibilidad, menor consumo de energía y menor temperatura de operación que los chips LoRa® anteriores SX1301 y SX1308.
El módulo de gateway LoRaWAN® WM1302 tiene versiones SPI y USB en las bandas de frecuencia US915 y EU868, permitiéndote tener una amplia gama de opciones de planes de frecuencia LoRaWAN® para elegir incluyendo EU868, US915, AS923, AS920, AU915, KR920 e IN865.
El módulo WM1302 está certificado CE, FCC y Telec, lo que ayuda a simplificar el proceso de desarrollo y certificación de los dispositivos de gateway LoRaWAN®.
WM1302 está diseñado para aplicaciones M2M e IoT y puede ser ampliamente aplicado en escenarios compatibles con gateway LPWAN. Sería una elección perfecta para reducir significativamente las dificultades técnicas y el consumo de tiempo al desarrollar dispositivos de gateway LoRa®, incluyendo gateway LoRaWAN®, hotspots, etc.
Características
- Alimentado por el chip LoRa® de banda base Semtech® SX1302, consumo de energía extremadamente bajo y alto rendimiento.
- Factor de forma Mini-PCIe con el conector dorado estándar de 52 pines, fácil de integrar con varios dispositivos de gateway.
- Temperatura de operación ultra-baja, no se necesita disipación de calor adicional, reduciendo el tamaño del gateway LoRaWAN®.
- Alta sensibilidad hasta -139 dBm @SF12 con front-end TX/RX SX1250; potencia TX hasta 26 dBm @3.3V.
- Certificado con CE, FCC y TELEC. Simplifica el proceso de certificación del producto final.
Descripción General del Hardware
Diagrama
Pinout
Especificaciones
Región | EU868 | US915 |
---|---|---|
Frecuencia | 863-870MHz | 902-928MHz |
Sensibilidad | -125dBm @125K/SF7 -139dBm @125K/SF12 | -125dBm @125K/SF7 -139dBm @125K/SF12 |
Potencia TX | 26 dBm (con fuente de alimentación de 3.3V) | 25 dBm (con fuente de alimentación de 3.3V) |
LEDs | Alimentación: Verde Config: Rojo TX: Verde RX: Azul | |
Factor de Forma | Mini PCIe, 52 pines Golden Finger | |
Consumo de Energía (versión SPI) | Standby: 7.5 mA TX potencia máxima: 415 mA RX: 40 mA | |
Consumo de Energía (versión USB) | Standby: 20 mA TX potencia máxima: 425 mA RX: 53 mA | |
LBT(Listen Before Talk) | Soporte | |
Conector de Antena | U.FL | |
Temperatura de Operación | -40°C a 85°C | |
Dimensiones | 30 mm (ancho) × 50.95 mm (largo) | |
Certificación | CE |
Aplicación
-
Desarrollo de dispositivos Gateway LPWAN
-
Desarrollo de cualquier aplicación de comunicación inalámbrica de larga distancia
-
Aprendizaje e investigación de aplicaciones LoRa® y LoRaWAN®
Dimensiones
Primeros Pasos
Diferencia entre la versión SPI y la versión USB
Para el Módulo Gateway LoRaWAN® WM1302 versión SPI, los chips Semtech SX1302 y SX126x están conectados a Raspberry Pi a través del mismo bus SPI con diferentes pines de selección de chip (CS).
Para el Módulo Gateway LoRaWAN® WM1302 versión USB, los chips Semtech SX1302 y SX126x están conectados a un MCU STM32L4, y este MCU programado de fábrica funcionará como un dispositivo USB, convirtiéndose en un puente entre Raspberry Pi y SX1302/SX126x.
Inicio Rápido con WM1302
Hardware Requerido
-
Módulo Gateway LoRaWAN® WM1302
-
Placas Raspberry Pi con conector GPIO de 40 pines (ej. Raspberry Pi 4B o Raspberry 3B+)
-
Pi Hat WM1302 para Raspberry Pi
-
Adaptador de alimentación para Raspberry Pi
-
Una antena LoRa®
-
Una tarjeta SD de 8G o mayor y un lector de tarjetas
-
Un cable USB Tipo C si se usa el Módulo Gateway LoRaWAN® WM1302 versión USB
Software Requerido
-
Imagen más reciente de Raspberry Pi OS: Se recomienda Raspberry Pi OS Lite
-
Balena Etcher: Para grabar la imagen de Raspberry Pi OS en la tarjeta SD
-
putty: Para conectarse a Raspberry Pi vía SSH en Windows
Paso1. Montaje del Pi Hat WM1302 e instalación del módulo WM1302
Es fácil montar el Pi Hat en el conector de 40 pines de Raspberry Pi. Apague primero la Raspberry Pi, inserte el módulo WM1302 en el Pi Hat como se muestra en la siguiente imagen y atorníllelo.
Si se está usando el módulo WM1302 versión USB, por favor conecte también su puerto Tipo C al puerto USB de la Raspberry Pi con un cable USB Tipo C.
Paso2. Habilitar las interfaces I2C y SPI de Raspbian
El módulo WM1302 se comunica con Raspberry Pi mediante SPI e I2C. Pero estas dos interfaces no están habilitadas por defecto en Raspbian, por lo que el desarrollador necesita habilitarlas antes de usar WM1302. Aquí, presentamos una forma de línea de comandos para habilitar las interfaces SPI e I2C.
Primero, inicie sesión en Raspberry Pi vía SSH o usando un monitor (no use la consola serie ya que el módulo GPS en el Pi Hat toma control de los pines UART de hardware del Pi), luego escriba sudo raspi-config
en la línea de comandos para abrir la Herramienta de Configuración de Software de Raspberry Pi:
sudo raspi-config
-
Selecciona
Interface Options
-
Selecciona
SPI
, luego seleccionaYes
para habilitarlo -
Selecciona
I2C
, luego seleccionaYes
para habilitarlo -
Selecciona
Serial Port
, luego seleccionaNo
para "Would you like a login shell..." y seleccionaYes
para "Would you like the serial port hardware..." -
Después de esto, por favor reinicia la Raspberry Pi para asegurar que estas configuraciones funcionen.
Paso3. Obtener y compilar el código fuente de SX1302
Ahora vamos a instalar git
y descargar sx1302_hal
(biblioteca y programas para SX1302 LoRa Gateway) desde github:
sudo apt update
sudo apt install -y git
cd ~
git clone https://github.com/Lora-net/sx1302_hal
Muévete a la carpeta sx1302_hal
y compila todo:
cd ~/sx1302_hal
make
Paso4. Ejecutar el reenviador de paquetes Semtech SX1302
En el nuevo kernel de Linux, la interfaz sysfs ha sido reemplazada por la interfaz chardev.
Esto causa que el reset_lgw.sh proporcionado en el repositorio sx_1302 no reinicie el módulo correctamente y genere los siguientes registros:
...
./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
...
Para determinar si el sistema en el que estás ejecutando aún tiene la interfaz sysfs, puedes ejecutar el siguiente comando:
ls /sys/class/gpio
Para Linux con interfaz sysfs:
Si aparece una serie de carpetas gpiox
en él, significa que el kernel de tu sistema aún tiene la interfaz sysfs, y puedes usar el script anterior para reiniciar el módulo.
Modifica el pin de reset
para SX1302 y SX1261 en el script reset_lgw.sh
, con el editor de texto nano
:
nano tools/reset_lgw.sh
El siguiente código se muestra en la cabecera del editor de texto:
# 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)
Usa las teclas de navegación para mover el cursor, cambia SX1302_RESET_PIN=23
a SX1302_RESET_PIN=17
y SX1261_RESET_PIN=22
a SX1261_RESET_PIN=5
, como sigue:
# 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)
Guarda estos cambios presionando CTRL + x
, y luego y
, finalmente presiona Enter
para cerrar el editor de texto.
Para Linux sin interfaz sysfs:
Si no hay una carpeta llamada gpiox
en ella, entonces necesitas llamar al GPIO usando el paquete Libgpiod.
El script reset_lgw.sh para controlar el GPIO usando el paquete Libgpiod es el siguiente:
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
Copia reset_lgw.sh
a la carpeta packet_forwarder
, luego ejecuta lora_pkt_fwd
. Ten en cuenta que debes seleccionar un archivo de configuración global_conf.json.sx1250.xxxx
basado en el módulo que estés usando:
cp tools/reset_lgw.sh packet_forwarder/
cd packet_forwarder
# Please select one of the following comands based on your module
# for WM1302 LoRaWAN Gateway Module (SPI) - EU868
./lora_pkt_fwd -c global_conf.json.sx1250.EU868
# for WM1302 LoRaWAN Gateway Module (USB) - EU868
./lora_pkt_fwd -c global_conf.json.sx1250.EU868.USB
# for WM1302 LoRaWAN Gateway Module (SPI) - US915
./lora_pkt_fwd -c global_conf.json.sx1250.US915
# for WM1302 LoRaWAN Gateway Module (USB) - US915
./lora_pkt_fwd -c global_conf.json.sx1250.US915.USB
Ahora, el reenviador de paquetes puede ejecutarse correctamente. Pero aún hay cosas que hacer si los desarrolladores necesitan reenviar paquetes LoRa® a su Servidor LoRa® (por ejemplo, TTN o ChirpStack).
Para lograr este objetivo, los desarrolladores primero deben agregar la Puerta de Enlace Raspberry Pi al Servidor LoRa. Tomando TTNv3 como ejemplo, inicia sesión en la consola TTNv3, haz clic en Go to gateways
y haz clic en Add gateway
, en la página Add gateway
encontrarás docenas de configuraciones para completar. En lo que necesitas enfocarte es en Gateway EUI
y Gateway Server address
y Frequency plan
, las demás déjalas por defecto.
-
Gateway EUI
: Un identificador único extendido de 64 bits para tu puerta de enlace, lo configuramos comoAA555A0000000000
en esta wiki -
Gateway Server address
: La dirección del servidor al cual se conectará la puerta de enlace, copia esto al portapapeles, los desarrolladores necesitan guardar esto en el archivo de configuración más tarde -
Frequency plan
: Si usas el módulo EU868, eligeEurope 863-870 MHz (SF9 for RX2)
, si usas el módulo US915, eligeUnited States 902-928 MHz, FSB 2
Después de agregar la puerta de enlace, regresa a la Raspberry Pi, presiona CTRL + c
para detener lora_pkt_fwd
, luego edita el archivo de configuración global_conf.json.sx1250.xxxx
que usaste recién, con el editor de texto nano
:
# Please select one of the following comands based on your module
# for WM1302 LoRaWAN Gateway Module (SPI) - EU868
nano global_conf.json.sx1250.EU868
# for WM1302 LoRaWAN Gateway Module (USB) - EU868
nano global_conf.json.sx1250.EU868.USB
# for WM1302 LoRaWAN Gateway Module (SPI) - US915
nano global_conf.json.sx1250.US915
# for WM1302 LoRaWAN Gateway Module (USB) - US915
nano global_conf.json.sx1250.US915.USB
Básicamente, necesitas modificar estos parámetros: "gateway_ID" "server_address" "serv_port_up" "serv_port_down"
, que se pueden encontrar al final del archivo de configuración. Copia Gateway Server address
a "server_address"
, cambia "serv_port_up"
y "serv_port_down"
a 1700
, estos parámetros deben editarse así:
"gateway_conf": {
"gateway_ID": "AA555A0000000000",
/* change with default server address/ports */
"server_address": "eu1.cloud.thethings.network",
"serv_port_up": 1700,
"serv_port_down": 1700,
Guarda estos cambios presionando CTRL + x
, luego y
, y finalmente presiona Enter
para cerrar el editor de texto.
Reinicia lora_pkt_fwd
, encontrarás que tu Gateway de Raspberry Pi está conectado a TTNv3.
# Please select one of the following comands based on your module
# for WM1302 LoRaWAN Gateway Module (SPI) - EU868
./lora_pkt_fwd -c global_conf.json.sx1250.EU868
# for WM1302 LoRaWAN Gateway Module (USB) - EU868
./lora_pkt_fwd -c global_conf.json.sx1250.EU868.USB
# for WM1302 LoRaWAN Gateway Module (SPI) - US915
./lora_pkt_fwd -c global_conf.json.sx1250.US915
# for WM1302 LoRaWAN Gateway Module (USB) - US915
./lora_pkt_fwd -c global_conf.json.sx1250.US915.USB
Fuentes
Certificados
Soporte Técnico y Discusión de Productos
Por favor envía cualquier problema técnico a nuestro foro.
¡Gracias por elegir nuestros productos! Estamos aquí para brindarte diferentes tipos de soporte para asegurar que tu experiencia con nuestros productos sea lo más fluida posible. Ofrecemos varios canales de comunicación para satisfacer diferentes preferencias y necesidades.