張 琴, 戴 陽, 楊勝龍, 張 衡, 崔雪森
(1.中國水產科學研究院 東海水產研究所 農業部東海及遠洋漁業資源開發利用重點實驗室,上海 200090;2.上海海洋大學 工程學院,上海 201306)
水產養殖業的迅速發展,在水產養殖中,水質的優劣將會直接影響到養殖效益的高低,傳統的方式是通過人工使用儀表進行水質參數的采集,耗時耗力,采集范圍小,成本高,實時性差等缺點[1]。隨著無線通信技術的飛速發展,無線傳感器網絡(wireless sensor networks,WSNs)在各個領域得到了廣泛應用,大批的研究人員設計水質監測系統使用該技術,和傳統方法相比,擁有實時性高、智能化、可擴展性好等優點。有學者[2]提出基于WiFi進行數據的傳輸,此類方法傳輸帶寬寬,傳輸速率高,但是傳輸距離近,功耗較大,并不適合遠距離傳輸。大部分學者[3~6]采用ZigBee技術組建無線傳感器網絡,組網能力強,短距離,通過改變網絡拓撲類型來提高通信距離,雖然擴展了網絡覆蓋的范圍,但犧牲了電池使用壽命,抗干擾性和網絡容量。上述的無線傳輸技術均側重于構造低功耗局域網,對于大面積的高產成魚塘和海洋牧場等并不適合。LoRa技術是近兩年越來越廣泛使用的無線通信方式,屬于低功耗廣域網技術的一種[7]。
為了改進水產養殖水質參數采集的局限性,本文提出通過LoRa技術對采集的數據進行傳輸,設計一種基于LoRa技術的無線傳感器網絡,完成對水質參數進行大面積的實時采集和監控,采用星型網絡,降低組網的復雜度,進行靈活部署,構造低功耗遠距離的監測系統,符合實際需求。
對于不同的水產品對水質的要求也是不同的,因此選取水產養殖主要需求的溫度,pH值作為監測參數,進行實時監控。該系統的具體框架主要是由終端節點、無線網關和負責監測的上位機構成。將終端節點放置在待監測區域中,采用電池為終端節點供電,為提高節點的使用壽命。
在實際的水質監測中,節點由電池供電,能量的消耗決定系統工作周期,因此要求傳感器節點可以長時間工作,硬件結構設計要簡單化,減少不必要的能量消耗。無線傳感器網絡需要對數據進行高頻率的收發,能量的消耗主要是微控制器和射頻模塊,硬件設計中主要是對這兩部分進行低功耗設計。終端節點結構如圖1所示,包括電源模塊,傳感器模塊,主控模塊和SX1278射頻模塊組成。

圖1 無線傳感器節點結構
無線傳感器網絡的無線通信模塊選取Semtech公司開發的SX1278射頻模塊,主要采取LoRaTM遠程調制解調器。LoRa調制技術[8]采用的是基于線性調頻信號(Chirp)擴頻技術,同時結合了前向糾錯編碼和數字信號處理技術,與傳統的FSK調制技術相比,不僅擴大了無線通信鏈路的覆蓋范圍,而且還保持了低功耗的性能。用戶自行決定擴頻因子(SF),擴頻調制帶寬(BW)和糾錯率(CR)這三個關鍵參數,在鏈路預算、抗干擾性,數據速率和頻譜占用度之間達到平衡。SX1278的工作頻率為433 MHz,在同等的發射功率之下低頻的傳輸距離更遠,覆蓋范圍更大,可以彌補WiFi、藍牙、ZigBee等低功耗局域網技術的不足。SX1278的主要特性還有發射功率最大可以達到+20 dBm,擁有-148 dBm的高靈敏度,傳輸速率低,適合低速率通信,并采用星型的組網方式優化網絡結構,能節約中繼器成本,簡化安裝,延長使用壽命,可靠性高,滿足大面積的無線傳感器網絡的構建和進行數據的傳輸。
微功耗控制器使用較多的是TI公司的MSP430和ST(意法半導體)公司的STM8系列,在性能不相上下的情況下,選擇相對便宜的STM8L單片機,為了后期傳感器節點可以更好的推廣。STM8L[9]是一種8位的低功耗單片機,擁有其他模塊所需的SPI通信接口,小于1μA的實時時鐘和其他外設,內置4~32 KB的Flash,多達2 kB的SRAM,可以滿足數據采集所需的空間,可以在-40~+85 ℃的溫度下正常工作,有5種低功耗模式,分別是5.4 μA的低功耗運行模式、3.3 μA的低功耗等待模式、1.1 μA的主動停機模式(RTC運行)和350 nA的休眠模式,完全滿足低功耗系統的方案。除了硬件本身的低功耗特性,降低MCU功耗還可以對I/O接口進行處理,在不使用的情況下,設置為輸入口,防止能量的不必要消耗。
溫度傳感器采用DS18B20數字式溫度傳感器[10],直接輸出數字信號,不需要處理和轉換,具有體積小,精度高,超低的硬件開銷,抗干擾能力強,測量溫度范圍為-55~125 ℃,精度為±0.5 ℃,系統選用具有不銹鋼外殼的防水封裝結構,適合對水溫進行測量。單片機利用DS18B20單總線的特點,連接一個4.7 kΩ上拉電阻器,通過該導線對傳感器進行初始化并完成溫度的采集。
在水產養殖的過程中,pH是判斷水質參數的重要參數之一,本系統采用的是上海雷磁公司的E—201—C型,抗干擾能力強,電極為全屏蔽式,可以防止測量時外電場的干擾,由玻璃電極和參比電極組合的塑殼可充式復合電極,復合電極輸出的電壓信號為毫伏(mV)級,并且本身具有極大的內阻,電壓的變化幅度較小,需要設計調理電路,對信號進行放大和平移,將放大后的信號轉化為0~3.3 V,以達到微控制器所需要的A/D(模數)電壓。pH電極信號調理電路設計如圖2所示,采用的是精密雙路運算放大器TLC4502芯片,采用自校準技術,可以解決時漂和溫漂問題,進一步提高A/D轉換的精度,且硬件簡單。

