覃建業,喻浩,何仁杰,張富饒,高娟
(電子科技大學成都學院智能制造工程系,四川成都 611731)
隨著經濟的快速發展,我國水污染問題也日益嚴重,更加有效的水質檢測方法也越來越引起人們的重視。當前,國內外水質檢測的方式主要有以下幾種。1)水質監測站檢測[1]:在重點的水域和大型的湖泊都設有水質檢測站,但其位置固定、成本過于高昂,且對于不同位置不同深度的水質檢測不夠靈活;2)取樣實驗室檢測[2]:野外采集水質樣本,在實驗室用相關化學試劑或設備分析各項指標,但其檢測周期較長、取樣及各項操作較為繁瑣,不能滿足水質檢測廣泛應用的迫切需求;3)手持式水質檢測儀檢測:手持式移動檢測設備雖然操作簡單、集成度與精度都相對較高,但其單價較為昂貴,且無法靈活反映不同區域的水質情況;4)船形機器人[3]:不能靈活檢測不同水深的水文參數,且漂浮于水面上,影響美觀,即使有下潛式的水質檢測機器人,也多為拖帶線纜式,同時其價格較為昂貴,不適合水產養殖、小型湖泊等小型水域使用。
針對以上幾點問題,文中設計并實現了基于無線通信的水下水質檢測機器人系統,其具有可下潛、續航時間長、成本低、智能化以及能快速有效地檢測不同水域、不同水層水質信息的特點,實現了遠程智能化控制以及水質檢測數據的實時傳輸[4],能有效提高水質檢測工作效率,具有較大的開發潛力和應用前景。
所設計的基于無線通信的水下水質檢測機器人系統通過4G 模塊與阿里云物聯網平臺構建無線通信系統。采用水下滑翔機外形,進而檢測不同深度的水質情況。該系統所采用的主要模塊有STM32 F103ZET6 內核處理器、5 V 和12 V 有源電源模塊、4G 通信模塊、TDS 檢測模塊、濁度檢測模塊、pH 檢測模塊、微信小程序上位機、步進電機等。該系統整體硬件結構框圖如圖1 所示。水下滑翔機外形能使其僅在下潛和上浮時需要驅動電機做功消耗電能以外,無需其他動能輸出。雙翼內置有太陽能電池板,可直接上浮于水面充電,使其擁有更長的續航時間。在小程序控制下,無線通信系統與數據采集系統、運動控制系統、電源系統、警告報警系統協同工作,從而實現在無人控制的情況下按預設路徑巡航,檢測水下各區域水質情況并在上浮時上傳水質信息的功能。水下滑翔機工作原理如圖2 所示。

圖1 整體硬件結構框圖

圖2 水下滑翔機工作原理圖
整個運動控制系統供電后,陀螺儀MPU6050、水壓深度傳感器進行自檢、完成必要的初始化設置。自檢完成后采集水質檢測機器人當前的姿態,如x、y、z軸的傾角數據和傾角加速度以及水深信息,采用IIC 數據接口發送給STM32 主控制器。此時STM32主控制器對數據進行初始化配置,對所需要的I/O口、4G 模塊進行初始化配置,對其數據的通信協議進行配置。完成初始化配置后,STM32 主控制器讀取MPU6050 陀螺儀和水深壓力傳感器的原始數據并進行分析處理,進行一系列的濾波算法,對原始數據進行處理,得到所需要的正確數據。同時輸出控制電機的PWM 信號給TB6612FNG 直流電機驅動模塊[5],驅動直流電機進行吸水和排水的機械運動,通過改變水下滑翔機的浮力調節水下滑翔機下潛和上浮的頻率、方向及速度。同時STM32 主控制器對減速電機上的霍爾編碼器上的脈沖進行計數,將得到的電機旋轉數據與MPU6050 陀螺儀的數據通過串級PID,對電機進行閉環控制[6]。通過設置控制優先級,使機器人在水下自主運動時,用戶也可以調節其各項運動參數,共同實現對機器人姿態、運動軌跡的控制。STM32 運動控制系統示意圖如圖3 所示。

