文章目录
在上一篇文章 http://t.csdn.cn/Qr8T5 已经完成了ChirpStack服务器的知识和功能讲解,以及如何搭建与配置ChirpStack服务器。这为LoRaWAN网关的接入以及设备的连通创造了关键的基石。
在本次文章中,主要讲解LoRaWAN架构,LoRaWAN网关的基本功能应用以及接入ChirpStack服务器的方式。
继续认识LoRaWAN
在对ChirpStack的文章中我们已经了解了LoRaWAN协议的基本概念,我们将继续深入了解LoRaWAN实现及架构等。
协议层级
LoRaWAN是建立在LoRa技术之上的通信协议,它工作在更高的协议层,LoRa是一种用于低功耗广域网(LPWAN)的射频调制技术,可用于创建远程通信链路。LoRaWAN是一种开放式网络协议,可提供由LoRa联盟标准化和维护的安全双向通信,移动性和本地化服务。
LoRaWAN层级如下图:
Application(应用层)
应用层是LoRaWAN协议的最顶层,代表了物联网应用程序和服务的部分,在应用层,数据由物联网设备收集并传输到网络中,然后由应用服务器进行解析和处理,应用层可以处理数据的转换、存储、分析以及生成警报、图形界面等应用功能。
LoRaWAN MAC(媒体访问控制)
LoRaWAN MAC位于LoRaWAN协议的数据链路层上,MAC层负责管理LoRaWAN设备的通信行为,包括数据传输、设备激活、身份验证、数据速率控制、MAC命令处理等,以确保设备能够与LoRaWAN网络稳定和有效地进行通信。它在LoRaWAN协议栈中位于物理层(PHY)之上,与应用层和物理层协同工作。
LoRaWAN MAC options(媒体访问控制选项)用于控制和配置LoRaWAN设备的通信行为,常见的选项有:ADR(自适应数据速率)、确认(Confirm)、FPort(应用数据端口)、FOptsLen(选项长度)、DevNonce(设备随机数)、RX1DROffset(接收窗口1数据速率偏移)、RX2DataRate(接收窗口2数据速率)、DLSettings(下行链路设置),通过配置这些LoRaWAN网络和设备之间的通信参数,可实现通信性能和功耗的管理。
三种MAC协议:Class A 、Class B、ClassC代表了不同设备类别和通信行为。Class A的设备只在发送数据后才接收数据,这使得Class A设备的功耗最低;Class A的设备有固定的接收窗口时间,设备必须在这些时间窗口内接收,通常比Class A设备功耗略高;Class B的设备允许持续接收数据,只在发送数据时关闭接收,这使得它能够更快地响应命令,但功耗比Class A和Class B设备高。
LoRa Modulation(LoRa调制)
位于LoRaWAN协议的物理层。LoRa无线调制技术(基本上是CSS (ChirpSpread Spectrum) 调制,使用不同的扩频因子提供不同的数据速率)使得LoRaWAN设备能够低功耗长距离通信。
Regional ISM band(地区ISM频段)
代表LoRaWAN通信使用的无线频段,不同地区和国家划分不同的频段。
网络架构
LoRaWAN网络架构如下图:
End Devices
终端设备,以嵌入式开发为主且包含嵌入式软硬件开发,并且板上包含LoRa模块,模块使用LoRa RF(LoRa射频技术)与附近的LoRaWAN网关通信,设备会发送数据包,这些数据包将被LoRaWAN网关接收。
终端设备常代表一些拥有自主探测能力的传感器,例如水流感应器检测水流脉冲数、光电感应器感应照明、漏水感应器检测地面潮湿、雷达感应器检测人流量、占用感应器显示这个位置是否有人使用,到电子智带手表可以跟踪人体行为情况等,这些终端设备负责采集环境指标/参考性数据等,或可提供边缘计算的能力来自主判断感应信息是否达标。
LoRa设备会被分配唯一标识符,这是由生产商出厂时赋予的,通过这个唯一标识符,即DevEUI(设备ID)可以在应用服务器部分创建其虚拟设备,方便rx/tx的目标对应以及管理设备。
GateWay
LoRaWAN网关是连接终端设备和LoRaWAN网络服务器之间的桥梁。它们负责接收终端设备发送的数据,并将数据传输到LoRaWAN网络服务器。LoRaWAN网关通常安装在高地理位置,以提供广泛的覆盖范围。它们可以覆盖数公里甚至更远的范围,具有优秀的信号穿透能力。
网关的类别可有:室内网关、室外网关、基站(如NB-IoT的运营商基站)。
Network Server
网络服务器,可处理设备的激活、身份验证,协调设备的通信行为,包括数据传输的调度和设备的参数配置。这是物联网设备接入网络后,实现设备验证监测管理的关键,也就是说设备通过网关接入网络(具备了上网的功能),它所上传的数据以及会接受什么样的指令,都由网络服务器来管理了。
上一篇文章将的ChirpStack也就是网络服务器的一种。
Application Server
它接收从网络服务器传输的数据,并将数据解析和处理为有意义的信息。应用服务器要结合实际的业务场景来设计了,执行特定的应用逻辑,将数据用于监控、控制、警报、报告或其他应用功能。
例如在智慧洗手间应用服务器上,会接收来自网络服务器未解析的编码的空气质量数据,将数据进行BASE64/进制转换/bit判断后,得到了空气质量指标的数据,分别有h2s、nh3、ch2o、co2、tvoc、pm2.5、pm10、temperature、humidity,接收到这些数据后,应用逻辑可以做根据国际空气质量等级IAQ计算公式,计算出EXCELLENT、GOOD、POOL等级进行通知、监控、警报、分析等功能。
关系
终端设备遵循LoRa RF技术按LoRaWAN标准把数据上传到Gateway,Gateway可使用TCP/IP协议或SSL协议将接收到的数据上传给Network Server,基于TCP之上,可以是MQTT协议进行传输。Network Server采用TCP/IP协议或SSL协议传递给Application Server,可以是HTTP形式等。
频段分布
由于终端设备采用LoRa无线调制技术发送信号,而信号的传输是依赖无线电波的,无线电波是一种公共资源,这就需要有统一的标准来约定每个地区/国家使用的无线电频段范围。
LoRaWAN的频段划分在全球范围内并不统一,不同地区有不同的频率规划。以下是一些主要地区的LoRaWAN频段划分:
欧洲
- EU868频段:该频段是欧洲主要的LoRaWAN频段。其工作频率为868 MHz,适用于大多数欧洲国家。
- RU864-870频段:俄罗斯采用的频段,工作频率为864-870 MHz。
北美
- US902-928频段:美国和加拿大采用的主要频段。工作频率为902-928 MHz。
- AS923频段:亚太地区一些国家和地区采用的频段,工作频率为923 MHz。
亚太地区
- AS923频段:亚太地区一些国家和地区采用的频段,工作频率为923 MHz。
- AU915-928频段:澳大利亚和新西兰采用的频段,工作频率为915-928 MHz。
其他地区
- CN470-510频段:中国采用的频段,工作频率为470-510 MHz。
- KR920-923频段:韩国采用的频段,工作频率为920-923 MHz。
LoRaWAN网关
基本介绍
本章以RAK瑞科网关为例,进行使用功能介绍。
连接到RAK 网关WiFi,打开192.168.230.1
在总览里可以看到感应器的收发指标
在LoRa Packet Logger里可以看到设备数据传输情况,黄色闪电头标识设备正请求入网、绿色闪电头标识设备入网成功,蓝色上标头标识设备上行数据。
System log表示网关的系统日志,Ping信息、网关信息、网关配置有问题、转发器连接超时等都会在这里打印。
我们可以在WAN Interface配置我们网关的ip地址是动态分配还是静态
配置我们网关WIFI的账号密码以及网关接入互联网连接哪个WIFI(网关接入互联网可选择使用网线、SIM卡、WIFI的方式)
可在此处检测网络情况以及追踪网络链路
在这里可以设置接收的频段
当网关需要VPN来访问Packet Forwarder的时候,可以为网关添加OpenVPN
填入配置,这需要先准备你的cafile、certfile、keyfile
TLS/SSL协议
基于传输层的加密。使用三个文件来实现身份验证和保证数据安全。
使用cafile来验证服务器证书的合法性,确保与之通讯的服务是可信的。
使用certfile(证书文件)来向服务器证明客户端的身份,服务器通过检测该证书确保与之连接的客户端是经过授权的。
使用keyfile(私钥文件)来生成数字签名,对通信进行加密和解密操作,并与certfile证书配对,只有拥有与证书配对的私钥的客户端才能使用证书进行身份验证。
Parameters |
---|
client |
remote remoteIP |
resolv-retry infinite |
dev tun |
nobind |
persist-key |
persist-tun |
persist-local-ip |
persist-remote-ip |
verb 3 |
comp-lzo |
keepalive 60 600 |
remote-cert-tls server |
cipher AES-256-CBC |
key .key |
cert .crt |
ca .crt |
proto tcp-client |
user nobody |
group nogroup |
mssfix 1200 |
ncp-disable |
auth-nocache |
接入ChirpStack
了解了RAK网关后,我们来将设备数据通过网关上传给ChirpStack。
由于我的LoRaWAN网关支持AS923的频段,因此我准备了一个包含LoRa模块的AS923的设备。
添加网关
需要先创建Gateway-profiles
在RAK上查看Gateway EUI
在Chirpstack上创建对应的Gateway
添加设备
首先在ChirpStack创建一个设备
该设备支持OTTA模式,因此需要填写APP Key
配置Packet Forwarder
配置完Gateway和Device后,我们回到RAK,在Network Server中选择使用Protocol为MQTT发送到我们的MQTT broker地址上(要确保网关能够访问到MQTT broker)
查看效果
可以看到网关已经活跃了,并且能查看到位置和packet包接收情况
我们再来看Device
设备还没入网前,不会显示内容
设备入网,并上传数据
join表示设备入网,up表示rx数据上行
至此,设备到网关,网关接入ChirpStack这个链路就走通了。我们在Network Server拿到感应器数据了,接下来就需要将Network Server的数据集成到我们的Application Server了,以实现LoRaWAN网络服务器和我们的SpringBoot后台应用(Application Server)连通,这将在下一章分享ChirpStack服务器集成SpringBoot服务
。