圖2 pH值調理電路
無線傳感器網絡在完成水產養殖的水質監測功能的同時,功耗決定系統工作長短,由于水質監測波動范圍有限,并不需要一直監測水質參數信息,傳感器節點絕大部分時間是處于休眠狀態[11]。傳感器節點使用電池供電,假設電池初始容量為I,節點一個工作周期的能量消耗為I0,N代表傳感器節點的工作周期次數,可以得到節點工作周期的次數如下
N=I/I0
(1)
I0=Isltsl+Isetse+Irtr
(2)
式中Isltsl為節點休眠狀態的能耗,Isetse為節點發送數據的能耗,Irtr為節點接收數據的能耗,在本系統中傳感器節點一個工作周期為定值,是各個工作狀態時間之和。節點的工作周期次數可以表示為
(3)
在節點初始能量不變的情況下,要使節點工作周期次數增加,需要降低一個工作周期的能耗I0,通過式(3)可知,在一個工作周期之內,可以降低節點在各個狀態下的時間或者能耗。系統硬件已經選擇低功耗微控制器,通信模塊和大容量電池的情況下,需要合理設計軟件程序,增加節點使用期限。
在整個無線傳感器網絡中,傳感器和主控模塊所需能耗的分量較小,能量的消耗主要是無線通信模塊,合理有效地設置無線通信模塊的消耗,才能使整個系統達到低功耗設計。如表1所示,是SX1278射頻芯片的典型功耗規格,可知休眠狀態的能耗遠遠小于接收和發送模式下的能耗,即在保證節點完成發送接收數據的前提下,進入休眠模式。

表1 SX1278各狀態下的功耗規格
無線傳感器網絡中,媒體訪問控制(MAC)的性能直接關系到整個網絡的性能,在MAC協議中傳感器節點的發射功率是固定的,但是在實際應用中,可通過合理設置不同的發射功率,監測不同大小的魚塘,達到降低功耗的目的。圖3是無線射頻芯片在發送狀態下的不同發射功率能耗情況。

圖3 SX1278發射功率與發射模式關系
目前,LoRa網關[12]是基于LoRaWAN協議設計的,針對終端集中的星型組網設計的,采用SX1301射頻芯片和樹莓派組成,該芯片擁有7個LoRa信道和一個FSK通信信道,可以在同一時間接收多個終端節點數據,可以優先選擇信道,設備連接數量可以達到幾千到幾萬個,但成本較高,對于連接節點數量較少的小型組網項目并不適用,故采用SX1278設計網關,為單信道,多個節點共用同一信道。網關主要功能是采集各節點傳輸的數據,并將數據通過串口傳輸至上位機,具體流程如圖4(a)所示。
傳感器節點使用電池供電初始能量有限,在設計時既要完成水質參數數據采集,也要考慮無線射頻模塊在各個狀態下能量消耗的問題,所以使傳感器節點盡可能保持在休眠模式。傳感器節點主要的功能是采集傳感器的數據,并通過LoRa網絡將采集的數據傳輸至網關。傳感器節點上電對SPI、傳感器和SX1278射頻芯片等進行初始化操作,由于節點不知與網關的相對位置,節點發射功率初始狀態設置為最大值,掃描信道,尋找網關建立LoRa網絡,網關得到節點唯一的ID信息,與魚塘一一匹配。節點加入網絡中,采集傳感器數據,定時通過無線模塊發送給網關,隨后進入休眠模式,降低功耗。具體流程如圖4(b)所示。

