基于开源软件的LoRaWAN物联网实验方案探究
2020-12-08司长明王长莲
司长明 王长莲
摘要:本文探究了一种使用开源的LoRaWAN服务器ChripStack和开源的物联网平台ThingsBoard,利用ChripStack提供的“LoRaWAN网络的开源组件”,实现跨网关不同LoRa节点间的通信,及读取节点数据和发送数据给节点的功能。
关键词:开源;LoRa;LoRaWAN
中图分类号:TN929.5;TP391.44 文献标识码:A 文章编号:1672-9129(2020)16-0102-01
1 LoRa与LoRaWAN
LoRa(Long Range Radio)是一种远距离无线通信技术,主要在ISM频段运行,包括433、868、915 MHz等,具有通信距离远(最远可达15km),功耗低(10-20电池使用寿命),多节点(一个LoRa网关理论上可连接数千个节点),抗干扰能力强等优点,其总体性能在小范围内(如工厂的厂区内)表现地非常好。
LoRaWAN是基于LoRa远距离通信网络设计的一套通讯协议和系统架构,是一套数据交互的协议标准,定义了LoRaWAN节点,LoRaWAN网关,LoRaWAN Server之间的通信,可以实现不同网关之间的通信,进而实现不同网关下LoRa节点之间的通信。
2 方案框架及数据传输流程
本文主要探究的是使用开源LoRaWAN服务器ChripStack和开源的物联网平台ThingsBoard相结合,利用开源的物联网编程工具Node-RED来编写控制逻辑,实现多个LoRa网关连接到云端并进行不同网关之间的通信。基于ChripStack的LoRaWAN拓扑结构图如图1所示。
图1中,LoRa节点表示通过传感器采集环境信息的设备,这些可以是:测量空氣质量,温度,湿度,可燃气等信息的设备;LoRa网关是多个LoRa节点之间相互通信的媒介,可以接收节点数据及发送数据给节点;在LoRa网关上运行的有一个网关与Server间的包转发器,负责接收和发送数据,称为Packet Fowarder,一般使用开源应用Semtech UDP数据包转发器;ChirpStack网关桥位于数据包转发和MQTT代理之间,它将数据包转发格式(如Semtech UDP数据包转发器协议)转换为ChirpStack组件使用的数据格式,还提供了与各种云平台的集成方式;MQTT是一种基于客户端-服务器的消息发布/订阅传输协议,具有低开销、低带宽占用、轻量、简单、开放和易于实现的特点,使其在M2M通信、物联网(IOT)、小型设备等方面有较广泛的应用,而Pub/Sub broker是MQTT的消息代理服务器,主要用于中转多个设备之间的消息,也称为MQTT的服务器;ChirpStack网络服务器是一个LoRaWAN的网络服务器,负责管理网络的状态,能够在网络上将连接的设备激活,并且能够在设备要加入网络时处理加入请求,完成节点的入网及将数据发送给指定的网关;ChirpStack应用服务器是一个LoRaWAN应用服务器,可以通过高性能、开源和通用的RPC框架gRPC与ChirpStack网络服务器完成通信,ChirpStack应用服务器主要提供了用于管理用户,组织,应用程序,网关和设备的Web界面和API;ThingsBoard是一个开源的物联网平台,使用行业标准物联网协议(MQTT,COAP和HTTP)实现设备连接,并支持云和本地部署,能够收集数据并对数据进行可视化展示,主要用于数据收集、处理、可视化展示以及设备管理等;Node-RED是IBM在2013年末开发的一个开源项目,现在已经发展成为一个较为开放的物联网开发工具,它是基于流的编程模型,其可视化编程方法,能够满足快速连接硬件和设备到Web服务和其他软件的需求,也被称为物联网的“粘合剂”,Node-RED能够与ChirpStack配合,结合ThingsBoard平台和LoRaWAN网关设备,完成对不同物联网应用场景模型下设备控制逻辑的实现,达到可视化编程来控制物联网设备的目标。
具体的数据传输流程如下:LoRa节点设备通过传感器将采集到的数据(空气质量、温度、湿度、光照、可燃气等)发送给LoRa网关(其可以接收/发送多个节点的数据),LoRa网关将数据通过数据包转发器(Packet Forwarder:常见实现是Semtech UDP数据包转发器)通过UDP发送给ChirpStack网关网桥,ChirpStack网关网桥位于数据包转发和MQTT代理之间,主要将数据包转发器格式转换为ChirpStack组件使用的数据格式,ChirpStack网关网桥使用MQTT协议通过消息代理服务器(Broker)将数据发送给ChirpStack网络服务器(负责管理网络的状态),ChirpStack网络服务器可以通过采用高性能RPC框架gRPC将数据传输给ChirpStack应用服务器,ChirpStack应用服务器将收到的上行链路数据转发到一个或多个已配置的集成,这里面使用的是Thingsboard,它可以使用ChirpStack应用服务器API来调度下行链路的相关LoRa节点设备,最终用于分析数据、发出警报、数据可视化以及触发相关操作等。
3 结语
本文根据作者在新大陆集团有限公司企业一线实践经历,探究了一种基于开源软件来实现LoRa远距离无线通信的实验方案,采用开源框架的设计能够帮助学生学习开源知识,加强学生创新性的培养,增强学生的专业技能。
参考文献:
[1]杨心元,杜丹,王凯.基于LoRaWAN-Server的态势呈现平台设计[J].计算机与网络,2020,46(16):55-57.
[2]刘映江,胡泽.基于LoRaWAN物联网技术的农田监测系统设计[J].数字通信世界,2017(12):120.
[3]龚天平.LORA技术实现远距离、低功耗无线数据传输[J].电子世界,2016(10):115+117.