謝作如 涂郁瀟穎
隨著城市的發(fā)展,水資源問題越來越成為我們關(guān)注的焦點(diǎn),洞庭湖藍(lán)藻事件、造紙廠偷排污水、建筑工地偷排泥漿……這些事件無一不牽動(dòng)著人們的心。因?yàn)閷W(xué)校身處三垟濕地旁,我們?cè)啻伟l(fā)現(xiàn)河水被排放的建筑泥漿污染,渾濁不堪。據(jù)說不良企業(yè)甚至?xí)褂么辉谝估锿低蹬欧拍酀{,環(huán)保部門的確難以管理。
通過互聯(lián)網(wǎng)搜索,我們發(fā)現(xiàn)如今的河水濁度監(jiān)測設(shè)備動(dòng)輒過萬,而且水質(zhì)監(jiān)測一般以實(shí)驗(yàn)室檢測為主,但這種人工采集的形式不能實(shí)時(shí)了解水質(zhì)信息,難以防范不法分子的行為。能否利用網(wǎng)絡(luò),在濕地區(qū)域選擇多個(gè)無人監(jiān)測點(diǎn),實(shí)現(xiàn)實(shí)時(shí)監(jiān)測河水的渾濁度?
● 濁度傳感器的設(shè)計(jì)
要監(jiān)測河水濁度,首先需要河水濁度的傳感器。在淘寶上能找到的濁度傳感器,要么是數(shù)千元,甚至上萬元的傳感器探頭,要么是數(shù)十元的洗衣機(jī)、洗碗機(jī)專用的污水傳感器,如圖1所示。
通過文獻(xiàn)查找,水質(zhì)濁度檢查一般都使用超聲,測量超聲信號(hào)在不同水樣中的衰減;也有利用比濁法原理,通過測量水樣中微粒的散射光強(qiáng)度來實(shí)現(xiàn)的。毫無疑問,洗衣機(jī)專用的濁度傳感器就是利用后面的原理。但是因?yàn)檫@種傳感器光源和敏感電阻的間距過小,僅1~2cm,對(duì)水質(zhì)濁度的變化不敏感,只能在洗衣機(jī)、洗碗機(jī)中檢測污水,用在河水的日常檢測就不合適了。
其實(shí),自己動(dòng)手做一個(gè)濁度傳感器并不復(fù)雜。動(dòng)手能力好的,可以用一個(gè)LED、光敏電阻和幾個(gè)電阻,接好線就行。簡要的電路如圖2所示,核心是采用高亮LED作為光源,用光敏電阻監(jiān)測光強(qiáng)度。電路中R1和R2形成一個(gè)分壓電路,在input端可以測出R2兩端的電壓,而這一電壓是由R2受到的光照強(qiáng)度決定的。
慢著,這個(gè)電路怎么這么眼熟,不就是在傳統(tǒng)的環(huán)境光傳感器上加了個(gè)LED嗎?對(duì)啊,其實(shí),給普通的光敏電阻加上恒定的光源就是一個(gè)濁度傳感器了。如果光敏電阻的阻值發(fā)生變化,肯定是水里有微粒阻擋了光線的通過。我們自己做的傳感器,好處就在于可以自定義光源和光敏電阻之間的距離,以達(dá)到最佳的檢測效果。
明白了這個(gè)道理,我們甚至不用自己畫電路、接線來制作傳感器了。找個(gè)普通的環(huán)境光傳感器,外加一個(gè)LED直射就可以了。當(dāng)然,你也可以找個(gè)常見的灰度傳感器來修改,把上面的LED焊下來,把接線延長就可以了?;叶葌鞲衅饕揽抗饩€反射而獲得物體表面的信息(如圖3),濁度傳感器則靠光線通過來得到水樣的透光率,原理是一致的。
為了容易安放,我們?cè)O(shè)計(jì)了兩個(gè)相互垂直的同心圓環(huán)探頭來固定傳感器,同心環(huán)內(nèi)部空心,方便鋪設(shè)光敏模塊的電路。然后實(shí)用熱熔膠和其他防水材料封閉縫隙,防止線路進(jìn)水。我們最終設(shè)計(jì)的傳感器,LED燈與光敏電阻相隔8cm。同樣,為了數(shù)據(jù)更加準(zhǔn)確,一個(gè)傳感器中有兩組光源和光敏電阻,通過兩個(gè)方向的光敏電阻測量,取平均值,可得到較準(zhǔn)確的數(shù)據(jù)。在圖4中,T2,T3為兩個(gè)LED放置位置,R2,R3分別為相對(duì)應(yīng)的光敏接收探頭(光敏電阻),T1,R1清洗裝置的安裝位置。
LED燈與光敏電阻相隔為什么是8cm?傳感器在水里什么位置比較敏感?我們也通過多次的實(shí)驗(yàn)測試,經(jīng)過統(tǒng)計(jì)分析得出這一結(jié)論。我們的試驗(yàn)記錄表設(shè)計(jì)如下,最終確定傳感器的最佳固定位置為水下60cm左右。
● 檢測代碼的編寫
在核心控制板方面,我們當(dāng)然選擇Arduino。濁度傳感器通過模擬口接入到Arduino控制板。因?yàn)檫@個(gè)濁度傳感器設(shè)置有兩個(gè)發(fā)射和接收模塊,需要占用兩個(gè)模擬口,然后由控制板對(duì)這兩個(gè)數(shù)據(jù)進(jìn)行取平均值處理,測試代碼如下:
int _ABVAR_1_z1 = 0 ;
int _ABVAR_2_z2 = 0 ;
int _ABVAR_3_z = 0 ;
void setup()
{
Serial.begin(9600);
}
void loop()
{
_ABVAR_1_z1 = analogRead(1) ;
_ABVAR_2_z2 = analogRead(2) ;
_ABVAR_3_z = ( ( _ABVAR_1_z1 + _ABVAR_2_z2 ) / 2 ) ;
Serial.print(_ABVAR_3_z);
Serial.println();
}
代碼很簡單,用ArduBlock也能編寫,參考代碼如圖5。
要監(jiān)測河水濁度,傳感器設(shè)計(jì)僅僅是第一步,還需要將數(shù)據(jù)實(shí)時(shí)上傳到服務(wù)器,進(jìn)行監(jiān)測和分析。雖然Yeelink、樂聯(lián)網(wǎng)和DFrobot廠商等都提供了物聯(lián)網(wǎng)平臺(tái),可以將傳感器數(shù)據(jù)直接上傳到這些網(wǎng)絡(luò)平臺(tái),即可快速實(shí)現(xiàn)實(shí)時(shí)監(jiān)測的目的。但是利用這些平臺(tái),數(shù)據(jù)畢竟在他人的平臺(tái),如果要深入研究,還是要自己寫個(gè)數(shù)據(jù)采集系統(tǒng)比較合適。于是我們用VB編寫了一個(gè)采集數(shù)據(jù)的客戶端,將數(shù)據(jù)存在數(shù)據(jù)庫中(如圖6)。此外,為了方便查詢,還寫了Web查詢界面(如圖7)。
● 傳感器的效果測試
我們制作了濁度傳感器,并且在學(xué)校周邊的水域做了水質(zhì)監(jiān)控的實(shí)驗(yàn)。按照之前的研究結(jié)果,我們將濁度傳感器安裝在水下60cm處,監(jiān)測設(shè)備的Arduino主板及太陽能電池板等安裝在水面以上,通過水中木樁或其他方式固定在水面上。由于我們選擇的數(shù)傳模塊傳輸距離可達(dá)數(shù)百米,所以數(shù)據(jù)采集的電腦就安置在附近建筑物內(nèi),數(shù)據(jù)采集非常穩(wěn)定。
● 知識(shí)拓展
設(shè)計(jì)一款傳感器,其實(shí)并不是一件很困難的事情。利用現(xiàn)有的傳感器,修改、更換其某些關(guān)鍵部件或者結(jié)構(gòu),或許就能實(shí)現(xiàn)其他的用途。僅僅光敏電阻能感知光照的強(qiáng)度這一原理,還可以用在很多方面,除了灰度、濁度檢測外,還能用在灰塵(顆粒物)檢測、轉(zhuǎn)速測量等方面?!拔锫?lián)天下,傳感先行?!蔽锫?lián)網(wǎng)時(shí)代,傳感器是核心應(yīng)用,將滲透于未來生活的各個(gè)層面。讓學(xué)生研究傳感器的設(shè)計(jì),當(dāng)然是很有必要的。
如果對(duì)相關(guān)內(nèi)容感興趣,請(qǐng)關(guān)注主持人博客。