ART-Pi LoRa开发套件 不完全教程

1 前言

ART-Pi LoRa 开发套件(LSD4RFB-2EVKM0201)是利尔达科技与睿赛德科技联合出品的一套面向物联网开发者的 LoRa 产品原型设计工具包,搭配ART-Pi主板使用,支持利尔达全系 LoRa 节点与网关模块,拥有丰富的可选配件,用户 可按需选配,能非常方便地发挥开发者的创意,搭积木式快速打造基于 LoRa、LoRaWAN 等协议的产品原 型,轻松实现多种物联网功能场景搭建。

ART-Pi LoRa开发套件 产品资料入口Lierda官方网站 http://wsn.lierda.com/index.php/Home/product/detail/id/113.html
RT-Thread ART-Pi官方开源网站入口RT-Thread官方网站 https://art-pi.gitee.io/website

1.1 ART-Pi LoRa 开发套件简介

2 硬件开发平台

2.1 开发工具

3 软件开发包(SDK)

3.1 sdk-bsp-stm32h750-realthread-artpi

  • 简述
    • sdk-bsp-stm32h750-realthread-artpi 是 RT-Thread 团队对 ART-Pi 开发板所作的支持包,也可作为用户开发使用的软件SDK,让用户可以更简单方便的开发自己的应用程序。

ART-Pi 是 RT-Thread 团队经过半年的精心准备,专门为嵌入式软件工程师、开源创客设计的一款极具扩展功能的 DIY 开源硬件。
如果您想了解更多关于 ART-Pi 最新的开源扩展硬件及技术分享文章,请访问 ART-Pi主页

$ sdk-bsp-stm32h750-realthread-artpi 
├── README.md
├── RealThread_STMH750-ART-Pi.yaml
├── debug
├── documents
│   ├── coding_style_cn.md
│   ├── RT-Thread 编程指南.pdf
│   ├── UM5001-RT-Thread ART-Pi 快速上手.md
│   ├── UM5002-RT-Thread ART-Pi 开发手册.md
│   ├── UM5003-RT-Thread ART-Pi BT_WIFI 模块固件下载手册.md
│   ├── UM5004-RT-Thread ART-Pi 代码贡献手册.md
│   ├── board
│   └── figures
├── libraries
│   ├── STM32H7xx_HAL
│   ├── drivers
│   ├── rt_ota_lib
│   └── wlan_wiced_lib
├── projects
│   ├── art_pi_blink_led
│   ├── art_pi_bootloader
│   ├── art_pi_factory
│   ├── art_pi_wifi
|   ├── ...
│   └── industry_io_gateway
|   
├── rt-thread
└── tools

3.2 sdk-bsp-stm32l476-lsd4rf-test2002

$ sdk-bsp-stm32l476-lsd4rf-test2002
├── README.md
├── sdk-bsp-stm32l476-lsd4rf-test2002.yaml
├── documents
│   └── images
├── drivers
├── libraries
│   ├── STM32L4xx_HAL_Driver
│   ├── CMSIS
│   └── SConscript
├── projects
│   ├── blink_led
│   ├── lrs101_lora_radio
│   ├── lrs101_lorawan_ed
│   ├── lrs101_lorawan_ed_pm
|   ├── ...
│   └── oled_sh1106_u8g2
└── rt-thread

3.3 lora相关软件包

3.3.1 lora-radio-driver软件包

