陳思超,朱兆優(yōu),鄧欣
(東華理工大學機械與電子工程學院,江西南昌,330006)
本系統(tǒng)由采集終端和云平臺協(xié)同工作的方式,實現(xiàn)水質(zhì)參數(shù)的實時監(jiān)測。終端選取STM32L475系列單片機為主控,搭配國產(chǎn)的智澤水質(zhì)傳感器完成水質(zhì)數(shù)據(jù)的采集,使用4G模塊wh_lte_7s5實現(xiàn)數(shù)據(jù)的傳輸。云平臺端負責接收、解析、顯示和保存終端上傳數(shù)據(jù),完成對養(yǎng)殖水域監(jiān)測的需求。
硬件終端選取了水質(zhì)評估中較重要的PH、溶解氧和濁度參數(shù)進行采集監(jiān)測。其中對PH測量選擇的是電化學型傳感器,主要原理是根據(jù)水中氫離子濃度計算得到水體PH值。溶解氧測量選擇的是熒光法傳感器,根據(jù)某些物質(zhì)激發(fā)的熒光猝熄原理,將藍光照射至特定物質(zhì)后激發(fā)出紅光,通過檢測紅藍光的相位差并與標定值對比計算得到溶解氧值。濁度測量選擇的是散射光法傳感器,根據(jù)水中濁度物質(zhì)會使光產(chǎn)生散射的原理,通過測量入射光束垂直方向的散射光強度計算得到濁度。
系統(tǒng)硬件框圖如圖1所示。主要由單片機最小系統(tǒng)、水質(zhì)傳感器數(shù)據(jù)采集模塊、電源模塊、GPS定位模塊、4G通信模塊和SD卡存儲模塊等構(gòu)成。

圖1 系統(tǒng)硬件框圖
系統(tǒng)搭載的水質(zhì)數(shù)據(jù)采集單元包括濁度、溶解氧和PH傳感器。三者都為485接口的數(shù)字型傳感器,而單片機串口輸出為TTL信號,因此設(shè)計上采用MAX3471芯片對其進行485信號的轉(zhuǎn)換,在靠近MAX485的A和B之間接入一個電阻提高接口的抗干擾能力。485接口原理圖如圖2所示。

圖2 485接口原理圖
定位部分采用的是ATK1218-BD模塊,該模塊可同時接收GPS和北斗衛(wèi)星信息且具有不錯的定位精度。主控通過串口與該模塊相連接,由PE11引腳對其供電電源進行控制,增加濾波電容保證電壓的穩(wěn)定性。串口接收其中“$GNRMC”格式的數(shù)據(jù)并解析后可以得到經(jīng)緯度等位置信息。GPS模塊原理圖如圖3所示。

圖3 GPS模塊原理圖
4G通信采用的WH_LTE_7S5模塊,該模塊內(nèi)置TCP/IP協(xié)議棧,通過串口與主控連接,將單片機與服務(wù)器建立網(wǎng)絡(luò)通信。主控可使用串口AT指令將水質(zhì)數(shù)據(jù)和GPS數(shù)據(jù)打包上傳至云平臺,再根據(jù)數(shù)據(jù)報頭區(qū)分數(shù)據(jù)種類。4G模塊原理圖如圖4所示。

圖4 4G模塊設(shè)計原理圖
SD卡模塊采用SPI接口與主控進行連接,為了防止卡槽中沒有內(nèi)存卡時總線懸空的問題,在接線處增加上拉電阻進行連接。使用FatFs文件操作系統(tǒng),可以將采集的數(shù)據(jù)進行存儲備份。SD卡模塊原理圖如圖5所示。

圖5 SD卡模塊設(shè)計原理圖
本系統(tǒng)采用12V電源供電,選擇LMR14030穩(wěn)壓芯片設(shè)計輸出12V穩(wěn)壓電源,同時為了滿足主控3.3V工作電壓需求選擇HT7333穩(wěn)壓芯片完成了DC12V至DC3.3V的降壓電路設(shè)計。輸出端并聯(lián)的電容起去耦作用,保證電壓的穩(wěn)定性。
本系統(tǒng)使用MDK5軟件進行程序設(shè)計,考慮到系統(tǒng)的實時性和多任務(wù)要求,在主控部分移植了RT-Thread實時操作系統(tǒng)。按模塊化的思路將任務(wù)劃分為以下多個線程:(1)單片機與云平臺建立通信。(2)溶解氧、PH和濁度等數(shù)據(jù)的采集與解析。(3)串口GPS數(shù)據(jù)的接收與解析。(4)將數(shù)據(jù)存儲至SD卡本地備份。(5)將數(shù)據(jù)傳輸至云平臺端。
通過系統(tǒng)任務(wù)調(diào)度達到協(xié)調(diào)多個任務(wù)同時運行的現(xiàn)象,同時加載一些系統(tǒng)需要的組件和驅(qū)動方便應(yīng)用程序的開發(fā)。系統(tǒng)程序流程如圖6所示。

圖6 程序流程圖
主控通過串口定時接收來自GPS的數(shù)據(jù),原始數(shù)據(jù)為美國國家海洋電子協(xié)會制定的NMEA_0183格式,通過對其中的“$GNRMC”進行解析,可以得到終端的經(jīng)緯度等位置信息,GPS接收流程圖如圖7(a)所示。

圖7 數(shù)據(jù)采集流程圖
水質(zhì)傳感器數(shù)據(jù)通過485接口與主控進行通信,使用標準Modbus-RTU主機協(xié)議對各傳感器進行數(shù)據(jù)輪詢,采用一主多從的設(shè)計模式,通過主機問詢從機應(yīng)答來獲取相關(guān)數(shù)據(jù)并存儲至數(shù)據(jù)緩存區(qū),水質(zhì)數(shù)據(jù)采集流程圖如圖7(b)所示。
為了解決SD卡文件操作系統(tǒng)讀寫緩慢和數(shù)據(jù)采集過快之間矛盾,設(shè)計上采用了環(huán)形緩沖區(qū)(FIFO)對于采集數(shù)據(jù)的緩存,同時應(yīng)用RT-Thread的事件集來同步數(shù)據(jù)采集線程和SD卡存儲線程。采用環(huán)形緩沖區(qū)閾值接收和超時接收倆種方法,降低文件操作系統(tǒng)的讀寫,延長SD卡壽命和減少數(shù)據(jù)的丟失。云平臺數(shù)據(jù)的上傳應(yīng)用了RT-Thread的郵箱和內(nèi)存塊機制相配合,解決數(shù)據(jù)傳輸與存儲不同步的問題。
通過實驗驗證,本系統(tǒng)可以將采集到的PH、溶解氧和濁度數(shù)據(jù)由RS-485總線傳輸?shù)娇刂平K端,結(jié)合GPS解析的定位數(shù)據(jù),通過4G無線模塊打包傳輸至云端服務(wù)器進行實時監(jiān)測,達到了系統(tǒng)設(shè)計的要求。本系統(tǒng)適合為河塘養(yǎng)殖水質(zhì)提供長時間穩(wěn)定監(jiān)測,為云平臺水質(zhì)數(shù)據(jù)分析提供數(shù)據(jù)支持,具有一定的實用價值。