2013年3月30日下午
買來相關(guān)的材料。
有水管,彎頭,軟電線,硬電線等。
首先先看看家里的水塔:

水管接在水塔原先預(yù)留的透氣孔上,浮球式水位傳感器從此伸入水塔低水位和滿水位位置,固定在一節(jié)水管上。然后把電線引出來,用水管罩著牽引到墻角的洞,進(jìn)入屋內(nèi)。用水管罩是防止陽(yáng)光直射電線容易老化。
墻角的洞原先并沒有預(yù)留足夠?qū)挼闹睆健荒艽┸浘進(jìn)去試試看了,水管沒辦法再進(jìn)去了 。

在給水管鉆孔和割槽安裝浮球的時(shí)候,手頭上沒有砂輪鋸,想到一個(gè)土辦法就是“用密集的點(diǎn)繪成線”
也能代替砂輪鋸切割直線啦~~~雖然不是很好看。



這樣就能固定在水管上了,然后把這只水管扭到水塔里面就行,水塔的排氣口有內(nèi)牙,我水管的一頭套有外牙。

哎呀,真是一大堆東西堆在這里有得弄的,走線決定走墻角。抽水機(jī)的電源線用4mm^2的硬線做,買了一捆100米~~~,不信從5樓到天井不夠長(zhǎng)。水位控制線用軟線做。
當(dāng)初抽水機(jī)怎么就沒接地線呢。。。哎不接也算了,也沒什么人靠近它的,有一段上水管是鐵的,如果水有電的時(shí)候,能夠傳電到墻壁里,也充當(dāng)了一點(diǎn)地線作用吧。
由于天色已晚,工程量還是有點(diǎn)的,把材料買好后明天再做,因?yàn)槊魈炜赡芟掠辏鋈ゲ环奖。今晚就順便更改程序?br>

涉及到房子的大工程,房主當(dāng)然也興致勃勃地爬上樓頂觀看啦。


看呵,鄰居家家戶戶都裝有水塔,都使用地下水。如果每人當(dāng)初建挖水井的時(shí)候都裝上這個(gè)東東,那我也能賺一點(diǎn)了。
2013年3月31日早晨
程序幾乎重新編寫了一遍,很多地方得到優(yōu)化。
做這產(chǎn)品比做比賽作品收獲更多?紤]更周全特別是日后維護(hù),作品只是一時(shí)演示,不實(shí)際。現(xiàn)在這個(gè)監(jiān)控器已經(jīng)成為產(chǎn)品,各方面都得到優(yōu)化如失控等意外情況發(fā)生時(shí),能夠及時(shí)自我解決或給用戶提供另一種補(bǔ)救措施這兩點(diǎn)已經(jīng)做到。還有低功耗等這都是大賽作品一般考慮不到的。我宗旨是不懂技術(shù)的人也能維護(hù)!
為了提升程序的穩(wěn)定性,啟動(dòng)了單片機(jī)內(nèi)的看門狗。
看門狗就是如果程序跑飛了,出現(xiàn)不可預(yù)料的情況時(shí),即沒有執(zhí)行喂狗操作。就能夠在65.5ms后馬上自動(dòng)復(fù)位單片機(jī),不讓整套裝置失控 。
另外,利用單片機(jī)內(nèi)的EEPROM,存儲(chǔ)了一些具有記錄性、值得回憶意義的文字和數(shù)據(jù),數(shù)據(jù)內(nèi)容終身不毀,即使斷電仍保存,除非人為去擦除。
存儲(chǔ)了裝置第一次啟動(dòng)的時(shí)間,累計(jì)自動(dòng)完成抽水的次數(shù),本裝置的來源以及經(jīng)歷。
下面是EEPROM存儲(chǔ)的內(nèi)容。初始化狀態(tài)。值得注意的是,AVR單片機(jī)的數(shù)據(jù)存儲(chǔ)模式是小端模式,即有效字節(jié)低位在地址低位。

