The Things Network 是 LoRaWAN 行业里非常著名的 Network Server 提供方,尤其是开发者社区运营得非常好,吸引了很多开发者来使用他们的平台。接触的许多国外的厂家,都是默认连接 TTN 的平台。

小能手了解到,这次 TTN 开源了新版本的 V3 Stack,号称在 V2 基础上会更加满足标准规范,更加容易让 LoRaWAN 开发者部署私有 NS。因此非常值得来学习研究一下。

这一系列笔记将会分析 TTN LoRaWAN Stack V3,希望能跟着优秀伙伴的脚步,更加深入地理解 LoRaWAN NS。

本文作者twowinter,此前分享了 LoRa节点侧的相关笔记,有兴趣的伙伴可以点此了解下。

1 开发环境搭建

1.1 安装依赖工具

整个 STACK 是使用“互联网时代的C语言” GO 语言来编写的,开发环境重度依赖 make,另外还需要安装 node、yarn 等工具。

1.2 源码编译

源码编译是重头戏,这节笔记记录如何使用 make 命令编译相关部件。由于部分包在墙外,带来了一点麻烦,还分享一个 GO 翻墙利器。

1.3 交叉编译生成Linux程序

琢磨下交叉编译,感受下 GO 跨平台的亮点特色。

2 Stack 使用

2.1 运行准备

这篇笔记记录了 stack 运行前所需的几个准备工作,包含了证书、数据库、账户创建、OAuth配置、环境变量等。参考了官方的 docker 配置文件,琢磨出了各个依赖组件和启动命令,是一套针对非docker环境的操作记录。

2.1.1 使用 CockroachDB Shell 操作 Identity Server

由于 OAUTH 命令进行了更新,导致我把一条旧的命令配置进了 Identity Server。所以本节琢磨下如何使用 cockroachdb 修改 Identity Server。

2.1.2 客户端导入自签名 CA 证书

TTN 的开发环境使用了自签名证书,浏览器端在进行OAUTH登录时会弹出警告,当然我们可以无视警告强制跳转。但本地客户端 CLI 也需要进行 SSL 交互,因此本地也需要添加 CA 证书。本节梳理如何在 centos 上添加 CA 证书。

2.2 使用 CLI 进行 OAuth 登录

Stack 运行起来后,可以用 CLI 来做一些上手测试,第一步是要先登录账户。

2.3 使用 CLI 在 Stack 上创建 DEMO 应用

登录上去之后,那接下来就可以创建应用,后面让网关和节点连接上来。

2.4 使用 Packet Forward 让 LoRaWAN 网关接入

应用创建好之后,先让 LoRaWAN 网关接入进来。本篇笔记使用树莓派 LoRaWAN 网关搭配 Packet Forward,做修改后接入到 Stack。

2.5 LoRa节点配置接入

网关接入之后,再让节点接入。本篇笔记重点记录一些小坑,注意跳过。

2.6 新增一个 CN470 子频段

目前 Stack 在 CN470 采用的是 FSB_11 子频段,手头的网关大多使用 FSB_1,本篇笔记演示如何为 Stack 新增一个子频段。

2.7 编译运行 Web 前端

此前一直使用命令行来测试,最近 Stack 终于逐步上线了前端功能,来做个研究。

2.7.1 Web 前端开发调试

上一篇研究了如果编译运行 Web 前端,这一篇研究如何在开发模式下调试 Web 前端。

3 代码分析

代码分析部分,计划按照官方罗列的几个功能块来进行深入学习,包含 NS、GS、AS、JS、IS、CLI、Console 这几个部分。
在每篇代码分析笔记的最后都尽量会附录上一张本模块的流程图,非线性的代码逻辑总归是用网状图更加清晰,更适合做总结梳理用。

3.1 LoRaWAN Network Server

3.1.1 数据通道

3.1.2 MAC命令

3.1.2.1 上行 MAC 命令处理流程

3.1.2.2 下行 MAC 命令处理流程

MAC 命令下行,目前和数据下行一样,主要也是在 generateDownlink() 进行处理。

3.1.2.3 LinkADR

3.1.2.3_1 从 ChMask 问题引申出一个 golang 循环语句易错问题

在测试 LinkADR 功能时,发现了 STACK 中一个 ChMask 的问题,经过好几天的摸索,终于搞定了问题。根源是 range 语句中的内存分配问题,本能手觉得是个非常易错的点,值得好好记录一下。

3.2 Gateway Server

3.3 Application Server

3.4 Identity Server

3.5 Console

3.6 Command-Line Interface

3.8 其他


作者其他精彩文章:

深度报道 第1个从太空发回的LoRa信号(含视频)
中兴对华为NB-IoT的大反击 - CLAA
农业物联网的道路上,还有个联想的身影
最高旨意下达,Sigfox在中国鸣枪开干


