前提

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

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

2. Docker

3. Docker-compose

关于LoraWan Server

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

协议栈也引用官方的图:

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

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

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

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

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

开源的LoraWan Server

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

1. [chirpstack]https://www.chirpstack.io/

2. [lorawan-server]https://github.com/gotthardp/lorawan-server)

3. [ttn]https://github.com/TheThingsNetwork/ttn

其中`chirpStack`和`ttn`是Golang实现,`lorawan-server`是Erlang实现.

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

部署ChirpStack

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

1. 下载源码

> git clone https://github.com/brocaar/chirpstack-docker.git

2. 用docker-compose部署

> cd chirpstack-docker> docker-compose up -d

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

[root@node123 chirpstack-docker]# docker-compose up -dCreating 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.band`为`CN_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的配置。

docker安装chirpstack_docker-compose快速部署ChirpStack相关推荐

  1. Docker安装java环境并部署jar包运行

    Docker安装java环境并部署jar包运行 作为一个前端,了解后端部署jar包也是有必要的,在这里就我学习的,做一个简单的笔记,这里可以结合我的商品的增删改查的java文章一起看. java实现商 ...

  2. docker安装chirpstack_用docker-compose快速部署ChirpStack

    前提 本文使用docker-compose来部署ChirpStack,请确保已经含有以下环境:Git(非必须,可以先下载源码) Docker Docker-compose 关于LoraWan Serv ...

  3. VMWare安装使用、Linux命令、Docker安装和Linux项目部署

    Linux 一.Linux基础 1.1 Linux介绍 1.2 Linux常见发布版本 1.3 Linux和Windows的区别 1.4 Linux常见命令 二.VMWare安装使用 2.1 VMWa ...

  4. 群晖docker装梅林_群晖NAS用Docker安装宝塔面板一键部署建站系统

    Docker镜像选择 我们的安装思路是先用Docker安装Centos7系统,然后再安装宝塔面板,当然用群晖自带的VMM虚拟机功能也是一样可以实现的. 1.打开Docker,注册表中搜索centos, ...

  5. docker安装教程以及fate部署

    目录 一.安装docker 二.安装docker engine 三. 安装docker-compose 四. 部署FATE 对于dockers安装有很多版吧,我是在虚拟机上Ubuntu18.0.1的版 ...

  6. docker安装elasticsearch_Elasticsearch amp; Kibana 部署安装 (Docker)

    为什么要使用 Docker来部署 Elasticsearch 和 Kibana 呢,传统使用软件在操作系统上安装和配置的方法过于繁琐,并且受一些跨平台的约束,例如Mac.Windows.Linux等, ...

  7. Docker安装Tomcat镜像并部署web项目简述

    一.安装Tomcat 1.查找Docker Hub上的tomcat镜像 docker search tomcat 2.拉取官方的镜像 docker pull tomcat 等待下载完毕,需要一些时间. ...

  8. Docker在Linux系统快速部署数据库大全

  9. Docker 安装、使用

    文章目录 Docker 教程 1. 前言 2. Docker 应用场景 3. Docker 优点 3.1 快速,一致地交付应用程序 3.2 响应式部署和扩展 3. 在同一硬件上运行更多工作负载 4. ...

最新文章

  1. 6.java设计模式
  2. window.location.reload() 刷新页面时,如何不弹出提示框
  3. CVPR 2020 《Local-Global Video-Text Interactions for Temporal Grounding》论文笔记
  4. php http头设置相关信息
  5. Git常用指令及功能总结
  6. vue项目图片403
  7. 读写二进制c# 二进制读写
  8. 运行python时说要建如版权_当我运行python manage.py syncdb时,Django避免在数据库中创建PointField...
  9. 1. OpenMAX系列 —— ACodec和OMX的联系
  10. 浅析算法——斯坦纳树
  11. 51单片机原理与设计方案(包含原理图与PCB)
  12. 用英文给领导写建议信
  13. java虚拟内存不足
  14. widows终端远程连接Linux服务器
  15. 微信内置页实现自动拨号到页面的功能
  16. 周测作业五(apache的安装与配置)
  17. 向日葵在mac不能以服务器运行吗,macOS系统向日葵远程控制鼠标无法点击的问题...
  18. java盒图_盒须图简介 - Java报表工具技术讨论,Style Report 报表专题 - OSCHINA - 中文开源技术交流社区...
  19. 第二证券|沪指缩量跌0.25%,地产、医药板块强势,钠电池概念表现亮眼
  20. 《数据密集型计算和模型》第三章_内存计算复习

热门文章

  1. 使用谷歌Colab Notebooks,这6个小技巧你需要掌握
  2. 最近一篇关于深度学习在地图-定位应用的综述
  3. 尤佳轩、何恺明等提出新型图表示法,新视角理解图结构如何影响预测性能
  4. 美国年薪最高的高管是谁?彭博最新薪酬排名出炉,库克只排第二
  5. 她92年的,27岁,当上浙大博导。
  6. 【GCN】图卷积网络 Graph Convolutional Networks
  7. 【每日一算法】行星碰撞
  8. Scrapyd部署Scrapy框架项目
  9. css 选择器(标签选择器、类选择器、层级选择器、id选择器、组选择器、伪类选择器、通配符选择器)
  10. 实验三 JSP应用开发进阶