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