近年來,手機、平板等移動平臺市場飛速擴展,但讓人驚訝的是,SBC(單板計算機)的市場卻并沒有被“移動平臺”蠶食。相反,隨著物聯網、邊緣計算等應用需求的增長,市面上出現越來越多定位于不同應用場景的SBC,樹莓派正是其中的佼佼者之一。
由于樹莓派開源社區十分成熟,基于樹莓派的開發往往事半功倍,因此不少企業都推出了基于樹莓派的產品。我們今天要介紹的RAK_common_for_gateway(以下簡稱rak_common)和其容器化鏡像就是其中的一款典型。
RAK_common是瑞科慧聯(RAK)基于開源社區資源開發的一套LoRaWAN?軟件棧。它可以讓用戶在極短時間內,在樹莓派上部署好LoRaWAN?網關,方便進一步開發或直接將其用于生產環境。
背景介紹
RAK_common軟件棧的原始倉庫中提供了非常詳細的使用指南,包括:如何下載源碼、如何使用樹莓派內置的 raspi-config 工具來配置相關接口、如何使用一鍵安裝腳本、以及如何使用一個簡單的 GUI 來配置網關等相關內容信息。在可支持的硬件平臺上,RAK_common 軟件棧內的一鍵安裝腳本就可以自動識別樹莓派的基礎型號,例如樹莓派 0、樹莓派 3、樹莓派 4、樹莓派 cm3、以及樹莓派 cm4,并自動修改對應的配置文件;在 LoRa?集中器方面,RAK-common 軟件棧可以支持 SX1301、SX1302,以及 SX1303 集中器。
瑞科慧聯非常貼心地為每種集中器都提供了USB和SPI 規格接口,以及可選的GPS和LTE模塊,所以用戶可以根據自身實際需求來購買具有“對應接口和對應功能”的集中器,并且在一鍵安裝腳本中,手動選擇對應的型號來部署相關代碼和配置。RAK-common軟件棧可以支持的集中器型號如下所示:
RAK831(Choose RAK2245)
RAK2245
RAK7243/RAK7244 no LTE
RAK7243/RAK7244 with LTE
RAK833(USB)(Choose RAK2247 USB)
RAK2247(USB)
RAK833(SPI)(Choose RAK2247 SPI)
RAK2247(SPI)
RAK2246
RAK7248 no LTE (RAK2287 + raspberry pi)
RAK7248 with LTE (RAK2287 + LTE + raspberry pi)
RAK2287(USB)
RAK7271(Choose RAK2287 USB)
RAK5146(USB)
RAK7371(Choose RAK5146 USB)
RAK5146(SPI)
RAK5146(SPI) with LTE
隨著云原生時代的到來,容器技術憑借其可移植性高、部署方便、運維成本低等特點,迅速成為“在邊緣計算設備上部署服務”的首選方式。而瑞科慧聯的LoRaWAN?UDPPacketForwarderProtocolforDocker 這一項目恰好就是針對RAK-common軟件棧進行了代碼結構的優化和打包。這樣,即使用戶不在樹莓派硬件平臺上,也能快速部署LoRaWAN?UDPpacketforwarder。如果用戶在設備上已經安裝了docker,使用瑞科慧聯提供的容器鏡像就更簡單,只需要在docker-compose.yml中修改對應的配置選項,然后需要輸入一條命令‘docker-compose up‘,就可以在幾秒鐘內部署好一個LoRaWAN?packetforwarder,將設備變為一臺LoRaWAN?網關。
該項目的特性如下所示:
- 支持多平臺、多架構,如AMD64(x86_64),ARMv8,ARMv7andARMv6架構支持基于SX1301, SX1302, SX1303 and SX1308的LoRa?集中器
- 支持使用SPI和USB接口的集中器
- 兼容使用TheThingsStack(communityedition/TTNv3)或者是ChirpstackLNS等LoRa?網絡服務器
- 一鍵部署,同時可配置度高
- 支持使用Balena部署,方便集群管理
應用示例
下面我會以頻段為US915的RAK5146集中器的SPI版本為例子,向大家展示如何使用docker-compose,實現一鍵部署LoRaWAN?UDP packet forwarder。
前期準備
硬件準備:
- RAK5146集中器
- 樹莓派3/4/CM3/CM4(CM3或者CM4需要對應的載板)或者任意其他有PCIe/GPIO的arm平臺或者x86平臺
- 如果你的host設備上沒有PCIe接口,需要使用一個額外的RAK2287PiHAT板載PCle連接器
軟件準備:
- 在本地預安裝了docker和docker-compose,以及相關的依賴(docker和docker-compose的安裝十分簡單,請參照官方文檔。
具體步驟如下所示:
- 新建一個文件夾,并在文件夾中新建一個名叫docker-compose.yml的文件:
mkdir example
cd example
nano docker-compose.yml
- 接著將下列內容粘貼進該文件并保存:
version: '3.7'
services:
udp-packet-forwarder:
image: rakwireless/udp-packet-forwarder:latest
container_name: udp-packet-forwarder
restart: unless-stopped
devices:
-/dev/spidev0.0
volumes:
-/sys:/sys
environment:
# MODEL: "RAK5146" #該鏡像可根據Rakwireless集中器型號自動配置接口等
CONCENTRATOR: "SX1303" #第三方集中器需要依次定義CONCENTRATOR、INTERFACE等變量,例如RAK5146是基于SX1303芯片
INTERFACE: "SPI"
RADIO_DEV: "/dev/spidev0.0"
BAND: "us_902_928" #此處以US915為例,根據集中器支持頻段修改即可
TTN_REGION: "eu1" #如使用TTS作為ns,默認使用eu1服務器,可按需修改
# SERVER_HOST: "10.2.21.27" #如果不使用TTS,則修改為您自己ns的地址
# SERVER_PORT: "1700" #同上
- 保存后,在終端同一個目錄下中執行如下命令:
pi@rasperry:docker-compose up
#如果安裝了新版docker compose,請運行如下命令
docker compose up
如果配置正確的話,你將看到如下的log,其中包含了網關的EUI,以及后續TTS的ns地址。
網關的EUI可以通過在終端運行以下命令獲取:
docker exec -it udp-packet-forwarder ./get_eui.sh
光在網關上部署udp-packet-forwarder可不夠,你還需要配置網絡服務器(ns),此處我們以TheThingsStack (TTS)為例:
復制上述紅色高亮的地址eu1.cloud.thethings.network,使用你的瀏覽器訪問該地址,注冊賬號后,你將看到TTS 的網關和應用配置頁面:
接下來你需要按照頁面上的操作提示,依次進行以下操作:
- 點擊Go to Gateway
- 點擊Add Gateway
- 依次填入網關的信息,例如ID,名字,EUI,以及頻段
- 點擊頁面下方的Create Gateway 來完成網關的創建
完成以上步驟后,請等待片刻,稍后網關將自動連上TTS網絡服務器。連接成功后,網關會有如下log:
而在TTS網絡服務器側,則可以看到網關入網的提示:
以上就是最基礎、也最常見的一種部署LoRaWAN?網關的方式。此外,瑞科慧聯還提供了基于該鏡像的多種應用案例,包括雙頻段網關、接入influxdb數據庫和Grafana圖形化面板、接入TagoCore的案例等等,具體可以參考其Github代碼倉庫。
大家可以參考代碼倉庫中的開源應用案例,只需要稍加修改、就能打造出屬于你自己的解決方案。
-
物聯網
+關注
關注
2909文章
44577瀏覽量
372847 -
網關
+關注
關注
9文章
4448瀏覽量
51058 -
LoRa
+關注
關注
349文章
1689瀏覽量
231917
發布評論請先 登錄
相關推薦
評論