Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
ART-Pi
SX1302
基于ART-Pi与SX1302的8通道LoRaWAN室内网关(WiFi)应用笔记
发布于 2021-09-15 07:52:48 浏览:2341
订阅该版
[tocm] # 1 前言 本文描述了基于RTOS(RT-Thread)、ART-Pi[STM32H7]、LRS007+SX1302、lora-pkt-pwd软件包等实现的8通道LoRaWAN室内网关Demo(WiFi版本)(以下简称为LGW-08W),LGW-08W支持Semtech定义的第一代LoRaWAN网关协议,可对接到利尔达Unicore平台、TTN平台、腾讯云IoT Explorer平台等LoRaWAN服务器。 lora-pkt-fwd软件包详细说明可查看《[lora-pkt-fwd软件包使用说明](https://github.com/Forest-Rain/lora-pkt-fwd/blob/master/docs/ReadMe_lora-pkt-fwd.md)》 本文示例代码示例如下 - [https://github.com/Forest-Rain/sdk-bsp-stm32h750-realthread-artpi/tree/master/projects/lrs007_lorawan_gateway](https://github.com/Forest-Rain/sdk-bsp-stm32h750-realthread-artpi/tree/master/projects/lrs007_lorawan_gateway) ## 1.1 功能简介 LGW-08W室内网关demo当前主要支持如下功能: - 符合Semtech定义的第一代LoRaWAN网关协议 - 支持Semtech定义的GWMP协议(UDP) - 支持接入标准LoRaWAN终端设备 - 可对接到利尔达Unicore平台、TTN平台、腾讯云IoT Explorer平台等LoRaWAN服务器 - 北向接口 - WIFI - ETH - 串口shell - 支持动态调整LoRa网关工作参数(8个LoRa信道的工作频点)等 - 支持设置北向接口 - 支持设置服务器地址、端口号、网关json配置文件名 - 支持网关接收暂停与恢复 - 参数配置 - 本地直接配置 - 可通过本地shell直接配置网关参数 - 支持本地参数掉电存储与恢复、恢复出厂设置等 - JSON配置文件 - 可以通过JSON配置网关工作参数 - 详细的开发日志信息 - 可过滤日志等级 - 可选功能 - ntp时间同步 - 支持SD卡 - 支持FTP文件传输配置文件 - 当前测试的IDE - MDK5.29 - RT-Thread Studio 2.x ## 1.2 准备工作 ### 1.2.1 所需硬件 - [ART-Pi 开源平台](https://art-pi.gitee.io/website/) - RT-Thread官方开源硬件平台 ![art-pi-image.png](https://oss-club.rt-thread.org/uploads/20210915/7af3ae27dec718d63ea213af16dbe198.png.webp) - [ART-Pi LoRa开发套件](http://wsn.lierda.com/index.php/Home/product/detail/id/113.html) - LoRa扩展板(LRS007) - SX1302模块 - [LSD4WN-2K730NE0(SX1302) Mini PCIe模块](http://wsn.lierda.com/index.php/Home/product/detail/id/100.html) - TX 470~510MHz,最大发射功率~22dBm - RX 470~480MHz - [LSD4WN-2K830NE0 (EU868频段)](http://wsn.lierda.com/index.php/Home/Product/detail/id/99.html) - TX: 860~870 MHz,最大发射功率~27dBm - RX: 860~870 MHz ![ART-Pi-lora-box.png](https://oss-club.rt-thread.org/uploads/20210915/b771eee4544430533a6fbf47b6a902e6.png)![LSD4WN-2K830NE0-PCIe-SX1302.png](https://oss-club.rt-thread.org/uploads/20210915/eca7d15787911f36ed3f6c2bef978114.png) ### 1.1.2 所需软件 - IDE开发工具 - [RT-Thread Studio 最新版本](https://www.rt-thread.org/document/site/rtthread-studio/um/studio-user-begin/) - MDK5 - ART-Pi SDK开发包 - [https://github.com/RT-Thread-Studio/sdk-bsp-stm32h750-realthread-artpi](https://github.com/RT-Thread-Studio/sdk-bsp-stm32h750-realthread-artpi) - lora-pkt-pkt软件包 - 实现Semtech GWMP转发lora(wan)数据等 - [https://github.com/forest-rain/lora-pkt-fwd](https://github.com/forest-rain/lora-pkt-fwd) # 2 LGW-08W系统概述 ## 2.1 LGW-08W功能框图 ![image.png](https://oss-club.rt-thread.org/uploads/20210915/9c3b339acabb7bcd930d6958da6f9b8b.png.webp) LGW-08W上电,等待WiFi成功联网后,首先检查SD卡中是否存在有效的网关JSON文件,如果存在则采用该JSON文件启动,否则,默认采用本地参数启动,同时网关EUI采用SX1302芯片EUI。 LGW-08W南向使用LRS007+SX1302来收发LoRa数据包,北向使用ART-Pi的WiFi接口(也可以采用ETH接口),并连接到符合Semtech GWMP标准的LoRaWAN云平台。 > 本地默认参数: > - 上行8个LoRa信道: 475.3、475.5、475.7、475.9、476.1、476.3、476.5、476.7 > - 多速率: SF7~SF12 > - 服务器:利尔达unicore 47.110.127.110 > - 上行端口 8441 > - 下行端口 8441 # 3 LGW-08W使用说明 ## 3.1 使用资源 LGW-08W以sdk-bsp-stm32h750-realthread-artpi/project/art_pi_wifi为模板,同时开启lora-pkt-fwd软件包。可根据实际情况,进一步开启ftp软件包,以方便传输配置文件。 ### 3.1.1 RT-Thread LGW-08W目前主要基于RT-Thread 4.0.3测试验证。 ### 3.1.2 art_pi_wifi LGW-08W使用[https://github.com/RT-Thread-Studio/sdk-bsp-stm32h750-realthread-artpi/tree/master/projects/art_pi_wifi](https://github.com/RT-Thread-Studio/sdk-bsp-stm32h750-realthread-artpi/tree/master/projects/art_pi_wifi)作为基础工程,其提供WiFi通信、文件系统等服务。 ### 3.1.3 lora-pkt-fwd软件包 lora-gw-fwd软件包主要实现了LGW-08W网关通过semtech GWMP(UDP)协议与LoRaWAN服务器平台进行LoRaWAN数据交互,可用于构建符合semtech定义的第一代通用LoRaWAN网关。 使用 lora-pkt-fwd软件包,需要在 RT-Thread 的包管理中选中它: ```c RT-Thread online packages ---> IoT - internet of things ---> [*] lora_pkt_fwd:lora(wan) packet forward based on Semtech GWMP protocol(UDP) ---> --- lora_pkt_fwd:lora(wan) packet forward based on Semtech GWMP protocol(UDP) [*] Use lora-gw-driver-lib Select LoRaWAN Network Server (Lierda Unicore) ---> Enable LoRa Packet Forward Debug ---> ``` ### 3.1.4 lora-gw-driver-lib软件包 lora-gw-fwd软件包使用lora-gw-driver-lib软件包提供的lora数据包收发等功能服务。 使能lora-gw-fwd软件包后,会自动使能lora-gw-driver-lib软件包。 用户需要根据实际使用的LoRa网关模块,对lora-gw-driver-lib软件包进行额外的配置(如跟SX130x模块相关的GPIO引脚等) 目前lora-gw-driver-lib软件包已适配ART-Pi+ LRS007[LSD4WN-2K730NE0(SX1302)],因此在ART-Pi中使用,直接选中开启即可。 ```c RT-Thread online packages ---> peripheral libraries and drivers ---> [*] lora_gw_driver_lib: lora-gw-driver-lib is lora gateway chip(SX130x) driver binary libraries. ---> Select LoRa Gateway Chip (SX1302) ---> (lgd1302) Setup LoRa Gw Driver Spi Device Name (spi2) Setup LoRa Gw Driver Spi Bus Name (eg:spi1,spi2..,Define BSP_USING_SPIx in [Target Platform]\Board\Kconfig) (i2c3) Setup LoRa Gw Driver I2C Device Name for Temperture(eg:i2c1,i2c2..,Define BSP_USING_IICx in [Target Platform]\Board\Kconfig) [ ] Select lora-gw-driver Services [*] Enable lora-gw-driver GPIO Setup Select Supported Target Borad ---> --- ART-Pi and LRS007[LSD4WN-2K730NE0(SX1302)] [ ] Select LoRa Gw GPIO by Pin Name (NEW) [*] Select LoRa Gw GPIO by Pin Number (NEW) (128) LoRa Gw SPI NSS Pin number (NEW) (15) LoRa Gw RESET Pin number (NEW) (126) LoRa Gw PowerOn Pin number (NEW) (127) LoRa Gw PPS Pin number (NEW) (119) LoRa Gw GPIO6 Pin number (NEW) Select LoRa GW Driver Samples ---> ``` ### 3.1.5 agile_ftp软件包 如果需要使用JSON文件来配置网关,除了通过SD读卡器直接拷贝网关JSON配置文件外,可以进一步启用agile_ftp软件包,以便于直接传输配置文件。 ```c RT-Thread online packages ---> IoT - internet of things ---> [*] agile_ftp: Lightweight ftp server. ---> ``` 在shell中,输入ftp_server启动ftp服务。 ```c msh />ftp_server ``` 然后在局域网内可以通过ftp客户端工具FileZilla访问 - 主机(H): ART-Pi主板的IP地址 - 用户名与密码采用的是缺省的loogg ![filezilla_ftp_setup.png](https://oss-club.rt-thread.org/uploads/20210915/e9341c106c198c8c9d3dd193963517e2.png.webp) ### 3.1.6 ntp软件包 ntp服务可以用于同步本地时间为服务器时间.ntp服务需要使用硬件RTC,需进行RTC进行相应设置。 #### 3.1.6.1 使能ntp软件包 ```c RT-Thread online packages ---> IoT - internet of things ---> [*] netutils: Networking utilities for RT-Thread ---> ``` 由于LGW-08W也使用UDP服务,使用NTP需要增加UDP连接数量,否则ntp服务会使用不了 ```c RT-Thread Components ---> Network ---> light weight TCP/IP stack ---> (8) the number of UDP socket ``` #### 3.1.6.2 使能BSP RTC ```c Hardware Drivers Config ---> On-chip Peripheral ---> [*] Enable Onchip RTC ``` #### 3.1.6.3 STM32CubeMX使能RTC片上外设 ![rtc1.png](https://oss-club.rt-thread.org/uploads/20210915/32eb48a7f2fed5d5f45f725ac0132298.png) #### 3.1.6.4 使能LSE时钟作为RTC时钟输入 ![rtc2.png](https://oss-club.rt-thread.org/uploads/20210915/24af5bd582680ea5eecbc87ad46a7059.png) ![rtc3.png](https://oss-club.rt-thread.org/uploads/20210915/89ad777fa6c8536d23e50c0c11ed0d9a.png) ## 3.2 网关配置 LGW-08W同时支持本地配置与JSON配置,如果SD卡未启用或者SD卡中的网关JSON文件(默认路径为sdcard\\lgw\\)不存在,则默认以本地参数启动网关,否则使用该json文件启动网关。若需要使用json配置文件,需要将lora-pkt-fwd\\cfg\\lgw_xxx.json文件传递到ART-Pi sdcard\\lgw\\目录下面 - 若采用本地参数直接运行,可以通过shell命令配置网关工作参数,并掉电存储。 - 若采用JSON配置方式,可以通过读卡器或者FTP来传递网关JSON文件。 # 4 LGW-08W测试示例 ## 4.1 本地shell参数配置 ![lpf-shell-operation.gif](https://oss-club.rt-thread.org/uploads/20210915/94da4704580664e978e785db57cdb63f.gif) ## 4.3 对接利尔达unicore平台测试(自主CN470同频) 登录利尔达unicore服务器[47.110.127.110:8090](http://47.110.127.110:8090/login) - 新增项目->设备管理 - 网关 -> 添加 - ![unicore_add_gw.png](https://oss-club.rt-thread.org/uploads/20210915/56be1cf4c84a7ba8ab076491b0839125.png) - 节点 -> 添加 ![lpf-unicore-udp-cn470s.gif](https://oss-club.rt-thread.org/uploads/20210915/dc198b204b1527861cb944f387bf5f3d.gif) ## 4.4 对接TTN平台测试(EU868) 登录TTN社区服务器,创建一个lorawan网络应用。TTN添加网关可参考 [https://www.thethingsindustries.com/docs/gateways/adding-gateways/](https://www.thethingsindustries.com/docs/gateways/adding-gateways/) - [https://www.thethingsnetwork.org/](https://www.thethingsnetwork.org/) - Start Building - [https://console.cloud.thethings.network/](https://console.cloud.thethings.network/) - Gateway - Add Gateway - ![ttn_add_gw.png](https://oss-club.rt-thread.org/uploads/20210915/7c1a9c33900fbeacb1583531758ba145.png.webp) ![lpf-ttn-udp-eu868.gif](https://oss-club.rt-thread.org/uploads/20210915/47347942b92e90538718cd570cec28b4.gif) # 5 注意事项 1. LoRa网关模块(SX1302)需连接天线后使用,避免因未接天线导致天线阻抗不匹配,进而影响接收的情况 1. 在实验室等极近距离通信(比如1~2米),可能会出现邻信道干扰情况,这种场景,可适当拉远距离或者减小发送端的发射功率等 1. 为了保证日志输出完整,ulog日志最大长度可设置大些,比如≥1024 1. 当前在ART-Pi平台测试发现MPU使能的时候,会出现SPI访问不稳定情况,目前采用的是不使能MPU的方式 1. 配置STM32CubeMX后,出现Error: L6218E: Undefined symbol DelayBlock_Enable,解决方式如下 > 手动修改 stm32h7xx_hal_conf.h USE_SD_TRANSCEIVER 为0 > \#define USE_SD_TRANSCEIVER 0U 6. 若要使用ntp服务,需要增加UDP Socket服务数量 # 6 参考 - Semtech SX1302 libloragw - https://github.com/Lora-net/sx1302_hal/tree/master/libloragw - Semtech官方资料 - [https://www.semtech.com/lora](https://www.semtech.com/lora) - RT-Thread官方资料 - [https://www.rt-thread.org/](https://www.rt-thread.org/)
2
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
ForestRain
这家伙很懒,什么也没写!
文章
12
回答
11
被采纳
5
关注TA
发私信
相关文章
1
RT-Thread Studio 编译ART-Pi 的SDK报错 求助!-
2
ART-Pi 在 Studio 中使用TouchGFX Library 编译报错
3
RT-Thread Studio 更新错误
4
基于ART-Pi开发板创建的工程,RT-Thread Settings打不开
5
在 ART-Pi 平台使用 openocd 直接烧录到外部 spi flash?
6
ART-Pi工程用mdk5打开后提示文件找不到
7
ART-PI demo是否能够增加demo流程框图或者详细设计文档
8
ART-Pi 的ST_Link无法识别
9
请把ART-Pi仓库放到gitee上一份。
10
仅有ART-Pi开发包时,RTT Studio无法创建ART-Pi工程
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
UART
WIZnet_W5500
ota在线升级
freemodbus
PWM
flash
cubemx
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
编译报错
Debug
rt_mq_消息队列_msg_queue
SFUD
msh
keil_MDK
ulog
C++_cpp
MicroPython
本月问答贡献
踩姑娘的小蘑菇
4
个答案
1
次被采纳
红枫
4
个答案
1
次被采纳
张世争
4
个答案
1
次被采纳
Ryan_CW
4
个答案
1
次被采纳
xiaorui
1
个答案
1
次被采纳
本月文章贡献
catcatbing
3
篇文章
5
次点赞
qq1078249029
2
篇文章
2
次点赞
xnosky
2
篇文章
1
次点赞
Woshizhapuren
1
篇文章
5
次点赞
YZRD
1
篇文章
2
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部