馬銀鑫, 郭來功, 朱明智, 聶勝軍
(安徽理工大學 電氣與信息工程學院, 安徽 淮南 232000)
近年來,水污染給環境帶來了很大的影響,阻礙了社會經濟的發展。水體環境監測可以檢測和確定水體中污染物的類型以及各種污染物的濃度和變化趨勢[1]。水體的溶解氧含量、渾濁度、pH值、溫度等特性參數可以反映出水體的水質狀況,對水體的特性參數進行測量可以有效地監測水質,具有重要的實際意義[2]。本文設計了一種基于STM32F103ZET6微控制器,可以檢測水體溶解氧含量、酸堿值以及溫度3項特性參數的水質監測系統。系統裝載液晶顯示屏和SD卡可以使監管人員查看水體的實時和歷史監測結果。當測量值不符合要求時,系統中的蜂鳴器將報警,同時系統裝載的調節裝置將對水體進行降污處理。
水質監測系統采用星型拓撲結構,由帶有RS485接口的主機、RS485集線器以及從機組成,如圖1所示。主機通過Modbus總線向從機發送命令,從機接受命令并把測得的數據返回給主機。

圖1 系統整體結構示意圖
采用的主控芯片為高性能、低成本、功耗小的STM32F103ZET6微控制器。系統的硬件結構框圖如圖2所示,主要由SD卡存儲模塊、LCD顯示模塊、電源模塊、傳感器模塊以及調節裝置模塊組成。STM32微控制器通過RS485接口控制傳感器模塊對水體的溶解氧含量、溫度和酸堿度進行測量,依次保存在SD卡中并顯示在LCD屏上,同時將測量值與標準值對比,如果不在標準范圍內將驅動調節裝置模塊對水體進行處理。

圖2 系統硬件結構框圖
使用熒光法溶解氧傳感器、pH傳感器和溫度傳感器,對水體的溶解氧含量、酸堿度以及溫度進行測量。熒光法溶解氧傳感器利用物理學中特定物質對激發熒光的猝滅原理,通過檢測不同熒光的相位差與內部校準值進行比較,計算出氧分子的濃度。pH傳感器采用復合玻璃電極和參比電極,通過檢測電極間的電位差來確定氫離子濃度,從而得到水體的pH值[3]。PT1000溫度傳感器,采用阻值隨溫度變化而變化的原理,通過檢測阻值的大小來確定溫度值。
傳感器模塊和調節裝置模塊均采用直流12 V外部供電。由于單片機的供電電壓需求為5 V,采用TPS5405降壓穩壓器將12 V轉換成5 V,電路圖如圖3所示。電源的整流及反向隔離作用由肖特基二極管實現,濾波由電容、電阻及電感實現。系統采用定時喚醒功能,傳感器及調節裝置不工作時不需要電源供電,系統進入待機狀態,進一步降低功耗。

圖3 電源降壓電路圖
SD卡體積小、功耗低、存儲量大,被廣泛應用于嵌入式設備的數據存儲中[4]。SD卡的通訊方式有2種:SPI和SDIO。由于實時監測數據,采用傳輸速度快的SDIO接口[4-5]。微控制器與SD卡連接圖如圖4所示。SD卡存儲與FatFS文件系統結合使得數據的保存和讀取更加方便、有條理。在系統中增加SD卡模塊,便于監管人員對歷史數據的備份及讀取。

圖4 SD卡與單片機接線圖
裝載一塊3.2寸的TFT液晶顯示屏來顯示水體的溶解氧、溫度、酸堿度以及電源電量。液晶屏采用的控制芯片為ILI9341,單片機通過8080接口把需要顯示的數據發送到液晶控制器,同時把數據存儲到內部的顯存中,然后通過不斷刷新顯存內容,將數據顯示到液晶面板上。
調節裝置模塊主要由蜂鳴器、增氧機、排水閥、進水閥、pH調節儀等組成。當水體特性參數不符合規定范圍時,蜂鳴器產生報警,同時驅動各類設備對水體進行調節使其達到標準要求。
Modbus協議是由Modicon公司在1979年開發的一種被廣泛應用于工業現場的通信協議,現已成為通用的工業標準[6]。Modbus協議采用主機問詢、從機應答的工作模式,可以實現一主一從、一主多從的通訊方式。本系統采用一主多從的數據采集模式,單片機作主機,傳感器作從機,不同傳感器通過輪詢的方式依次將測量值返還給單片機。
Modbus協議的傳輸方式有ASCII和RTU兩種[6]。本系統采用傳輸速率及通信效率都較佳的RTU傳輸模式。主機向從機發送地址,從機應答,判斷地址是否相同,相同則根據功能碼獲取相應數據包并進行CRC校驗,校驗成功則將數據包返回給主機,校驗錯誤則返回錯誤數據包,從而增強數據傳輸的可靠性和效率[7-8]。RTU傳輸模式的數據幀格式如表1所示。其中功能碼為傳輸的第2字節,根據實際需要采用不同的功能碼。

表1 Modbus數據幀格式
將RS485和Modbus協議結合,可以實現遠距離多點通信。RS485接口電路采用MAX3485芯片,STM32F103ZET6的USART2_TX、USART2_RX引腳分別與MAX3485芯片上的RO、DI相連以實現數據的收發。
軟件代碼采用Keil平臺C語言編寫,程序采用功能模塊化設計,主程序包括按鍵喚醒、LCD顯示、數據采集與處理、SD卡存儲等模塊。主程序流程圖如圖5所示,采用睡眠-喚醒-睡眠的工作流程,定時采集溶解氧和pH數據,采集間隔1 h。系統喚醒采用機械按鍵喚醒和定時喚醒:機械按鍵喚醒用于現場調試,會開啟設備液晶顯示屏,顯示當前水體溶解氧含量、溫度和酸堿度信息;定時喚醒用于野外長期無人看管設備的自運行。子程序流程圖如圖6所示。系統以單片機為主機,傳感器為從機。通訊方式采用Modbus協議,實現一主多從的通信方式,給不同傳感器分配各自的地址。主機通過輪詢方式向從機發送指令,不同從機根據各自地址按功能碼向主機返回各項采集數據[8]。對于非法指令及錯誤校驗則返回錯誤幀。傳送結束進入待機模式,等待下一次傳輸。

圖5 主程序流程圖 圖6 子程序流程圖
在完成系統硬件和軟件設計后,對系統進行數據采集測試。通過LCD屏,可以實時了解水體的特性參數及電源電量,如圖7所示。為了驗證系統的精確性,分別在不同時間段采集4份不同地點水體進行測試,用高精度的Fluke溫度儀、PHS-3E酸堿度測量儀以及AZ8403溶解氧測定儀進行測量,結果如表2所示,結果符合預期。

圖7 系統測試結果

表2 特性參數測試數據
本文設計并實現了基于單片機和Modbus總線的水質監測系統,能夠穩定準確地采集水體的溫度、pH值以及溶解氧含量,具有一定的應用價值。