王東 楊杰
摘要:溫室大棚環(huán)境參數(shù)檢測系統(tǒng)在使用WiFi,Bluetooth,GPRS,ZigBee,4G等通信技術(shù)時(shí),要么存在通信距離短,要么存在功耗高的缺點(diǎn),而LoRa和NB-IoT剛好解決了這一看似矛盾的問題。文章應(yīng)用LoRa和NB-IoT無線通信技術(shù),設(shè)計(jì)了溫室大棚數(shù)據(jù)采集系統(tǒng)網(wǎng)關(guān),實(shí)現(xiàn)了接收數(shù)據(jù)采集終端上報(bào)的數(shù)據(jù)并轉(zhuǎn)發(fā)到OceanConnect物聯(lián)網(wǎng)平臺(tái),推送到應(yīng)用服務(wù)器,并詳細(xì)介紹了網(wǎng)關(guān)的軟硬件設(shè)計(jì)。通過對(duì)這兩種無線通信技術(shù)的組合,在一定范圍和特定場景下能夠降低無線通信的功耗和費(fèi)用,具有一定的實(shí)用價(jià)值。
關(guān)鍵詞:溫室大棚;LoRa;NB-IoT;無線通信;數(shù)據(jù)采集模塊;云平臺(tái)
中圖分類號(hào):TP277文獻(xiàn)標(biāo)志碼:A
0 引言
目前,物聯(lián)網(wǎng)無線通信主要采用WiFi,Bluetooth,GPRS,ZigBee,4G等通信技術(shù),這些通信技術(shù)要么存在通信距離短,要么存在功耗高的缺點(diǎn)[1-3]。而LoRa和NB-IoT剛好解決了這一看似矛盾的問題,既能進(jìn)行遠(yuǎn)距離通信,又解決了低功耗。LoRa網(wǎng)絡(luò)無后期網(wǎng)絡(luò)運(yùn)行費(fèi)用,但無法直接連接到互聯(lián)網(wǎng),而NB-IoT雖然能通過核心網(wǎng)連接到互聯(lián)網(wǎng),但是需要后期運(yùn)行費(fèi)用。本文結(jié)合LoRa和NB-IoT各自的優(yōu)勢設(shè)計(jì)了用于溫室大棚環(huán)境數(shù)據(jù)采集系統(tǒng)的網(wǎng)關(guān),該網(wǎng)關(guān)能夠在對(duì)供電和成本要求嚴(yán)格、數(shù)據(jù)量小的應(yīng)用場合具有較好的優(yōu)勢。
1 系統(tǒng)架構(gòu)
系統(tǒng)架構(gòu)如圖1所示,數(shù)據(jù)采集模塊由MCU、LoRa模塊及用于環(huán)境參數(shù)檢測的傳感器構(gòu)成,負(fù)責(zé)將采集的數(shù)據(jù)發(fā)送到由MCU、LoRa模塊和NB-IoT模塊構(gòu)成的網(wǎng)關(guān),再由網(wǎng)關(guān)將數(shù)據(jù)經(jīng)核心網(wǎng)轉(zhuǎn)發(fā)到華為的OceanConnect物聯(lián)網(wǎng)平臺(tái)[4],并推送至應(yīng)用服務(wù)器進(jìn)行解析和儲(chǔ)存,供用戶查詢和使用。
2 網(wǎng)關(guān)硬件電路設(shè)計(jì)
網(wǎng)關(guān)模塊主要負(fù)責(zé)與各數(shù)據(jù)采集模塊進(jìn)行通信,接收由數(shù)據(jù)采集模塊上報(bào)的環(huán)境數(shù)據(jù),并將收到的數(shù)據(jù)通過NB-IoT模塊轉(zhuǎn)發(fā)到云端,供管理人員查看。網(wǎng)關(guān)模塊主要包括電源模塊、單片機(jī)最小系統(tǒng)、LoRa通信模塊以及NB-IoT通信模塊。
2.1 電源選擇
本網(wǎng)關(guān)模塊在進(jìn)行LoRa通信和NB-IoT模塊發(fā)射時(shí)功耗最大,但LoRa和NB-IoT并不同時(shí)通信。根據(jù)ATK-LoRa-01的技術(shù)參數(shù),LoRa模塊供電電壓為3.3 V~5 V,最大電流為118 mA(可調(diào));NB-IoT模塊供電電壓為3.1 V~4.2 V,射頻發(fā)射狀態(tài)最大為250 mA;MCU選擇STC8A8K64S4A12芯片,該芯片供電電壓為2.0 V~5.5 V。故電源選擇ER26500型電池,8 500 mAH電量,電壓3.6 V,最大能提供300 mA的電流,完全能夠滿足系統(tǒng)的電源要求。同時(shí)為了方便電路調(diào)試,本文設(shè)計(jì)了USB供電和USB轉(zhuǎn)TTL模塊,其電路如圖2所示。當(dāng)不需要該部分時(shí),只需要斷開SW4或此部分電路不焊接,將電池接入VCC即可。
2.2 單片機(jī)最小系統(tǒng)
本系統(tǒng)選擇的MCU為STC8A8K64S4A12,無需外部復(fù)位和晶振電路,接入電源即可工作,提供IDEL和STOP兩種低功耗模式,最低可降至0.1 μA,具有4個(gè)串口。其中,串口1用于MCU的程序更新下載和調(diào)試使用,串口2用于與NB-IoT模塊通信,串口3用于與LoRa模塊通信,電路如圖3所示。
2.3 LoRa通信模塊
為了使系統(tǒng)功耗低、傳輸距離遠(yuǎn),本文選擇了正點(diǎn)原子ATK-LoRa-01模塊,該模塊是基于SX1278設(shè)計(jì)開發(fā)的LoRa擴(kuò)頻傳輸模塊,工作頻率410~441 MHz,傳輸距離大于3 000 m,待機(jī)功耗2.3 μA,支持AT指令配置,3.3 V~5 V供電,工作電流2.3 μA~118 mA。通過串口與單片機(jī)的串口3進(jìn)行數(shù)據(jù)交換,其AUX引腳連接單片機(jī)P32,MDO引腳與單片機(jī)P07連接,用于檢測LoRa模塊的狀態(tài)以及對(duì)LoRa模塊進(jìn)行控制。
2.4 NB-IoT模塊主要電路設(shè)計(jì)
與互聯(lián)網(wǎng)連接的模塊選擇NB-IoT通信,模塊選擇移遠(yuǎn)BC35-G。該模塊是一款高性能、低功耗的多頻段NB-IoT無線通信模塊,PSM下最大電流5 μA,射頻發(fā)射狀態(tài)最大250 mA,接收狀態(tài)50 mA,供電電壓3.1 V~4.2 V。
BC35-G模塊包含一個(gè) USIM 接口,支持 3GPP 規(guī)范的功能,并通過模塊內(nèi)部的電源供電,支持 1.8/3.0V 供電。根據(jù)BC35-G硬件設(shè)計(jì)手冊進(jìn)行電路設(shè)計(jì),但要注意外部 USIM 卡座要靠近模塊擺放,同時(shí),外部 USIM 卡信號(hào)線布線遠(yuǎn)離 RF 走線和 VBAT 電源線,外部 USIM 卡座的地與模塊的 USIM_GND 布線要短而粗。在外部 USIM 卡的引腳增加了TVS 管確保良好的 ESD 防護(hù)性能。為了更好地調(diào)節(jié)射頻性能,本文設(shè)計(jì)了π形匹配電路,且電路元件盡量靠近天線放置。在和MCU的串口連接線路中,需要串聯(lián)一個(gè)1 kΩ的電阻,以防止漏電,增加功耗,BC35-G模塊主要接口電路和最終制作的網(wǎng)關(guān)電路板實(shí)物如圖4所示。
3 軟件設(shè)計(jì)
根據(jù)系統(tǒng)架構(gòu)可知,網(wǎng)關(guān)與互聯(lián)網(wǎng)通信使用NB-IoT通信,網(wǎng)關(guān)與數(shù)據(jù)采集模塊之間的通信采用LoRa通信。本網(wǎng)關(guān)模塊選擇使用NB-IoT設(shè)計(jì)的目的在于其低功耗以及多個(gè)數(shù)據(jù)采集終端共用資費(fèi)以節(jié)省通信費(fèi)用,故同一個(gè)網(wǎng)關(guān)模塊所連接的數(shù)據(jù)采集終端數(shù)量不會(huì)很多,設(shè)定為最大16個(gè),而上傳數(shù)據(jù)的頻率也不高,只是在給定的時(shí)間間隔點(diǎn)上由數(shù)據(jù)采集模塊采集環(huán)境數(shù)據(jù)上傳,網(wǎng)關(guān)與各數(shù)據(jù)采集模塊之間的LoRa通信采用輪詢的方式進(jìn)行,網(wǎng)關(guān)需要提前設(shè)置好數(shù)據(jù)采集模塊的地址,因此需要提前在應(yīng)用服務(wù)器上配置好每個(gè)網(wǎng)關(guān)下數(shù)據(jù)采集模塊的地址列表。又由于同一個(gè)網(wǎng)關(guān)會(huì)上傳多個(gè)數(shù)據(jù)采集模塊的數(shù)據(jù),而OceanConnect需要根據(jù)配置的解碼插件對(duì)接收到的數(shù)據(jù)進(jìn)行解碼,所以數(shù)據(jù)中必須包含數(shù)據(jù)采集模塊的地址,故設(shè)計(jì)網(wǎng)關(guān)向服務(wù)器上傳數(shù)據(jù)通信協(xié)議如表1所示。
若網(wǎng)關(guān)地址不為0,終端地址為0,代表數(shù)據(jù)為網(wǎng)關(guān)發(fā)送;若數(shù)據(jù)包中數(shù)據(jù)為全0,則表示向服務(wù)器請求終端地址列表。
服務(wù)器接收到網(wǎng)關(guān)請求數(shù)據(jù)采集模塊地址列表時(shí),下發(fā)數(shù)據(jù)僅為終端地址列表數(shù)據(jù),其通信數(shù)據(jù)格式如表2所示。
網(wǎng)關(guān)和數(shù)據(jù)采集模塊之間采用定向傳輸,網(wǎng)關(guān)向服務(wù)器獲取到數(shù)據(jù)采集模塊地址列表和通信信道后,根據(jù)既定的規(guī)則對(duì)數(shù)據(jù)采集模塊進(jìn)行輪詢,網(wǎng)關(guān)向數(shù)據(jù)采集模塊發(fā)送信息的數(shù)據(jù)格式如表3所示。
數(shù)據(jù)采集模塊被網(wǎng)關(guān)喚醒后,立即采集相關(guān)傳感器的數(shù)據(jù),形成數(shù)據(jù)包,上傳到網(wǎng)關(guān),其數(shù)據(jù)格式如表4所示。
系統(tǒng)通電時(shí),首先初始化NB-IoT模塊和LoRa模塊,然后通過NB-IoT模塊向服務(wù)器請求數(shù)據(jù)采集模塊地址列表,將LoRa模塊設(shè)置成喚醒模式,按既定規(guī)則發(fā)送命令喚醒數(shù)據(jù)采集模塊上傳數(shù)據(jù),完成數(shù)據(jù)接收后,將LoRa模塊設(shè)置成省電模式,并將收到的數(shù)據(jù)打包上傳到服務(wù)器,完成數(shù)據(jù)發(fā)送后,整個(gè)網(wǎng)關(guān)所有模塊進(jìn)入休眠狀態(tài),以節(jié)省功耗,然后等待下一次通信。網(wǎng)關(guān)固件流程如圖5所示。
4 服務(wù)器軟件開發(fā)
服務(wù)器端主要分為兩部分:一是OceanConnect物聯(lián)網(wǎng)平臺(tái)的設(shè)置;二是應(yīng)用服務(wù)器軟件開發(fā)。
OceanConnect物聯(lián)網(wǎng)平臺(tái)的設(shè)置主要是根據(jù)網(wǎng)關(guān)向服務(wù)器上傳數(shù)據(jù)的通信數(shù)據(jù)格式,進(jìn)行Profile定義、編解碼插件開發(fā)以及設(shè)置數(shù)據(jù)推送服務(wù)。
應(yīng)用服務(wù)器軟件開發(fā)主要包括接收由OceanConnect物聯(lián)網(wǎng)平臺(tái)推送的JSON數(shù)據(jù),對(duì)數(shù)據(jù)進(jìn)行解析和儲(chǔ)存,供用戶進(jìn)行查詢。應(yīng)用服務(wù)器軟件主要使用ASP.NET開發(fā)WebAPI接口,在POST接口中接收數(shù)據(jù),并對(duì)數(shù)據(jù)進(jìn)行解析和存儲(chǔ),當(dāng)接收到網(wǎng)關(guān)請求數(shù)據(jù)采集終端的地址時(shí),則可以根據(jù)設(shè)置好的數(shù)據(jù)采集模塊地址列表數(shù)據(jù)生成數(shù)據(jù)包,利用NB-IoT模塊上傳數(shù)據(jù)后的eDRX窗口下發(fā)預(yù)先設(shè)置好的地址列表數(shù)據(jù)。
5 結(jié)語
利用LoRa和NB-IoT無線通信技術(shù)設(shè)計(jì)無線網(wǎng)關(guān),用于野外數(shù)據(jù)采集等場合的無線通信,能夠較好地利用各自的優(yōu)勢,在一定范圍和特定的場景下降低無線通信的功耗和費(fèi)用,較其他通信模塊有更廣的適應(yīng)范圍。
參考文獻(xiàn)
[1]金恩曼,陳培余.一種智能大棚的溫濕度檢測系統(tǒng)[J].數(shù)字技術(shù)與應(yīng)用,2019(7):85-87.
[2]蔣震,王箏,曹中強(qiáng),等.基于NB-IoT的溫濕度采集系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].信息化研究,2018(6):63-69.
[3]冀汶莉,王佳豪,王新偉.基于LoRa的農(nóng)業(yè)大田土壤多參數(shù)監(jiān)測系統(tǒng)設(shè)計(jì)[J].無線電工程,2023(2):456-464.
[4]賈婷,安璐,廖明,等.基于STM32的鐵路運(yùn)輸站內(nèi)NB-IoT可視化云BAS系統(tǒng)設(shè)計(jì)[J].計(jì)算機(jī)測量與控制,2022(4):209-215.
(編輯 王雪芬)