내 연락처 정보
우편메소피아@프로톤메일.com
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
목차
저는 이 글을 Linux에서 사용하고 있습니다.도커Chirpstack을 배포하기 위해 Chirpstack은 다음을 사용합니다.v4 버전, v4 버전 및 v3 버전 gRPC API와 비교하여 일부 변경이 이루어졌으며 호환성을 고려해야 합니다. 하지만 우리는 Chirpstack을 배포하는 데만 Docker를 사용합니다. 실제로 디렉터리와 웹 인터페이스에 일부 변경 사항이 있었으며 구성 논리는 동일하며 많이 변경되지 않았습니다. v3 버전을 사용 중이시거나 이해가 안되는 부분이 있으면 저에게 직접 물어보셔도 됩니다.
ChirpStack은 개인 또는 공용 LoRaWAN 네트워크를 설정하는 데 사용할 수 있는 오픈 소스 LoRaWAN 네트워크 서버입니다. ChirpStack은 웹 인터페이스를 제공합니다게이트웨이, 장치 및 애플리케이션을 관리하는 데 사용됩니다.ChirpStack은 ChirpStack을 통합하거나 확장하는 데 사용할 수 있는 gRPC 기반 API를 제공합니다.
(1)ChirpStack 네트워크 서버: NS는 줄여서 그 기능은 다음과 같다.LoRaWAN 네트워크의 올바른 작동을 보장하고 장치 통신을 관리합니다.저것 LoRaWAN 네트워크의 핵심 로직을 담당합니다. 장치 연결 프로세스, 다운링크 예약, 장치 활동 추적 등을 처리합니다. 또한 LoRa 게이트웨이로부터 수신된 업링크 데이터를 처리하고 다운링크 데이터를 게이트웨이로 보내는 역할도 담당합니다.
(2)ChirpStack 애플리케이션 서버: AS로 약칭하며 그 기능은 다음과 같습니다.애플리케이션 계층 데이터를 관리 및 처리하고 사용자 인터페이스 및 API 인터페이스를 제공합니다.저것 LoRaWAN 애플리케이션 계층 데이터 처리 및 관리를 담당합니다. 이를 통해 사용자는 애플리케이션, 장치 구성 및 데이터 디코더를 정의할 수 있습니다. 또한 장치 관리, 네트워크 트래픽 모니터링, 데이터 디코딩 처리, 애플리케이션 계층 데이터를 외부 애플리케이션으로 전송하기 위한 API 및 웹 인터페이스를 제공합니다.
(3)ChirpStack 게이트웨이 브리지:그것게이트웨이와 웹 서버 사이의 미들웨어 역할을 합니다. . LoRa 게이트웨이에서 전송되는 LoRa 패킷 트랜스폰더 프로토콜을 ChirpStack 네트워크 서버의 공통 데이터 형식(JSON 및 Protobuf)으로 변환할 수 있는 구성 요소입니다.
(4)포스트그레SQL: 오픈 소스 관계형 데이터베이스 관리 시스템입니다.영구 저장 ChirpStack의 구성 데이터, 기기 정보, 게이트웨이 정보, 애플리케이션 데이터 등
(5)레디스: 이는 오픈 소스 인메모리 데이터 구조 저장 시스템으로, 일반적으로데이터베이스, 캐시, 메시지 브로커로 사용 . ChirpStack은 Redis를 사용하여 일부 실시간 데이터를 캐시하고 처리하여 시스템 성능과 응답 속도를 향상시킵니다.
(6)모스키토:Mosquitto는 MQTT 프로토콜의 프록시 서버입니다.장치와 ChirpStack 구성 요소 간의 통신을 처리합니다.LoRaWAN 게이트웨이와 ChirpStack 서비스 간의 메시징을 허용합니다.
Postgre SQL과 Redis의 차이점에 주의하세요. Postgre SQL은 디스크 기반으로 데이터를 저장하며 영구 스토리지를 지원합니다. 데이터가 디스크에 저장되면 시스템을 다시 시작해도 데이터가 손실되지 않으며 성능이 상대적으로 느립니다. Redis는 메모리를 기반으로 데이터를 저장하고 효율적인 읽기 및 쓰기 작업을 지원하며 매우 높은 성능을 제공합니다.
(1) 배포 프로세스 단순화:위에서 언급했듯이 ChirpStack은 여러 서비스 구성 요소로 구성됩니다. Docker Compose를 사용하면 구성 파일(docker-compose.yml
) 단 하나의 명령으로 여러 컨테이너를 정의하고 실행합니다(docker-compose up
) 모든 서비스를 시작합니다.
(2) 환경적 격리:Chirpstack의 각 서비스는 종속성 충돌과 환경 오염을 방지하면서 독립적인 컨테이너에서 실행될 수 있습니다.
(3) 이식성: Docker를 사용하면 개발, 테스트 및 프로덕션 환경에서 동일한 코드와 구성을 실행할 수 있습니다. 이는 다양한 환경에서 발생하는 "환경 문제"를 방지하는 데 도움이 됩니다.
(4) 중앙 집중식 구성:모든 서비스 구성이 하나로 중앙 집중화됩니다. docker-compose.yml
간편한 관리 및 버전 관리를 위한 파일입니다. 구성을 쉽게 수정하고 업데이트할 수 있습니다.
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
구성 파일
파일은ChirpStack IoT 플랫폼을 배포하기 위해 Docker Compose를 사용하여 구성된 다중 컨테이너 애플리케이션입니다. Docker 컨테이너에서 함께 작동하도록 ChirpStack 시스템에 필요한 모든 주요 구성 요소를 다룹니다. (이 구성 파일은 일반적으로 원하는 주파수 대역과 포트만 수정하면 되며 다른 변경은 필요하지 않습니다.)
(1)치프스택
이는 ChirpStack 애플리케이션 서버입니다(일반적으로 수정이 필요하지 않음).
- chirpstack:
- image: chirpstack/chirpstack:4
- command: -c /etc/chirpstack
- restart: unless-stopped
- volumes:
- - ./configuration/chirpstack:/etc/chirpstack
- - ./lorawan-devices:/opt/lorawan-devices
- depends_on:
- - postgres
- - mosquitto
- - redis
- environment:
- - MQTT_BROKER_HOST=mosquitto
- - REDIS_HOST=redis
- - POSTGRESQL_HOST=postgres
- ports:
- - 8080:8080
chirpstack/chirpstack:4
거울./etc/chirpstack
。unless-stopped
즉, 수동으로 중지하지 않는 한 컨테이너는 자동으로 다시 시작됩니다../configuration/chirpstack
컨테이너에/etc/chirpstack
,게다가 ./lorawan-devices
컨테이너에/opt/lorawan-devices
。postgres
, mosquitto
, redis
세 가지 서비스.MQTT_BROKER_HOST
, REDIS_HOST
, POSTGRESQL_HOST
。8080
, 내용물을 용기에 담으세요 8080
호스트에 매핑된 포트8080
포트.(2)chirpstack-게이트웨이-브리지
이것이 ChirpStack 게이트웨이 브리지 서비스입니다(여기서 사용하는 cn470_10 밴드).
- chirpstack-gateway-bridge:
- image: chirpstack/chirpstack-gateway-bridge:4
- restart: unless-stopped
- ports:
- - 1700:1700/udp
- volumes:
- - ./configuration/chirpstack-gateway-bridge:/etc/chirpstack-gateway-bridge
- environment:
- - INTEGRATION__MQTT__EVENT_TOPIC_TEMPLATE=cn470_10/gateway/{{ .GatewayID }}/event/{{ .EventType }}
- - INTEGRATION__MQTT__STATE_TOPIC_TEMPLATE=cn470_10/gateway/{{ .GatewayID }}/state/{{ .StateType }}
- - INTEGRATION__MQTT__COMMAND_TOPIC_TEMPLATE=cn470_10/gateway/{{ .GatewayID }}/command/#
- depends_on:
- - mosquitto
unless-stopped
。1700
。./configuration/chirpstack-gateway-bridge
컨테이너에/etc/chirpstack-gateway-bridge
。mosquitto
제공하다.(3)chirpstack-gateway-bridge-basicstation
이는 ChirpStack 게이트웨이 브리지의 기본 스테이션 서비스입니다(명령 부분 수정 참고).
- chirpstack-gateway-bridge-basicstation:
- image: chirpstack/chirpstack-gateway-bridge:4
- restart: unless-stopped
- command: -c /etc/chirpstack-gateway-bridge/chirpstack-gateway-bridge-basicstation-cn470_10.toml
- ports:
- - 3001:3001
- volumes:
- - ./configuration/chirpstack-gateway-bridge:/etc/chirpstack-gateway-bridge
- depends_on:
- - mosquitto
chirpstack/chirpstack-gateway-bridge:4
거울.unless-stopped
。chirpstack-gateway-bridge-basicstation-cn470_10.toml
。3001
。./configuration/chirpstack-gateway-bridge
컨테이너에/etc/chirpstack-gateway-bridge
。mosquitto
제공하다.(4)chirpstack-rest-api
ChirpStack의 REST API 서비스입니다.
- chirpstack-rest-api:
- image: chirpstack/chirpstack-rest-api:4
- restart: unless-stopped
- command: --server chirpstack:8080 --bind 0.0.0.0:8090 --insecure
- ports:
- - 8090:8090
- depends_on:
- - chirpstack
chirpstack/chirpstack-rest-api:4
거울.unless-stopped
。chirpstack:8080
, 바인딩 주소는 다음과 같습니다. 0.0.0.0:8090
, 안전하지 않은 모드를 활성화합니다.8090
。chirpstack
제공하다.(5)포스트그레스
이것은 PostgreSQL 데이터베이스 서비스입니다.
- postgres:
- image: postgres:14-alpine
- restart: unless-stopped
- volumes:
- - ./configuration/postgresql/initdb:/docker-entrypoint-initdb.d
- - postgresqldata:/var/lib/postgresql/data
- environment:
- - POSTGRES_PASSWORD=root
postgres:14-alpine
거울.unless-stopped
。./configuration/postgresql/initdb
컨테이너에/docker-entrypoint-initdb.d
, Docker 볼륨을 마운트합니다. postgresqldata
컨테이너에/var/lib/postgresql/data
。POSTGRES_PASSWORD
~을 위한root
。(6)레디스
Redis 인메모리 데이터베이스 서비스입니다.
- redis:
- image: redis:7-alpine
- restart: unless-stopped
- command: redis-server --save 300 1 --save 60 100 --appendonly no
- volumes:
- - redisdata:/data
redis:7-alpine
거울.unless-stopped
。redis-server
을 클릭하고 저장 전략을 지정합니다.redisdata
컨테이너에/data
。(7)모기
MQTT 메시지 브로커 서비스입니다.
- mosquitto:
- image: eclipse-mosquitto:2
- restart: unless-stopped
- ports:
- - 1883:1883
- volumes:
- - ./configuration/mosquitto/config/:/mosquitto/config/
(8)권수
데이터 볼륨을 정의합니다.
- volumes:
- postgresqldata:
- redisdata:
3. Docke-compose 시작
sudo docker-compose up -d
1. Chirpstack(IP) 방문: 8080, 기본 계정 비밀번호는 admin입니다.
2. 게이트웨이 생성
다음으로 게이트웨이에 정상적으로 이름을 부여하되 게이트웨이 ID는 게이트웨이 구성에서 수정해야 합니다.
3. 장치 파일 추가
귀하의 요구 사항에 따라 작성하십시오.
4. AS 구성
플레이 애플리케이션을 추가한 후 애플리케이션에 장치 및 멀티캐스트 설정을 차례로 추가합니다.
마지막으로 게이트웨이를 실행하여 게이트웨이가 클라우드 서버에 연결되어 메시지를 성공적으로 전달할 수 있는지 확인합니다.