前提
本文使用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. 下載源碼
clone https://github.com/brocaar/chirpstack-docker.git git
2. 用docker-compose部署
cd chirpstack-docker
docker-compose up -d
下面是我執行部署命令後的一個輸出:
[root@node123 chirpstack-docker]# docker-compose up -d
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.band`爲`CN_470_510`
[network_server.band]
name="CN_470_510"
將下面的`network_server.network_settings`配置註釋掉:
[ ]
再重啓一下服務器就可以了,網絡服務器的配置工作就做完了。當然一個完整的數據走向還需要在服務器上創建應用、創建設備、創建網關、在網關配置網絡服務器相關的內容、傳感器發起數據。
本文僅講述網絡服務器ChirpStack的配置。
本文分享自微信公衆號 - 四顆咖啡豆(gh_71aedc0a994c)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。