The Things Network LoRaWAN Stack V3 学习笔记相关推荐

  1. The Things Network LoRaWAN Stack V3 学习笔记 2.5 LoRa节点配置接入

    前言 网关接入之后,再让节点接入.本篇笔记重点记录一些小坑,注意跳过. 小能手这段时间在学习 The Things Network LoRaWAN Stack V3,从使用和代码等角度对该 Stack ...

  2. The Things Network LoRaWAN Stack V3 学习笔记 1.2 源码编译

    前言 源码编译是重头戏,这节笔记记录如何使用 make 命令编译相关部件.由于部分包在墙外,带来了一点麻烦,还分享一个 replace 方式来翻墙的办法. 小能手这段时间在学习 The Things ...

  3. The Things Network LoRaWAN Stack V3 学习笔记 2.2 使用 CLI 进行 OAuth 登录

    前言 在上一篇笔记中已经将 Stack 运行起来了,现在可以着手用 CLI 来做一些测试,第一步是要先登录账户. 小能手这段时间在学习 The Things Network LoRaWAN Stack ...

  4. The Things Network LoRaWAN Stack V3 学习笔记 2.3 使用 CLI 在 Stack 上创建 DEMO 应用

    前言 前两篇笔记将 Stack 跑起来并且登录上去,那接下来就可以创建应用,再之后让网关和节点连接上来. 本节记录如何使用 CLI 工具在 Stack 上创建 DEMO 应用. 可参考官方的 guid ...

  5. The Things Network LoRaWAN Stack V3 学习笔记 1.2 源码编译 - 190821

    文章目录 前言 1 依赖包替换 2 编译准备 3 编译 3.1 cli 编译 3.2 stack 编译 3.3 前端编译 END 前言 源码编译是重头戏,这节笔记记录如何使用 make 命令编译相关部 ...

  6. The Things Network LoRaWAN Stack V3 学习笔记 2.1 运行准备

    前言 https://github.com/TheThingsNetwork/lorawan-stack/blob/master/doc/gettingstarted.md 这篇笔记记录了 stack ...

  7. The Things Network LoRaWAN Stack V3 学习笔记 2.7 编译运行 Web 前端

    文章目录 前言 1 Stack 前端简介 Console OAuth 2 编译 Stack 前端 3 总体操作流程 4 部署在CVM上的操作 END 前言 此前一直使用命令行来测试,最近 Stack ...

  8. The Things Network LoRaWAN Stack V3 学习笔记 2.7.1 Web 前端开发调试

    文章目录 前言 1 官方介绍 2 本地实践 2.1 脚本准备 2.2 操作步骤 END 前言 上一篇研究了如果编译运行 Web 前端,这一篇研究如何在开发模式下调试 Web 前端. 小能手这段时间在学 ...

  9. The Things Network LoRaWAN Stack V3 学习笔记 2.1.1 使用 CockroachDB Shell 操作 Identity Server

    前言 由于 OAUTH 命令进行了更新,导致我把一条旧的命令配置进了 Identity Server.所以本节琢磨下如何使用 cockroachdb 修改 Identity Server. 相关 sh ...

最新文章

  1. Oracle 10g OCM Exam 大纲
  2. 使用Lambda表达式遍历Iterator迭代器
  3. C++重载IO操作符
  4. 力扣 删除链表的倒数第N个节点
  5. Linux命令格式查询目录中的内容
  6. cocos2dx打飞机项目笔记一:项目结构介绍
  7. 动态规划实战篇--斐波那契数列
  8. Linux入门基础命令学习记录
  9. 史上最全的互联网思维精髓总结
  10. uniapp map 点聚合
  11. 推荐PC端一款非常好用的解压缩软件
  12. leetcode算法121.买卖股票的最好时机
  13. 【学生打卡签到系统】
  14. 公开课笔记 | 从0到1搭建数据运营体系
  15. 世界第一台电子计算机到底是谁?
  16. ubuntu 中比较好用的一些工具
  17. 老毛桃安装Linux系统ISO镜像,用U盘快速安装Ubuntu的方法
  18. table表格自动换行
  19. RabbitMQ 设置消息的TTL(过期时间)
  20. r510服务器开机无显示,联想B320i开机无显示维修案例

热门文章

  1. tilemap 菱形_Tilemap
  2. PostgreSQL psql 命令语法参数说明
  3. 07-小蜜蜂单片机中断系统
  4. 腾讯消消乐 状压dp加普通dp
  5. 年薪120W的架构师简历你见过吗?java程序员该如何达到?
  6. [转]VC常用小知识
  7. 照片怎么无损放大尺寸,三种方法无损放大照片
  8. Web 字体应用指南最佳实践修炼之道(上)
  9. 关于中台的深度思考和中台实战
  10. Altium Designer使用介绍和界面介绍