跳到主要内容

LoRaWAN 环境搭建

LoRa和LoRaWAN

什么是LoRa?

Semtech 的 LoRa 是一种长距离、低功耗的物联网 (IoT) 无线平台,一般情况下泛指使用LoRa技术的射频芯片.主要特点如下

  • LoRa(long range 的缩写)采用的扩频调制技术源于啁啾扩频 (CSS) 技术,是远距离无线传输技术和LPWAN通信技术中的一种.扩频技术用带宽换取灵敏度的技术,Wi-Fi,ZigBee等都使用了扩频技术,但LoRa调制的特点是接近香农定理的极限,最大效率地提高灵敏度.相比于传统FSK技术,在相同的通信速率下,LoRa比FSK灵敏度好8~12dBm.目前,LoRa 主要在Sub-GHz的ISM频段运行,

  • LoRa技术融合了数字扩频、数字信号处理和前向纠错编码等技术使得在长距离通信性能层面大幅度提高,LoRa的链路预算优于其他任何标准化的通信技术,链路预算是指给定的环境中决定距离的主要因素.

  • LoRa射频芯片主要有 SX127X系列,SX126X系列,SX130X系列,其中SX127X,SX126X系列用于LoRa节点,SX130X用于LoRa网关,详情可参考Semtech的产品列表

什么是LoRaWAN?

  • LoRaWAN 是一种建立在 LoRa 无线电调制技术之上的低功耗广域网开放协议。旨在将电池供电的“事物”无线连接到区域、国家或全球网络中的互联网,并针对关键的物联网 (IoT) 要求,例如双向定向通信、端到端安全、移动性和本地化服务。其中节点无线连接到互联网有入网认证,相当于建立节点和服务器间的加密通信信道,LoRaWAN协议层次下图所示。

  • MAC层中的Class A/B/C 三类节点设备基本覆盖了物联网所有的应用场景,三者之间不同点在于节点收发的时隙不同

  • Modulation层中EU868,AS430等表明不同国家使用频段参数不同,地区参数请点击参考链接

    LoRaWAN 协议栈

  • 实现LoRaWAN网络覆盖城市或其它区域需要由节点(LoRa节点射频芯片)、网关(或称基站,LoRa网关射频芯片)、Server和云四部分组成,如下图所示

  • DEVICE(节点设备)需先发起入网请求数据包到GATEWAY(网关)再到服务器,认证通过后才可以正常和服务器收发应用数据

  • GATEWAY(网关)可通过有线网络,3/4/5G无线网络与服务器进行通信

  • 服务器端主要运营商有TTN等,自行搭建云端服务请参考lorawan-stack,chirpstack

    LoRaWAN 网络结构

应用

  • 本应用基于 LoRaWAN 官方示例ModemE_application_examples,仅演示了基础的 LoRaWAN Class A 应用。其他高级示例可参考官方仓库自行移植,包括:认证申请、LoRaWAN B 类应用、LoRaWAN 多播 B/C 类示例和FUOTA 示例。

器件准备

  • 树莓派4B(含配套电源)

  • SD卡(建议使用容量大于 8GB 的 SD 卡)

  • 读卡器

  • 网关设备

  • 节点设备

  • 开发板(可选型号):ESP32、树莓派、STM32 和 Raspberry Pi Pico

    LoRaWAN 网络覆盖

服务器搭建

  • 本示例使用ChirpStack作为 LoRaWAN 网络服务器,请按照官方提供的 Raspberry Pi 安装步骤进行配置。

  • 先下载ChirpStack Gateway OS 镜像,将其解压后,使用Win32DiskImager将镜像写入 SD 卡。

    下载镜像

    下载镜像

    写入镜像

    写入镜像

  • 写入完成后,请参考官方文档进行详细配置。本文仅提供简要安装流程,详细信息请参见:ChirpStack Gateway OS 入门指南

  • 将 SD 卡插入树莓派并通电启动。启动后,电脑 Wi-Fi 将扫描到名为 ChirpStackAP-XXXXXX 的无线热点,密码为 ChirpStackAP。连接成功后,在浏览器中访问:192.168.0.1,即可打开 ChirpStack 管理界面,首次登录无需密码。

    连接 Wi-Fi

    连接 Wi-Fi

    访问 Web 界面

    访问 Web 界面

  • 启动后可通过以太网或 Wi-Fi 接入外部网络。此处以连接以太网为例,若需配置 Wi-Fi,请参考:Wi-Fi 配置,联网后可在 Web 管理界面查看当前 IP 地址。

    获取网关 ID

添加网关

  • 服务器配置完成并获取 IP 地址后,关闭树莓派并断电,将 SX1303-868M-LoRaWAN-Gateway-HAT(网关设备)连接至树莓派,并接上天线。启动树莓派后,在浏览器中访问前面获取的 IP 地址,进入 ChirpStack 管理界面,依次点击ChirpStack -> Concentratord,启用网关功能。以 SX1303(868 MHz)为例,配置如下,配置完成后点击“保存并应用”:

    使能网关

    使能网关

    配置网关参数

    配置网关参数

  • 使用前面获取的 IP 地址通过 SSH 工具(如 MobaXterm)远程访问设备。默认用户名为 root,连接成功后,在终端中输入以下命令获取网关 ID:gateway-id,系统将输出当前设备的网关 ID,请记下该 ID,稍后添加网关时将用到。

    使能网关

  • 进入应用程序:Applications -> ChirpStack,首次进入时需要登录,默认账号和密码均为 admin。登录后,点击 Gateways -> Add gateway,在添加页面中填写前面获取的 gateway-id,并保存。返回 Gateways 页面,即可看到网关是否已经成功上线。

    添加网关到服务器

    添加网关到服务器

    查看网关是否上线

    查看网关是否上线

添加节点

  • 这里以 Core1121-XF 为例,添加节点。

  • 首先,在 Web 界面中添加一个设备配置文件:Device Profiles -> Add device profile,配置如下图所示:

    添加节点

  • 然后添加一个应用程序:Applications -> Add application,填写相关信息并保存:

    添加节点

    设置 EUI

    设置 EUI

    设置密钥

    设置密钥

  • 使用 05_lr2021_LoRaWAN 示例程序,打开后进入目录:core2021-xf\examples\arduino\05_lr2021_LoRaWAN中,编辑其中的 config.h 文件,将前面生成的 EUI 和 密钥 等信息填入对应位置。完成后编译并烧录。

    填入 EUI

  • 烧录完成后,节点将自动请求加入 LoRaWAN 网络。加入成功后,节点将定时发送上行数据。可通过 Web 界面查看设备事件与通信状态:

    ①、点击 Events,查看节点运行状态

    ②、观察是否加入失败

    ③、若加入成功,可看到入网事件

    ④、查看节点上报的数据

    ⑤、通过串口查看调试信息

    烧录成功效果

  • 服务器也支持向节点下发数据:

    ①、点击 Queue

    ②、输入需要下发的十六进制数据

    ③、点击发送

    ④、节点接收数据并在串口打印

    服务器下发数据