累計(jì)自動(dòng)完成的抽水次數(shù),這個(gè)我特別設(shè)計(jì)算法,數(shù)據(jù)類型定為unsigned long int 哈哈~~~范圍夠大的吧,還是unsigned的。但是EEPROM的總線寬度只有8位。這樣就回歸到最底層的設(shè)計(jì)啦,自己設(shè)計(jì)函數(shù)把數(shù)值存進(jìn)EEPROM,讀寫函數(shù)如下:
unsigned long int time=0;
for (i=0;i<4;i++)//讀數(shù)據(jù)
{
time<<=8;
while(EECR&(1<<EEWE));
EEAR=0x23-i;//內(nèi)置EEPROM的0x20地址是記錄自動(dòng)完成抽水的次數(shù)
EECR|=1<<EERE;//進(jìn)行讀操作
time|=EEDR;
asm("WDR");//喂狗
}
time++;
for (i=0;i<4;i++)//寫數(shù)據(jù)
{
while(EECR&(1<<EEWE));
EEAR=0x20+i;
EEDR=time;
EECR|=1<<EEMWE;//準(zhǔn)備寫操作
EECR|=1<<EEWE;//寫操作
time>>=8;
asm("WDR");//喂狗
}
由于是產(chǎn)品了,所以要更為自動(dòng)化。
把抽水設(shè)計(jì)成一個(gè)周期任務(wù),如果在抽水過程中,家里突然停電,等到下次來電時(shí)能夠自動(dòng)繼續(xù)抽水,直到抽滿為止。
裝置的電源開關(guān)去掉,一上電馬上工作。
關(guān)于程序方面,更多可靠性的功能我還會(huì)繼續(xù)增加和維護(hù),直到我離開這個(gè)房子去其他地方的時(shí)候。
目的讓維護(hù)更加簡(jiǎn)便呵呵。
為了防止裝置硬件性故障,(軟件上是沒問題的了,有看門狗)
在抽水機(jī)的控制電路上,設(shè)計(jì)了另一道保障,能在裝置失控的狀態(tài)下人為強(qiáng)制控制抽水機(jī),即回到原始的手動(dòng)抽水的辦法 。
結(jié)合實(shí)際情況,控制器安裝在5樓,抽水機(jī)在一樓,需要從一樓到五樓拉兩條線,它們是控制抽水機(jī)的關(guān)鍵電線。雖然電線有絕緣層,但途徑各個(gè)樓梯,為了更安全,我把這兩條線設(shè)成零線,只有抽水機(jī)工作時(shí)才有電。單片機(jī)控制繼電器閉合、斷開這兩條線,能夠達(dá)到自動(dòng)控制抽水的目的,同時(shí)就算絕緣層破裂也不要緊。
這樣的話,在原來的電閘處,火線就必須時(shí)刻接通到抽水機(jī),這就是我原先埋怨沒有接地線的原因。
不過,抽水機(jī)和樓梯,仍是樓梯的安全較重要,抽水機(jī)在門角,少人去理。當(dāng)然使用兩個(gè)繼電器控制或者在這里兩條電線上套一水管是最安全不過的了。【2013年4月7日13:37:41對(duì)此斜體字內(nèi)容進(jìn)行更正:無論怎樣接線,始終都會(huì)有一條火線經(jīng)過樓梯,這在不用無線控制下是不可避免的】

右邊的電閘是以前難道是爸爸裝的?由于左邊的電閘的螺絲生銹,我拆開右邊的看看還能不能用,結(jié)果看到保險(xiǎn)絲的地方,頓時(shí)笑了……左邊用銅線接上,右邊用一塊鋁片接上,亂七八糟的,有這樣接的嘛,不過算了反正那個(gè)電閘已經(jīng)不用了。

