informasi kontak saya
Surat[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Daftar isi
3. Mengapa memilih penerapan Docker?
4. Proses penerapan antarmuka web
Saya menggunakan artikel ini di LinuxBuruh pelabuhanUntuk menyebarkan chirpstack, chirpstack menggunakanversi v4, versi v4 dan versi v3 Dibandingkan dengan gRPC API, beberapa perubahan telah dilakukan dan kompatibilitas perlu dipertimbangkan. Namun kami hanya menggunakan Docker untuk menyebarkan chirpstack. Faktanya, ada beberapa perubahan pada direktori dan antarmuka web. Logika konfigurasinya sama dan tidak banyak yang berubah. Jika Anda menggunakan versi v3, Anda bisa bertanya langsung kepada saya jika ada yang kurang paham.
ChirpStack adalah server jaringan LoRaWAN sumber terbuka yang dapat digunakan untuk mengatur jaringan LoRaWAN pribadi atau publik. ChirpStack menyediakan antarmuka webDigunakan untuk mengelola gateway, perangkat, dan aplikasi.ChirpStack menyediakan API berbasis gRPC yang dapat digunakan untuk mengintegrasikan atau memperluas ChirpStack.
(1)Server Jaringan ChirpStack: NS singkatnya, fungsinya adalahMemastikan pengoperasian jaringan LoRaWAN dengan benar dan mengelola komunikasi perangkat.Itu Bertanggung jawab atas logika inti jaringan LoRaWAN. Ini menangani proses penggabungan perangkat, penjadwalan downlink, pelacakan aktivitas perangkat, dll. Ia juga bertanggung jawab untuk memproses data uplink yang diterima dari gateway LoRa dan mengirimkan data downlink ke gateway.
(2)Server Aplikasi ChirpStack: Disingkat AS, fungsinya adalahMengelola dan memproses data lapisan aplikasi dan menyediakan antarmuka pengguna dan antarmuka API.Itu Bertanggung jawab untuk memproses dan mengelola data lapisan aplikasi LoRaWAN. Hal ini memungkinkan pengguna untuk menentukan aplikasi, konfigurasi perangkat dan decoder data. Ini juga menyediakan API dan antarmuka web untuk mengelola perangkat, memantau lalu lintas jaringan, menangani decoding data, dan mengirim data lapisan aplikasi ke aplikasi eksternal.
(3) Jembatan Gerbang ChirpStack:diaBertindak sebagai middleware antara gateway dan server web . Komponen ini dapat mengubah protokol transponder paket LoRa yang dikirimkan dari gateway LoRa ke format data umum (JSON dan Protobuf) dari server jaringan ChirpStack.
(4) Bahasa Inggris PostgreSQL: Ini adalah sistem manajemen basis data relasional open source untukpenyimpanan persisten Data konfigurasi ChirpStack, informasi perangkat, informasi gateway, data aplikasi, dll.
(5) Merah: Biasanya ini adalah sistem penyimpanan struktur data dalam memori sumber terbukaDigunakan sebagai database, cache, dan perantara pesan . ChirpStack menggunakan Redis untuk menyimpan cache dan memproses beberapa data real-time guna meningkatkan kinerja sistem dan kecepatan respons.
(6) Nyamuk:Mosquitto adalah server proxy protokol MQTT untukMenangani komunikasi antar perangkat dan komponen ChirpStack.Ini memungkinkan pengiriman pesan antara gateway LoRaWAN dan layanan ChirpStack.
Perhatikan perbedaan antara Postgre SQL dan Redis. Postgre SQL menyimpan data berdasarkan disk dan mendukung penyimpanan persisten. Saat data disimpan di disk, data tidak akan hilang meskipun sistem di-restart, dan kinerjanya relatif lambat. Redis menyimpan data berdasarkan memori, mendukung operasi baca dan tulis yang efisien, dan memiliki kinerja yang sangat tinggi.
(1) Menyederhanakan proses penerapan:Seperti disebutkan di atas, ChirpStack terdiri dari beberapa komponen layanan. Docker Compose memungkinkan kita meneruskan file konfigurasi (docker-compose.yml
) Tentukan dan jalankan beberapa container hanya dengan satu perintah (docker-compose up
) untuk memulai semua layanan.
(2) Isolasi lingkungan:Setiap layanan chirpstack dapat berjalan dalam wadah independen, menghindari konflik ketergantungan dan pencemaran lingkungan.
(3) Portabilitas: Dengan menggunakan Docker, kami dapat memastikan bahwa kami menjalankan kode dan konfigurasi yang sama di lingkungan pengembangan, pengujian, dan produksi. Hal ini membantu menghindari "masalah lingkungan" yang muncul di lingkungan yang berbeda.
(4) Konfigurasi terpusat:Semua konfigurasi layanan terpusat dalam satu docker-compose.yml
file untuk memudahkan manajemen dan kontrol versi. Kita dapat dengan mudah memodifikasi dan memperbarui konfigurasi.
1. Tarik kode sumber dari github
versi v4: (Versi v4 akan dijelaskan selanjutnya)
git clone https://github.com/chirpstack/chirpstack-docker.git
versi v3:
git clone https://github.com/chirpstack/chirpstack-docker/tree/v3
2. Ubahdocker-compose.yml
Berkas konfigurasi
Filenya adalah aAplikasi multi-kontainer dikonfigurasi menggunakan Docker Compose untuk menyebarkan platform ChirpStack IoT. Mencakup semua komponen utama yang diperlukan untuk sistem ChirpStack guna memastikan komponen tersebut bekerja bersama dalam container Docker. (Perhatikan bahwa file konfigurasi ini biasanya hanya perlu mengubah pita frekuensi dan port yang Anda inginkan, dan tidak ada perubahan lain yang perlu dilakukan)
(1) tumpukan kicauan
Ini adalah server aplikasi ChirpStack (umumnya tidak diperlukan modifikasi).
- 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
cermin./etc/chirpstack
。unless-stopped
, yaitu container akan otomatis dimulai ulang kecuali dihentikan secara manual../configuration/chirpstack
ke dalam wadah/etc/chirpstack
,sebaik ./lorawan-devices
ke dalam wadah/opt/lorawan-devices
。postgres
, mosquitto
, redis
Tiga layanan.MQTT_BROKER_HOST
, REDIS_HOST
, POSTGRESQL_HOST
。8080
, masukkan isinya ke dalam wadah 8080
Port dipetakan ke host8080
pelabuhan.(2) jembatan gerbang chirpstack
Ini adalah layanan jembatan gateway ChirpStack (band cn470_10 yang saya gunakan di sini).
- 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
ke dalam wadah/etc/chirpstack-gateway-bridge
。mosquitto
Melayani.(3)chirpstack-gateway-jembatan-stasiun-dasar
Ini adalah layanan stasiun dasar dari jembatan gateway ChirpStack (perhatikan modifikasi bagian perintah).
- 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
cermin.unless-stopped
。chirpstack-gateway-bridge-basicstation-cn470_10.toml
。3001
。./configuration/chirpstack-gateway-bridge
ke dalam wadah/etc/chirpstack-gateway-bridge
。mosquitto
Melayani.(4)chirpstack-rest-api
Ini adalah layanan 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
cermin.unless-stopped
。chirpstack:8080
, alamat pengikatannya adalah 0.0.0.0:8090
, dan aktifkan mode tidak aman.8090
。chirpstack
Melayani.(5)postgres
Ini adalah layanan basis data 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
cermin.unless-stopped
。./configuration/postgresql/initdb
ke dalam wadah/docker-entrypoint-initdb.d
, dan pasang volume Docker postgresqldata
ke dalam wadah/var/lib/postgresql/data
。POSTGRES_PASSWORD
untukroot
。(6)merah
Ini adalah layanan database dalam memori 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
cermin.unless-stopped
。redis-server
, dan tentukan strategi penyimpanan.redisdata
ke dalam wadah/data
。(7)nyamuk
Ini adalah layanan perantara pesan MQTT.
- mosquitto:
- image: eclipse-mosquitto:2
- restart: unless-stopped
- ports:
- - 1883:1883
- volumes:
- - ./configuration/mosquitto/config/:/mosquitto/config/
(8) Volume
Tentukan volume data.
- volumes:
- postgresqldata:
- redisdata:
3. Penulisan Docke dimulai
sudo docker-compose up -d
1. Kunjungi chirpstack (IP): 8080, kata sandi akun default adalah admin
2. Buat gerbang
Selanjutnya, beri nama gateway seperti biasa, tetapi ingat ID gateway. ID yang sesuai perlu diubah dalam konfigurasi gateway.
3. Tambahkan file perangkat
Isilah sesuai dengan kebutuhan Anda sendiri.
4. Konfigurasikan AS
Setelah menambahkan aplikasi play, tambahkan perangkat dan pengaturan multicast di aplikasi secara bergantian.
Terakhir, jalankan gateway untuk melihat apakah gateway dapat terhubung ke server cloud dan berhasil meneruskan pesan.