τα στοιχεία επικοινωνίας μου
Ταχυδρομείο[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Πίνακας περιεχομένων
3. Γιατί να επιλέξετε την ανάπτυξη Docker;
3. Διαδικασία ανάπτυξης σε Linux
4. Διαδικασία ανάπτυξης διεπαφής Ιστού
Χρησιμοποιώ αυτό το άρθρο στο LinuxΛιμενεργάτηςΓια την ανάπτυξη του τσιρπστίκου, το τσιρπστίκ χρησιμοποιείέκδοση v4, έκδοση v4 και έκδοση v3 Σε σύγκριση με το gRPC API, έχουν γίνει ορισμένες αλλαγές και πρέπει να εξεταστεί η συμβατότητα. Αλλά χρησιμοποιούμε μόνο το Docker για την ανάπτυξη του chirpstack Στην πραγματικότητα, υπήρξαν κάποιες αλλαγές στον κατάλογο και τη διεπαφή ιστού Η λογική διαμόρφωσης είναι η ίδια και δεν έχει αλλάξει πολύ. Εάν χρησιμοποιείτε την έκδοση v3, μπορείτε να με ρωτήσετε απευθείας εάν δεν καταλαβαίνετε τίποτα.
Το ChirpStack είναι ένας διακομιστής δικτύου LoRaWAN ανοιχτού κώδικα που μπορεί να χρησιμοποιηθεί για τη ρύθμιση ιδιωτικών ή δημόσιων δικτύων LoRaWAN. Το ChirpStack παρέχει μια διεπαφή ιστούΧρησιμοποιείται για τη διαχείριση πυλών, συσκευών και εφαρμογών.Το ChirpStack παρέχει ένα API που βασίζεται σε gRPC που μπορεί να χρησιμοποιηθεί για την ενοποίηση ή την επέκταση του ChirpStack.
(1) Διακομιστής δικτύου ChirpStack: NS για συντομία, η λειτουργία του είναιΕξασφαλίζει τη σωστή λειτουργία του δικτύου LoRaWAN και διαχειρίζεται την επικοινωνία της συσκευής.Οτι Υπεύθυνος για τη βασική λογική του δικτύου LoRaWAN. Χειρίζεται τη διαδικασία σύνδεσης της συσκευής, τον προγραμματισμό κατερχόμενης ζεύξης, την παρακολούθηση της δραστηριότητας της συσκευής κ.λπ. Είναι επίσης υπεύθυνο για την επεξεργασία των δεδομένων ανοδικής ζεύξης που λαμβάνονται από την πύλη LoRa και την αποστολή δεδομένων κατερχόμενης ζεύξης στην πύλη.
(2) Διακομιστής εφαρμογών ChirpStack: Συντομεύεται ως AS, η λειτουργία του είναιΔιαχείριση και επεξεργασία δεδομένων επιπέδου εφαρμογής και παροχή διεπαφής χρήστη και διεπαφής API.Οτι Υπεύθυνος για την επεξεργασία και τη διαχείριση δεδομένων επιπέδου εφαρμογής LoRaWAN. Επιτρέπει στους χρήστες να ορίζουν εφαρμογές, διαμορφώσεις συσκευών και αποκωδικοποιητές δεδομένων. Παρέχει επίσης API και διεπαφές ιστού για τη διαχείριση συσκευών, την παρακολούθηση της κυκλοφορίας του δικτύου, το χειρισμό της αποκωδικοποίησης δεδομένων και την αποστολή δεδομένων επιπέδου εφαρμογής σε εξωτερικές εφαρμογές.
(3) ChirpStack Gateway Bridge:τοΛειτουργεί ως ενδιάμεσο λογισμικό μεταξύ της πύλης και του διακομιστή web . Αυτό το στοιχείο μπορεί να μετατρέψει το πρωτόκολλο αναμεταδότη πακέτων LoRa που μεταδίδεται από την πύλη LoRa στην κοινή μορφή δεδομένων (JSON και Protobuf) του διακομιστή δικτύου ChirpStack.
(4) PostgreSQL: Πρόκειται για ένα σύστημα διαχείρισης σχεσιακών βάσεων δεδομένων ανοιχτού κώδικα γιαεπίμονη αποθήκευση Δεδομένα διαμόρφωσης του ChirpStack, πληροφορίες συσκευής, πληροφορίες πύλης, δεδομένα εφαρμογής κ.λπ.
(5) Ρέντις: Αυτό είναι συνήθως ένα σύστημα αποθήκευσης δομής δεδομένων ανοιχτού κώδικα στη μνήμηΧρησιμοποιείται ως βάση δεδομένων, προσωρινή μνήμη και μεσίτης μηνυμάτων . Το ChirpStack χρησιμοποιεί το Redis για την προσωρινή αποθήκευση και την επεξεργασία ορισμένων δεδομένων σε πραγματικό χρόνο για τη βελτίωση της απόδοσης του συστήματος και της ταχύτητας απόκρισης.
(6) Κουνούπι:Το Mosquitto είναι ένας διακομιστής μεσολάβησης του πρωτοκόλλου MQTT γιαΧειρίζεται την επικοινωνία μεταξύ συσκευών και στοιχείων ChirpStack.Επιτρέπει την ανταλλαγή μηνυμάτων μεταξύ της πύλης LoRaWAN και της υπηρεσίας ChirpStack.
Δώστε προσοχή στη διαφορά μεταξύ Postgre SQL και Redis αποθηκεύει δεδομένα με βάση το δίσκο και υποστηρίζει μόνιμη αποθήκευση Όταν τα δεδομένα αποθηκεύονται στο δίσκο, τα δεδομένα δεν θα χαθούν ακόμη και αν το σύστημα επανεκκινηθεί και η απόδοση είναι σχετικά αργή. Το Redis αποθηκεύει δεδομένα με βάση τη μνήμη, υποστηρίζει αποτελεσματικές λειτουργίες ανάγνωσης και εγγραφής και έχει εξαιρετικά υψηλή απόδοση.
(1) Απλοποιήστε τη διαδικασία ανάπτυξης:Όπως αναφέρθηκε παραπάνω, το ChirpStack αποτελείται από πολλαπλά στοιχεία υπηρεσίας Το Docker Compose μας επιτρέπει να περάσουμε ένα αρχείο διαμόρφωσης (.docker-compose.yml
) Ορίστε και εκτελέστε πολλά κοντέινερ με μία μόνο εντολή (docker-compose up
) για να ξεκινήσετε όλες τις υπηρεσίες.
(2) Περιβαλλοντική απομόνωση:Κάθε υπηρεσία στοίβας μπορεί να λειτουργεί σε ανεξάρτητα κοντέινερ, αποφεύγοντας συγκρούσεις εξάρτησης και περιβαλλοντική ρύπανση.
(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
Αρχείο διαμόρφωσης
Το αρχείο είναι αΕφαρμογή πολλαπλών κοντέινερ που έχει ρυθμιστεί χρησιμοποιώντας το Docker Compose για την ανάπτυξη της πλατφόρμας ChirpStack IoT. Καλύπτει όλα τα κύρια στοιχεία που απαιτούνται για ένα σύστημα ChirpStack για να διασφαλιστεί ότι λειτουργούν μαζί σε ένα κοντέινερ Docker. (Σημειώστε ότι αυτό το αρχείο διαμόρφωσης χρειάζεται συνήθως μόνο να τροποποιήσει τη ζώνη συχνοτήτων και τη θύρα που θέλετε και δεν χρειάζεται να γίνουν άλλες αλλαγές)
(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-gateway-bridge
Αυτή είναι η υπηρεσία γέφυρας πύλης 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
Αυτή είναι η υπηρεσία REST API του 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
καθρέφτης.unless-stopped
。chirpstack:8080
, η δεσμευτική διεύθυνση είναι 0.0.0.0:8090
και ενεργοποιήστε την μη ασφαλή λειτουργία.8090
。chirpstack
Σερβίρισμα.(5) postgres
Αυτή είναι η υπηρεσία βάσης δεδομένων 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.
- 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. Έναρξη σύνδεσης-σύνθεσης
sudo docker-compose up -d
1. Επισκεφτείτε το chirpstack (IP): 8080, ο προεπιλεγμένος κωδικός πρόσβασης λογαριασμού είναι admin
2. Δημιουργήστε μια πύλη
Στη συνέχεια, δώστε στην πύλη ένα όνομα κανονικά, αλλά θυμηθείτε το αναγνωριστικό πύλης Το αντίστοιχο αναγνωριστικό πρέπει να τροποποιηθεί στη διαμόρφωση της πύλης.
3. Προσθέστε αρχεία συσκευής
Συμπληρώστε το σύμφωνα με τις δικές σας απαιτήσεις.
4. Διαμόρφωση AS
Αφού προσθέσετε την εφαρμογή αναπαραγωγής, προσθέστε συσκευές και ρυθμίσεις multicast στην εφαρμογή με τη σειρά.
Τέλος, εκτελέστε την πύλη για να δείτε εάν η πύλη μπορεί να συνδεθεί στον διακομιστή cloud και να προωθήσει με επιτυχία το μήνυμα.