用docker-compose快速部署ChirpStack

前提

本文使用docker-compose來部署ChirpStack,請確保已經含有以下環境:

  1. Git(非必須,可以先下載源碼)
  2. Docker
  3. Docker-compose

關於LoraWan Server

在講LoraWan Server之前需要先了解一下LoraWan協議,LoraWan是一種物聯網遠距離傳輸協議。引用一句官方的介紹是這樣的:LoRaWAN開放規範是基於LoRa技術的低功耗廣域網(LPWAN)協議。

協議棧也引用官方的圖: https://www.semtech.com/uploads/images/what-LoRa-table-illustration-web.gif

數據是如何從傳感器發送到服務器並且被相應的應用處理的呢?可以看下下面的圖,依然是來自官方:

https://www.semtech.com/uploads/images/Semtech-LoRaWAN-Diagram-NetworkArchitecture-Vert.png

最上面的是傳感器,然後通過LoraWan協議將數據傳輸給了網關,網關通過網絡傳輸到網絡服務器(NS),NS將數據分發給對應的應用服務器(AS)。

舉個栗子:一個智慧廁所當中的洗手液盒和紙巾盒裏面都裝有LoraWan的傳感器,並且是由兩個廠商分別提供設備。他們分別將餘量數據(還剩下多少皁液/還剩下多少紙巾)上傳到了(當然包含了網關傳輸的部分)網絡服務器,網絡服務器就將紙巾盒的數據分發給紙巾盒廠商的應用服務器,將皁液盒的數據分發給皁液盒廠商的應用服務器。

這樣在大家都遵循LoraWan協議的前提下就達到了廠商中立的情況,哪一種設備不好我都可以找符合LoraWan規範的廠商進行替代,不需要擔心廠商鎖定的問題。

在這個過程中,網絡服務器就起着一個相當重要的作用了,下面來看看當前有哪一些開源的網絡服務器。

開源的LoraWan Server

當前開源的LoraWan Server主要有三個:

  1. chirpstack
  2. lorawan-server
  3. ttn

其中chirpStackttn是Golang實現,lorawan-server是Erlang實現.

我只接觸過前兩者,本文只講述chirpStack,也是我司正在使用的LoraWanServer技術棧,嘗試過ttn的部署,上手簡易度沒有chirpStack好,所以沒有再繼續研究ttn.

部署ChirpStack

ChirpStack的部署相當簡單,這裏使用docker-compose部署作爲例子。

  1. 下載源碼
> git clone https://github.com/brocaar/chirpstack-docker.git
  1. docker-compose部署
> cd chirpstack-docker  
> docker-compose up -d

下面是我執行部署命令後的一個輸出:

[root@node123 chirpstack-docker]# docker-compose up -d
WARNING: The Docker Engine you're using is running in swarm mode.

Compose does not use swarm mode to deploy services to multiple nodes in a swarm. All containers will be scheduled on the current node.

To deploy your application across the swarm, use `docker stack deploy`.

Creating network "chirpstack-docker_default" with the default driver
Creating chirpstack-docker_chirpstack-gateway-bridge_1     ... done
Creating chirpstack-docker_chirpstack-geolocation-server_1 ... done
Creating chirpstack-docker_chirpstack-network-server_1     ... done
Creating chirpstack-docker_mosquitto_1                     ... done
Creating chirpstack-docker_redis_1                         ... done
Creating chirpstack-docker_chirpstack-application-server_1 ... done
Creating chirpstack-docker_postgresql_1                    ... done

現在打開IP:8080應該就可以看到ChirpStack自帶的Application Server的頁面了,我這裏的IP是192.168.3.123, 打開後可以看到登陸頁面:

默認的帳號密碼是admin/admin,能夠登陸就已經說明部署成功了。

當然這個時候還不能接收傳感器數據的(指的是網絡服務器的配置問題),默認的用的頻段是EU868,我們在國內需要使用CN_470_510,修改configuration/chirpstack-network-server/chirpstack-network-server.toml文件中的network_server.bandCN_470_510

[network_server.band]
name="CN_470_510"

將下面的network_server.network_settings配置註釋掉:

[network_server.network_settings]

#  [[network_server.network_settings.extra_channels]]
#  frequency=867100000
#  min_dr=0
#  max_dr=5

#  [[network_server.network_settings.extra_channels]]
#  frequency=867300000
#  min_dr=0
#  max_dr=5

#  [[network_server.network_settings.extra_channels]]
#  frequency=867500000
#  min_dr=0
#  max_dr=5

#  [[network_server.network_settings.extra_channels]]
#  frequency=867700000
#  min_dr=0
#  max_dr=5

#  [[network_server.network_settings.extra_channels]]
#  frequency=867900000
#  min_dr=0
#  max_dr=5`

再重啓一下服務器就可以了,網絡服務器的配置工作就做完了。當然一個完整的數據走向還需要在服務器上創建應用、創建設備、創建網關、在網關配置網絡服務器相關的內容、傳感器發起數據。

本文僅講述網絡服務器ChirpStack的配置。

始發於 四顆咖啡豆,轉載請聲明出處.
關注公糉號->[四顆咖啡豆] 獲取最新內容

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章