LoRaWAN是為LoRa遠距離通信網(wǎng)絡設計的一套通訊協(xié)議和系統(tǒng)架構(gòu)。一個LoRaWAN網(wǎng)絡架構(gòu)中包含了節(jié)點、網(wǎng)關(guān)、樹莓派這四個部分。其中節(jié)點一般是傳感器或者開關(guān)控制,實現(xiàn)遠程傳感器數(shù)據(jù)采集或者開關(guān)控制應用。
LoRa網(wǎng)關(guān)負責收集節(jié)點數(shù)據(jù)進行封裝,轉(zhuǎn)發(fā)給LoRaWAN服務器。LoRaWAN服務器負責上下行數(shù)據(jù)包的完整性校驗。用戶服務器負責OTAA設備的入網(wǎng)激活,應用數(shù)據(jù)的加解密和業(yè)務邏輯處理。
節(jié)點數(shù)據(jù)最終到達用戶服務器,需經(jīng)歷節(jié)點-網(wǎng)關(guān)-LoRaWAN服務器-用戶服務器,其中節(jié)點為嵌入式開發(fā),節(jié)點和網(wǎng)關(guān)LoRa無線通訊需要硬件電路匹配。
網(wǎng)關(guān)需要多線程處理以支持多路無線并行通訊需求,LoRaWAN服務器和用戶服務器為網(wǎng)絡服務器開發(fā)。各部分要求的開發(fā)環(huán)境不同,造成了開發(fā)的困難。
LoRaWAN網(wǎng)關(guān)服務器優(yōu)點:
LoRaWAN網(wǎng)關(guān)服務器為了方便用戶使用,將LoRaWAN系統(tǒng)架構(gòu)中的網(wǎng)關(guān)、LoRaWAN服務器和用戶服務器集成到一起,是用戶無需深入了解LoRaWAN通訊協(xié)議和多平臺開發(fā)即可搭建LoRaWAN網(wǎng)絡。
思為無線提供的解決方案:
LoRaWAN網(wǎng)關(guān)服務器使用樹莓派作為控制系統(tǒng),網(wǎng)關(guān)、LoRaWAN服務器和用戶服務器功能由樹莓派內(nèi)的應用程序?qū)崿F(xiàn)。
其中網(wǎng)關(guān)功能由網(wǎng)關(guān)程序?qū)崿F(xiàn),收集節(jié)點數(shù)據(jù)進行封裝。
LoRaWAN服務器和用戶服務器功能由服務器程序?qū)崿F(xiàn),負責上下行數(shù)據(jù)包的完整性校驗,OTAA設備的入網(wǎng)激活,應用數(shù)據(jù)的加解密和數(shù)據(jù)處理。
網(wǎng)關(guān)程序和服務器程序同時在樹莓派中運行,通過socket通訊。
上行數(shù)據(jù)傳輸步驟:
步驟1.節(jié)點發(fā)送數(shù)據(jù)給網(wǎng)關(guān)程序。
步驟2.網(wǎng)關(guān)程序采集數(shù)據(jù)并封裝。
步驟3.網(wǎng)關(guān)程序用socket發(fā)送給服務器程序。
步驟4.服務器程序收到數(shù)據(jù),校驗無誤后解密數(shù)據(jù)。
步驟5.服務器程序輸出解密的數(shù)據(jù)到串口供用戶使用。
下行數(shù)據(jù)傳輸步驟:
步驟1.服務器程序接收串口輸入的數(shù)據(jù)。
步驟2.服務器程序加密串口輸入的數(shù)據(jù)并校驗。
步驟3.服務器程序把加密數(shù)據(jù)用socket發(fā)送給網(wǎng)關(guān)程序。
步驟4.網(wǎng)關(guān)程序下發(fā)加密數(shù)據(jù)給節(jié)點。
步驟5.節(jié)點接收到數(shù)據(jù)并處理。