孔 兵,余 梅,喬 欣
(1.巢湖學院 電子工程學院;2.巢湖學院 化學與材料工程學院,安徽 合肥 238000)
我國水域遼闊,是水產(chǎn)養(yǎng)殖業(yè)的天然養(yǎng)殖場,水產(chǎn)養(yǎng)殖業(yè)在國民經(jīng)濟發(fā)展中具有舉足輕重的作用[1-2]。由2020年國家統(tǒng)計局數(shù)據(jù)可知,我國水產(chǎn)品產(chǎn)量為6.545×107t[3],其中水產(chǎn)品養(yǎng)殖產(chǎn)量占79.68%,遠遠超過了自然捕撈的產(chǎn)量。
養(yǎng)殖水體安全與水產(chǎn)品的產(chǎn)量息息相關(guān),若水域環(huán)境遭受污染則會威脅養(yǎng)殖業(yè)的質(zhì)量安全,導致產(chǎn)量減少,所以需要實時有效地對水質(zhì)情況進行檢測,根據(jù)出現(xiàn)的水質(zhì)問題,采取積極對策[4]。早期的水質(zhì)監(jiān)測是離線的,通過對測試點現(xiàn)場取樣,再利用水質(zhì)測定儀進行檢測,不僅檢測周期長、耗時耗力,而且不能對水質(zhì)條件進行實時監(jiān)測[5-6]。后來,由于互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,基于無線傳輸網(wǎng)絡的水質(zhì)監(jiān)測技術(shù)逐步完善起來。文獻[7]基于紫蜂(ZigBee)技術(shù)設計了水質(zhì)遠程監(jiān)測系統(tǒng),利用終端節(jié)點組網(wǎng)技術(shù)監(jiān)測養(yǎng)殖水的溫度、pH值及其溶解氧數(shù)據(jù)。文獻[8]基于ZigBee協(xié)議的水質(zhì)監(jiān)測系統(tǒng),采用ZigBee技術(shù)將檢測的數(shù)據(jù)上傳到主機,利用Web界面或者手機APP展示實時檢測數(shù)據(jù)。文獻[9]基于ZigBee通信的水質(zhì)監(jiān)控系統(tǒng),通過多參數(shù)的傳感器,實現(xiàn)對數(shù)個區(qū)域監(jiān)測的實時數(shù)據(jù)采集及圖形化顯示。文獻[10]設計的水質(zhì)監(jiān)測系統(tǒng)結(jié)合了ZigBee技術(shù)和通用分組無線服務(General Packet Radio Service,GPRS)技術(shù),利用ZigBee技術(shù)采集和匯總節(jié)點信息,并于節(jié)點匯集處通過GPRS上傳數(shù)據(jù),實現(xiàn)了低功耗多點遠程實時監(jiān)控。以文獻[10]為基礎(chǔ),文獻[11]融入了自適應高速數(shù)據(jù)的采樣及網(wǎng)絡拓撲的優(yōu)化,從而加快了數(shù)據(jù)的傳輸。文獻[12]基于GPRS移動通信的遠程可控水質(zhì)監(jiān)測船,檢測員可以實時獲得水質(zhì)檢測數(shù)據(jù)以及船只所處位置,且監(jiān)測范圍廣。上述研究涉及的水質(zhì)監(jiān)測系統(tǒng)是基于ZigBee或GPRS技術(shù)實現(xiàn)的。ZigBee技術(shù)雖有一定的優(yōu)勢,但該協(xié)議開發(fā)周期長、難度大且傳輸距離短。若未配備功放器及低噪聲放大器,ZigBee 系統(tǒng)在空曠場地的傳輸距離不高于110 m;若增加功放器及低噪聲放大器,ZigBee雖然能擴大傳輸距離,但功耗將顯著提高。對于一些大規(guī)模養(yǎng)殖基地而言,必須通過增加傳感器節(jié)點數(shù)目來解決覆蓋率問題,成本將大幅度提高,不能滿足實際應用的需求。GPRS雖然能用于較廣區(qū)域的水質(zhì)監(jiān)測,但是功耗較大,成本高,須借助基站通信,造成了其使用局限性。
LoRa(Long Range Radio)技術(shù)是一種面向無線傳感網(wǎng)絡和應用控制的通信技術(shù),集成了數(shù)字擴頻、數(shù)字信號處理及前向糾錯編碼3種技術(shù),具有功耗低、傳輸距離遠、抗干擾性強等優(yōu)點,可以在實現(xiàn)最遠距離傳輸、最低功率消耗的同時盡可能地簡化系統(tǒng),達到降低成本的目的[13]。本文設計了一種基于LoRa的水質(zhì)監(jiān)測系統(tǒng),以水溫、濁度、pH值及溶解氧為水質(zhì)特征參數(shù),進行采集模塊、無線傳輸自組網(wǎng)及云平臺的軟硬件設計,彌補了現(xiàn)有水質(zhì)監(jiān)測系統(tǒng)的不足,實現(xiàn)了大面積水產(chǎn)養(yǎng)殖水質(zhì)監(jiān)測的智慧化。
圖1 菱形網(wǎng)絡拓撲結(jié)構(gòu)
組網(wǎng)構(gòu)架由終端節(jié)點、網(wǎng)關(guān)、NS、應用服務器組成。根據(jù)水產(chǎn)養(yǎng)殖的水質(zhì)要求,結(jié)合LoRa技術(shù)特點選用菱形組網(wǎng)方式,拓撲結(jié)構(gòu)如圖1所示。該方式可以利用最少節(jié)點數(shù)實現(xiàn)對監(jiān)測水域的完全覆蓋,又因為在其內(nèi)部具有數(shù)條通信鏈路與終端節(jié)點連接,當個別集中器節(jié)點損壞時,不會對終端節(jié)點發(fā)送數(shù)據(jù)造成影響,方便系統(tǒng)的維護和管理,對終端節(jié)點出現(xiàn)的問題能夠快速解決,增強了系統(tǒng)的穩(wěn)定性及可靠性。
系統(tǒng)整體結(jié)構(gòu)由前端展示、云服務器、集中器節(jié)點、終端節(jié)點及數(shù)據(jù)采集組成,其中數(shù)據(jù)采集模塊通過串口和 LoRa 通信終端節(jié)點傳輸數(shù)據(jù),終端節(jié)點利用LoRa 射頻技術(shù)與集中器節(jié)點無線連接。在通信設置范圍內(nèi),終端節(jié)點分布于浮標上,彼此獨立無干擾,并將數(shù)據(jù)采集模塊采集的水質(zhì)數(shù)據(jù)發(fā)送給集中器節(jié)點,集中器節(jié)點再將數(shù)據(jù)通過無線保真技術(shù)(WiFi)發(fā)送至云服務器,最后到達云平臺展示。
系統(tǒng)硬件總體結(jié)構(gòu)由數(shù)據(jù)采集端模塊和LoRa無線節(jié)點模塊(包括終端及集中器)組成,能夠?qū)崿F(xiàn)信號采集及無線通信,如圖2所示。
圖2 系統(tǒng)硬件結(jié)構(gòu)
數(shù)據(jù)采集端模塊主要由電源模塊、信號采集模塊、STM32F1單片機、串口通信模塊及存儲模塊等組成,系統(tǒng)的主控芯片選用STM32F103C8T6,完成對水質(zhì)數(shù)據(jù)上傳及對該系統(tǒng)的下行控制;參考水產(chǎn)養(yǎng)殖水域環(huán)境對水質(zhì)的要求[14],配置水溫、溶解氧、pH值及濁度4個關(guān)鍵性能指標顯示水域環(huán)境,相應傳感器固定在浮標上,主要參數(shù)如表1所示。
表1 傳感器性能參數(shù)
LoRa無線節(jié)點模塊由Ai-Thinker Ra-01通信模塊、STM32L151C8T6單片機、數(shù)據(jù)交互模塊及天線模塊等組成,其中通信模塊基于SX1278 核心芯片[15]設計。數(shù)據(jù)交互模塊由三部分構(gòu)成:第一部分為通過MCU引出的RX(TX)管腳,能夠串口通信于數(shù)據(jù)采集端;第二部分為與PC端連接的USB接口;第三部分為用來燒寫程序的仿真接口電路。天線模塊選用棒狀天線(頻率433 MHz),來提高無線通信的效率。系統(tǒng)的終端節(jié)點、集中器節(jié)點在相同信道內(nèi)都選用125 kHz帶寬的SX1278核心芯片,利用時分模式將數(shù)個終端節(jié)點通信于單獨的集中器節(jié)點。
數(shù)據(jù)采集電路主要包括光隔離模塊及MAX485芯片,如圖3所示。J1與傳感器連接,利用MAX485轉(zhuǎn)換信號,再通過光隔離模塊傳輸至單片機。當停止采集后,單片機控制電源鍵斷開電路,此時RXD、D/R及TXD都為高電平輸出信號,信號線不存在漏電流,從而實現(xiàn)了零功耗待機。
圖3 數(shù)據(jù)采集電路
選用CH340T作為USB數(shù)據(jù)通信驅(qū)動電路的主控芯片,能夠達到USB轉(zhuǎn)串口的目的,并與Windows系統(tǒng)的計算機端的串口應用程序兼容。外圍電路由若干電容、1N4148以及12 MHz晶振等元件構(gòu)成,其中在地和第5引腳間串聯(lián)0.01 μF的去耦電容,VCC引腳一方面與供電電壓連接,為電路提供5 V電壓,另一方面又利用0.1 μF去耦電容和地相連。USB驅(qū)動電路如圖4(a)所示。
LoRa驅(qū)動電路如圖4(b)所示。電路通過SPI總線和STM32控制芯片相連,復位腳NRESET低電平有效,數(shù)據(jù)接口和單片機的I/O口連接,方便操作數(shù)據(jù)模式;ANT腳與50 Ω同軸天線相連。最后在集中器節(jié)點的微控制器內(nèi)留存一個串口,用來連接WiFi模塊,實現(xiàn)了云平臺和集中器的無線連接。
數(shù)據(jù)采集端程序設計主要包括系統(tǒng)初始化、數(shù)據(jù)采集及處理存儲等部分[16],程序總體框架如圖5所示。系統(tǒng)開啟后,先執(zhí)行系統(tǒng)初始化,然后通過定時函數(shù),為系統(tǒng)采集數(shù)據(jù)設定時間標準,即系統(tǒng)程序每10 min循環(huán)一次,在10 min循環(huán)周期內(nèi),每隔1 min采集一次數(shù)據(jù),并將數(shù)據(jù)臨時保存于結(jié)構(gòu)體數(shù)組中,待10次數(shù)據(jù)采集完成后,求其平均值并保存至SD卡內(nèi),最后利用串口通信傳送到 LoRa無線通信模塊。當數(shù)據(jù)處理結(jié)束時,系統(tǒng)將重新循環(huán)等待下一指令。
(a)USB驅(qū)動電路 (b) LoRa驅(qū)動電路
圖5 數(shù)據(jù)采集模塊框架圖
針對系統(tǒng)中水溫傳感器、溶解氧傳感器、pH值傳感器及濁度傳感器的輸出量不同,分別進行程序設計。前3種傳感器的輸出信號為數(shù)字量,選用遵循ModBus-RTU 標準協(xié)議的RS485通信接口,程序模塊包括485協(xié)議初始化、CRC數(shù)據(jù)校驗、實時數(shù)據(jù)讀取、接收、處理等。濁度傳感器的輸出信號模擬量,程序模塊由A/D采集初始化、底層驅(qū)動、通道選擇等組成。若同時選用上述兩類傳感器時,須設置設備地址。
串口通信程序由兩部分組成:一部分為數(shù)據(jù)采集模塊和 LoRa 無線模塊間的通信聯(lián)系,數(shù)據(jù)采集端的微處理STM32利用串口(RX、TX)把數(shù)據(jù)傳輸至 LoRa 無線通信節(jié)點端的STM32L1單片機,以便相互間交換數(shù)據(jù)。另一部分為 LoRa 無線通信節(jié)點端利用CH340T芯片把TTL 信號變成 USB 信號,和PC端進行數(shù)據(jù)傳輸,利用串口助手能夠?qū)?jié)點端輸送數(shù)據(jù)。程序設計如圖6所示,首先對串口參數(shù)初始化,編輯時鐘使能、串口復位、配置端口模式、串口參數(shù)的初始化、初始化中斷、配置及串口使能。利用USART_SR狀態(tài)寄存器進行串口狀態(tài)讀取[17],同時USART_DR數(shù)據(jù)寄存器進行數(shù)據(jù)的發(fā)送和接收,通信結(jié)束,清除狀態(tài)標志位和數(shù)據(jù)緩存區(qū),終端節(jié)點收到數(shù)據(jù)后再利用回調(diào)函數(shù)處理數(shù)據(jù)。
可靠、穩(wěn)定的 MAC層協(xié)議是無線通信組網(wǎng)能夠通信成功的前提條件[18]。MAC協(xié)議具有3種劃分形式:基于信道劃分的時分、頻分、碼分協(xié)議;基于隨機訪問的ALOHA、CSMA/CD、CSMA/CA協(xié)議;基于輪訊訪問的主節(jié)點輪詢、工業(yè)ModBus通信協(xié)議??紤]到LoRa技術(shù)的節(jié)點通信特點及組網(wǎng)設計要求,選擇時分復用形式,即每個終端節(jié)點在各自分配的時間片里通信,確保相同頻段里,數(shù)個終端節(jié)點可以和集中器節(jié)點通信,以免不同終端節(jié)點的通信請求發(fā)生碰撞[19]。
圖6 串口通信程序設計
本文設計的入網(wǎng)機制如圖7所示,先編號終端節(jié)點,設置地址,再打開集中器節(jié)點接收模式,地址不同的終端節(jié)點遵循集中器節(jié)點的排序,停留一段時間再啟動發(fā)送模式,從而實現(xiàn)了組網(wǎng)通信。
圖7 入網(wǎng)機制
為了測試水質(zhì)監(jiān)測系統(tǒng)的穩(wěn)定性、可靠性及數(shù)據(jù)采集的精確性,系統(tǒng)設計結(jié)束后,進行丟包率和水質(zhì)特征參數(shù)測試。測試地點選擇巢湖蘆溪濕地公園附近水域(117.569N,31.570E),以 2021年10月2-3日上午9:00-12:00的實驗為例,平均氣溫28 ℃,連日晴天。測試方法為固定集中器節(jié)點位置為起點,每間隔50 m測試一次,最遠距離定于500 m。
丟包率測試之前,先進行無線通信參數(shù)配置:發(fā)射信號功率為20 dBm,發(fā)射頻率為433 MHz,BW為250 kHz,CR為4/5,SF為10;終端節(jié)點每隔10 s發(fā)出1個有效字節(jié)至集中器節(jié)點,累計發(fā)出2000個數(shù)據(jù)包,其中有效數(shù)據(jù)為20字節(jié)。丟包率測試結(jié)果如表2所示。
表2 丟包率測試
當距離在300 m范圍內(nèi)時,丟包率為0%;在350 m時,丟包率為0.15%;當距離大于350 m后,丟包率隨距離的增加而變大;當距離大于450 m時,丟包率隨距離增加會加速增大,說明距離對丟包率的影響顯著。
針對水產(chǎn)養(yǎng)殖水域情況,設計了基于LoRa無線通信的水產(chǎn)養(yǎng)殖水質(zhì)監(jiān)測系統(tǒng)。在綜合考慮通信成本、距離、功耗等要求下,配置了水質(zhì)特征參數(shù),搭建了數(shù)據(jù)采集電路、USB及LoRa驅(qū)動電路,并進行數(shù)據(jù)采集、串口通信及LoRa自組網(wǎng)的軟件設計。通過測試可知,系統(tǒng)的穩(wěn)定性和可靠性較好,可以實現(xiàn)水產(chǎn)養(yǎng)殖場大范圍實時監(jiān)測。隨著數(shù)字孿生、高性能計算、GIS 時空數(shù)據(jù)分析等技術(shù)的發(fā)展,提高其在可視化效果、監(jiān)測效率等方面的性能是下一步的研究內(nèi)容。