image.png

  • 简述
    • lora-radio-driver软件包是基于RTOS( RT-Thread ) 实现的LoRa Tranceiver芯片(sx126x\sx127x…)的驱动文件包,可用于快速搭建基于LoRa等通信的应用产品。
      • 当前支持LoRa Transceiver(sx126x\sx127x )
        • 支持调制方式
          • LoRa
          • FSK
      • 可通过EVN工具menuconfig直接定义LoRa模块的对外接口,降低入门门槛
        • 支持使用引脚号来定义GPIO
        • 支持使用引脚名来定义GPIO
      • 提供常用实例代码,可用于CW射频性能测试、空口数据包监听、单\双向、主\从通信测试等
      • 可作为phy层对接到LoRaWAN End-Device协议栈
      • 当前测试的LoRa 模块\芯片
      • 当前测试的MCU平台
        • LoRa Radio Driver当前功能主要在STM32平台测试通过,未来计划将适配更多的MCU平台(华大MCU、nRF、BK…)
          • STM32L0系列
          • STM32L4系列
          • STM32H7系列
      • 当前支持的RTOS
        • RT-Thread
      • 当前测试的IDE
        • MDK5.29
        • RT-Thread Studio
  • 代码仓库
  • 使用说明
  • 目录结构
    • 01_lora-radio-driver_pkgs_struction.png

3.2.1 lorawan-ed-stack软件包

  • 简述
    • lorawan-ed-stack软件包是基于RTOS(RT-Thread)实现的LoRaWAN 终端设备侧(End-Device)的协议栈,可以非常方便进行LoRaWAN协议栈学习、快速搭建基于LoRaWAN通信的原型产品、应用产品等。
      • LoRaWAN-ED-Stack软件包在LoRaWAN开源协议栈LoRaMAC-Node基础上,进一步构建实现。
      • LoRaWAN-ED-Stack使用LoRa-Radio-Driver软件包作为物理层lora芯片的底层驱动,使用Multi-Rtimer软件包或者RT-Thread内核RT_Tick提供MAC层的定时\超时服务。
    • LoRaWAN-ED-Stack软件包当前主要功能特点:
      • LoRaWAN技术规范版本(LoRaWAN Specification)
        • LoRaWAN 1.0.x
          • LoRaWAN 1.0.4
            • 当前基于LoRa联盟官方 LoRaMAC-node 4.4.4
      • 可通过menuconfig配置LoRaWAN MAC层、PHY层、应用层等相关参数
        • LoRaWAN PHY层主要配置参数:
          • LoRaWAN地区规范(region)
            • CN470
            • CN470自定义同频
            • EU868
            • AS923
            • US915
          • 缺省上行速率(LoRaWAN Default Datarate)
          • 缺省信道列表(Channel Mask)
        • LoRaWAN MAC主要配置参数:
          • 设备类型(Device Type)
            • Class A
            • Class B
            • Class C
          • LoRaWAN数据消息类型(Data Message Type)
            • 确认帧(Confirm Frame)
            • 非确认帧(Unconfirm Frame)
          • LoRaWAN应用端口号(Application Fport)
          • ADR功能
        • LoRaWAN应用层当前提供如下应用实例
          • lorawan-ed-test-shell
            • 用于配置并测试LoRaWAN End-Device Class A \ Class C
        • 功能按需裁剪
          • 可通过宏定义对ClassA、ClassB、Class C、OTAA、ABP等功能进行灵活裁剪
          • 可通过宏定义对日志信息裁剪,详细的协议层日志交互信息,便于前期调试、学习等
          • APS层(入网、通信、用户数据包等)
          • MAC层(MAC请求、MAC命令等)
          • PHY(上下行通信频率、速率等)等的日志输出
        • 支持IDE工具
          • RT-Studio 1.1.4
          • MDK 5
        • 参数掉电保存
          • LoRaWAN的配置参数支持掉电保存
        • 对接LoRaWAN服务器平台
          • 利尔达unicore服务器
            • CN470 & Class A
            • CN470自定义同频 & Class A\C
          • 腾讯云IoT Explorer
            • CN470 & Class A\C
  • 代码仓库
  • 使用说明
  • 目录结构

lorawan-pkgs.png

