前提
本文使用docker-compose
來部署ChirpStack
,請確保已經含有以下環境:
- Git(非必須,可以先下載源碼)
- Docker
- Docker-compose
關於LoraWan Server
在講LoraWan Server之前需要先了解一下LoraWan協議,LoraWan是一種物聯網遠距離傳輸協議。引用一句官方的介紹是這樣的:LoRaWAN開放規範是基於LoRa技術的低功耗廣域網(LPWAN)協議。
協議棧也引用官方的圖:
數據是如何從傳感器發送到服務器並且被相應的應用處理的呢?可以看下下面的圖,依然是來自官方:
最上面的是傳感器,然後通過LoraWan協議將數據傳輸給了網關,網關通過網絡傳輸到網絡服務器(NS),NS將數據分發給對應的應用服務器(AS)。
舉個栗子:一個智慧廁所當中的洗手液盒和紙巾盒裏面都裝有LoraWan的傳感器,並且是由兩個廠商分別提供設備。他們分別將餘量數據(還剩下多少皁液/還剩下多少紙巾)上傳到了(當然包含了網關傳輸的部分)網絡服務器,網絡服務器就將紙巾盒的數據分發給紙巾盒廠商的應用服務器,將皁液盒的數據分發給皁液盒廠商的應用服務器。
這樣在大家都遵循LoraWan協議的前提下就達到了廠商中立的情況,哪一種設備不好我都可以找符合LoraWan規範的廠商進行替代,不需要擔心廠商鎖定的問題。
在這個過程中,網絡服務器就起着一個相當重要的作用了,下面來看看當前有哪一些開源的網絡服務器。
開源的LoraWan Server
當前開源的LoraWan Server主要有三個:
其中chirpStack
和ttn
是Golang實現,lorawan-server
是Erlang實現.
我只接觸過前兩者,本文只講述chirpStack,也是我司正在使用的LoraWanServer技術棧,嘗試過ttn
的部署,上手簡易度沒有chirpStack好,所以沒有再繼續研究ttn
.
部署ChirpStack
ChirpStack的部署相當簡單,這裏使用docker-compose
部署作爲例子。
- 下載源碼
> git clone https://github.com/brocaar/chirpstack-docker.git
- 用
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.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的配置。
始發於 四顆咖啡豆,轉載請聲明出處.
關注公糉號->[四顆咖啡豆] 獲取最新內容