产品价格的网站建设,大同百度做网站多少钱,乐陵森木全屋定制,万网手机网站目录
一、前言
二、chirpstack
1、chirpstack是什么
2、chirpstack组件
3、为什么选择Docker部署
三、Linux下部署过程
四、web界面部署过程 一、前言 本篇文章我是在Linux下使用 Docker 进行部署chirpstack#xff0c;chirpstack采用的是v4 版本#xff0c;v4 版本 与…目录
一、前言
二、chirpstack
1、chirpstack是什么
2、chirpstack组件
3、为什么选择Docker部署
三、Linux下部署过程
四、web界面部署过程 一、前言 本篇文章我是在Linux下使用 Docker 进行部署chirpstackchirpstack采用的是v4 版本v4 版本 与 v3版本 相比gRPC API 等做了一些改变需要考虑兼容性。但是我们仅仅使用Docker部署chirpstack 其实就目录和web 界面发生了一些改变配置逻辑是一样的并没有太大改变。如果大家用的是 v3版本哪里不懂也可以直接问我。
二、chirpstack
1、chirpstack是什么 ChirpStack 是一个开源的 LoRaWAN 网络服务器可用于 设置私有或公共 LoRaWAN 网络。ChirpStack 提供了一个 Web 界面 用于管理网关、设备和应用程序。ChirpStack 提供了一个基于 gRPC 的 API可以 用于集成或扩展 ChirpStack。
2、chirpstack组件
1ChirpStack Network Server 简称NS作用是确保 LoRaWAN 网络的正常运行和管理设备通信。其负责 LoRaWAN 网络的核心逻辑。它处理设备的加入过程、下行链路调度、设备活动状态跟踪等。它还负责处理从 LoRa 网关接收到的上行数据并将下行数据发送到网关。
2ChirpStack Application Server 简称AS作用是管理和处理应用层数据提供用户界面和 API 接口。其负责处理和管理 LoRaWAN 应用层数据。它允许用户定义应用程序、设备配置和数据解码器。它还提供 API 和 Web 界面用于管理设备、监控网络流量、处理数据解码和发送应用层数据到外部应用程序。
3ChirpStack Gateway Bridge它充当网关和网络服务器之间的中间件。该组件可以将LoRa网关传输来的LoRa数据包转发器协议转换成ChirpStack网络服务器通用的数据格式JSON和Protobuf。
4PostgreSQL这是一个开源的关系型数据库管理系统用于持续化存储 ChirpStack 的配置数据、设备信息、网关信息、应用程序数据等。
5Redis这是一个开源的内存中数据结构存储系统通常用作数据库、缓存和消息代理。ChirpStack 使用 Redis 来缓存和处理一些实时数据提高系统性能和响应速度。
6MosquittoMosquitto是一个MQTT协议的代理服务器用于处理设备和ChirpStack组件之间的通信。它允许LoRaWAN网关和ChirpStack服务之间的消息传递。 注意一下Postgre SQL和 Redis 的区别Postgre SQL基于磁盘存储数据支持持久化存储数据在磁盘上存储即使系统重启数据也不会丢失性能相对较慢。Redis基于内存存储数据支持高效的读写操作性能极高。
3、为什么选择Docker部署
1简化部署过程上文已讲过ChirpStack 是由多个服务组件组成的Docker Compose 允许我们通过一个配置文件docker-compose.yml定义和运行多个容器只需要一条命令docker-compose up即可启动所有服务。
2环境隔离chirpstack的各个服务可以在独立的容器中运行避免了依赖冲突和环境污染。
3可移植性 使用 Docker我们可以确保在开发环境、测试环境和生产环境中运行相同的代码和配置。这有助于避免在不同环境中出现的“环境问题”。
4集中配置所有的服务配置集中在一个 docker-compose.yml 文件中便于管理和版本控制。我们可以轻松地修改和更新配置。
三、Linux下部署过程
1、从 github 上拉取源代码
v4版本接下来以v4版本进行讲解
git clone https://github.com/chirpstack/chirpstack-docker.git v3版本
git clone https://github.com/chirpstack/chirpstack-docker/tree/v3 2、修改 docker-compose.yml 配置文件 该文件是一个使用 Docker Compose 配置的多容器应用程序用于部署 ChirpStack 物联网平台。涵盖了 ChirpStack 系统所需的所有主要组件确保它们在 Docker 容器中协同工作。注意该配置文件通常只需要修改你想要的频段和端口其他不用改变
1chirpstack 这是 ChirpStack 应用服务器一般不用进行修改。 chirpstack:image: chirpstack/chirpstack:4command: -c /etc/chirpstackrestart: unless-stoppedvolumes:- ./configuration/chirpstack:/etc/chirpstack- ./lorawan-devices:/opt/lorawan-devicesdepends_on:- postgres- mosquitto- redisenvironment:- MQTT_BROKER_HOSTmosquitto- REDIS_HOSTredis- POSTGRESQL_HOSTpostgresports:- 8080:8080image: 使用 chirpstack/chirpstack:4 镜像。command: 指定配置文件路径为 /etc/chirpstack。restart: 设置为 unless-stopped即除非手动停止否则容器会自动重启。volumes: 挂载本地目录 ./configuration/chirpstack 到容器内的 /etc/chirpstack以及 ./lorawan-devices 到容器内的 /opt/lorawan-devices。depends_on: 依赖 postgres, mosquitto, redis 三个服务。environment: 设置环境变量包括 MQTT_BROKER_HOST, REDIS_HOST, POSTGRESQL_HOST。ports: 暴露端口 8080将容器内的 8080 端口映射到主机的 8080 端口。
2chirpstack-gateway-bridge 这是 ChirpStack 网关桥接器服务我这里采用的cn470_10频段。
chirpstack-gateway-bridge:image: chirpstack/chirpstack-gateway-bridge:4restart: unless-stoppedports:- 1700:1700/udpvolumes:- ./configuration/chirpstack-gateway-bridge:/etc/chirpstack-gateway-bridgeenvironment:- INTEGRATION__MQTT__EVENT_TOPIC_TEMPLATEcn470_10/gateway/{{ .GatewayID }}/event/{{ .EventType }}- INTEGRATION__MQTT__STATE_TOPIC_TEMPLATEcn470_10/gateway/{{ .GatewayID }}/state/{{ .StateType }}- INTEGRATION__MQTT__COMMAND_TOPIC_TEMPLATEcn470_10/gateway/{{ .GatewayID }}/command/#depends_on:- mosquitto
estart: 设置为 unless-stopped。ports: 暴露 UDP 端口 1700。volumes: 挂载本地目录 ./configuration/chirpstack-gateway-bridge 到容器内的 /etc/chirpstack-gateway-bridge。environment: 设置环境变量指定 MQTT 主题模板。depends_on: 依赖 mosquitto 服务。
3chirpstack-gateway-bridge-basicstation 这是 ChirpStack 网关桥接器的基本站服务注意修改command部分。 chirpstack-gateway-bridge-basicstation:image: chirpstack/chirpstack-gateway-bridge:4restart: unless-stoppedcommand: -c /etc/chirpstack-gateway-bridge/chirpstack-gateway-bridge-basicstation-cn470_10.tomlports:- 3001:3001volumes:- ./configuration/chirpstack-gateway-bridge:/etc/chirpstack-gateway-bridgedepends_on:- mosquitto
image: 使用 chirpstack/chirpstack-gateway-bridge:4 镜像。restart: 设置为 unless-stopped。command: 使用配置文件 chirpstack-gateway-bridge-basicstation-cn470_10.toml。ports: 暴露端口 3001。volumes: 挂载本地目录 ./configuration/chirpstack-gateway-bridge 到容器内的 /etc/chirpstack-gateway-bridge。depends_on: 依赖 mosquitto 服务。
4chirpstack-rest-api 这是 ChirpStack 的 REST API 服务。
chirpstack-rest-api:image: chirpstack/chirpstack-rest-api:4restart: unless-stoppedcommand: --server chirpstack:8080 --bind 0.0.0.0:8090 --insecureports:- 8090:8090depends_on:- chirpstack
image: 使用 chirpstack/chirpstack-rest-api:4 镜像。restart: 设置为 unless-stopped。command: 指定 ChirpStack 服务器为 chirpstack:8080绑定地址为 0.0.0.0:8090并启用不安全模式。ports: 暴露端口 8090。depends_on: 依赖 chirpstack 服务。
5postgres 这是 PostgreSQL 数据库服务。
postgres:image: postgres:14-alpinerestart: unless-stoppedvolumes:- ./configuration/postgresql/initdb:/docker-entrypoint-initdb.d- postgresqldata:/var/lib/postgresql/dataenvironment:- POSTGRES_PASSWORDroot
image: 使用 postgres:14-alpine 镜像。restart: 设置为 unless-stopped。volumes: 挂载本地目录 ./configuration/postgresql/initdb 到容器内的 /docker-entrypoint-initdb.d以及挂载 Docker 卷 postgresqldata 到容器内的 /var/lib/postgresql/data。environment: 设置环境变量 POSTGRES_PASSWORD 为 root。
6redis 这是 Redis 内存数据库服务。
redis:image: redis:7-alpinerestart: unless-stoppedcommand: redis-server --save 300 1 --save 60 100 --appendonly novolumes:- redisdata:/data
image: 使用 redis:7-alpine 镜像。restart: 设置为 unless-stopped。command: 运行 redis-server并指定保存策略。volumes: 挂载 Docker 卷 redisdata 到容器内的 /data。
7mosquitto 这是 MQTT 消息代理服务。 mosquitto:image: eclipse-mosquitto:2restart: unless-stoppedports:- 1883:1883volumes: - ./configuration/mosquitto/config/:/mosquitto/config/8Volumes 定义数据卷。
volumes:postgresqldata:redisdata:postgresqldata: 用于存储 PostgreSQL 数据。redisdata: 用于存储 Redis 数据。
3、docke-compose启动
sudo docker-compose up -d 四、web界面部署过程
1、访问 chirpstackIP8080默认账号密码是admin 2、创建网关 接下来就正常给网关起名字但是网关ID要记住网关配置中需要修改相对应的ID。 3、添加设备文件 根据自己的要求进行填写。 4、配置AS 添加玩应用后依次在应用中添加设备和多播设置等。 最后运行网关看网关是否能够连接到云服务器并成功转发消息。