鄒東堯,劉寬,李娜娜,董蘇鑫,杜中州
(鄭州輕工業(yè)學(xué)院計(jì)算機(jī)與通信工程學(xué)院,鄭州 450002)
隨著智能家居等方向的飛速發(fā)展,物聯(lián)網(wǎng)技術(shù)在人們生活中的使用越來越廣泛,人們可以通過各式各樣的傳感器來獲取所需要的信息,然后通過計(jì)算機(jī)系統(tǒng)的分析與處理,通過反饋給予人們更加方便快捷的生活[1]。這是物與網(wǎng)與人的互聯(lián)互通,信息由傳感器采集之后經(jīng)由信道傳給接收端,其中作為物聯(lián)網(wǎng)傳輸通道的通信技術(shù)也在日趨發(fā)展成熟。物聯(lián)網(wǎng)中的通信技術(shù)分為有線通信和無線通信[2],有線通信是傳統(tǒng)的使用有線線纜做為通信信道,進(jìn)行信息的傳遞。而無線通信的主要傳輸方式有Wi-Fi、ZigBee、NFC、藍(lán)牙等傳輸協(xié)議[3],在物聯(lián)網(wǎng)實(shí)際使用中,無線通信是適用范圍最大的通信方式,但是現(xiàn)有的無線通信方式卻各有缺陷,無法滿足物聯(lián)網(wǎng)系統(tǒng)中的控制要求,例如:Wi-Fi傳輸距離太短,ZigBee的通訊信號穿透能力和繞射能力差等[4]。最理想的無線傳輸方式是既有較遠(yuǎn)的傳輸距離還要有較低的功耗,所以距離和功耗之間難以取舍,是制約如今物聯(lián)網(wǎng)大規(guī)模發(fā)展普及的原因。
而LoRa出現(xiàn)可較好的改變這一現(xiàn)狀,LoRa是專門為了物聯(lián)網(wǎng)的發(fā)展而設(shè)計(jì)的一種無線網(wǎng)絡(luò)通信技術(shù),是由Semtech公司提出的一種超長距離低功耗的數(shù)據(jù)傳輸技術(shù),LoRa使用線性的跳頻擴(kuò)頻技術(shù),把帶寬分成一個個小的子通道,發(fā)送者和接收者在一個通道上工作一段時間后跳轉(zhuǎn)到另一個通道。LoRa數(shù)據(jù)傳輸時工作在多個不同的頻段上,當(dāng)一個頻段出現(xiàn)異常,就自動跳轉(zhuǎn)到相鄰的頻段進(jìn)行通信,這樣帶來的優(yōu)點(diǎn)就是保障了通信的穩(wěn)定性。在通信距離上可達(dá)到15Km以上,適用在長距離發(fā)送小數(shù)據(jù)的終端設(shè)備上[5]。故此,物聯(lián)網(wǎng)中無線通信選擇LoRa技術(shù)可較好解決通信問題。近年來,國內(nèi)外LoRa技術(shù)的發(fā)展十分迅速,在國外Lo?Ra技術(shù)日益發(fā)展成熟時,中國也成立了CLAA(China LoRa Application Alliance),以應(yīng)用聯(lián)盟的形式,促進(jìn)中國LoRa技術(shù)的商用化發(fā)展[6]。LoRa技術(shù)指標(biāo)對比于Wi-Fi、ZigBee,優(yōu)點(diǎn)可以參照表1所示。
表1 LoRa、Wi-Fi、ZigBee 技術(shù)指標(biāo)對比
該系統(tǒng)設(shè)計(jì)了一個覆蓋一定范圍的LoRa局域網(wǎng)絡(luò),在這個局域網(wǎng)環(huán)境中,首先數(shù)據(jù)采集端的傳感器節(jié)點(diǎn)采集外界信息,當(dāng)傳感器采集到信息之后,通過傳感器節(jié)點(diǎn)上的LoRa模塊經(jīng)由LoRaWAN向LoRa網(wǎng)關(guān)發(fā)送信息,經(jīng)管理端軟件對信息進(jìn)行接受處理之后,對信息做出對應(yīng)處理,例如顯示想要得到的信息或是發(fā)出操作指令。本系統(tǒng)的設(shè)計(jì)在模塊上主要分為數(shù)據(jù)采集端、LoRaWAN、管理軟件端三部分。系統(tǒng)框圖如圖1所示。
圖1 系統(tǒng)框圖
數(shù)據(jù)采集端的通過采集節(jié)點(diǎn)上的傳感器獲取外界數(shù)據(jù),通過LoRa網(wǎng)絡(luò)傳送到LoRa網(wǎng)關(guān)中。在本系統(tǒng)中,使用到的傳感器的類型主要有對火災(zāi)預(yù)警的火焰?zhèn)鞲衅骱屯\噲龉芾淼某暡▊鞲衅?。每一個數(shù)據(jù)采集端由單片機(jī)連接傳感器和LoRa模塊,通過I2C或者SPI等方式從I/O口讀取傳感器信息,將信息經(jīng)計(jì)算處理后通過設(shè)定好的數(shù)據(jù)格式構(gòu)造一個數(shù)據(jù)包,將數(shù)據(jù)包通過串口發(fā)送到LoRa模塊,經(jīng)LoRaWAN發(fā)送到LoRa網(wǎng)關(guān)。而LoRaWAN是為了讓LoRa節(jié)點(diǎn)互相通信而設(shè)計(jì)的完整的通信協(xié)議和系統(tǒng)架構(gòu)。LoRaWAN網(wǎng)絡(luò)架構(gòu)規(guī)定了系統(tǒng)至下而上依次是終端、網(wǎng)關(guān)、網(wǎng)絡(luò)服務(wù)器和應(yīng)用服務(wù)器。在智能園區(qū)系統(tǒng)的設(shè)計(jì)中,我們基于LoRaWAN的標(biāo)準(zhǔn)協(xié)議設(shè)計(jì)出本系統(tǒng)通信的數(shù)據(jù)格式,包括數(shù)據(jù)的開始位和結(jié)束位、設(shè)備的id號、傳輸?shù)臄?shù)據(jù)格式等。LoRa網(wǎng)絡(luò)設(shè)計(jì)采用星型網(wǎng)絡(luò)模型,由一個LoRa網(wǎng)關(guān)接收處理所有的信息,各個采集模塊通過LoRa模塊接入到LoRa網(wǎng)關(guān)中。LoRa網(wǎng)關(guān)通過串口連接至管理PC,通過操作,LoRa網(wǎng)關(guān)可以將相應(yīng)的數(shù)據(jù)發(fā)送給某個或全部的數(shù)據(jù)采集模塊。
該系統(tǒng)的硬件設(shè)計(jì)分為傳感器節(jié)點(diǎn)和LoRa網(wǎng)關(guān)兩部分,硬件服務(wù)于信息的采集和傳遞階段。傳感器感知外界信息,LoRa網(wǎng)關(guān)對信息進(jìn)行接收。
系統(tǒng)在傳感器節(jié)點(diǎn)設(shè)計(jì)了停車場檢測模塊和和火災(zāi)報警模塊,停車場檢測模塊利用超聲波傳感器,通過放置在在車位下方的中心地面的傳感器檢測在當(dāng)前車位是否有車輛停放。檢測停車場車位信息的傳感器選用HC-SR04。這個超聲波測距傳感器能提供2cm至400cm的非接觸距離感測功能[7],因?yàn)槠嚨妆P距離地面的高度不會超過幾十厘米,所以將該超聲波模塊嵌入于停車位的中心地面上,可以敏銳的檢測上方是否車輛停放。而火災(zāi)報警模塊在傳統(tǒng)的煙霧報警器基礎(chǔ)上,加裝火焰?zhèn)鞲衅?,以提高對火?zāi)監(jiān)測的靈敏度,傳感器硬件上由LM393和紅外發(fā)射管組成,可以檢測火源或者波長為700nm~1000nm的熱源[8]。當(dāng)檢測到煙霧或火焰時,會第一時間采集外界信息的改變,迅速傳遞是否有火災(zāi)發(fā)生的信息。
LoRa網(wǎng)關(guān)是信息傳遞的關(guān)鍵部位,LoRa網(wǎng)關(guān)的設(shè)計(jì)采用S78s網(wǎng)關(guān),使其運(yùn)行LoRa網(wǎng)關(guān)的代碼來實(shí)現(xiàn)的所有功能,包括數(shù)據(jù)的轉(zhuǎn)發(fā)、處理等[9],通過串口連接至管理平臺。數(shù)據(jù)采集端采集來的所有數(shù)據(jù)都要傳輸?shù)絃oRa網(wǎng)關(guān)中,進(jìn)行相關(guān)數(shù)據(jù)的解包分析后,通過串口發(fā)送數(shù)據(jù)到上層的管理平臺。同時,管理平臺下發(fā)的所有數(shù)據(jù)都要通過LoRa網(wǎng)關(guān)分發(fā)到數(shù)據(jù)采集端。所以LoRa網(wǎng)關(guān)必須能夠穩(wěn)定且高效的來進(jìn)行LoRa網(wǎng)絡(luò)的數(shù)據(jù)的收發(fā)。
本系統(tǒng)的軟件組成包含兩部分,分別是由下位機(jī)數(shù)據(jù)采集端程序和上位機(jī)程序。下位機(jī)數(shù)據(jù)采集端程序分別包括停車場模塊軟件、安防模塊軟件等。上位機(jī)為管理軟件端,對信息進(jìn)行接收處理并發(fā)出指令。上位機(jī)與下位機(jī)會通過LoRaWAN進(jìn)行數(shù)據(jù)的傳輸。
數(shù)據(jù)采集端作為下位機(jī),軟件功能分為三個部分,一是通過傳感器采集相關(guān)的有用的信息,二是通過串口發(fā)送到LoRaWAN當(dāng)中,三是從LoRaWAN中接收到數(shù)據(jù)時執(zhí)行相關(guān)的操作。設(shè)計(jì)上將采集和發(fā)送功能一起進(jìn)行,下位機(jī)通過GPIO口讀取到各類傳感器采集的信息,然后按照設(shè)定好的通信協(xié)議添加額外數(shù)據(jù),形成的完整數(shù)據(jù)包通過串口發(fā)送。發(fā)送完后設(shè)置定時器,進(jìn)入休眠狀態(tài),定時器重置后會再次進(jìn)行讀數(shù)據(jù)、發(fā)數(shù)據(jù)、設(shè)置定時器、休眠,如無中斷,系統(tǒng)會一直運(yùn)行。當(dāng)接收到上位機(jī)發(fā)送的命令信息后,會通過串口來實(shí)現(xiàn)中斷,軟件設(shè)置打開串口中斷功能,當(dāng)LoRa接收到數(shù)據(jù)后,通過串口發(fā)送到下位機(jī),產(chǎn)生串口中斷,然后單片機(jī)會停止當(dāng)前的任務(wù)去接收數(shù)據(jù),完成后對數(shù)據(jù)包進(jìn)行解析,按照命令執(zhí)行相關(guān)操作,完成后返回執(zhí)行前的程序。整個軟件的流程圖如圖2所示。
圖2 數(shù)據(jù)采集端系統(tǒng)流程圖
停車場系統(tǒng)的軟件設(shè)計(jì)通過使用單片機(jī)驅(qū)動超聲波傳感器正常工作,在軟件中,會通過延時或循環(huán)產(chǎn)生100個40kHz的方波,同時計(jì)時器開始計(jì)時,當(dāng)方波碰到障礙便會返回,超聲波模塊接收到返回信號后通過GPIO口給單片機(jī)一個信號產(chǎn)生中斷,使其進(jìn)入中斷程序中。在傳感器終端中,首先停止計(jì)時器,等待超聲波發(fā)送結(jié)束,檢測時間和計(jì)算距離,將結(jié)果保存,清除中斷并打開串口發(fā)送數(shù)據(jù)給LoRa模塊,通過LoRa網(wǎng)絡(luò)將數(shù)據(jù)發(fā)送到管理系統(tǒng)中。管理系統(tǒng)根據(jù)數(shù)據(jù)進(jìn)行相關(guān)信息的更新顯示。超聲波檢測軟件流程圖如圖3所示。
安防系統(tǒng)流程相似于超聲波檢測流程,系統(tǒng)中的火焰檢測主要是通過判斷傳感器輸出端的電平,輸出端通常默認(rèn)為高電平,如檢測到輸出端為高電平,則表明火焰?zhèn)鞲衅魑礄z測到火源,不做報警處理。如檢測到傳感器輸出端為低電平,則表示火焰?zhèn)鞲衅鳈z測到了火源,進(jìn)行報警處理。所以軟件設(shè)計(jì)包含兩個模塊:檢測傳感器輸出端電平的高低和串口數(shù)據(jù)的發(fā)送。
LoRaWAN是為了讓LoRa節(jié)點(diǎn)互相通信而設(shè)計(jì)的完整的通信協(xié)議和系統(tǒng)架構(gòu)。其中,通信協(xié)議包含了節(jié)點(diǎn)的分類、加密、MAC命令、地區(qū)參數(shù)等等各類信息,從設(shè)計(jì)上保證了使用LoRa的各個廠商可以實(shí)現(xiàn)互聯(lián)互通。LoRaWAN網(wǎng)絡(luò)架構(gòu)規(guī)定了系統(tǒng)至下而上依次是終端、網(wǎng)關(guān)、網(wǎng)絡(luò)服務(wù)器和應(yīng)用服務(wù)器。我們在LoRaWAN的基礎(chǔ)上,通過數(shù)據(jù)結(jié)構(gòu)中的不同的數(shù)據(jù)標(biāo)志位來區(qū)分各個終端節(jié)點(diǎn)。
在系統(tǒng)的設(shè)計(jì)中,我們基于LoRaWAN的標(biāo)準(zhǔn)協(xié)議設(shè)計(jì)出了適合本系統(tǒng)通信的數(shù)據(jù)格式,包括數(shù)據(jù)的開始位和結(jié)束位、設(shè)備的id號、傳輸?shù)臄?shù)據(jù)格式等。例如在停車場系統(tǒng)中,我們假設(shè)了該小區(qū)具有三個停車場分別為A區(qū)、B區(qū)、C區(qū),同樣用A、B、C來進(jìn)行表示,然后用1和0表示該車位上是否有車輛??俊;蚴窃谥悄馨卜老到y(tǒng)中,我們通過設(shè)備的ID號來區(qū)分是哪一區(qū)域發(fā)生險情,直接將險情區(qū)域信息放在數(shù)據(jù)包內(nèi)。
上位機(jī)軟件使用C++語言結(jié)合MFC輔助進(jìn)行開發(fā)。因LoRa網(wǎng)關(guān)的數(shù)據(jù)是通過PC的串口上傳[10],使用上位機(jī)軟件首先應(yīng)打開對應(yīng)的串口對數(shù)據(jù)進(jìn)行監(jiān)聽。接收傳送來的數(shù)據(jù),對數(shù)據(jù)包進(jìn)行解析獲取有用的信息,最后將數(shù)據(jù)賦給對應(yīng)的控件,并對其進(jìn)行顯示或其他的操作。當(dāng)上位機(jī)下達(dá)命令時,通過串口直接發(fā)送到LoRa網(wǎng)關(guān)。串口的通信設(shè)置中端口號會進(jìn)行自動的掃描顯示,然后打開系統(tǒng)即可;停車場系統(tǒng)可以實(shí)時更新當(dāng)前區(qū)域內(nèi)剩余車位數(shù)量,后期可根據(jù)需求對車位的位置進(jìn)行定位,進(jìn)行導(dǎo)航指引;當(dāng)有火災(zāi)險情時,著火區(qū)域會顯示險情發(fā)生的區(qū)域戶號,同時會打開設(shè)備的喇叭對管理者進(jìn)行警報,當(dāng)對火情進(jìn)行排查或處理后,需要管理員在管理端軟件輸入密碼手動解除警報,否則警報不會關(guān)閉。上位機(jī)控制系統(tǒng)如圖4所示。
圖4 上位機(jī)控制系統(tǒng)
在校園內(nèi)對系統(tǒng)進(jìn)行測試,選取一個車位安裝停車場檢測裝置,并隨機(jī)在區(qū)域內(nèi)選取了一個點(diǎn)作為火災(zāi)測試區(qū)域,然后用電腦連接LoRa網(wǎng)關(guān)進(jìn)行初步的網(wǎng)絡(luò)通信和數(shù)據(jù)交換的測試實(shí)驗(yàn)。在6個小時的時間內(nèi),車位檢測車輛進(jìn)出共6次,發(fā)送數(shù)據(jù)包6次,控制端準(zhǔn)確更新對應(yīng)車位空閑情況的信息。對兩個火災(zāi)檢測點(diǎn)進(jìn)行測試,用打火機(jī)火源模擬真實(shí)火源狀況,共計(jì)測試40次,每次測試結(jié)果均正常,控制端能夠判斷出發(fā)生火災(zāi)的區(qū)域。
LoRa技術(shù)的通信指標(biāo)中很重要的一項(xiàng)指標(biāo)是通信距離,通信距離的測試受很多因素的影響,包括但不限于是否有障礙物遮擋、是否有其他的干擾信號等。我們在校園內(nèi)進(jìn)行了LoRa節(jié)點(diǎn)到LoRa網(wǎng)關(guān)的通信距離的測試,模擬真實(shí)環(huán)境中的各種干擾因素,實(shí)測把LoRa網(wǎng)關(guān)安放在圖書館東側(cè),節(jié)點(diǎn)可以覆蓋以圖書館東側(cè)為中心的所有區(qū)域,以證明LoRa技術(shù)對長距離傳輸?shù)闹С帧?/p>
圖5 測試距離在地圖上展示
校園內(nèi),通過布置了三個終端節(jié)點(diǎn)和一個LoRa網(wǎng)關(guān),組成了一個小型的LoRa網(wǎng)絡(luò)。連續(xù)運(yùn)行24個小時,終端節(jié)點(diǎn)共計(jì)上傳到LoRa網(wǎng)關(guān)343個數(shù)據(jù)包。停車場系統(tǒng)中,控制端數(shù)據(jù)能夠準(zhǔn)確的記錄并顯示車位是否被占用;安防系統(tǒng)中,當(dāng)我們在傳感器附近點(diǎn)燃火源時,系統(tǒng)能夠?qū)崟r地顯示出險情區(qū)域,并播放報警聲音。測試結(jié)果顯示,基于LoRa網(wǎng)絡(luò)的智能園區(qū)系統(tǒng)能夠穩(wěn)定運(yùn)行并符合預(yù)期。
根據(jù)現(xiàn)如今物聯(lián)網(wǎng)的傳輸技術(shù)在傳輸距離和傳輸功耗上難以取舍的問題,本文提出基于LoRaWAN的低功耗智能園區(qū)管理系統(tǒng),通過對信息傳遞的三層結(jié)構(gòu),分析并設(shè)計(jì)了系統(tǒng)模型。由技術(shù)對比可知,在和傳統(tǒng)的無線傳輸方式比較上,LoRaWAN因其能實(shí)現(xiàn)低功耗且遠(yuǎn)距離地傳輸信息,符合物聯(lián)網(wǎng)的通信需求。該系統(tǒng)基于LoRaWAN,可以靈活地進(jìn)行網(wǎng)絡(luò)的部署,并根據(jù)用戶需求,對系統(tǒng)進(jìn)行功能的介入,對于未來,我們計(jì)劃將系統(tǒng)與諸多便民業(yè)務(wù)相聯(lián),使智能園區(qū)可提供的服務(wù)更全面、更便捷。