SX1302 LoRaWAN Gateway HAT
| ||||||||||||||||||
| ||||||||||||||||||
说明
产品概述
本产品是一款使用新一代 SX1302/3 基带芯片的 LoRa 网关模组,具有传输距离远,节点容量大,和接收灵敏度高等特点,其中 SX1303 支持并发通信。SX1302/3 在低能耗方面的出色表现,使得网关可以简化自身的热设计,降低了材料成本和精简了尺寸。
产品特点
网关模组特性:
- 板载 Semtech SX1302/3 基带处理器和 SX1250 射频前端芯片组
- 板载 PA 和 LNA,具有 +26dBm 发射功率和 -141dBm 接收高灵敏度
- SX1303 支持精细时间戳,可基于计算到达时间差 (TDOA) 进行网络定位
- 52 个金手指引脚的 Mini-PCIe 外形封装,方便集成到各种嵌入式系统
- 板载 4 个 LED 指示灯,方便查看模块运行状态
- 提供完善的配套资料手册 (C 示例程序和使用手册等)
扩展板特性:
- 基于 Raspberry Pi 40PIN GPIO 接口,适用于 Raspberry Pi 系列主板
- 板载 L76K 模组,支持BD ,为网关模组提供精确时钟和定位坐标
- 提供完善的配套资料手册 (C 示例程序和使用手册等)
产品参数
LoRa网关 | GNSS模组 | |
供电电压 | 5V | |
频段区域 | EU868(863-870MHz) | GPS L1(1575.42MHz) BD2 B1(1561.098MHz) |
定位精度 | - | < 2.5m CEP |
调制方式 | LoRa/(G)FSK | - |
发射功率 | > 26dBm@5V | - |
接收灵敏度 | -141dBm@125KHz/SF12 -121dBm@125KHz/SF5 |
捕获:-148dBm 追踪:-163dBm 重捕获:-160dBm |
整机功耗 | 发射:710mA@5V GPS on 接收:99mA@5V GPS on 休眠:41mA@5V GPS off | |
通信接口 | SPI,I2C | UART |
外形接口 | Mini-PCIe | - |
工作温度 | -40~85℃ | |
尺寸 | 50.95 × 30mm | - |
硬件说明
硬件连接
按如下图所示连接HAT到树莓派,GPS天线无标签一面朝上放置在可视开阔天空区域 |
接口说明
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网络覆盖城市或其它区域需要由节点(LoRa节点射频芯片)、网关(或称基站,LoRa网关射频芯片)、Server和云四部分组成,如下图所示
- DEVICE(节点设备)需先发起入网请求数据包到GATEWAY(网关)再到服务器,认证通过后才可以正常和服务器收发应用数据
- GATEWAY(网关)可通过有线网络,3/4/5G无线网络与服务器进行通信
- 服务器端主要运营商有TTN等,自行搭建云端服务请参考lorawan-stack,chirpstack
- 树莓派 Pico 和 Pico-LoRa-SX1262 通过 LoRaWAN 接入互联网有两种方式,一是 OTAA(Over-The-Air-Activation),二是 ABP(Activation By Personalization) , 本文通过方式一 OTAA 入网, 入网过程参照下图所示 , 详细文档参考链接1 链接2 和源码
- 步骤1.终端设备将Join-Request消息发送到将要加入的网络,注意加入过程始终由终端设备发起,Join-Request消息可以使用任何数据速率并使用特定于区域的加入通道之一来传输.例如,在欧洲,终端设备可以通过在 868.10 MHz、868.30 MHz 或 868.50 MHz 中随机选择来发送Join-Request消息.Join-Request消息通过一个或多个网关到达网络服务器.另外注意按照当地无线电管理规定选择适用频段,频段分布具体表格点击链接查看或访问LoRa Alliance搜索, Join-Request消息由以下字段组成,而AppEUI,DevEUI由服务器端注册生成,请参考下面说明.
- AppEUI: IEEE EUI64 地址空间中的 64 位全局唯一应用标识符,唯一标识能够处理 Join-Request 帧的实体。
- DevEUI: IEEE EUI64 地址空间中唯一标识终端设备的 64 位全局唯一设备标识符。
- DevNonce: 由终端设备生成的唯一的随机的 2 字节值.网络服务器使用每个终端设备的 DevNonce 来跟踪它们的加入请求.如果终端设备使用先前使用的 DevNonce 发送加入请求(这种情况称为replay attack),网络服务器会拒绝加入请求并且不允许该终端设备向网络注册.
- 步骤2.网络服务器处理Join-Request-Message.如果允许终端设备加入网络,网络服务器将生成两个会话密钥(NwkSKey 和 AppSKey)和 Join-accept 消息.然后使用 AppKey 对加入接受消息本身进行加密.网络服务器使用 ECB 模式下的 AES 解密操作来加密 Join-accept 消息.
- 步骤3.网络服务器将加密的加入接受消息作为正常下行链路发送回终端设备.
- 步骤4.终端设备使用AES解密Join-Accept.并使用 AppKey 和 AppNonce 生成两个会话密钥 NwkSKey 和 AppSKey用于后续和 Networking 服务器通信. Network Server 同样保存了 kSKey ,Join服务器分发 AppSKey 给 Application Server.
- 步骤1.终端设备将Join-Request消息发送到将要加入的网络,注意加入过程始终由终端设备发起,Join-Request消息可以使用任何数据速率并使用特定于区域的加入通道之一来传输.例如,在欧洲,终端设备可以通过在 868.10 MHz、868.30 MHz 或 868.50 MHz 中随机选择来发送Join-Request消息.Join-Request消息通过一个或多个网关到达网络服务器.另外注意按照当地无线电管理规定选择适用频段,频段分布具体表格点击链接查看或访问LoRa Alliance搜索, Join-Request消息由以下字段组成,而AppEUI,DevEUI由服务器端注册生成,请参考下面说明.
- 作为终端设备接入互联网络的DevEUI,AppEUI参数, 需要由服务器端注册生成,其具体过程如下
- 注册并登录TTS后创建应用(Applications)
- 注册并登录TTS后创建应用(Applications)
- 在当前应用中创建节点设备,点击如下图红框位置
- 在当前应用中创建节点设备,点击如下图红框位置
- 创建节点设备的各项参数如下图红框中的5个步骤所示,需要保存Step2的DevEUI,Step3的AppKey值以备后用
- 创建节点设备的各项参数如下图红框中的5个步骤所示,需要保存Step2的DevEUI,Step3的AppKey值以备后用
应用
LoRa 器件和网络(如 LoRaWAN)使得智能物联网应用能够帮助解决地球面临的能源管理、自然资源减少、污染控制、基础设施效率、防灾等艰巨挑战。Semtech 的 LoRa 器件已在智慧城市、家居和建筑、社区、计量、供应链和物流、农业等领域实现了数百个成功应用案例。LoRa 网络已覆盖 100 多个国家/地区的数亿台器件,致力于打造一个更智慧的地球。
本产品测试是基于TTS(The THINGS STACK)和Semtech SX1302官方库,若用户自行建立云服务器,请点击参考lorawan-stack,chirpstack
程序下载
逐条复制下面指令到树莓派终端并等待每条指令运行完成.若出错请检查上下文
sudo apt update sudo apt install git cd ~/Documents/ git clone https://github.com/siuwahzhong/sx1302_hal.git cd sx1302_hal git checkout ws-dev make clean all make all cp tools/reset_lgw.sh util_chip_id/ cp tools/reset_lgw.sh packet_forwarder/
例程使用
1. 注册TTS账号并登陆TTS网站
2. 获取网关EUI以备后用
# get sx1302 EUI cd ~/Documents/sx1302_hal/util_chip_id/ ./chip_id
3. 在TTS上增加网关设备,如下图所示,注意根据所在地区选择频段
3. TTS上创建网关设备后进入设备Overview界面下载配置文件并文档修改sx1302_hal库中的test_conf配置文件,如下图所示
cd ~/Documents/sx1302_hal/packet_forwarder/ cp global_conf.json.sx1250.EU868 test_conf
3.1 根据TTS网站下载的global_conf.json更改test_conf文件内容,需要注意 radio_0, radio_1,gateway_conf 段相关参数的填充
4. 运行packet_forwarder
修改好配置文件各项参数,开始运行packet_forwarder程序后,网关开始连接TTS并保持连接
cd ~/Documents/sx1302_hal/packet_forwarder/ ./lora_pkt_fwd -c test_conf
节点接入
资料
文档
程序
资料手册
FAQ
SX1302 LoRaWAN Gateway HAT的频段区域是EU868(863-870MHz) 这个频段在国内可以用来开发产品,不能大面积覆盖区域网络;国内使用470M的lora可以覆盖区域网络。
考虑是没有打开SPI导致的,请将树莓派的SPI打开
考虑是UART没有打开,按照以下步骤配置下UART:
打开/boot/config.txt文件,找到如下配置语句使能串口,如果没有,可添加在文件最后面。
enable_uart=1
对于树莓派3B用户,串口用于蓝牙,需要注释掉:
#dtoverlay=pi3-miniuart-bt
然后重启树莓派:
sudo reboot
确定好两边树莓派都这样处理了,把两个模块的A与B对应连接
如果使用的是其他的485设备,确定连线A-A,B-B即可
- 考虑是没有打开SPI导致的,请将树莓派的SPI打开;
- 考虑是金手指接触不良导致,请按压下尾部再接入测试下,让模组和模块良好贴合。
- SX1303 比SX1202 功耗更低
- SX1303 支持精细时间戳,可基于计算时间差进行网络定位,SX1302 不支持该功能
SX1303支持 8 信道 SF5~12 的 LoRa 解,SX1303 网关支持 8 信道 同时接收节点数据,支持单通道下发数据给节点
wiki例程用的是树莓派4B,不适用于树莓派5, 树莓派5需要改GPIO引脚