le mie informazioni di contatto
Posta[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Sommario
3. Perché scegliere la distribuzione Docker?
3. Processo di distribuzione sotto Linux
4. Processo di distribuzione dell'interfaccia Web
Sto usando questo articolo sotto LinuxPortarePer distribuire chirpstack, utilizza chirpstackversione v4, versione v4 e versione v3 Rispetto all'API gRPC sono state apportate alcune modifiche ed è necessario considerare la compatibilità. Ma utilizziamo Docker solo per distribuire chirpstack. In effetti, ci sono stati alcuni cambiamenti nella directory e nell'interfaccia web. La logica di configurazione è la stessa e non è cambiato molto. Se utilizzi la versione v3, puoi chiedermelo direttamente se non capisci nulla.
ChirpStack è un server di rete LoRaWAN open source che può essere utilizzato per configurare reti LoRaWAN private o pubbliche. ChirpStack fornisce un'interfaccia webUtilizzato per gestire gateway, dispositivi e applicazioni.ChirpStack fornisce un'API basata su gRPC che può essere utilizzata per integrare o estendere ChirpStack.
(1)Server di rete ChirpStack: NS in breve, la sua funzione èGarantisce il corretto funzionamento della rete LoRaWAN e gestisce la comunicazione dei dispositivi.Quello Responsabile della logica centrale della rete LoRaWAN. Gestisce il processo di unione del dispositivo, la pianificazione del downlink, il monitoraggio dell'attività del dispositivo, ecc. È inoltre responsabile dell'elaborazione dei dati di uplink ricevuti dal gateway LoRa e dell'invio dei dati di downlink al gateway.
(2)Server applicativo ChirpStack: Abbreviato come AS, la sua funzione èGestire ed elaborare i dati del livello di applicazione e fornire l'interfaccia utente e l'interfaccia API.Quello Responsabile dell'elaborazione e della gestione dei dati del livello applicativo LoRaWAN. Consente agli utenti di definire applicazioni, configurazioni di dispositivi e decodificatori di dati. Fornisce inoltre API e interfacce Web per la gestione dei dispositivi, il monitoraggio del traffico di rete, la gestione della decodifica dei dati e l'invio di dati a livello di applicazione ad applicazioni esterne.
(3) Ponte gateway ChirpStack:EssoFunge da middleware tra il gateway e il server web . Questo componente può convertire il protocollo di inoltro dei pacchetti LoRa trasmesso dal gateway LoRa nel formato dati comune (JSON e Protobuf) del server di rete ChirpStack.
(4)PostgreSQL: Questo è un sistema di gestione di database relazionali open source permemorizzazione persistente I dati di configurazione di ChirpStack, le informazioni sul dispositivo, le informazioni sul gateway, i dati dell'applicazione, ecc.
(5)Redis: Di solito si tratta di un sistema di archiviazione della struttura dei dati in memoria open sourceUtilizzato come database, cache e broker di messaggi . ChirpStack utilizza Redis per memorizzare nella cache ed elaborare alcuni dati in tempo reale per migliorare le prestazioni del sistema e la velocità di risposta.
(6) Zanzara:Mosquitto è un server proxy del protocollo MQTT perGestisce la comunicazione tra dispositivi e componenti ChirpStack.Consente la messaggistica tra il gateway LoRaWAN e il servizio ChirpStack.
Presta attenzione alla differenza tra Postgre SQL e Redis. Postgre SQL archivia i dati in base al disco e supporta l'archiviazione persistente. Quando i dati vengono archiviati su disco, i dati non andranno persi anche se il sistema viene riavviato e le prestazioni sono relativamente lente. Redis archivia i dati in base alla memoria, supporta operazioni di lettura e scrittura efficienti e offre prestazioni estremamente elevate.
(1) Semplificare il processo di distribuzione:Come accennato in precedenza, ChirpStack è composto da più componenti del servizio Docker Compose ci consente di passare un file di configurazione (.docker-compose.yml
) Definisci ed esegui più contenitori con un solo comando (docker-compose up
) per avviare tutti i servizi.
(2) Isolamento ambientale:Ogni servizio di chirpstack può essere eseguito in contenitori indipendenti, evitando conflitti di dipendenza e inquinamento ambientale.
(3) Portabilità: Utilizzando Docker, possiamo garantire di eseguire lo stesso codice e la stessa configurazione negli ambienti di sviluppo, test e produzione. Ciò aiuta a evitare "problemi ambientali" che sorgono in ambienti diversi.
(4) Configurazione centralizzata:Tutte le configurazioni del servizio sono centralizzate in una docker-compose.yml
file per una facile gestione e controllo della versione. Possiamo facilmente modificare e aggiornare la configurazione.
1. Estrai il codice sorgente da github
Versione v4: (La versione v4 verrà spiegata di seguito)
git clone https://github.com/chirpstack/chirpstack-docker.git
versione v3:
git clone https://github.com/chirpstack/chirpstack-docker/tree/v3
2. Modificadocker-compose.yml
File di configurazione
Il file è unApplicazione multi-contenitore configurata utilizzando Docker Compose per la distribuzione della piattaforma IoT ChirpStack. Copre tutti i componenti principali necessari per un sistema ChirpStack per garantire che funzionino insieme in un contenitore Docker. (Nota che questo file di configurazione di solito richiede solo di modificare la banda di frequenza e la porta desiderate e non è necessario apportare altre modifiche)
(1) pila di chips
Questo è il server delle applicazioni ChirpStack (generalmente non sono necessarie modifiche).
- 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
Specchio./etc/chirpstack
。unless-stopped
, ovvero il contenitore si riavvierà automaticamente a meno che non venga interrotto manualmente../configuration/chirpstack
nel contenitore/etc/chirpstack
,così come ./lorawan-devices
nel contenitore/opt/lorawan-devices
。postgres
, mosquitto
, redis
Tre servizi.MQTT_BROKER_HOST
, REDIS_HOST
, POSTGRESQL_HOST
。8080
, mettere il contenuto nel contenitore 8080
Porta mappata sull'host8080
porta.(2) ponte gateway chirpstack
Questo è il servizio bridge gateway ChirpStack (la banda cn470_10 che utilizzo qui).
- 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
nel contenitore/etc/chirpstack-gateway-bridge
。mosquitto
Servire.(3) chirpstack-gateway-bridge-basicstation
Questo è il servizio base della stazione del gateway bridge ChirpStack (notare la modifica della parte di comando).
- 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
Specchio.unless-stopped
。chirpstack-gateway-bridge-basicstation-cn470_10.toml
。3001
。./configuration/chirpstack-gateway-bridge
nel contenitore/etc/chirpstack-gateway-bridge
。mosquitto
Servire.(4) chirpstack-rest-api
Questo è il servizio API REST di ChirpStack.
- 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
Specchio.unless-stopped
。chirpstack:8080
, l'indirizzo vincolante è 0.0.0.0:8090
e attiva la modalità non sicura.8090
。chirpstack
Servire.(5)Postgres
Questo è il servizio di database 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
Specchio.unless-stopped
。./configuration/postgresql/initdb
nel contenitore/docker-entrypoint-initdb.d
e montare il volume Docker postgresqldata
nel contenitore/var/lib/postgresql/data
。POSTGRES_PASSWORD
perroot
。(6) rosso
Questo è un servizio di database in memoria 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
Specchio.unless-stopped
。redis-server
e specificare la strategia di salvataggio.redisdata
nel contenitore/data
。(7) zanzara
Questo è il servizio di broker di messaggi MQTT.
- mosquitto:
- image: eclipse-mosquitto:2
- restart: unless-stopped
- ports:
- - 1883:1883
- volumes:
- - ./configuration/mosquitto/config/:/mosquitto/config/
(8)Volumi
Definire i volumi di dati.
- volumes:
- postgresqldata:
- redisdata:
3. Viene avviata la composizione Docke
sudo docker-compose up -d
1. Visita chirpstack (IP): 8080, la password dell'account predefinita è admin
2. Creare un gateway
Successivamente, dai normalmente un nome al gateway, ma ricorda l'ID del gateway. L'ID corrispondente deve essere modificato nella configurazione del gateway.
3. Aggiungi file del dispositivo
Compilalo secondo le tue esigenze.
4. Configurare l'AS
Dopo aver aggiunto l'applicazione di riproduzione, aggiungere a turno i dispositivi e le impostazioni multicast nell'applicazione.
Infine, esegui il gateway per vedere se il gateway può connettersi al server cloud e inoltrare correttamente il messaggio.