Teknologian jakaminen

Chirpstackin käyttöönotto Dockerin avulla Linuxissa

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Sisällysluettelo

I. Johdanto

2. Chirpstack

1. Mikä chirpstack on?

2. chirpstack-komponentti

3. Miksi valita Dockerin käyttöönotto?

3. Käyttöönottoprosessi Linuxissa

4. Web-käyttöliittymän käyttöönottoprosessi


I. Johdanto

Käytän tätä artikkelia LinuxissaSatamatyöläinenChirpstackin käyttöönottamiseksi chirpstack käyttääv4 versio, v4-versio ja v3 versio Verrattuna gRPC API:hen, joitain muutoksia on tehty, ja yhteensopivuus on harkittava. Mutta käytämme vain Dockeria chirpstackin käyttöön. Itse asiassa hakemistossa ja verkkokäyttöliittymässä on tehty joitain muutoksia. Jos käytät v3-versiota, voit kysyä minulta suoraan, jos et ymmärrä mitään.

2. Chirpstack

1. Mikä chirpstack on?

ChirpStack on avoimen lähdekoodin LoRaWAN-verkkopalvelin, jota voidaan käyttää yksityisten tai julkisten LoRaWAN-verkkojen perustamiseen. ChirpStack tarjoaa verkkokäyttöliittymänKäytetään yhdyskäytävien, laitteiden ja sovellusten hallintaan.ChirpStack tarjoaa gRPC-pohjaisen API:n, jota voidaan käyttää ChirpStackin integrointiin tai laajentamiseen.

2. chirpstack-komponentti

(1) ChirpStack-verkkopalvelin: NS lyhyesti, sen tehtävä onVarmistaa LoRaWAN-verkon asianmukaisen toiminnan ja hallitsee laiteviestintää.Että Vastaa LoRaWAN-verkon ydinlogiikasta. Se hoitaa laitteen liittymisprosessin, downlink-aikataulutuksen, laitteen toiminnan seurannan jne. Se vastaa myös LoRa-yhdyskäytävältä vastaanotetun uplink-datan käsittelystä ja downlink-datan lähettämisestä yhdyskäytävälle.

(2)ChirpStack-sovelluspalvelin: Lyhennettynä AS, sen tehtävä onHallitse ja käsittele sovelluskerroksen tietoja sekä tarjoa käyttöliittymää ja API-liittymää.Että Vastaa LoRaWAN-sovelluskerroksen tietojen käsittelystä ja hallinnasta. Sen avulla käyttäjät voivat määritellä sovelluksia, laitekokoonpanoja ja datadekoodeja. Se tarjoaa myös sovellusliittymiä ja verkkorajapintoja laitteiden hallintaan, verkkoliikenteen valvontaan, tietojen dekoodauksen käsittelyyn ja sovelluskerroksen tietojen lähettämiseen ulkoisiin sovelluksiin.

(3) ChirpStack Gateway Bridge:seToimii väliohjelmistona yhdyskäytävän ja verkkopalvelimen välillä . Tämä komponentti voi muuntaa LoRa-yhdyskäytävästä lähetetyn LoRa-pakettitransponderiprotokollan ChirpStack-verkkopalvelimen yhteiseen tietomuotoon (JSON ja Protobuf).

(4) PostgreSQL: Tämä on avoimen lähdekoodin relaatiotietokannan hallintajärjestelmäjatkuva varastointi ChirpStackin määritystiedot, laitetiedot, yhdyskäytävätiedot, sovellustiedot jne.

(5) Redis: Tämä on tavallisesti avoimen lähdekoodin tietorakenteen tallennusjärjestelmäKäytetään tietokantana, välimuistina ja viestivälittäjänä . ChirpStack käyttää Rediksen välimuistiin tallentamiseen ja joidenkin reaaliaikaisten tietojen käsittelemiseen parantaakseen järjestelmän suorituskykyä ja vastausnopeutta.

(6) Hyttynen:Mosquitto on MQTT-protokollan välityspalvelinHoitaa tiedonsiirron laitteiden ja ChirpStack-komponenttien välillä.Se mahdollistaa viestinnän LoRaWAN-yhdyskäytävän ja ChirpStack-palvelun välillä.

Kiinnitä huomiota eroon Postgre SQL:n ja Redisin välillä. Postgre SQL tallentaa tiedot levylle ja tukee jatkuvaa tallennusta, vaikka järjestelmä käynnistetään uudelleen, ja sen suorituskyky on suhteellisen hidasta. Redis tallentaa tietoja muistiin perustuen, tukee tehokkaita luku- ja kirjoitustoimintoja ja on erittäin suorituskykyinen.

3. Miksi valita Dockerin käyttöönotto?

(1) Yksinkertaista käyttöönottoprosessi:Kuten edellä mainittiin, ChirpStack koostuu useista palvelukomponenteista, ja Docker Compose antaa meille mahdollisuuden välittää määritystiedoston (.docker-compose.yml) Määritä ja suorita useita säilöjä yhdellä komennolla (docker-compose up) aloittaaksesi kaikki palvelut.