3.2.3 lora-gw-driver-lib软件包

  • 简述
    • lora-gw-driver-lib是基于RTOS(RT-Thread)实现的LoRa网关芯片SX130x驱动包。当前支持SX1302芯片(SPI驱动方式),可以用于构建基于lora网关芯片SX130x的集中器\网关、sniffer工具等。
    • lora-gw-driver-lib软件包当前主要支持以下功能:
      • 当前支持LoRa网关芯片(sx130x )

        • SX1302
          • 支持IF0~IF7 LoRa Multi-SF(BW125)
      • 支持lgd shell功能

        • 丰富shell命令可灵活\动态配置lgd运行参数
        • 支持设定8个LoRa接收信道
          • 支持自定义频率组方式
          • 支持自动设置频率组方式等
          • 支持设定上行\下行(IQ反向接收)
        • 支持设定TX运行参数(发射功率、发送频点、IQ反向等)
        • 支持设定LoRaWAN公网\私有等
      • 支持TX\RX同频模式与异频模式

      • 支持常用的射频性能测试、空口数据包监听、单向\双向\主\从通信测试等功能

        • Concentrator模式
          • 连续接收与应答
        • Device模式
          • 主动发送,支持自定义数据包个数、数据包长度
        • CW模式
          • 载波发射,支持设定CW频率等
        • 支持上述工作模式的动态切换
      • 支持lora数据包格式化、lorawan解析等服务接口

      • 可以与lora-radio-driver配合进行单向\双向空口loopback测试(ping-pong)

      • 可作为驱动层进一步对接到lora-pkt-sniffer软件包,构建lora抓包工具等

      • 可作为驱动层进一步对接到lora-pkt-fwd软件包,构建lorawan网关等

      • 当前主要测试的LoRa 网关模块

      • 当前测试的MCU平台

        • LoRa GW Driver当前功能主要在STM32平台测试通过
          • STM32H7系列
      • 当前支持的RTOS

        • RT-Thread
      • 当前测试的IDE

        • MDK5.29
        • RT-Thread Studio 2.x
  • 代码仓库
  • 使用说明
  • 目录结构
$ lora-gw-driver-lib
├── README.md
├── docs
|   ├── images
|   └── readme.md 
├── libraries
│   └── libs    
├── ports
│   └── stm32_adapter
└── samples
    └── lora-gw-driver-tester

3.2.4 lora-pkt-sniffer软件包

  • 简述
    • lora-pkt-sniffer软件包主要基于LoRa网关硬件(如SX1302模块…),实现了LoRa\LoRaWAN数据包的抓取与解析等功能。使用lora-pkt-sniffer软件包可以实现一个多通道(典型:8个LoRa通道)的lora抓包工具,用以捕获LoRa\LoRaWAN空口数据包,助力于LoRa\LoRaWAN等产品开发等。
      • lora-pkt-sniffer软件包使用了lora-gw-driver软件包作为下层服务接口。
        image.png
    • lora-pkt-sniffer抓包工具当前主要支持以下功能:
      • 抓取空口LoRa数据包
        • 8个并行的LoRa BW125KHz通道
        • 支持CRC过滤机制
      • 串口shell支持参数读写,模式控制等
        • 可动态灵活配置与重启lora-pkt-sniffer的运行参数
        • 支持设定8个LoRa接收信道
          • 支持自定义频率组方式
          • 支持自动设置频率组方式等
        • 支持设定上行\下行(IQ反向接收)
        • 支持设定LoRaWAN公网\私有
        • 支持CRC过滤机制等
        • 支持抓包暂停\恢复\重启等
      • 私有lora协议原始数据抓取
      • LoRaWAN1.0.x协议数据抓取
        • 支持解析与格式化lorawan 1.0.x(解密)数据
        • 支持注册\删除\配置\过滤终端设备等
          • 支持设置OTAA三要素、ABP三要素
          • 支持修改设备的Fcnt
          • 支持白名单过滤机制,只接收与解析白名单的数据帧
            • 可指定设备DevEUI,用于OTAA设备入网过程
            • 可指定设备DevAddr,用于ABP设备或者OTAA设备通信过程
        • 支持LoRaWAN同频模式(如CN470同频、EU868、AS923等)双向抓包
        • 支持LoRaWAN异频模式(如AU915异频等)上行\下行单方向分别抓包
      • 支持参数掉电存储
        • 恢复出厂参数
        • 掉电保存等
      • 支持多种北向接口与解析模式
        • 本地串口直显
          • 北向通过UART与PC端串口助手(如mobaxterm等)传输
          • 本地直接进行LoRaWAN协议解析与格式化处理与数据帧实时显示
        • Wireshark显示模式
          • 北向通过WIFI\ETH(UDP)与PC传输
          • 通过Wireshark进行协议实时解析
  • 代码仓库
  • 使用说明
  • 目录结构
