馬銀鑫, 郭來功, 朱明智, 聶勝軍
(安徽理工大學(xué) 電氣與信息工程學(xué)院, 安徽 淮南 232000)
近年來,水污染給環(huán)境帶來了很大的影響,阻礙了社會(huì)經(jīng)濟(jì)的發(fā)展。水體環(huán)境監(jiān)測(cè)可以檢測(cè)和確定水體中污染物的類型以及各種污染物的濃度和變化趨勢(shì)[1]。水體的溶解氧含量、渾濁度、pH值、溫度等特性參數(shù)可以反映出水體的水質(zhì)狀況,對(duì)水體的特性參數(shù)進(jìn)行測(cè)量可以有效地監(jiān)測(cè)水質(zhì),具有重要的實(shí)際意義[2]。本文設(shè)計(jì)了一種基于STM32F103ZET6微控制器,可以檢測(cè)水體溶解氧含量、酸堿值以及溫度3項(xiàng)特性參數(shù)的水質(zhì)監(jiān)測(cè)系統(tǒng)。系統(tǒng)裝載液晶顯示屏和SD卡可以使監(jiān)管人員查看水體的實(shí)時(shí)和歷史監(jiān)測(cè)結(jié)果。當(dāng)測(cè)量值不符合要求時(shí),系統(tǒng)中的蜂鳴器將報(bào)警,同時(shí)系統(tǒng)裝載的調(diào)節(jié)裝置將對(duì)水體進(jìn)行降污處理。
水質(zhì)監(jiān)測(cè)系統(tǒng)采用星型拓?fù)浣Y(jié)構(gòu),由帶有RS485接口的主機(jī)、RS485集線器以及從機(jī)組成,如圖1所示。主機(jī)通過Modbus總線向從機(jī)發(fā)送命令,從機(jī)接受命令并把測(cè)得的數(shù)據(jù)返回給主機(jī)。
圖1 系統(tǒng)整體結(jié)構(gòu)示意圖
采用的主控芯片為高性能、低成本、功耗小的STM32F103ZET6微控制器。系統(tǒng)的硬件結(jié)構(gòu)框圖如圖2所示,主要由SD卡存儲(chǔ)模塊、LCD顯示模塊、電源模塊、傳感器模塊以及調(diào)節(jié)裝置模塊組成。STM32微控制器通過RS485接口控制傳感器模塊對(duì)水體的溶解氧含量、溫度和酸堿度進(jìn)行測(cè)量,依次保存在SD卡中并顯示在LCD屏上,同時(shí)將測(cè)量值與標(biāo)準(zhǔn)值對(duì)比,如果不在標(biāo)準(zhǔn)范圍內(nèi)將驅(qū)動(dòng)調(diào)節(jié)裝置模塊對(duì)水體進(jìn)行處理。
圖2 系統(tǒng)硬件結(jié)構(gòu)框圖
使用熒光法溶解氧傳感器、pH傳感器和溫度傳感器,對(duì)水體的溶解氧含量、酸堿度以及溫度進(jìn)行測(cè)量。熒光法溶解氧傳感器利用物理學(xué)中特定物質(zhì)對(duì)激發(fā)熒光的猝滅原理,通過檢測(cè)不同熒光的相位差與內(nèi)部校準(zhǔn)值進(jìn)行比較,計(jì)算出氧分子的濃度。pH傳感器采用復(fù)合玻璃電極和參比電極,通過檢測(cè)電極間的電位差來確定氫離子濃度,從而得到水體的pH值[3]。PT1000溫度傳感器,采用阻值隨溫度變化而變化的原理,通過檢測(cè)阻值的大小來確定溫度值。
傳感器模塊和調(diào)節(jié)裝置模塊均采用直流12 V外部供電。由于單片機(jī)的供電電壓需求為5 V,采用TPS5405降壓穩(wěn)壓器將12 V轉(zhuǎn)換成5 V,電路圖如圖3所示。電源的整流及反向隔離作用由肖特基二極管實(shí)現(xiàn),濾波由電容、電阻及電感實(shí)現(xiàn)。系統(tǒng)采用定時(shí)喚醒功能,傳感器及調(diào)節(jié)裝置不工作時(shí)不需要電源供電,系統(tǒng)進(jìn)入待機(jī)狀態(tài),進(jìn)一步降低功耗。
圖3 電源降壓電路圖
SD卡體積小、功耗低、存儲(chǔ)量大,被廣泛應(yīng)用于嵌入式設(shè)備的數(shù)據(jù)存儲(chǔ)中[4]。SD卡的通訊方式有2種:SPI和SDIO。由于實(shí)時(shí)監(jiān)測(cè)數(shù)據(jù),采用傳輸速度快的SDIO接口[4-5]。微控制器與SD卡連接圖如圖4所示。SD卡存儲(chǔ)與FatFS文件系統(tǒng)結(jié)合使得數(shù)據(jù)的保存和讀取更加方便、有條理。在系統(tǒng)中增加SD卡模塊,便于監(jiān)管人員對(duì)歷史數(shù)據(jù)的備份及讀取。
圖4 SD卡與單片機(jī)接線圖
裝載一塊3.2寸的TFT液晶顯示屏來顯示水體的溶解氧、溫度、酸堿度以及電源電量。液晶屏采用的控制芯片為ILI9341,單片機(jī)通過8080接口把需要顯示的數(shù)據(jù)發(fā)送到液晶控制器,同時(shí)把數(shù)據(jù)存儲(chǔ)到內(nèi)部的顯存中,然后通過不斷刷新顯存內(nèi)容,將數(shù)據(jù)顯示到液晶面板上。
調(diào)節(jié)裝置模塊主要由蜂鳴器、增氧機(jī)、排水閥、進(jìn)水閥、pH調(diào)節(jié)儀等組成。當(dāng)水體特性參數(shù)不符合規(guī)定范圍時(shí),蜂鳴器產(chǎn)生報(bào)警,同時(shí)驅(qū)動(dòng)各類設(shè)備對(duì)水體進(jìn)行調(diào)節(jié)使其達(dá)到標(biāo)準(zhǔn)要求。
Modbus協(xié)議是由Modicon公司在1979年開發(fā)的一種被廣泛應(yīng)用于工業(yè)現(xiàn)場(chǎng)的通信協(xié)議,現(xiàn)已成為通用的工業(yè)標(biāo)準(zhǔn)[6]。Modbus協(xié)議采用主機(jī)問詢、從機(jī)應(yīng)答的工作模式,可以實(shí)現(xiàn)一主一從、一主多從的通訊方式。本系統(tǒng)采用一主多從的數(shù)據(jù)采集模式,單片機(jī)作主機(jī),傳感器作從機(jī),不同傳感器通過輪詢的方式依次將測(cè)量值返還給單片機(jī)。
Modbus協(xié)議的傳輸方式有ASCII和RTU兩種[6]。本系統(tǒng)采用傳輸速率及通信效率都較佳的RTU傳輸模式。主機(jī)向從機(jī)發(fā)送地址,從機(jī)應(yīng)答,判斷地址是否相同,相同則根據(jù)功能碼獲取相應(yīng)數(shù)據(jù)包并進(jìn)行CRC校驗(yàn),校驗(yàn)成功則將數(shù)據(jù)包返回給主機(jī),校驗(yàn)錯(cuò)誤則返回錯(cuò)誤數(shù)據(jù)包,從而增強(qiáng)數(shù)據(jù)傳輸?shù)目煽啃院托蔥7-8]。RTU傳輸模式的數(shù)據(jù)幀格式如表1所示。其中功能碼為傳輸?shù)牡?字節(jié),根據(jù)實(shí)際需要采用不同的功能碼。
表1 Modbus數(shù)據(jù)幀格式
將RS485和Modbus協(xié)議結(jié)合,可以實(shí)現(xiàn)遠(yuǎn)距離多點(diǎn)通信。RS485接口電路采用MAX3485芯片,STM32F103ZET6的USART2_TX、USART2_RX引腳分別與MAX3485芯片上的RO、DI相連以實(shí)現(xiàn)數(shù)據(jù)的收發(fā)。
軟件代碼采用Keil平臺(tái)C語言編寫,程序采用功能模塊化設(shè)計(jì),主程序包括按鍵喚醒、LCD顯示、數(shù)據(jù)采集與處理、SD卡存儲(chǔ)等模塊。主程序流程圖如圖5所示,采用睡眠-喚醒-睡眠的工作流程,定時(shí)采集溶解氧和pH數(shù)據(jù),采集間隔1 h。系統(tǒng)喚醒采用機(jī)械按鍵喚醒和定時(shí)喚醒:機(jī)械按鍵喚醒用于現(xiàn)場(chǎng)調(diào)試,會(huì)開啟設(shè)備液晶顯示屏,顯示當(dāng)前水體溶解氧含量、溫度和酸堿度信息;定時(shí)喚醒用于野外長期無人看管設(shè)備的自運(yùn)行。子程序流程圖如圖6所示。系統(tǒng)以單片機(jī)為主機(jī),傳感器為從機(jī)。通訊方式采用Modbus協(xié)議,實(shí)現(xiàn)一主多從的通信方式,給不同傳感器分配各自的地址。主機(jī)通過輪詢方式向從機(jī)發(fā)送指令,不同從機(jī)根據(jù)各自地址按功能碼向主機(jī)返回各項(xiàng)采集數(shù)據(jù)[8]。對(duì)于非法指令及錯(cuò)誤校驗(yàn)則返回錯(cuò)誤幀。傳送結(jié)束進(jìn)入待機(jī)模式,等待下一次傳輸。
圖5 主程序流程圖 圖6 子程序流程圖
在完成系統(tǒng)硬件和軟件設(shè)計(jì)后,對(duì)系統(tǒng)進(jìn)行數(shù)據(jù)采集測(cè)試。通過LCD屏,可以實(shí)時(shí)了解水體的特性參數(shù)及電源電量,如圖7所示。為了驗(yàn)證系統(tǒng)的精確性,分別在不同時(shí)間段采集4份不同地點(diǎn)水體進(jìn)行測(cè)試,用高精度的Fluke溫度儀、PHS-3E酸堿度測(cè)量儀以及AZ8403溶解氧測(cè)定儀進(jìn)行測(cè)量,結(jié)果如表2所示,結(jié)果符合預(yù)期。
圖7 系統(tǒng)測(cè)試結(jié)果
表2 特性參數(shù)測(cè)試數(shù)據(jù)
本文設(shè)計(jì)并實(shí)現(xiàn)了基于單片機(jī)和Modbus總線的水質(zhì)監(jiān)測(cè)系統(tǒng),能夠穩(wěn)定準(zhǔn)確地采集水體的溫度、pH值以及溶解氧含量,具有一定的應(yīng)用價(jià)值。