圖3 運動控制系統示意圖
系統采用YED-C724 核心板作為4G 通信模塊搭建無線通信系統。該型模塊是由銀爾達公司基于合宙Air724 模組推出的高性能嵌入式4G Cat1 核心版本,其具有低功耗、超小體積、支持lua 語言進行二次開發、支持TCP/UDP/MQTT/阿里云/實時采集透傳等特點[7],且其實際測試工作環境溫度范圍為-35~75 ℃,能在苛刻的溫度條件下正常工作。其進行數據傳輸時的連接網絡的流程如圖4 所示。

圖4 4G模塊連接網絡流程
數據采集系統通電后,各種水質檢測傳感器首先進行自檢,完成必要的初始化設置。采集數據時,各傳感器模塊將傳感器反饋的電流信號發送給STM32 主控進行數據處理[8],以獲知當前的水質參數,并將獲取的水質參數存儲到flash 芯片中,通過無線傳輸系統傳輸至上位機。在設計中,傳感器類型可根據實際檢測需求選擇性搭載,以增強其水質檢測類型的廣泛性與多樣性。
2.3.1 渾濁度數據采集系統
該設計中采用了濁度傳感器模塊檢測水質的渾濁度。該型傳感器利用光學原理,通過溶液中的透光率和散射率來綜合判斷水質濁度情況。傳感器內部為一個紅外線對管,當光線穿過一定量的水時,光線的透過量取決于該水的污濁程度,即水越污濁,透過的光線越少。光接收端把透過的光強度轉換為對應的電流大小,透過的光越多,電流越大;反之透過的光越少,電流越小。通過讀取接收端的電流值,就可以相應計算出水的污濁程度。其中,濁度值與模塊輸出電壓(U)滿足關系式為:濁度值=-68.865×U+K(K為截距值,需通過標定方法得到)。
2.3.2 溫度數據采集系統
DSl8B20 溫度傳感器[9]是一種單總線型溫度測量器件,具有直接的數字信號,可采用總線供電,同一根總線上可接多個傳感器,構成多點測溫網絡,是溫度場監控系統的理想選擇。該型傳感器精度為0.5 ℃,可提供二進制9位溫度讀數,可在-55~+125 ℃范圍內進行溫度測量。因DS18B20 使用的是1-Wire總線協議方式,因此其對寫數據、讀數據有嚴格的時序要求。使用過程中均以特定通信協議確保各位數據傳輸的準確性和完整性,控制其工作的流程圖如圖5 所示。

