Skip to content

Latest commit

 

History

History
226 lines (153 loc) · 5.92 KB

LilyGo_LoRa_Series_Quick_Start_On_TTN_zh.md

File metadata and controls

226 lines (153 loc) · 5.92 KB

LilyGo LoRa Series Quick Start On The Things Network

English | 中文

目录

测试环境

LoRaWAN End Device: T-Motion S76G

LoRaWAN Gateway: Raspberrypi Model 3B + T-SX1302

raspios: raspios_lite_arm64-2022-01-28

TTN Version: v3.15.1

在树莓派上运行sx1302_hal

NOTE

已有其他的也接入到TTN的LoRaWAN网关, 可以忽略该小节

部署sx1302_hal

在树莓派执行sx1302_hal.sh,自动部署sx1302_hal。

sudo ./sx1302_hal.sh -f eu868
sudo reboot

获取相关信息

pi@raspberrypi:~ $ cat .sx1302_hal/.output
Gateway EUI: B827EBFFFEFC7AF0
Gateway Server address: eu1.cloud.thethings.network
Gateway Server port: 1700

在TTN上创建网关

  1. 登录到 https://console.cloud.thethings.network/

  2. 根据网关支持频段选择对应的集群,T-SX1302对应的频段为 868MHZ, 这里需要选择 Europe1 集群

    cluster_picker

    ! Warning

    其中 Legacy V2 Console为TTN V2版本的服务器, 它将在2021年12月份关闭, 不建议使用

  3. 创建一个网关

    create_gateways

  4. 配置网关信息

    填入部署sx1302_hal后获得的 Gateway EUI

    config_gateway_info

  5. 选择频率,需要部署 sx1302_hal 的频段参数保持一致

    slelct_frequenry

检查网关连接状态

在TTN上检查网关是否连接成功

gateway_status

在TTN上创建终端设备模型

进入创建APP页面

create_app

config_app_info

创建终端设备模型

创建终端设备模型, 使用OTAA方式进行入网

add_end_device

register_end_device

NOTE

DevEUIAppEUIAppKey选择自动生成即可

LoRaWAN终端设备

固件编译

  1. 下载示例代码
git clone https://github.com/Xinyuan-LilyGO/LilyGo-LoRa-Series.git
  1. 创建Arduino工程

进入 LilyGo-LoRa-Series\examples\TTN\TTN_OTTA 目录, 将 TTN_OTTA.cpp 文件修改为 TTN_OTTA.ino

打开 TTN_OTTA.ino, 项目配置如下:

board_config

  1. 修改板卡信息

并对 utilities.h 进行以下修改

diff --git a/examples/TTN/TTN_OTTA/utilities.h b/examples/TTN/TTN_OTTA/utilities.h
index 2874773..9b8aade 100644
--- a/examples/TTN/TTN_OTTA/utilities.h
+++ b/examples/TTN/TTN_OTTA/utilities.h
@@ -7,7 +7,7 @@
 // #define LILYGO_T3_V1_0
 // #define LILYGO_T3_V1_6
 // #define LILYGO_T3_V2_0
-// #define LILYGO_T_MOTION_S76G
+#define LILYGO_T_MOTION_S76G

 // #define LILYGO_T_MOTION_S78G         //Not support
 /*
@@ -171,12 +171,3 @@
 #else
 #error "For the first use, please define the board version and model in <utilities. h>"
 #endif
  1. 修改LoRaWAN入网信息

将在TTN上生成的 DevEUIAppEUIAppKey 安装对应的字节序填入 loramac.cpp 文件中

lorawan_info_modify

编译成功如下:

build_successfully

固件下载

  1. T-Motion S76G插到PC的USB接口

  2. 按住BOOT按键,然后按下RESET按键, 在 Arduino IDE 中点击 upload按钮

  3. 烧录固件成功如下

    image-20211022100643008

  4. 重新将T-Motion S76G插到PC的USB接口

调试信息输出

使用串口调试工具, 选择DTR勾选框, T-Motion S76G 插到PC的USB接口后迅速打开串口, 即可看到调试信息输出

serial_output

在TTN上,能看到 MAC payload 字段的数据和 loramac.cpp 里面发送的数据是一致的

image-20211022134750832

Q&A

构建T-Motion S76G固件出现LMIC报错

出现以下问题, 是因为 LMIC 库版本不兼容的问题

loramac.cpp:25:1: error: 'const lmic_pinmap' has no non-static data member named 'rx_level'
   25 | };
      | ^
exit status 1
'const lmic_pinmap' has no non-static data member named 'rx_level'

loramac.cpp 文件进行以下修改即可

diff --git a/examples/TTN/TTN_OTTA/loramac.cpp b/examples/TTN/TTN_OTTA/loramac.cpp
index 896be89..6b39f54 100644
--- a/examples/TTN/TTN_OTTA/loramac.cpp
+++ b/examples/TTN/TTN_OTTA/loramac.cpp
@@ -21,7 +21,7 @@ const lmic_pinmap lmic_pins = {
     .rxtx = RADIO_SWITCH_PIN,
     .rst =  RADIO_RST_PIN,
     .dio = {RADIO_DIO0_PIN, RADIO_DIO1_PIN, RADIO_DIO2_PIN},
-    .rx_level = HIGH
+    //.rx_level = HIGH
 };
 #else
 const lmic_pinmap lmic_pins = {
@@ -217,5 +217,3 @@ void loopLMIC(void)
 {
     os_runloop_once();
 }

版本历史

版本 主要改动 日期 作者
1.0.0 初始版本 2021/10/22 liangyy
1.1.0 2022/11/29 liangyy