在局域网内配置LoRaWAN的私有ChirpStack

一,前言

前几天做LoRaWAN时网关已经成功接入腾讯云,其实就腾讯这个服务器而言,它里面也是采用的ChirpStack,但是是已经封装好的服务器,所以我现在准备自己搭建一个ChiripStack服务器,在昨天已经在虚拟机成功连上了我部署的私有服务器,现在我要让局域网内任何一个物理机都能连上我的服务器,而且这个服务器是已经进行了LoRaWAN相关部署的(有需要的读者可以看看我前几篇博客)

ChripStack架构:
在这里插入图片描述

二,虚拟机设置

由于我的ChirpStack是在我电脑的虚拟机Linux下用Docker部署的,所以想让我局域网的所有主机(主要是网关程序运行的载体板子)都能和他连接,必须将虚拟机网络连接方式设置成桥接模式。这部分在我上一篇博客有讲。
设置成功后的效果是局域网内任何一个物理机都能连上我的服务器(即局域网内任何一个物理机都能ping通我的虚拟机)

三,配置ChirpStack

在前面几项工作都做好了以后就可以开始配置私有的ChirpStack服务器啦!
在我浏览器登录上部署好的ChirpStack开始配置!

3.1,添加Network-servers(网络服务器)

Network-server name: 网络服务器名称;
Network-server server: 网络服务器ip和端口;
在这里插入图片描述
在这里插入图片描述

3.2,添加service-profiles(服务配置文件)

Service-profile name:服务配置文件名称;
Network-server: 选择上一步添加的网络服务器;
Add gateway meta-data:允许NS将网关数据发送给AS,
在这里插入图片描述
在这里插入图片描述

3.3,添加添加Device-profiles(设备配置文件)

Device-profile name:设备配置文件名称;
Network-server:选择之前创建的网络服务器;
LoRaWAN MAC version:选择lorawan协议版本,推荐选择较低版本,高版本可能设备不兼容(我选的1.0.1)
LoRaWAN Regional Parameters revision:选择A;
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.4,配置LoRaWAN网关

Gateway name:网关名称;
Gateway description:网关描述;
Gateway ID:网关ID,在这里我选择自动生成,因为只是做测试,待会在网关程序里改.conf文件就行。(有真实设备的可以填自己网关设备的EUI);
在这里插入图片描述
在这里插入图片描述
在网关程序里改.conf文件使网关id对应就:
在这里插入图片描述

3.5,添加Applications(应用服务器)

Application name:应用名称;
Application description:应用描述;
Service-profile:选择之前添加的服务配置文件;
在这里插入图片描述
在这里插入图片描述

3.6 添加节点设备

Device name:设备名称;
Device description:设备描述;
Device EUI:设备EUI;
Device-profile:选择之前添加的设备配置文件;
在这里插入图片描述
关于节点设备要填写的参数很多包括:
Device EUI:节点拓展的唯一标识符
Device address:节点设备地址(一个平台只能有一个)
Network session key:网络会话密钥
Application session key:应用会话密钥
当然这些也可以自动生成,然后再去节点设备改(我猜想这应该是节点制造厂商干的事,先在服务器上获取然后再写进去,下面的我都是用的真实节点,就是节点设备现有的然后我来填参数)

在这里插入图片描述

在这里插入图片描述

3.7,JS修改解析脚本

由于 LoRa 类资源有限设备不适合直 接传输 JSON 格式数据,使用“设备数据解析”可以将设备原始数据转化为产品 JSON 数据,在chiripstack上可以编写JavaScript解析上行数据和下行数据从而更直观的查看数据.

因为解析数据是AS干的事,所以相关配置在“device_profiles”中:
在这里插入图片描述
在这里插入图片描述
上行数据解析的脚本主函数为 Recode,其带有 fPort、bytes ,variables三个入参:
fPort:设备上报的 LoRaWAN 协议数据的 FPort 字段。
bytes:设备上报的 LoRaWAN 协议数据的 FRMPayload 字段。

解析成json格式的内容:

**第一个字段:**操作的方法,即上报温湿度;

**第二个字段:**用内置函数获取时间;

第三个字段:解析出来的数据,包括温度湿度以及上报周期;

注意解析的数据要事先和节点沟通好,在我这里,节点发过来的上行数据有6个字节,所以我在上行数据解析中也是对这6个字节的数据进行操作,下发数据也是如此(也可以使用 Base64 在线编码解码,把原始数据复制过来解析即可):
在这里插入图片描述
下数据解析的脚本主函数为 Eecode,其带有 fPort、obj ,variables三个入参:**

**obj:**下发指令的内容对象;

发送的数组内容为:

**第一个字节fport:**下发给设备的 LoRaWAN 协议数据的 FPort 字段;

**第二个字节:**下发给设备的 LoRaWAN 协议数据的 MType(0代表Unconfirmed Data Down,1代表Confirmed Data Down);

**第三个字节:**下发对节点的操作,我这里是使灯亮(LED=1):
在这里插入图片描述

四,运行网关程序

先修改网关配置文件:
在这里插入图片描述
在开发板运行网关程序:
在这里插入图片描述
网关上线:
在这里插入图片描述
节点上行数据也到达服务器:
在这里插入图片描述
查看到达数据内容:
在这里插入图片描述
对于网关来说数据是非透明的;
在这里插入图片描述

  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值