目前,人們越來越關注環(huán)境問題,水健康是最重要的。水質(zhì)檢測參數(shù)有很多,比如TDS、PH、濁度,還有其他的水文參數(shù)比如水深、水溫等等。
構建水質(zhì)檢測系統(tǒng),總的思路是選擇幾個待檢測的參數(shù),然后分別用相應的傳感器進行測量,再將轉(zhuǎn)換后的電信號傳輸給主控制器,主控制器通過AD采集和模數(shù)轉(zhuǎn)換,可以獲得準確的測量值。這里總結了本設計中使用的幾個傳感器。
總?cè)芙夤腆w,總?cè)芙夤腆w的中文名稱,也稱為總?cè)芙夤腆w,表示1升水中溶解固體的毫克數(shù)。一般來說,TDS值越高,水中溶解的物質(zhì)越多,水越不干凈。雖然TDS在某些情況下不能有效反映水質(zhì),但作為一個可快速檢測的參數(shù),目前仍可作為一個有效的水質(zhì)反映參數(shù)進行參考。
日常生活中常見的TDS檢測設備有TDS筆等,但作為成熟的產(chǎn)品,我們只能對其進行操作,無法從其獲取檢測數(shù)據(jù)到MCU,作為手持設備也無法長時間保持在線監(jiān)測。因此,有必要選擇一個TDS傳感器模塊來實現(xiàn)這一功能。當然這個模塊可以自己做,但是你需要了解測量電極的特性,對模擬功率放大器有更深的了解,這里就不贅述了。我在淘寶上買了一個即插即用模塊。其實現(xiàn)在淘寶上有很多。我當時選擇這個的原因是挑挑揀揀。我發(fā)現(xiàn)這個信息是最全面的,包括STM 32、51、ZigBee、Arduino平臺的套路,甚至可以直接使用。雖然我對51比較熟悉,但可能以后還想在其他平臺上試試,很不錯。
選擇這款傳感器模塊的參數(shù):寬電壓電源3.3-5V,模擬信號輸出0-2.3V,使得這款產(chǎn)品兼容5V和3.3V控制系統(tǒng),可以輕松連接現(xiàn)成的控制系統(tǒng)使用。這個很重要,因為STM32的電源電壓是3.3V,STM 51的電源電壓是5 V,如果傳感器的測量電壓超過3.3V,就不能直接在STM32上使用。
同時,由于TDS本質(zhì)上測量的是水中離子的數(shù)量,電極實際測量的是水的電導率,溫度的變化對這一測量結果影響很大,因此需要進行溫度補償。校準這是一個大問題。本來想測試一下自己,最后還是放棄了,基本不可能實現(xiàn)控制變量的自校準。最后我仔細研究了給的配套套路,里面的公式加了溫度補償,太棒了!在此插入圖片描述
相信大家對pH都很熟悉,學過化學的都知道它代表液體的PH值,0~14。同樣,工業(yè)級PH變送器價格太貴,完全超出了我們貧困生的承受能力,所以還是萬能淘寶,找PH傳感器模塊。就是買TDS的那家店。他家主要做傳感器模塊,主營業(yè)務是水質(zhì)檢測,所以還是他的。
購買的PH傳感器模塊也適用于5V平臺和3.3V平臺,可以通過模塊上的電位器進行調(diào)節(jié)。然而,校準需要匹配的標準酸堿度溶液。校準相對簡單:因為PH與輸出電壓曲線成正比。兩點可以決定一條直線。他的校準溶液是三瓶,分別是4.0、6.86和9.18。
0-5V平臺:PH4.0對應3V,PH9.18對應2.12V,PH6.86對應2.52v。
0-3.3V平臺:PH4.0對應2.2V,PH9.18對應1.3V,PH6.86對應1.7V。
渾濁是很好理解的。選用的濁度傳感器模塊利用光學原理,通過溶液的透過率和散射率綜合判斷濁度。傳感器內(nèi)部是一個紅外線管。當光通過一定量的水時,光的透射取決于水的污染程度。水越臟,傳播的光就越少。光接收端將透射光的強度轉(zhuǎn)換成相應的電流,透射光越多,電流越大,而透射光越少,電流越小。濁度傳感器模塊將傳感器輸出的電流信號轉(zhuǎn)換為電壓信號,電壓輸出范圍為0 ~ 5V。
所以需要注意的是,如果是在STM32平臺上使用,需要通過外部AD來完成,因為它本身檢測不到3.3V以上的電壓,或者是購買模塊的賣家提供的另一種方案。他們制作了一個集成電路模塊,用于將5V輸出轉(zhuǎn)換為3.3V,可以將電壓信號從0到5V線性轉(zhuǎn)換為0到3.3V,這樣STM32就可以使用自己的AD采集。我沒有用是因為這個設計用了51,不過我覺得這個方法比外置AD模塊方便一點。
因為TDS和PH都可以溫度校正,所以這兩個模塊都有DS18B20溫度接口,插上DS18B20就可以使用。了解了原理之后,硬件就好說了,因為這三個傳感器模塊的輸出都是電壓信號,使用的MCU是STC12C5A60S2,有自己的AD,所以把模塊的信號線接到AD引腳P1就可以了。