我只能接在線上了,電閘里的螺絲有一些已經(jīng)不能扭開,在原來的線上剝開一道口子,捆綁上去。好難捆綁,原來的是多股線,我的是單股4mm2的粗銅線……
這樣左邊的電閘就成了第二道保障了,當(dāng)裝置失控時(shí),不能自動(dòng)恢復(fù)的時(shí)候,拔掉裝置電源,這個(gè)電閘就和原來的電閘沒什么區(qū)別了,打上抽水,拉下斷電。裝置正常運(yùn)行的情況下,電閘是打下來的,不通電的。
2013年3月31日下午
終于把所有東西安裝完了。在測(cè)試過程中,因?yàn)榘惭b時(shí)候家人在旁邊說話,說著說著我把高低水位的控制線接反了……結(jié)果抽水過程鬧出笑話,抽到低水位就停了。
還有抽水機(jī)斷電的時(shí)候,由于水塔的水多,水面的水波推動(dòng)浮球,在臨界點(diǎn)的時(shí)候有幾率導(dǎo)致抽水機(jī)抽抽停停。這個(gè)問題必須解決。
2013年3月31日晚上
抽水機(jī)在臨界點(diǎn)抽抽停停的問題已經(jīng)解決,同時(shí)我關(guān)閉掉了許多LED燈,保留兩盞燈,紅燈亮表示未抽在水,綠燈亮表示正在抽水,任何一盞燈亮都表示裝置正常運(yùn)行。數(shù)碼管的電源也斷開,兩片74HC573芯片也斷電。盡最大可能節(jié)省功耗。由于萬能表的200mA保險(xiǎn)絲斷了,只能用20A的量程,測(cè)得電流為0.2A。那么功率就大概1W左右。還是可以的。
由于是產(chǎn)品了,所以要更為自動(dòng)化。
把抽水設(shè)計(jì)成一個(gè)周期任務(wù),如果在抽水過程中,家里突然停電,等到下次來電時(shí)能夠自動(dòng)繼續(xù)抽水,直到抽滿為止。
裝置的電源開關(guān)去掉,一上電馬上工作。
關(guān)于程序方面,更多可靠性的功能我還會(huì)繼續(xù)增加和維護(hù),直到我離開這個(gè)房子去其他地方的時(shí)候。
目的讓維護(hù)更加簡(jiǎn)便呵呵。
為了防止裝置硬件性故障,(軟件上是沒問題的了,有看門狗)
在抽水機(jī)的控制電路上,設(shè)計(jì)了另一道保障,能在裝置失控的狀態(tài)下人為強(qiáng)制控制抽水機(jī),即回到原始的手動(dòng)抽水的辦法 。
結(jié)合實(shí)際情況,控制器安裝在5樓,抽水機(jī)在一樓,需要從一樓到五樓拉兩條線,它們是控制抽水機(jī)的關(guān)鍵電線。雖然電線有絕緣層,但途徑各個(gè)樓梯,為了更安全,我把這兩條線設(shè)成零線,只有抽水機(jī)工作時(shí)才有電。單片機(jī)控制繼電器閉合、斷開這兩條線,能夠達(dá)到自動(dòng)控制抽水的目的,同時(shí)就算絕緣層破裂也不要緊。
這樣的話,在原來的電閘處,火線就必須時(shí)刻接通到抽水機(jī),這就是我原先埋怨沒有接地線的原因。
不過,抽水機(jī)和樓梯,仍是樓梯的安全較重要,抽水機(jī)在門角,少人去理。當(dāng)然使用兩個(gè)繼電器控制或者在這里兩條電線上套一水管是最安全不過的了。【2013年4月7日13:37:41對(duì)此斜體字內(nèi)容進(jìn)行更正:無論怎樣接線,始終都會(huì)有一條火線經(jīng)過樓梯,這在不用無線控制下是不可避免的】

右邊的電閘是以前難道是爸爸裝的?由于左邊的電閘的螺絲生銹,我拆開右邊的看看還能不能用,結(jié)果看到保險(xiǎn)絲的地方,頓時(shí)笑了……左邊用銅線接上,右邊用一塊鋁片接上,亂七八糟的,有這樣接的嘛,不過算了反正那個(gè)電閘已經(jīng)不用了。

我只能接在線上了,電閘里的螺絲有一些已經(jīng)不能扭開,在原來的線上剝開一道口子,捆綁上去。好難捆綁,原來的是多股線,我的是單股4mm2的粗銅線……
這樣左邊的電閘就成了第二道保障了,當(dāng)裝置失控時(shí),不能自動(dòng)恢復(fù)的時(shí)候,拔掉裝置電源,這個(gè)電閘就和原來的電閘沒什么區(qū)別了,打上抽水,拉下斷電。裝置正常運(yùn)行的情況下,電閘是打下來的,不通電的。
2013年3月31日下午
終于把所有東西安裝完了。在測(cè)試過程中,因?yàn)榘惭b時(shí)候家人在旁邊說話,說著說著我把高低水位的控制線接反了……結(jié)果抽水過程鬧出笑話,抽到低水位就停了。
還有抽水機(jī)斷電的時(shí)候,由于水塔的水多,水面的水波推動(dòng)浮球,在臨界點(diǎn)的時(shí)候有幾率導(dǎo)致抽水機(jī)抽抽停停。這個(gè)問題必須解決。
2013年3月31日晚上
抽水機(jī)在臨界點(diǎn)抽抽停停的問題已經(jīng)解決,同時(shí)我關(guān)閉掉了許多LED燈,保留兩盞燈,紅燈亮表示未抽在水,綠燈亮表示正在抽水,任何一盞燈亮都表示裝置正常運(yùn)行。數(shù)碼管的電源也斷開,兩片74HC573芯片也斷電。盡最大可能節(jié)省功耗。由于萬能表的200mA保險(xiǎn)絲斷了,只能用20A的量程,測(cè)得電流為0.2A。那么功率就大概1W左右。還是可以的。