圖4 網關、傳感器節點程序流程
在無線傳感器網絡中,媒體訪問控制(MAC)的性能直接關系到整個網絡的性能,不少研究人員對于不同的設計目標和應用場景,設計MAC協議的側重點也不盡相同,設計MAC協議主要考慮的是低功耗,避免沖突、公平性和信道的利用率等[13]。結合SX1278射頻芯片和MCU,采用MAC協議中的一類時分多址(TDMA)協議,丟棄簡單但是耗能的競爭型CSMA協議,完成節點對信道的訪問。TDMA協議[14]是將時間分割成周期性的時元,把時元再分為互不重疊的幀,每一幀根據具體應用劃分一定數量的時隙,節點按照分割的時隙訪問信道,避免沖突,不存在碰撞的問題,在非傳輸時隙節點可以進入睡眠模式,從而降低系統的功耗。使用無競爭的TDMA協議組網最重要的要求為時隙同步,網關定時發送時間基準,每一個時元周期發送一個同步幀,系統重新進行時隙同步,減少網絡對時鐘穩定性的嚴格要求。網關開始發送同步幀直至結束,記為ΔT,節點在t1時刻接收到網關發送的同步幀,節點在未接收完整同步幀時,并不知道自己在t1時刻接收的是同步幀,直到t2同步幀接收完成。接收和發送同步幀的時間是相同的,可以推算出節點接收同步幀的時刻t1=t2-ΔT,作為時隙的起始時間。
網關與節點通過TDMA協議進行通信,再結合通信距離對發射功率進行設置,同步幀每隔2 min發送一次進行時隙同步,根據系統節點的個數和傳輸數據的大小劃分幀,節點在自身時隙中與網關的通信協議如表2所示。通信協議由前導碼、節點地址、數據長度、數據和CRC16位校驗組成,總共16個字節,結合SX1278的傳輸速率將時隙設置為200 ms,節點定為4個,節點在自身時隙中,并不是一直在傳輸數據,包含一部分的保護時間,因為劃分時隙有一定的誤差,節點時間基準校準之后,與網關不可能完全一致,各節點之間可能會存在部分重疊,保護時間可以避免對傳輸數據產生影響。

表2 通信協議數據格式
測試地點選擇在相對空曠地帶,建筑物較少,通信距離參數設置為節點的中心頻率設置為433 MHz,發射功率為+17 dBm,帶寬(BW)為125 kHz,擴頻因子(SF)為10,糾錯編碼率為4/5,數據傳輸速率約976 bps,節點通信數據與系統實際工作大小相同設置為16字節,網關通過串口與PC機相連,用串口調試助手記錄數據,通過統計數據,計算通信丟包率和距離,測試結果如表3所示,在2 km范圍內,通信質量良好。傳輸距離為4.7 km左右的情況下,網關徹底接收不到節點傳輸的數據。

表3 通信距離測試
無線傳感器節點采用2節5號AA電池供電,容量為2 800 mAh,數據包長度為16個字節。低功耗休眠狀態指STM8L和SX1278處于休眠模式,節點的電流為Csleep=0.005 5 mA,休眠時間t1=599.6 s,節點中SX1278的發射功率設為最大值,節點處于發送模式下的電流為Ctr=120.21 mA,t2=0.2 s,節點周期性進行時隙同步,接收同步幀,接收模式下的電流為Cre=12.12 mA,t3=0.2 s。節點工作周期設置為10 min工作一次,絕大部分的時間是處于休眠狀態,數據采集發送的時間很短,結合通信協議可以計算節點一個周期的能耗為
Ct=(Csleept1+Ctrt2+Cret3)/600?0.049 6 mA
(4)
計算節點1 h的能耗為
C=3 600Ct/600?0.297 6 mA
(5)
電池容量為2 800 mAh,可知節點的壽命為
L=2 800/C?9 409h
(6)
通過計算可知節點工作周期為10 min,可工作9 409 h,節點具有良好的低功耗特性,可通過適當的增加節點工作周期,延長節點的使用壽命。
本文將低功耗廣域網技術應用在水產養殖水質參數監測系統中,結合LoRa傳輸技術、傳感器技術等,實現對溫度,pH值的連續監測,完成對數據的自動采集和傳輸。設計了一種改進的通信協議和組網方式,降低節點能量的消耗,并保持系統遠距離傳輸的特性。該系統較好地解決了水質監測覆蓋范圍小,功耗高的問題,系統組網方式簡單,靈活性好,適用于大型水產養殖場,近海或海洋牧場的水質監測。