(2) Ympäristöeristys:Jokainen chirpstack-palvelu voi toimia itsenäisissä säiliöissä, jolloin vältetään riippuvuuskonfliktit ja ympäristön saastuminen.

(3) Siirrettävyys: Dockerin avulla voimme varmistaa, että käytämme samaa koodia ja määritystä kehitys-, testi- ja tuotantoympäristöissä. Tämä auttaa välttämään eri ympäristöissä syntyviä "ympäristöongelmia".

(4) Keskitetty määritys:Kaikki palvelukonfiguraatiot on keskitetty yhteen docker-compose.yml tiedostot helpottamaan hallintaa ja versionhallintaa. Voimme helposti muokata ja päivittää kokoonpanoa.

3. Käyttöönottoprosessi Linuxissa

1. Hae lähdekoodi githubista

v4-versio: (v4-versio selitetään seuraavaksi)

git clone https://github.com/chirpstack/chirpstack-docker.git

v3 versio:

git clone https://github.com/chirpstack/chirpstack-docker/tree/v3

2. Muokkaadocker-compose.yml Asetustiedosto

Tiedosto on aMonisäiliösovellus, joka on määritetty Docker Composella ChirpStack IoT -alustan käyttöönottoa varten. Kattaa kaikki ChirpStack-järjestelmän tärkeimmät komponentit, jotta ne toimivat yhdessä Docker-säiliössä. (Huomaa, että tämän asetustiedoston tarvitsee yleensä vain muokata haluamaasi taajuuskaistaa ja porttia, eikä muita muutoksia tarvitse tehdä)

(1) chirpstack

Tämä on ChirpStack-sovelluspalvelin (yleensä mitään muutoksia ei vaadita).

  1. chirpstack:
  2. image: chirpstack/chirpstack:4
  3. command: -c /etc/chirpstack
  4. restart: unless-stopped
  5. volumes:
  6. - ./configuration/chirpstack:/etc/chirpstack
  7. - ./lorawan-devices:/opt/lorawan-devices
  8. depends_on:
  9. - postgres
  10. - mosquitto
  11. - redis
  12. environment:
  13. - MQTT_BROKER_HOST=mosquitto
  14. - REDIS_HOST=redis
  15. - POSTGRESQL_HOST=postgres
  16. ports:
  17. - 8080:8080
  • kuva: käytä chirpstack/chirpstack:4 Peili.
  • komento: Määritä määritystiedoston polku muodossa /etc/chirpstack
  • uudelleenkäynnistys: asetettu unless-stopped, eli säilö käynnistyy automaattisesti uudelleen, ellei sitä pysäytetä manuaalisesti.
  • volyymit: liitä paikallinen hakemisto ./configuration/chirpstack säiliöön/etc/chirpstack,yhtä hyvin kuin ./lorawan-devices säiliöön/opt/lorawan-devices
  • riippuu_on: riippuvuus postgres, mosquitto, redis Kolme palvelua.
  • ympäristö: Aseta ympäristömuuttujat, mukaan lukien MQTT_BROKER_HOST, REDIS_HOST, POSTGRESQL_HOST
  • portit: avoimet portit 8080, laita sisältö säiliöön 8080 Portti yhdistetty isäntään8080 portti.

(2) chirpstack-gateway-silta

Tämä on ChirpStack-yhdyskäytävän siltapalvelu (cn470_10-taajuus, jota käytän tässä).

  1. chirpstack-gateway-bridge:
  2. image: chirpstack/chirpstack-gateway-bridge:4
  3. restart: unless-stopped
  4. ports:
  5. - 1700:1700/udp
  6. volumes:
  7. - ./configuration/chirpstack-gateway-bridge:/etc/chirpstack-gateway-bridge
  8. environment:
  9. - INTEGRATION__MQTT__EVENT_TOPIC_TEMPLATE=cn470_10/gateway/{{ .GatewayID }}/event/{{ .EventType }}
  10. - INTEGRATION__MQTT__STATE_TOPIC_TEMPLATE=cn470_10/gateway/{{ .GatewayID }}/state/{{ .StateType }}
  11. - INTEGRATION__MQTT__COMMAND_TOPIC_TEMPLATE=cn470_10/gateway/{{ .GatewayID }}/command/#
  12. depends_on:
  13. - mosquitto
  • estart: asetettu unless-stopped
  • portit: paljasta UDP-portit 1700
  • volyymit: liitä paikallinen hakemisto ./configuration/chirpstack-gateway-bridge säiliöön/etc/chirpstack-gateway-bridge
  • ympäristö: Aseta ympäristömuuttujat ja määritä MQTT-aihemalli.
  • riippuu_on: riippuvuus mosquitto Palvella.

