Lora 模块连接 ChirpStack平台

Chirpstack:一个开源的Lora服务项目,之前该项目的名字叫LoRa Server。

官网地址:

ChirpStack open-source LoRaWAN

ChirpStack开源LoRaWAN网络服务器堆栈为LoRaWAN网络提供了开源组件,它们共同构成
了一个现成的解决方案,包括用于设备管理的用户友好型Web界面和用于集成的API,并且
模块化体系结构使其可以集成到现有基础架构中。目前所有组件均已获得MIT许可,并可以
用于商业目的

ChirpStack提供的组件如下:

网关网桥:处理与LoRaWAN网关的通信

Introduction - ChirpStack open-source LoRaWAN<sup>®</sup> Network Server
网络服务器:LoRaWAN网络服务器的实现

https://www.chirpstack.io/network-server

应用服务器:LoRaWAN应用服务器的实现

https://www.chirpstack.io/application-server/

地理位置服务器: 与LoRaWAN地理位置后端的集成

https://www.chirpstack.io/geolocation-server/

网关操作系统:基于嵌入式Linux的操作系统,可在LoRa网关上运行(完整)的ChirpStack堆栈

https://www.chirpstack.io/gateway-os/

ChirpStack LoRa 网络服务组件的连接如下:

ChirpStack依赖软件较多,如下:

PostgreSQL:ChirpStack网络服务器将网关数据保存到 PostgreSQL数据库中,注意,需要PostgreSQL 9.5+;

Redis:ChirpStack网络服务器将所有暂时的数据存储到 Redis数据存储中,注意,至少需要Redis 2.6.0;

Mosquitto:ChirpStack网络服务器应用服务器使用MQTT协议通信;

刚接手这个项目的时候我是在win本地进行了部署,但是在Windows上使用ChirpStack搭建lora服务器,但是Windows上的lora服务
器只能用来测试,实际生产中需要将服务器部署到Linux云服务器上,有两个优点:
        不容易挂掉(死机)
        云服务器具有公网ip,可以配合域名使用;

在linux上面我搭建了一个docker服务,如果这些环境挨个在Linux上部署的话,费时费力,后续卸载的时候也非常不方便,所以我们用docker镜像部署。

Docker 是一个开源的容器引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者和系统管理员在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括 VMs(虚拟机)、bare metal、OpenStack 集群、云端、数据中心和其他的基础应用平台。容器是完全使用沙箱机制,相互之间不会有任何接口。

在linux服务器上使用docker部署环境的优点如下:

构建容易分发简单

隔离应用解除依赖

快速部署测完就销

安装docker,docker

sudo apt-get install -y docker-compose

首先使用git拉取chirpstack代码到本地

GitHub - brocaar/chirpstack-docker: Setup ChirpStack using Docker Compose

 

  • docker-compose.yml:docker运行脚本;
  • docker-compose-env:docker环境变量设置脚本;
  • configuration:每个软件的配置文件;

 

在Windows上配置lora服务器时,gateway-bridge、network-server、application-server三个服务器的配置有三个文件,很麻烦,但是在docker中,一些常用的配置选项只需要配置环境变量文件即可

vim docker-compose-env.yml

常用配置如上图,根据实际网关配置

 

 

此处可修改频段,修改 name=”EU868” 以设置支持地区

examples目录中有更多配置文件,例如US AU 等等频段,可去该目录调用。

运行

在镜像目录下使用如下命令运行

cd chirpstack-docker 切换到刚刚的路径

sudo docker-compose up启动

sudo docker-compose up -d  后台启动

sudo docker-compose down 关闭服务

 

运行之后访问:http://<Linux服务器ip地址>:8080 即可看到ChirpStack的web 界面

账号密码默认为admin

 

创建Network-servers

 

添加Network-servers(网络服务)

点击 “Network-servers”界面,点击 ADD,添加一个通用网络服务器:

  • Network-server name:网络服务器名称;
  • Network-server server:网络服务器ip和端口;
  • Linux上部署之后,因为使用的是docker部署,不能使用localhost访问,要填写为:

    chirpstack-network-server:8000

 

 创建成功

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

在Service-profiles页面点击 Create:

 

填写如下配置:

  • Service-profile name:服务配置文件名称;
  • Network-server: 选择上一步添加的网络服务器;
  • Add gateway meta-data:允许NS将网关元数据发送给AS,

 

添加设备配置文件

  1. 在Device-profiles页面点击 Create:

填写如下配置:

Device-profile name:设备配置文件名称;

Network-server:选择之前创建的网络服务器;

LoRaWAN MAC version:选择lorawan协议版本,推荐选择1.0.2;

LoRaWAN Regional Parameters revision:选择A;

 

 

然后在第二栏中配置节点入网方式,使能 Device supports OTAA:

基本部署完成,

添加网关

进入 Gateways 页面,点击CREATE:

 

填写如下配置:

  • Gateway name:网关名称;
  • Gateway description:网关描述;
  • Gateway ID:网关ID,可以在网关输出信息中查看,也可以进入配置文件global_conf.json 中查看;

global_conf.json中

  • Gateway_ID:为网关ID
  • server_address:填写shirpstack服务器地址
  • serv_port_up:1700

 

 

运行网关,

可看到网关上线。

添加设备

在Applications页面点击CREATE:

 

 

填写如下配置:

  • Application name:应用名称;
  • Application description:应用描述;
  • Service-profile:选择之前添加的服务配置文件

创建成功后添加设备

 

 

  • Device name:设备名称;
  • Device description:设备描述;
  • Device EUI:设备EUI;
  • Device-profile:选择之前添加的设备配置文件

 

 

因为是OTAA入网,接着系统会自动跳入到KEYS(OTAA)页面,要求填入app key和Gen Application key

,目前app key比较重要,用来真实lora节点设备和平台对接,所以点击按钮随机生成一个即可,Gen Application key用不到,保持和app key一样即可:

 

配置lora模组使其入网

对于 OTAA 设备,请确认当设备尝试 OTAA 激活时,会看到一条JoinRequest消息,然后是一条JoinAccept消息

 

lora通信速率有限,不发送json数据,直接发送二进制数据,所以要设置编解码插件进行数据解析,在json数据和二进制数据之间进行转换。

进入到之前添加的设备配置文件中,如图,选择CODEC界面,Payload codec选择自定义JavaScript代码:根据上传信息格式自己编写

 

根据上发数据帧格式来编写

设置结束之后来监听上报数据

 

基于以上,chirp stack平台连接完成,有什么问题一起讨论

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值