docker-compose快速部署ChirpStack


前提


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


1. Git(非必須,可以先下載源碼)  

2. Docker  

3. Docker-compose


關於LoraWan Server  


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


協議棧也引用官方的圖:




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



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

 

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

 

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

 

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


開源的LoraWan Server


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

1. [chirpstack]https://www.chirpstack.io/  

2. [lorawan-server]https://github.com/gotthardp/lorawan-server)  

3. [ttn]https://github.com/TheThingsNetwork/ttn  


其中`chirpStack`和`ttn`是Golang實現,`lorawan-server`是Erlang實現.  


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


部署ChirpStack  


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



1. 下載源碼 

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


2. 用docker-compose部署  


> cd chirpstack-docker  > docker-compose up -d



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

[root@node123 chirpstack-docker]# docker-compose up -dCreating network "chirpstack-docker_default" with the default driverCreating chirpstack-docker_chirpstack-gateway-bridge_1     ... doneCreating chirpstack-docker_chirpstack-geolocation-server_1 ... doneCreating chirpstack-docker_chirpstack-network-server_1     ... doneCreating chirpstack-docker_mosquitto_1                     ... doneCreating chirpstack-docker_redis_1                         ... doneCreating chirpstack-docker_chirpstack-application-server_1 ... doneCreating 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.band`爲`CN_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的配置。


本文分享自微信公衆號 - 四顆咖啡豆(gh_71aedc0a994c)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。

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