(3) chirpstack-gateway-silta-perusasema

Tämä on ChirpStack-yhdyskäytäväsillan perusasemapalvelu (huomaa komentoosan muutos).

  1. chirpstack-gateway-bridge-basicstation:
  2. image: chirpstack/chirpstack-gateway-bridge:4
  3. restart: unless-stopped
  4. command: -c /etc/chirpstack-gateway-bridge/chirpstack-gateway-bridge-basicstation-cn470_10.toml
  5. ports:
  6. - 3001:3001
  7. volumes:
  8. - ./configuration/chirpstack-gateway-bridge:/etc/chirpstack-gateway-bridge
  9. depends_on:
  10. - mosquitto
  • kuva: käytä chirpstack/chirpstack-gateway-bridge:4 Peili.
  • uudelleenkäynnistys: asetettu unless-stopped
  • komento: käytä asetustiedostoa chirpstack-gateway-bridge-basicstation-cn470_10.toml
  • portit: avoimet portit 3001
  • volyymit: liitä paikallinen hakemisto ./configuration/chirpstack-gateway-bridge säiliöön/etc/chirpstack-gateway-bridge
  • riippuu_on: riippuvuus mosquitto Palvella.

(4) chirpstack-rest-api

Tämä on ChirpStackin REST API -palvelu.

  1. chirpstack-rest-api:
  2. image: chirpstack/chirpstack-rest-api:4
  3. restart: unless-stopped
  4. command: --server chirpstack:8080 --bind 0.0.0.0:8090 --insecure
  5. ports:
  6. - 8090:8090
  7. depends_on:
  8. - chirpstack
  • kuva: käytä chirpstack/chirpstack-rest-api:4 Peili.
  • uudelleenkäynnistys: asetettu unless-stopped
  • komento: Määritä ChirpStack-palvelin muodossa chirpstack:8080, sitova osoite on 0.0.0.0:8090ja ota käyttöön vaarallinen tila.
  • portit: avoimet portit 8090
  • riippuu_on: riippuvuus chirpstack Palvella.

(5) postgres

Tämä on PostgreSQL-tietokantapalvelu.

  1. postgres:
  2. image: postgres:14-alpine
  3. restart: unless-stopped
  4. volumes:
  5. - ./configuration/postgresql/initdb:/docker-entrypoint-initdb.d
  6. - postgresqldata:/var/lib/postgresql/data
  7. environment:
  8. - POSTGRES_PASSWORD=root
  • kuva: käytä postgres:14-alpine Peili.
  • uudelleenkäynnistys: asetettu unless-stopped
  • volyymit: liitä paikallinen hakemisto ./configuration/postgresql/initdb säiliöön/docker-entrypoint-initdb.d, ja asenna Docker-taltio postgresqldata säiliöön/var/lib/postgresql/data
  • ympäristö: aseta ympäristömuuttujat POSTGRES_PASSWORD vartenroot

(6) redis

Tämä on Redis-muistitietokantapalvelu.

  1. redis:
  2. image: redis:7-alpine
  3. restart: unless-stopped
  4. command: redis-server --save 300 1 --save 60 100 --appendonly no
  5. volumes:
  6. - redisdata:/data
  • kuva: käytä redis:7-alpine Peili.
  • uudelleenkäynnistys: asetettu unless-stopped
  • komento: suorita redis-serverja määritä tallennusstrategia.
  • volyymit: Mount Docker -levyt redisdata säiliöön/data

(7) hyttynen

Tämä on MQTT-viestinvälityspalvelu.

  1. mosquitto:
  2. image: eclipse-mosquitto:2
  3. restart: unless-stopped
  4. ports:
  5. - 1883:1883
  6. volumes:
  7. - ./configuration/mosquitto/config/:/mosquitto/config/

(8) Volyymit

Määritä tietomäärät.

  1. volumes:
  2. postgresqldata:
  3. redisdata:
  • postgresqldata: käytetään PostgreSQL-tietojen tallentamiseen.
  • redisdata: käytetään Redis-tietojen tallentamiseen.

3. Docke-Compose alkaa

sudo docker-compose up -d

4. Web-käyttöliittymän käyttöönottoprosessi

1. Käy chirpstackissa (IP): 8080, tilin oletussalasana on admin

2. Luo yhdyskäytävä

Anna seuraavaksi yhdyskäytävälle nimi normaalisti, mutta muista yhdyskäytävän tunnus. Vastaavaa tunnusta on muutettava yhdyskäytävän kokoonpanossa.

3. Lisää laitetiedostoja

Täytä se omien tarpeidesi mukaan.

4. Määritä AS

Kun olet lisännyt toistosovelluksen, lisää laitteet ja multicast-asetukset sovellukseen vuorotellen.

 

Suorita lopuksi yhdyskäytävä nähdäksesi, voiko yhdyskäytävä muodostaa yhteyden pilvipalvelimeen ja lähettää viestin edelleen.