Skip to main content

Configuración LNS del Gateway Multi-Plataforma SenseCAP M2

Configuración del Gateway

Configure el gateway a través de la interfaz web, por favor consulte la Guía de Inicio Rápido para iniciar sesión en Luci.

Configuración del Plan de Canales

Navegue a LoRa > Channel Plan

pir

Seleccione la Región y el plan de frecuencias.

pir

Después de configurar, haga clic en Save&Apply

Configuración del Servidor de Red Local

Navegue a LoRa > LoRa Network

pir

Configure el Modo a Local Network Server, agregue su información de MQTT (Broker Host/Port/User/Password), otros parámetros pueden mantener el valor predeterminado.

pir

Haga clic en Save&Apply para aplicar su configuración.

Nota

Tomará aproximadamente 1 minuto iniciar el proceso, luego podrá acceder a la configuración de la interfaz gráfica.

Configuración de la Interfaz Gráfica ChirpStack

Inicie sesión en la interfaz gráfica ChirpStack a través de http://localhost:8080.

pir

La cuenta y contraseña predeterminadas: admin.

pir

Luego verá la página del panel de control.

pir

Verificar las Regiones

Navegue a Network Server > Regions.

Debería haber un ID de Región, haga clic en él y confirme la información, debería ser igual a su configuración en el paso anterior.

pir

pir

Agregar Perfil de Dispositivo

Navegue a Tenant > Device Profiles, y haga clic en Add Profile.

pir

Versión MAC: LoRaWAN 1.0.3

Revisión de parámetros regionales: A

Algoritmo ADR: Algoritmo ADR predeterminado (solo LoRa)

Intervalo de uplink esperado: Personalizar, predeterminado 3600s

pir

Navegue a Codec, y seleccione JavaScript functions, copie el Decodificador SenseCAP para TTN y envíelo.

pir

Agregar Gateway

Navegue a Gateway, y haga clic en Add Gateway.

pir

Defina el Nombre y el ID del Gateway (puede hacer clic para generar aleatoriamente el ID), luego envíelo.

pir

Agregar Dispositivo

Navegue a Tenant > Application, y haga clic en Add Application.

Nombre su aplicación y envíela.

pir

Navegue a su aplicación, y haga clic en Add device.

pir

Pegue su EUI del dispositivo y seleccione el perfil de dispositivo que agregamos antes, luego envíelo.

pir

Pegue la clave de aplicación y haga clic en enviar.

pir

Verificar el estado del dispositivo

Verifique los Events de su dispositivo, obtendrá el paquete de unión cuando el dispositivo se una a la red.

pir

También puede verificar los detalles del paquete.

pir

Integraciones

Este capítulo es para el desarrollo de servicios en la nube, la siguiente guía es de referencia.

MQTT

Tema

La integración MQTT expone todos los eventos como se documenta en los tipos de eventos.

El tema de evento predeterminado es:

application/APPLICATION_ID/device/DEV_EUI/event/EVENT

Consulta Tipos de Eventos para más detalles.

Puedes encontrar el ID de la aplicación en la pestaña de tu aplicación:

pir

  • Tipos de eventos
upEvento de enlace ascendente
statusEstado de margen y batería
joinEvento de unión del dispositivo
ackConfirmación (n)ack de enlace descendente confirmado
txackConfirmación de transmisión de enlace descendente
logEvento de registro (o error)
locationEvento de ubicación
integrationEvento de integración
Nota

+ significa recibir todos los mensajes

Ejemplo:

  • Para recibir mensajes de enlace ascendente de todos los dispositivos bajo una puerta de enlace determinada:
gateway/<GATEWAY_EUI>/device/+/event/up
  • Para recibir todos los mensajes de todos los dispositivos bajo la aplicación:
application/+/device/+/event/+
  • Para recibir todos los mensajes de dispositivos de todas las puertas de enlace:
gateway/+/device/+/event/+

Puedes verificar el gatewayid para distinguir los gateways.

pir

Payload

