LoRaServer 笔记 0.1 概览

2020-04-17 15:05:53 浏览数 (1)

前言

LoRaWAN 协议定义了系统拓扑,这是我们最常见的系统拓扑图。

但当了解到LoRaServerProject时,这套系统拓扑有了更细致的展现,采用 Rest API、gRPC、MQTT 等来实现 Gateway、NS、AS、CS 的协议处理。深入到这个开源项目中,会体会到这些协议给这个系统架构所带来的高效率与灵活性。

1 工程总体介绍

Lora Server project 是一套开源应用软件,实现从 网关接收到节点数据 一直到 应用程序接收到数据 这一段链路的处理。

The Lora Server project is an open-source set of applications that fill the gap between the gateways receiving messages from the nodes to just before the applications receiving the data. It provides mechanisms for managing the gateways on the LoRa network, the applications supported, and the devices associated with the applications.

整个工程设计地非常灵活,这样可以用不同方式来使用它。例如 LoRa App Server 组件实现 应用服务器组件,为用户提供一套 Web UI 来访问和修改他们的网关、应用程序和节点,还可以通过 gRPC 或者 JSON REST APIs 编程接口来访问系统。而且,API设计地也很灵活,子系统可以用其他相同接口的软件来替代。

The project is designed so that it may be used in a very flexible manner. For example the LoRa App Server component implements the application-server component and offers a Web UI for users to access and modify their gateways, applications and nodes. The system can also be accessed via programmatic interfaces implemented in gRPC and JSON REST APIs. Further, the APIs are designed such that the subsystems may be replaced by other software implementing the same interfaces.

2 系统架构

LoRa nodes

LoRa gateway

网关从节点接收数据,实现包的转发。

LoRa Gateway Bridge

LoRa Gateway Bridge负责处理网关的通讯。将网关转发的UDP协议转化成MQTT上的JSON。它比直接用UDP来传输,有如下优点:

  • 调试容易
  • 下行数据时只要知道网关的相应MQTT主题,MQTT broker 会找到负责相应网关的LoRa Gateway Bridge。
  • 使得网关和NS直接可以使用更安全的连接(使用 MQTT over TLS )
  • 未来,不同的bridge版本可以处理不同的网关协议,因此其余设备只需要知道 MQTT格式上的JSON串。

LoRa Server

LoRa Server组件能知道激活节点会话,当新节点加网时,它会向AS询问这个节点是否可以加入网络,如果准许的话,应该给这个节点采用何种设置。

对于激活节点会话,它对接收到的数据包做去重,并且对日期做校正(避免转发攻击),它转发数据给AS,会询问AS是否有东西要回复。

除了管理数据流,也可以通过所谓的MAC命令等来管理节点状态。

LoRa Server 使用 gRPC API,以方便你建立自己的AS。

LoRa App Server

LoRa App Server组件实现了一套对接 LoRa Server 的应用服务器。它提供了针对各个应用或者各个机构的节点管理,也提供了针对各个机构的网关管理。它还提供了用户管理以及针对不同机构、应用的用户的权限分配。它和应用的通讯是使用 JSON over MQTT,使用裸露的APIs。

LoRa App Servers提供了一个WEB界面,用来管理网关和节点,也提供API端点,这样它可以集成到你的自有产品中。//?没理解

LoRa App Servers offers a web-interface that can be used for gateway, node and gateway management, but also offers API endpoints so that it can be integrated with your own products.

Application

应用则通过订阅MQTT主题来接收节点的数据,也能通过MQTT回传数据。如果需要,它可以用 gRPC or JSON REST api 来和AS进行交互。

3 功能特性

ISM bands

满足 Regional Parameters 1.0 。

Devices classes

目前支持 LoRaWAN Class-A and Class-C

Adaptive data-rate (ADR)

Channel re-configuration

标准只使用了一部分信道,而这边支持信道重配置。

Web-interface

提供了Web界面,它提供了针对各个应用或者各个机构的节点管理,也提供了针对各个机构的网关管理。它还提供了用户管理以及针对不同机构、应用的用户的权限分配。它和应用的通讯是使用 JSON over MQTT,使用裸露的APIs。

API

NS和AS都提供了API来集成到你的产品中。如果需要的话,也可以使用 LoRa Server API 来实现一套自己的节点管理系统,来完全替代掉 LoRa App Server 。

Gateway management

提供了网关管理功能,这样可以管理你的网关,及他们的GPS位置,以及一些他们的性能追踪。


0 人点赞