圖5 溫度傳感器工作流程圖
2.3.3 pH采集系統
設計中的pH 采集系統由pH 傳感器模塊搭配E-201 型pH 復合電極[10]組成。pH 傳感器模塊上集成有板載電源指示燈、BNC 接口和pH2.0 接口,可以與Arduino、單片機等控制器相連,具有連線簡單、價格低廉、使用方便等特點。
該模塊通過BNC 接頭與pH 復合電極進行連接,擴展有DS18B20 溫度傳感器接口,方便進行軟件溫度補償設計[11]。調節10K 藍色電位器的旋鈕可以進行放大倍數調節(順時針調節時針調節減小)。使用時,將pH 傳感器接到板載BNC 接口,將板載pH2.0接口連接到控制器的模擬口,通過相應地程序控制,即可以方便地測量水質的pH 。pH 電極輸出電壓與pH 的關系如表1 所示。
該系統采用12 V 鋰電池組作為總電源,采用LM2596 穩壓模塊為電路穩壓。LM2596 穩壓模塊經過其內部的LM2596 芯片[12]穩壓到5 V 后,再為水質監測系統和運動控制系統供電。此類降壓模塊能夠驅動高達3 A 的電流負載,并且擁有出色的線路和負載調節性能;可提供3.3、5、12 V 固定輸出電壓和可調節輸出電壓類型;集成度高、簡單易用,還具有內部頻率補償和固定頻率振蕩器。LM2596 系列在150 kHz 的開關頻率下運行,因此采用的濾波器組件比更低頻率的開關穩壓器所需的組件尺寸更小,更能節省機器人內部空間。當電量較少時,機器人可直接上浮于水面,經絕緣處理后內置于雙翼的太陽能板為電池組充電,也可通過外接12 V 充電器對電池組充電,因此相比于現有的水下水質檢測機器人,擁有更長的續航時間。
設計的視頻采集系統使用720p(60 幀)無畸變攝像頭,搭配友善之臂nanopi 2fire Linux 開發板。設計中攝像頭與nanopi 2fire 采用USB2.0 連接,nanopi通過使用OpenCV-python 對攝像頭進行操作,使用OpenCV 內置的函數庫對攝像頭內的畫面進行采集,并通過UDP 用戶數據報協議進行視頻傳輸[13]。
UDP(User Datagram Protocol)用戶數據報協議是一種無狀態的傳輸協議,它沒有TCP 傳輸控制協議握手、確認、窗口、重傳、擁塞控制等繁瑣機制,所以它在傳輸數據方面是非常快的,非常適合進行低延遲視頻流傳輸。使用nanopi 進行視頻傳輸的思路是:捕獲視頻、壓縮視頻數據、傳輸數據;首先初始化攝像頭模塊,再使用cv2.VideoCapture()函數,此函數的作用是捕獲攝像頭的畫面,對圖像進行獲取;再使用cv2.imencode()函數將獲取到的圖片編碼成流數據,并加入到內存緩存中,方便進行網絡傳輸;在圖像被編碼為流數據后,使用cv2.sendto()函數將流數據封裝為UDP 包并發送;接收端上位機使用cv2.recvfrom()函數來獲取UDP 包、接收壓縮數據,并對其數據進行解壓;通過cv2.imdecode()函數可以把網絡傳輸數據中的圖像數據恢復出來;最后再使用cv2.imshow()對傳輸的視頻數據進行畫面顯示。其操作流程如圖6 所示。

圖6 視頻數據獲取流程
該系統軟件部分可采用網頁、Andriod、小程序等多種數據展示形式,但為了方便,系統僅提供了其中微信小程序的數據呈現方式。
系統微信小程序調用官方MQTT.js 庫和算法庫hex_hmac_sha1.js,自行編寫連接阿里云物聯網平臺服務器代碼,采用三元組連接方式,與阿里云建立基于MQTT 協議的互通網絡,并在阿里云上配置相關主題,互相訂閱和發布彼此的消息,微信小程序填入阿里云提供的各種參數并調用MQTT 通信包即可與阿里云物聯網平臺建立通信。同樣地,4G 模塊采用合宙官方DTU 通信平臺[14],參考其數據手冊配置相關參數,與微信小程序相同采用三元組連接方式,互相訂閱和發布彼此的消息。最后利用阿里云物聯網平臺規則引擎云產品流轉功能,設置好數據格式,相互轉發彼此主題信息,即可達到4G 模塊和微信小程序[15]的數據通信目的。
水下滑翔機上電以后,先等待各個模塊初始化完成,4G 模塊連通網絡,滑翔機會自動吸水減少浮力沉入水底開始自動巡航的第一步,到達預定深度之后排水增大浮力浮出水面,并將預定深度的水質信息通過4G 模塊發送至上位機進行展示。經測試,檢測水質信息準確,能夠較好完成預定任務。
微信小程序上位機可利用手機4G 或5G 網絡訪問移動基站,與滑翔機通信。經測試,上位機能很好控制該系統進行下潛和上浮的動作,較好完成了任務。以學校游泳池為例,其檢測的各個模塊不同深度水質情況如表2 所示。
文中設計并實現了基于無線通信的水下水質檢測機器人系統,該系統結構精簡、耗能低、能實時反饋各項水質參數信息、檢測效率高、易于控制。對于不同水質檢測的數據,其變化符合實際情況,與高精度測量儀器數據相差不大,能夠達到對精度要求不高的水質檢測目的。后期還可考慮搭載GPS 系統進行實時定位反饋[16-18]等功能,有助于工作人員回收并且更加直觀地了解當地的水文條件。在當前水質檢測機器人功能趨于完善化、多樣化的背景下,系統設計具有一定的應用能力。后續研究中若能持續性加以開發,則該系統會在未來水下水質檢測領域發揮巨大的作用。