Cuando object.valid es true, significa que el análisis de datos fue exitoso, entonces puedes recorrer object.messages y extraer el tipo de datos que necesites.

pir

  1. Ejemplo de descripción del payload del evento Up para sensores SenseCAP LoRaWAN S210X:

pir

  • upload_battery: Batería
  • upload_interval: intervalo de carga, unidad: Segundo
  • upload_version: Versión de Hardware/Firmware
  • report_telemetry: Valor de medición

El measurementId en el mensaje 'report_telemetry' por favor consulta SenseCAP Measurement ID para más detalles.

pir

  1. Ejemplo de descripción del payload del evento Up para SenseCAP Data logger:

pir

El measurementId en el mensaje 'report_telemetry' por favor consulta SenseCAP Measurement ID para más detalles.

HTTP

Haz clic en + en la pestaña HTTP para agregar una nueva integración HTTP.

LNS enviará mensajes como POST a la URL configurada.

pir

Envía la información de tu URL.

Nota

Solo soporta http, no https.

pir

La integración HTTP realizará solicitudes POST al endpoint de evento configurado o endpoints (se pueden configurar múltiples URLs, separadas por comas). El parámetro de consulta de URL del evento indica el tipo del evento.

La integración HTTP expone todos los eventos como se documenta en Event Type.

Ejemplo:

main.py
from http.server import HTTPServer, BaseHTTPRequestHandler 

from urllib.parse import urlparse, parse_qs

from chirpstack_api import integration

from google.protobuf.json_format import Parse

class Handler(BaseHTTPRequestHandler):

\# True - JSON marshaler

\# False - Protobuf marshaler (binary)

json = False

def do_POST(self):

self.send_response(200)

self.end_headers()

query_args = parse_qs(urlparse(self.path).query)

content_len = int(self.headers.get('Content-Length', 0))

body = self.rfile.read(content_len)

if query_args["event"][0] == "up":

self.up(body)

elif query_args["event"][0] == "join":

self.join(body)

else:

print("handler for event %s is not implemented" % query_args["event"][0])

def up(self, body):

up = self.unmarshal(body, integration.UplinkEvent())

print("Uplink received from: %s with payload: %s" % (up.device_info.dev_eui, up.data.hex()))

def join(self, body):

join = self.unmarshal(body, integration.JoinEvent())

print("Device: %s joined with DevAddr: %s" % (join.device_info.dev_eui, join.dev_addr))

def unmarshal(self, body, pl):

if self.json:

return Parse(body, pl)

pl.ParseFromString(body)

return pl

httpd = HTTPServer(('', 8090), Handler)

httpd.serve_forever()

Enlace descendente

Mensaje de enlace descendente:

info

Se recomienda marcar el enlace descendente como retenido. Entonces el comando no se ejecutará repetidamente.

El Tema predeterminado es: application/APPLICATION_ID/device/DEV_EUI/command/down

command: Por favor consulte el comando de enlace descendente en el Manual de Usuario del Dispositivo para más detalles.

Temaapplication/APPLICATION_ID/device/DEV_EUI/command/down
devEUIEUI del Dispositivo
confirmedtrue/false(si la carga útil debe enviarse como datos confirmados descendentes o no)
fPortFPort a usar (debe ser > 0)
datadatos codificados en base64 (texto plano, será encriptado por ChirpStack)

Ejemplo:

  1. Reiniciar Sensores LoRaWAN SenseCAP S210x:

Tema:

application/dbf6\*\*\*\*6c92/device/2CF7F1C2\*\*\*/command/down

Json:

{

"devEui":"2CF7F1C2\*\*\*",

"confirmed":true,

"fPort":2,

"data":"AMgAAAAAACsm"

}
  1. Configura el intervalo de carga de los Sensores LoRaWAN SenseCAP S210x a 1min :

Tema

application/dbf6\*\*\*\*6c92/device/2CF7F1C2\*\*\*/command/down

Json

{

"devEui":"2CF7F1C2\*\*\*",

"confirmed":true,

"fPort":2,

"data":"AIkAESIBAJBQ"

}
Loading Comments...