張 琴, 戴 陽, 楊勝龍, 張 衡, 崔雪森
(1.中國水產(chǎn)科學研究院 東海水產(chǎn)研究所 農(nóng)業(yè)部東海及遠洋漁業(yè)資源開發(fā)利用重點實驗室,上海 200090;2.上海海洋大學 工程學院,上海 201306)
水產(chǎn)養(yǎng)殖業(yè)的迅速發(fā)展,在水產(chǎn)養(yǎng)殖中,水質的優(yōu)劣將會直接影響到養(yǎng)殖效益的高低,傳統(tǒng)的方式是通過人工使用儀表進行水質參數(shù)的采集,耗時耗力,采集范圍小,成本高,實時性差等缺點[1]。隨著無線通信技術的飛速發(fā)展,無線傳感器網(wǎng)絡(wireless sensor networks,WSNs)在各個領域得到了廣泛應用,大批的研究人員設計水質監(jiān)測系統(tǒng)使用該技術,和傳統(tǒng)方法相比,擁有實時性高、智能化、可擴展性好等優(yōu)點。有學者[2]提出基于WiFi進行數(shù)據(jù)的傳輸,此類方法傳輸帶寬寬,傳輸速率高,但是傳輸距離近,功耗較大,并不適合遠距離傳輸。大部分學者[3~6]采用ZigBee技術組建無線傳感器網(wǎng)絡,組網(wǎng)能力強,短距離,通過改變網(wǎng)絡拓撲類型來提高通信距離,雖然擴展了網(wǎng)絡覆蓋的范圍,但犧牲了電池使用壽命,抗干擾性和網(wǎng)絡容量。上述的無線傳輸技術均側重于構造低功耗局域網(wǎng),對于大面積的高產(chǎn)成魚塘和海洋牧場等并不適合。LoRa技術是近兩年越來越廣泛使用的無線通信方式,屬于低功耗廣域網(wǎng)技術的一種[7]。
為了改進水產(chǎn)養(yǎng)殖水質參數(shù)采集的局限性,本文提出通過LoRa技術對采集的數(shù)據(jù)進行傳輸,設計一種基于LoRa技術的無線傳感器網(wǎng)絡,完成對水質參數(shù)進行大面積的實時采集和監(jiān)控,采用星型網(wǎng)絡,降低組網(wǎng)的復雜度,進行靈活部署,構造低功耗遠距離的監(jiān)測系統(tǒng),符合實際需求。
對于不同的水產(chǎn)品對水質的要求也是不同的,因此選取水產(chǎn)養(yǎng)殖主要需求的溫度,pH值作為監(jiān)測參數(shù),進行實時監(jiān)控。該系統(tǒng)的具體框架主要是由終端節(jié)點、無線網(wǎng)關和負責監(jiān)測的上位機構成。將終端節(jié)點放置在待監(jiān)測區(qū)域中,采用電池為終端節(jié)點供電,為提高節(jié)點的使用壽命。
在實際的水質監(jiān)測中,節(jié)點由電池供電,能量的消耗決定系統(tǒng)工作周期,因此要求傳感器節(jié)點可以長時間工作,硬件結構設計要簡單化,減少不必要的能量消耗。無線傳感器網(wǎng)絡需要對數(shù)據(jù)進行高頻率的收發(fā),能量的消耗主要是微控制器和射頻模塊,硬件設計中主要是對這兩部分進行低功耗設計。終端節(jié)點結構如圖1所示,包括電源模塊,傳感器模塊,主控模塊和SX1278射頻模塊組成。
圖1 無線傳感器節(jié)點結構
無線傳感器網(wǎng)絡的無線通信模塊選取Semtech公司開發(fā)的SX1278射頻模塊,主要采取LoRaTM遠程調制解調器。LoRa調制技術[8]采用的是基于線性調頻信號(Chirp)擴頻技術,同時結合了前向糾錯編碼和數(shù)字信號處理技術,與傳統(tǒng)的FSK調制技術相比,不僅擴大了無線通信鏈路的覆蓋范圍,而且還保持了低功耗的性能。用戶自行決定擴頻因子(SF),擴頻調制帶寬(BW)和糾錯率(CR)這三個關鍵參數(shù),在鏈路預算、抗干擾性,數(shù)據(jù)速率和頻譜占用度之間達到平衡。SX1278的工作頻率為433 MHz,在同等的發(fā)射功率之下低頻的傳輸距離更遠,覆蓋范圍更大,可以彌補WiFi、藍牙、ZigBee等低功耗局域網(wǎng)技術的不足。SX1278的主要特性還有發(fā)射功率最大可以達到+20 dBm,擁有-148 dBm的高靈敏度,傳輸速率低,適合低速率通信,并采用星型的組網(wǎng)方式優(yōu)化網(wǎng)絡結構,能節(jié)約中繼器成本,簡化安裝,延長使用壽命,可靠性高,滿足大面積的無線傳感器網(wǎng)絡的構建和進行數(shù)據(jù)的傳輸。
微功耗控制器使用較多的是TI公司的MSP430和ST(意法半導體)公司的STM8系列,在性能不相上下的情況下,選擇相對便宜的STM8L單片機,為了后期傳感器節(jié)點可以更好的推廣。STM8L[9]是一種8位的低功耗單片機,擁有其他模塊所需的SPI通信接口,小于1μA的實時時鐘和其他外設,內置4~32 KB的Flash,多達2 kB的SRAM,可以滿足數(shù)據(jù)采集所需的空間,可以在-40~+85 ℃的溫度下正常工作,有5種低功耗模式,分別是5.4 μA的低功耗運行模式、3.3 μA的低功耗等待模式、1.1 μA的主動停機模式(RTC運行)和350 nA的休眠模式,完全滿足低功耗系統(tǒng)的方案。除了硬件本身的低功耗特性,降低MCU功耗還可以對I/O接口進行處理,在不使用的情況下,設置為輸入口,防止能量的不必要消耗。
溫度傳感器采用DS18B20數(shù)字式溫度傳感器[10],直接輸出數(shù)字信號,不需要處理和轉換,具有體積小,精度高,超低的硬件開銷,抗干擾能力強,測量溫度范圍為-55~125 ℃,精度為±0.5 ℃,系統(tǒng)選用具有不銹鋼外殼的防水封裝結構,適合對水溫進行測量。單片機利用DS18B20單總線的特點,連接一個4.7 kΩ上拉電阻器,通過該導線對傳感器進行初始化并完成溫度的采集。
在水產(chǎn)養(yǎng)殖的過程中,pH是判斷水質參數(shù)的重要參數(shù)之一,本系統(tǒng)采用的是上海雷磁公司的E—201—C型,抗干擾能力強,電極為全屏蔽式,可以防止測量時外電場的干擾,由玻璃電極和參比電極組合的塑殼可充式復合電極,復合電極輸出的電壓信號為毫伏(mV)級,并且本身具有極大的內阻,電壓的變化幅度較小,需要設計調理電路,對信號進行放大和平移,將放大后的信號轉化為0~3.3 V,以達到微控制器所需要的A/D(模數(shù))電壓。pH電極信號調理電路設計如圖2所示,采用的是精密雙路運算放大器TLC4502芯片,采用自校準技術,可以解決時漂和溫漂問題,進一步提高A/D轉換的精度,且硬件簡單。
圖2 pH值調理電路
無線傳感器網(wǎng)絡在完成水產(chǎn)養(yǎng)殖的水質監(jiān)測功能的同時,功耗決定系統(tǒng)工作長短,由于水質監(jiān)測波動范圍有限,并不需要一直監(jiān)測水質參數(shù)信息,傳感器節(jié)點絕大部分時間是處于休眠狀態(tài)[11]。傳感器節(jié)點使用電池供電,假設電池初始容量為I,節(jié)點一個工作周期的能量消耗為I0,N代表傳感器節(jié)點的工作周期次數(shù),可以得到節(jié)點工作周期的次數(shù)如下
N=I/I0
(1)
I0=Isltsl+Isetse+Irtr
(2)
式中Isltsl為節(jié)點休眠狀態(tài)的能耗,Isetse為節(jié)點發(fā)送數(shù)據(jù)的能耗,Irtr為節(jié)點接收數(shù)據(jù)的能耗,在本系統(tǒng)中傳感器節(jié)點一個工作周期為定值,是各個工作狀態(tài)時間之和。節(jié)點的工作周期次數(shù)可以表示為
(3)
在節(jié)點初始能量不變的情況下,要使節(jié)點工作周期次數(shù)增加,需要降低一個工作周期的能耗I0,通過式(3)可知,在一個工作周期之內,可以降低節(jié)點在各個狀態(tài)下的時間或者能耗。系統(tǒng)硬件已經(jīng)選擇低功耗微控制器,通信模塊和大容量電池的情況下,需要合理設計軟件程序,增加節(jié)點使用期限。
在整個無線傳感器網(wǎng)絡中,傳感器和主控模塊所需能耗的分量較小,能量的消耗主要是無線通信模塊,合理有效地設置無線通信模塊的消耗,才能使整個系統(tǒng)達到低功耗設計。如表1所示,是SX1278射頻芯片的典型功耗規(guī)格,可知休眠狀態(tài)的能耗遠遠小于接收和發(fā)送模式下的能耗,即在保證節(jié)點完成發(fā)送接收數(shù)據(jù)的前提下,進入休眠模式。
表1 SX1278各狀態(tài)下的功耗規(guī)格
無線傳感器網(wǎng)絡中,媒體訪問控制(MAC)的性能直接關系到整個網(wǎng)絡的性能,在MAC協(xié)議中傳感器節(jié)點的發(fā)射功率是固定的,但是在實際應用中,可通過合理設置不同的發(fā)射功率,監(jiān)測不同大小的魚塘,達到降低功耗的目的。圖3是無線射頻芯片在發(fā)送狀態(tài)下的不同發(fā)射功率能耗情況。
圖3 SX1278發(fā)射功率與發(fā)射模式關系
目前,LoRa網(wǎng)關[12]是基于LoRaWAN協(xié)議設計的,針對終端集中的星型組網(wǎng)設計的,采用SX1301射頻芯片和樹莓派組成,該芯片擁有7個LoRa信道和一個FSK通信信道,可以在同一時間接收多個終端節(jié)點數(shù)據(jù),可以優(yōu)先選擇信道,設備連接數(shù)量可以達到幾千到幾萬個,但成本較高,對于連接節(jié)點數(shù)量較少的小型組網(wǎng)項目并不適用,故采用SX1278設計網(wǎng)關,為單信道,多個節(jié)點共用同一信道。網(wǎng)關主要功能是采集各節(jié)點傳輸?shù)臄?shù)據(jù),并將數(shù)據(jù)通過串口傳輸至上位機,具體流程如圖4(a)所示。
傳感器節(jié)點使用電池供電初始能量有限,在設計時既要完成水質參數(shù)數(shù)據(jù)采集,也要考慮無線射頻模塊在各個狀態(tài)下能量消耗的問題,所以使傳感器節(jié)點盡可能保持在休眠模式。傳感器節(jié)點主要的功能是采集傳感器的數(shù)據(jù),并通過LoRa網(wǎng)絡將采集的數(shù)據(jù)傳輸至網(wǎng)關。傳感器節(jié)點上電對SPI、傳感器和SX1278射頻芯片等進行初始化操作,由于節(jié)點不知與網(wǎng)關的相對位置,節(jié)點發(fā)射功率初始狀態(tài)設置為最大值,掃描信道,尋找網(wǎng)關建立LoRa網(wǎng)絡,網(wǎng)關得到節(jié)點唯一的ID信息,與魚塘一一匹配。節(jié)點加入網(wǎng)絡中,采集傳感器數(shù)據(jù),定時通過無線模塊發(fā)送給網(wǎng)關,隨后進入休眠模式,降低功耗。具體流程如圖4(b)所示。
圖4 網(wǎng)關、傳感器節(jié)點程序流程
在無線傳感器網(wǎng)絡中,媒體訪問控制(MAC)的性能直接關系到整個網(wǎng)絡的性能,不少研究人員對于不同的設計目標和應用場景,設計MAC協(xié)議的側重點也不盡相同,設計MAC協(xié)議主要考慮的是低功耗,避免沖突、公平性和信道的利用率等[13]。結合SX1278射頻芯片和MCU,采用MAC協(xié)議中的一類時分多址(TDMA)協(xié)議,丟棄簡單但是耗能的競爭型CSMA協(xié)議,完成節(jié)點對信道的訪問。TDMA協(xié)議[14]是將時間分割成周期性的時元,把時元再分為互不重疊的幀,每一幀根據(jù)具體應用劃分一定數(shù)量的時隙,節(jié)點按照分割的時隙訪問信道,避免沖突,不存在碰撞的問題,在非傳輸時隙節(jié)點可以進入睡眠模式,從而降低系統(tǒng)的功耗。使用無競爭的TDMA協(xié)議組網(wǎng)最重要的要求為時隙同步,網(wǎng)關定時發(fā)送時間基準,每一個時元周期發(fā)送一個同步幀,系統(tǒng)重新進行時隙同步,減少網(wǎng)絡對時鐘穩(wěn)定性的嚴格要求。網(wǎng)關開始發(fā)送同步幀直至結束,記為ΔT,節(jié)點在t1時刻接收到網(wǎng)關發(fā)送的同步幀,節(jié)點在未接收完整同步幀時,并不知道自己在t1時刻接收的是同步幀,直到t2同步幀接收完成。接收和發(fā)送同步幀的時間是相同的,可以推算出節(jié)點接收同步幀的時刻t1=t2-ΔT,作為時隙的起始時間。
網(wǎng)關與節(jié)點通過TDMA協(xié)議進行通信,再結合通信距離對發(fā)射功率進行設置,同步幀每隔2 min發(fā)送一次進行時隙同步,根據(jù)系統(tǒng)節(jié)點的個數(shù)和傳輸數(shù)據(jù)的大小劃分幀,節(jié)點在自身時隙中與網(wǎng)關的通信協(xié)議如表2所示。通信協(xié)議由前導碼、節(jié)點地址、數(shù)據(jù)長度、數(shù)據(jù)和CRC16位校驗組成,總共16個字節(jié),結合SX1278的傳輸速率將時隙設置為200 ms,節(jié)點定為4個,節(jié)點在自身時隙中,并不是一直在傳輸數(shù)據(jù),包含一部分的保護時間,因為劃分時隙有一定的誤差,節(jié)點時間基準校準之后,與網(wǎng)關不可能完全一致,各節(jié)點之間可能會存在部分重疊,保護時間可以避免對傳輸數(shù)據(jù)產(chǎn)生影響。
表2 通信協(xié)議數(shù)據(jù)格式
測試地點選擇在相對空曠地帶,建筑物較少,通信距離參數(shù)設置為節(jié)點的中心頻率設置為433 MHz,發(fā)射功率為+17 dBm,帶寬(BW)為125 kHz,擴頻因子(SF)為10,糾錯編碼率為4/5,數(shù)據(jù)傳輸速率約976 bps,節(jié)點通信數(shù)據(jù)與系統(tǒng)實際工作大小相同設置為16字節(jié),網(wǎng)關通過串口與PC機相連,用串口調試助手記錄數(shù)據(jù),通過統(tǒng)計數(shù)據(jù),計算通信丟包率和距離,測試結果如表3所示,在2 km范圍內,通信質量良好。傳輸距離為4.7 km左右的情況下,網(wǎng)關徹底接收不到節(jié)點傳輸?shù)臄?shù)據(jù)。
表3 通信距離測試
無線傳感器節(jié)點采用2節(jié)5號AA電池供電,容量為2 800 mAh,數(shù)據(jù)包長度為16個字節(jié)。低功耗休眠狀態(tài)指STM8L和SX1278處于休眠模式,節(jié)點的電流為Csleep=0.005 5 mA,休眠時間t1=599.6 s,節(jié)點中SX1278的發(fā)射功率設為最大值,節(jié)點處于發(fā)送模式下的電流為Ctr=120.21 mA,t2=0.2 s,節(jié)點周期性進行時隙同步,接收同步幀,接收模式下的電流為Cre=12.12 mA,t3=0.2 s。節(jié)點工作周期設置為10 min工作一次,絕大部分的時間是處于休眠狀態(tài),數(shù)據(jù)采集發(fā)送的時間很短,結合通信協(xié)議可以計算節(jié)點一個周期的能耗為
Ct=(Csleept1+Ctrt2+Cret3)/600?0.049 6 mA
(4)
計算節(jié)點1 h的能耗為
C=3 600Ct/600?0.297 6 mA
(5)
電池容量為2 800 mAh,可知節(jié)點的壽命為
L=2 800/C?9 409h
(6)
通過計算可知節(jié)點工作周期為10 min,可工作9 409 h,節(jié)點具有良好的低功耗特性,可通過適當?shù)脑黾庸?jié)點工作周期,延長節(jié)點的使用壽命。
本文將低功耗廣域網(wǎng)技術應用在水產(chǎn)養(yǎng)殖水質參數(shù)監(jiān)測系統(tǒng)中,結合LoRa傳輸技術、傳感器技術等,實現(xiàn)對溫度,pH值的連續(xù)監(jiān)測,完成對數(shù)據(jù)的自動采集和傳輸。設計了一種改進的通信協(xié)議和組網(wǎng)方式,降低節(jié)點能量的消耗,并保持系統(tǒng)遠距離傳輸?shù)奶匦?。該系統(tǒng)較好地解決了水質監(jiān)測覆蓋范圍小,功耗高的問題,系統(tǒng)組網(wǎng)方式簡單,靈活性好,適用于大型水產(chǎn)養(yǎng)殖場,近?;蚝Q竽翀龅乃|監(jiān)測。