$ lora-pkt-sniffer
├── README.md
├── docs
|   ├── images
|   └── readme.md 
├── inc
└── src
    ├── lora_pkt_sniffer.c
    ├── lora_pkt_sniffer_shell.c
    ├── lora_pkt_sniffer_nvm.c
    └── lora_pkt_sniffer_udp.c

3.2.5 lora-pkt-fwd软件包

  • 简述
    • lora-pkt-fwd是基于RTOS(RT-Thread)实现LoRa\LoRaWAN数据包通过UDP(Semtech GWMP协议)的转发。当前支持SX1302芯片(SPI驱动方式),可以用于构建8通道LoRaWAN室内\室外网关等
      image.png

    • lora-pkt-fwd软件包当前主要支持如下功能:

      • 符合Semtech定义的第一代LoRaWAN网关协议
        • 支持Semtech定义的GWMP协议(UDP)
          • 支持接入标准LoRaWAN终端设备
          • 可对接到利尔达Unicore平台、TTN平台、腾讯云IoT explorer平台等LoRaWAN服务器
      • 串口shell
        • 支持动态调整LoRa网关工作参数(8个LoRa信道的工作频点)等
        • 支持设置北向接口
        • 支持设置服务器地址、端口号、网关json配置文件名
        • 支持网关接收暂停与恢复
      • 参数配置
        • 本地直接配置
          • 可通过本地shell直接配置网关参数
          • 支持本地参数掉电存储与恢复、恢复出厂设置等
        • JSON配置文件
          • 可以通过JSON配置网关工作参数
  • 代码仓库
  • 使用说明
  • 目录结构
$ lora-pkt-fwd
├── README.md
├── cfg
|   ├── xxx.json    
├── docs
|   ├── images
|   └── readme.md 
├── inc
└── src
    ├── lora_pkt_fwd.c
    ├── lora_pkt_fwd_shell.c
    ├── base64.c
    ├── jitqueue.c
    └── parson.c

3 终端设备篇

3.1 LoRa-Radio示例

3.1.1 基于LSD4RF-TEST2002_V2[STM32L4]与LRS101[SX1268]的LoRa Radio Driver软件包的Tester示例

3.1.2 基于ART-Pi[STM32H7]与LRS007[SX1268]的LoRa Radio Driver软件包的Tester示例

3.2 LoRaWAN-End-Device示例

3.2.1 基于LSD4RF-TEST2002_V2[STM32L4]与LRS007[SX1268]的LoRaWAN_ED_Stack软件包的应用示例

3.2.2 基于ART-Pi[STM32H7]与LRS007[SX1268]的LoRaWAN_ED_Stack软件包的应用示例

3.3 人机交互示例

3.3.1 基于LSD4RF-TEST2002[STM32L4])与单色图形库u8g2与OLED[SH1106]的应用示例

4 网关篇

4.2 8通道LoRa网关驱动tester

4.2.1 基于ART-Pi[STM32H7]与LRS007[SX1302]的lora-gw-driver-tester的应用示例

4.2.2 基于ART-Pi[STM32H7]与LRS007[SX1302]+[SX1268]的lora loopback测试示例

4.3 8通道LoRa Packet Sniffer抓包工具

4.2.1 基于ART-Pi[STM32H7]与LRS007[SX1302]的lora packet sniffer抓包工具应用笔记

]()