使用水管套電線,防止老鼠咬。幸虧這個(gè)洞還足夠大,當(dāng)初真是有遠(yuǎn)見,鑿得不錯(cuò)@趕海人生


水塔安裝完后的外表圖
此裝置我還將繼續(xù)升級(jí),往維護(hù)方面升級(jí),能夠更快幫助人們,即使是不懂技術(shù)的人,也能檢測(cè)出哪里出問題
2013年4月6日22:41:30
至今,水塔水質(zhì)監(jiān)控器已經(jīng)全天候運(yùn)行了一周,整體表現(xiàn)良好。期間出現(xiàn)兩次不尋常的情況,每個(gè)情況出現(xiàn)后,又都恢復(fù)正常,并不是一直錯(cuò)誤地發(fā)展下去,均不不影響日常用水:
①投入使用后第三天的清晨,媽媽報(bào)告說抽水不到1分鐘又停了
②今晚,外婆說剛才自動(dòng)抽水10分鐘,并且啟動(dòng)前1個(gè)小時(shí)已經(jīng)抽滿過一次水,不可能用得那么快。
觸發(fā)抽水的條件有且只有一個(gè):低水位傳感器的信號(hào)線被拉高電平。
可能的原因:
①有可能在布線過程中劃傷信號(hào)線,每個(gè)傳感器有一條+5V的線和一條信號(hào)線,劃傷的話可能有幾率+5V的線和信號(hào)線觸碰,導(dǎo)致誤判。
②水中的懸浮物或水流把低水位傳感器的浮球暫時(shí)拉低,導(dǎo)致錯(cuò)誤地觸發(fā)信號(hào)。
改進(jìn)方法:主程序中加一種算法來驗(yàn)證是否是誤判,對(duì)傳感器不能100%信任。
2013年4月7日13:39:09
對(duì)它進(jìn)行了第一次維護(hù)。
取出芯片,讀出EEPROM內(nèi)容,
地址0x20處的數(shù)據(jù)為0x0F。說明裝置從第一次安裝使用到現(xiàn)在已經(jīng)完成自動(dòng)抽水15次。但這個(gè)值我覺得太特殊了,今晚抽過一次水后,我有必要再讀一次數(shù)據(jù),看是否還是0x0F。
本次維護(hù)新增了兩處判斷,即軟件把水位傳感器的信號(hào)進(jìn)行去抖動(dòng)處理。新增了兩項(xiàng)記錄。
當(dāng)檢測(cè)到電位發(fā)生變化的時(shí)候,等待10秒鐘,10秒過后再次檢測(cè),如果電位沒有再次變化,則說明此時(shí)的信號(hào)是正確的,然后采取相應(yīng)行動(dòng)。否則記錄此次出現(xiàn)錯(cuò)誤信號(hào)的事件。
雖然這樣子檢測(cè)一般情況下能把錯(cuò)誤的信號(hào)過濾掉,但是還是會(huì)存在有一些特殊情況,如傳感器損壞、有異物纏住浮球等,但發(fā)生幾率很低。
在EEPROM里,我設(shè)0x10~0x11這兩個(gè)空間來記錄低水位傳感器傳出錯(cuò)誤信號(hào)的次數(shù),0x12~0x13為高水位傳感器傳出錯(cuò)誤信號(hào)的次數(shù)。
2013年4月13日21:18:49
自從上次維護(hù)以來,又過了一個(gè)星期,這個(gè)星期一點(diǎn)問題都不出,外婆也沒發(fā)現(xiàn)有異常。
現(xiàn)在我調(diào)取了EEPROM里的數(shù)據(jù),根據(jù)自動(dòng)記錄的數(shù)據(jù),至今已經(jīng)完成自動(dòng)抽水任務(wù)21次,兩個(gè)傳感器發(fā)生錯(cuò)誤信號(hào)的次數(shù)為0
看來上次更改的算法是起到了很好的作用。
本次維護(hù)不做任何改動(dòng)。
