写点什么

用 docker-compose 快速部署 ChirpStack

用户头像
LanLiang
关注
发布于: 2021 年 01 月 22 日
用docker-compose快速部署ChirpStack

前提


本文使用docker-compose来部署ChirpStack,请确保已经含有以下环境:


  1. Git(非必须,可以先下载源码)

  2. Docker

  3. Docker-compose


关于 LoraWan Server


在讲 LoraWan Server 之前需要先了解一下 LoraWan 协议,LoraWan 是一种物联网远距离传输协议。引用一句官方的介绍是这样的:LoRaWAN 开放规范是基于 LoRa 技术的低功耗广域网(LPWAN)协议。


协议栈也引用官方的图:


https://www.semtech.com/uploads/images/what-LoRa-table-illustration-web.gif


数据是如何从传感器发送到服务器并且被相应的应用处理的呢?可以看下下面的图,依然是来自官方:


https://www.semtech.com/uploads/images/Semtech-LoRaWAN-Diagram-NetworkArchitecture-Vert.png


最上面的是传感器,然后通过 LoraWan 协议将数据传输给了网关,网关通过网络传输到网络服务器(NS),NS 将数据分发给对应的应用服务器(AS)。


举个栗子:一个智慧厕所当中的洗手液盒和纸巾盒里面都装有 LoraWan 的传感器,并且是由两个厂商分别提供设备。他们分别将余量数据(还剩下多少皂液/还剩下多少纸巾)上传到了(当然包含了网关传输的部分)网络服务器,网络服务器就将纸巾盒的数据分发给纸巾盒厂商的应用服务器,将皂液盒的数据分发给皂液盒厂商的应用服务器。


这样在大家都遵循 LoraWan 协议的前提下就达到了厂商中立的情况,哪一种设备不好我都可以找符合 LoraWan 规范的厂商进行替代,不需要担心厂商锁定的问题。


在这个过程中,网络服务器就起着一个相当重要的作用了,下面来看看当前有哪一些开源的网络服务器。


开源的 LoraWan Server


当前开源的 LoraWan Server 主要有三个:


  1. chirpstack

  2. lorawan-server

  3. ttn


其中chirpStackttn是 Golang 实现,lorawan-server是 Erlang 实现.


我只接触过前两者,本文只讲述 chirpStack,也是我司正在使用的 LoraWanServer 技术栈,尝试过ttn的部署,上手简易度没有 chirpStack 好,所以没有再继续研究ttn.


部署 ChirpStack


ChirpStack 的部署相当简单,这里使用docker-compose部署作为例子。


  1. 下载源码


> git clone https://github.com/brocaar/chirpstack-docker.git
复制代码


  1. docker-compose部署


> cd chirpstack-docker  > docker-compose up -d
复制代码


下面是我执行部署命令后的一个输出:


[root@node123 chirpstack-docker]# docker-compose up -dWARNING: The Docker Engine you're using is running in swarm mode.
Compose does not use swarm mode to deploy services to multiple nodes in a swarm. All containers will be scheduled on the current node.
To deploy your application across the swarm, use `docker stack deploy`.
Creating network "chirpstack-docker_default" with the default driverCreating chirpstack-docker_chirpstack-gateway-bridge_1 ... doneCreating chirpstack-docker_chirpstack-geolocation-server_1 ... doneCreating chirpstack-docker_chirpstack-network-server_1 ... doneCreating chirpstack-docker_mosquitto_1 ... doneCreating chirpstack-docker_redis_1 ... doneCreating chirpstack-docker_chirpstack-application-server_1 ... doneCreating chirpstack-docker_postgresql_1 ... done
复制代码


现在打开IP:8080应该就可以看到 ChirpStack 自带的 Application Server 的页面了,我这里的 IP 是192.168.3.123, 打开后可以看到登陆页面:



默认的帐号密码是admin/admin,能够登陆就已经说明部署成功了。



当然这个时候还不能接收传感器数据的(指的是网络服务器的配置问题),默认的用的频段是EU868,我们在国内需要使用CN_470_510,修改configuration/chirpstack-network-server/chirpstack-network-server.toml文件中的network_server.bandCN_470_510


[network_server.band]name="CN_470_510"
复制代码


将下面的network_server.network_settings配置注释掉:


[network_server.network_settings]
# [[network_server.network_settings.extra_channels]]# frequency=867100000# min_dr=0# max_dr=5
# [[network_server.network_settings.extra_channels]]# frequency=867300000# min_dr=0# max_dr=5
# [[network_server.network_settings.extra_channels]]# frequency=867500000# min_dr=0# max_dr=5
# [[network_server.network_settings.extra_channels]]# frequency=867700000# min_dr=0# max_dr=5
# [[network_server.network_settings.extra_channels]]# frequency=867900000# min_dr=0# max_dr=5`
复制代码


再重启一下服务器就可以了,网络服务器的配置工作就做完了。当然一个完整的数据走向还需要在服务器上创建应用、创建设备、创建网关、在网关配置网络服务器相关的内容、传感器发起数据。


本文仅讲述网络服务器 ChirpStack 的配置。


始发于 四颗咖啡豆,转载请声明出处.

关注公粽号->[四颗咖啡豆] 获取最新内容


发布于: 2021 年 01 月 22 日阅读数: 21
用户头像

LanLiang

关注

天道酬勤 2018.04.28 加入

爱好开源,追随云原生。 github.com/liangyuanpeng 公众号:四颗咖啡豆

评论

发布
暂无评论
用docker-compose快速部署ChirpStack