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