4.4 8通道LoRaWAN室内网关(WiFi)

  • 简述
    • 8通道室内LoRaWAN网关基于RTOS(RT-Thread)、ART-Pi[STM32H7]、LRS007[SX1302]、lora-pkt-fwd软件包等实现,支持Semtech的GWMP协议(UDP)等,北向可通过WiFi接入利尔达Unicore、TTN、腾讯云IoT explorer等LoRaWAN服务器。
      image.png

    • 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文件传输配置文件
  • 代码仓库
  • 使用说明
  • 应用笔记

5 LoRaWAN服务器篇

5.1 利尔达unicore

  • 简述
  • 使用说明
  • Unicore 操作和开发指南请参考 Unicore 云文档(服务器首页):
    • 《LoRaWAN 物联网平台操作手册》
    • 《LoRaWAN 物联网平台开发手册》。
  • unicore_doc.png

5.2 TTN

ttn_doc.png

6 推荐资料

概述随着物联网应用的不断发展,传统的传输技术在各个物联网行业应用方面渐渐不能满足我们的需求,传统的局域网技术,如2.4GHz的WiFi,蓝牙、Zigbee等,以及传统广域网技术2G/3G/4G等无线技术,不能同时兼顾远距离和低功耗。直到在低功耗广域网(Low Power Wide Area Network, LPWAN)技术出现后,能在保证更远距离的通信传输的同时,最大限度的降低功耗,节约传输成本。 本应用使用ART-PI开发板,NUCLEO-L452开发板以及本人自制的扩展板,组成LORA采集端和接收转发端,即使在条件恶略的环境下也能采集数据并通过LORA传送接收并转发至云平台. 开发环境硬件:ART-PI开发板NUCLEO-L452开发LORA采集扩展板(安信可Ra-02,DHT11) LORA接收扩展板(安信可Ra-02,W5500,sp485) RT-Thread版本:RT-Thread4.03(ART-PI开发板)RT-Thread4.02(NUCLEO-L452开发板) 开发工具及版本:RT-ThreadStudio V2.0 STM32CuBeMx V6.1.0 RT-Thread使用情况概述内核部分:主要使用了线程管理 时钟管理 组件部分:FinSH控制台,netdev网卡,SAL套接字抽象层,ulog日志 软件包部分:cjson webclient,pahomqtt,fal,wiznet,dhtxx 硬件框架采集端:简单的LORA模组,通过SPI跟板卡通信,以及一个可控LDO和AHT10和BH1750,以LDO控制AHT10和BH1750以达到低功耗的效果. 接收端:一个LORA模组,一个W5500芯片,SPI通信,以及一个SP485. 主要部分就是LORA模组以及W5500,本设计使用立创EDA设计,W5500参考自立创官方团队. 软件框架说明ART-PINUCLEO-L452软件模块说明ART-PI(接收端),上电自动初始化LORA和W5500,等待W5500连接上网络,这里通过判断网卡的状态,当link_up状态后,开始连接mqtt服务器,就可以把LORA接受的数据通过MQTT发送至平台. NUCLEO-L452(采集端),上电初始化软件IIC,直接采集同一总线下AHT10和BH1750的数据,并通过LORA直接发送出去.(备注:因时间关系,采集端的低功耗并没有做,年前估计没时间完善了,以后有时间继续完善) 演示效果视频展示: 比赛感悟这次比赛又学到了不少东西,最主要的就是I2C总线设备和netdev 网卡,刚开始板载WIFI使用时无法使用W5500,因为默认网卡的原因,后来查询RT-Thread 文档中心,看看API和示例,轻松解决.还有就是使用I2C总线设备,刚开始一直想要使用硬件IIC和软件包去驱动AHT10和BH1750,后来发现软件IIC加PIN设备轻松解决,对着文档中心的例子,轻松举一反三出BH1750的程序.所以感觉RT-Thread的文档是真的全乎,所有自己解决不了的东西文档中心都有.但很遗憾的是这次由于出差的原因并没能很完美的展现出来作品,其中ART-PI扩展板上的485并没写到程序中,IWIFI也没应用到(现在是以太网),采集端的低功耗也没有做,年后一定把晚上出来!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值