趙明冬,宋子博,王浩哲
(鄭州科技學(xué)院 電子與電氣工程學(xué)院,河南 鄭州 450064)
針對魚類養(yǎng)殖環(huán)境進行改善的設(shè)備有很多,比如最常用的抽水過濾器、加熱器、增氧泵、投食器。 但是,它們大多相互獨立,如果僅僅把多個單獨的設(shè)備組成一套多功能的魚缸控制系統(tǒng),需要投入的費用較大,同時多個單一器件機械化的組裝之后也存在一定的資源浪費[1]。 市場上也有一些成套的解決方案,但是總體的自動化程度不夠,滿足不了一些特定環(huán)境的需求。
本系統(tǒng)主要針對以上問題,從功能集成、自動化、性價比方面進行設(shè)計。 該系統(tǒng)是將水循環(huán)供氧、自動水溫控制、自動投食、水位報警等功能集成于一體的系統(tǒng),對養(yǎng)護工作中的供氧、投食等綜合自動化及其技術(shù)進行研究探索,這對整個水族行業(yè)的自動智能化發(fā)展有較大的意義和價值。
由于市場的發(fā)展以及更多人對觀賞魚缸的青睞,智能魚缸控制系統(tǒng)還有很大的發(fā)展?jié)摿Α?現(xiàn)有的產(chǎn)品大多不完善,處于萌發(fā)階段。 因此,本設(shè)計結(jié)合行業(yè)內(nèi)產(chǎn)品的優(yōu)點,以改善不足為出發(fā)點,自主設(shè)計實現(xiàn)了一套簡單實用、性價比高的智能魚缸系統(tǒng)。 系統(tǒng)具有水循環(huán)過濾、溫度控制、定時投食、水位報警、狀態(tài)實時顯示這些功能,還具有繼續(xù)擴展功能的潛力。
本系統(tǒng)以STC89C52 芯片單片機作為控制核心,完成智能魚缸控制系統(tǒng)的設(shè)計與制作,系統(tǒng)框圖如圖1所示,包含了主控模塊、水位采集模塊、溫度采集模塊、時鐘模塊、按鍵模塊、顯示模塊、投食模塊、水循環(huán)、加熱模塊、報警模塊,能夠完成魚缸的溫度檢測、水位檢測,超過限定值時進行報警;具有水循環(huán)充氧、定時定量投放餌料等功能。
圖1 智能魚缸控制系統(tǒng)
(1)主控模塊設(shè)計。 主控模塊主要包括單片機、晶振電路和復(fù)位電路。 此外,在實際電路中加上了電源開關(guān)電路和上拉電阻電路。 單片機的引腳外接11.0592 晶振,晶振兩端再通過22PF 到30PF 左右的瓷片電容接低電平即為晶振電路。 單片機RST 復(fù)位引腳通過復(fù)位電路實現(xiàn)單片機復(fù)位功能。 就像計算器的清零按鈕的作用一樣,以便回到原始狀態(tài),重新進行計算。 復(fù)位電路要實現(xiàn)的是,系統(tǒng)處于正常運行狀態(tài)下使RST 引腳維持兩個機器周期以上高電平,這樣單片機便可以完成復(fù)位操作。
(2) 溫度采集模塊設(shè)計。 溫度采集模塊采用DS18B20 溫度傳感器與主控模塊進行通信構(gòu)成的溫度采集模塊電路芯片DSl8B20 的引腳即DQ 數(shù)據(jù)口與單片的端口連接,單片機通過單總線協(xié)議與DS18B20 進行通信[2]。 使用外部5 V 電源供電,另一個引腳為GND 口與電源負極相連接,引腳3 即VCC 口與5 V 電源正極相連接。
在實際硬件電路構(gòu)建時,DS18B20 為晶體管大小的三引腳芯片,在測量水溫時,還使用膠水進行了防水設(shè)計,使溫度傳感器被包圍,不至于接觸水。
(3)水位采集模塊設(shè)計。 水位采集模塊沒有使用集成芯片模塊,電路的設(shè)計依據(jù)簡單的電路回路原理,以魚缸中的水為電路開關(guān),實現(xiàn)電路的導(dǎo)通和斷開。
水位檢測模塊電路。 魚缸內(nèi)部高度為14.7 cm,取其高的某一點或者幾個點將其作為檢測點進行檢測,達到相應(yīng)高度時,傳感器線便輸入相應(yīng)高低兩種電平的信號,通過晶體管轉(zhuǎn)換后供主控模塊檢測。 幾個接口分別對應(yīng)幾條電路,其中一條為系統(tǒng)高電平,其他4條分別串聯(lián)一個電阻后連接S9014 型號NPN 型晶體管的基極,晶體管發(fā)射極接地,集電極接一個上拉電阻。從集電極分別接出一條數(shù)據(jù)線與單片機的4 個I/O 口連接。 把水位傳感器豎直貼在魚缸外圍,高電平線通過水先與最低的1 個監(jiān)測點導(dǎo)通,晶體管同時被導(dǎo)通。集電極和發(fā)射極之間電阻瞬間由高阻變?yōu)榈妥?與單片機相連的數(shù)據(jù)線由高電平降為低電平,此時單片機對應(yīng)I/O 口被傳入一個低電平供單片機檢測。 在水逐漸達到檢測點的過程中,另外的檢測點依次與高電平導(dǎo)通,原理同第1 個檢測點。 單片機通過檢測4 個數(shù)據(jù)線電平的高低邏輯,判斷水位處于哪個區(qū)間。
(4)時鐘模塊設(shè)計。 時鐘模塊使用DS1302 芯片,它體型較小,較多地應(yīng)用于小型的嵌入式系統(tǒng),比如電子鐘、電話、傳真等產(chǎn)品領(lǐng)域[3]。 它具有很好的實時性,在通信時可以實時更新時間,具有很低的功耗,用于本設(shè)計非常合適。
該時鐘電路工作穩(wěn)定,主要用于智能魚缸控制系統(tǒng)的系統(tǒng)時間,作為魚缸控制系統(tǒng)各種邏輯操作的對比,以實現(xiàn)定時水循環(huán)過濾供氧、定時投食等固定時間的控制。
(5)按鍵模塊設(shè)計。 按鍵以各種形式存在于生活中幾乎所有的電子設(shè)備上,它的功用就是對系統(tǒng)做出一些改變,改變系統(tǒng)的進程從而達到人們想要的功能。
按鍵部分采用2×4 的矩陣,其中包括時間的設(shè)定、時間的改變、投食時間的設(shè)定和改變、水溫的控制檢測、水位的檢測,還包括水循環(huán)的時間設(shè)定。 只使用4個端口控制8 個按鍵。
(6)顯示模塊設(shè)計。 LCD12864 是工業(yè)字符型液晶顯示器,它的主控芯片是STC89C52 或者其他兼容芯片,能夠同時在兩行顯示32 個字符數(shù)據(jù),是一種專門用來顯示字母、數(shù)字、符號等的點陣型液晶模塊[4]。 它的點陣顯示由若干個5×7 或者5×11 的點陣字符位組成,每個點陣字符位都可以顯示一個字符,每位之間有一個點距的間隔,每行之間也有間隔,起到了字符間距和行間距的作用,正因為如此,它不能很好地顯示圖形,但是用在小型監(jiān)控設(shè)備的數(shù)據(jù)、狀態(tài)顯示正好合適。
液晶顯示模塊用于顯示各種信息,該設(shè)計中需要用到一些英文字母、數(shù)字、符號顯示提示信息以及一些實時數(shù)據(jù)信息,LCD12864 與單片機連接作為顯示模塊剛好合適。
(7)投食模塊設(shè)計。 魚缸自動喂食裝置簡單明了,非常方便操作,下面有旋鈕可直接安裝。 上部分投食倉透明,便于觀察食物剩余數(shù)量,其容量為70 mL,單次投食為0.2 g,每次投食的時間可單獨設(shè)定,最長投食間隔周期為3 天,適合粉末狀魚糧和直徑小于1 mm 的顆粒狀魚糧。
(8)水循環(huán)、加熱模塊設(shè)計。 水循環(huán)電路和加熱電路除去負載及負載電壓不同,其他電路相同。 單片機的P2.2 和P2.3 口分別連接ULN2003 的6B 和7B,功率放大、邏輯取反的信號從6C 和7C 出來,當(dāng)輸出信號為高電頻時才將繼電器導(dǎo)通,之后線圈吸合使長開端閉合,使得水循環(huán)過濾供氧裝置或加熱裝置開始運轉(zhuǎn)或發(fā)熱。
(9)報警模塊設(shè)計。 單片機通過I/O 口串聯(lián)一個1 k 的電阻連接晶體管的基極,系統(tǒng)高電平連接有源蜂鳴器的正極,蜂鳴器負極連接晶體管的發(fā)射機,晶體管發(fā)射極連接系統(tǒng)低電平。 當(dāng)基極為低電平時,晶體管導(dǎo)通,此時有源蜂鳴器相當(dāng)于串聯(lián)一個較小的電阻,蜂鳴器兩端相當(dāng)于接通系統(tǒng)高電平的電壓后開始報警。
該系統(tǒng)軟件使用C51 進行編程,采用Keil,Proteus以及Stc-isp 3 個軟件作為開發(fā)環(huán)境進行開發(fā)。 其中Keil 用來編程,結(jié)合Proteus 進行仿真調(diào)試,最后使用Stc-isp 下載到STC89C51 單片機中[5]。
主程序流程圖如圖2 所示,程序開始后先調(diào)用初始化子程序,接著進入一個無限循環(huán)程序塊,進行魚缸內(nèi)各種環(huán)境參數(shù)的檢測、顯示以及一些邏輯判斷,主要由時間采集程序、溫度采集程序、水位采集程序、顯示程序、定時水循環(huán)程序、定時投食程序、溫度控制程序、水位報警程序等構(gòu)成。 按照模塊化設(shè)計原則,把系統(tǒng)功能分為多個獨立的子程序,這樣的設(shè)計可以更好地理清程序設(shè)計的思路,也有利于程序的編寫和調(diào)試。
圖2 主程序流程圖
定時自動喂食:通過DS1302 來記錄時間,當(dāng)時間到達用戶所設(shè)定的時間后,例如:4 h 投喂一次,到達4 h 時,控制投食器,進行投食,并判斷投食量,進行不斷投食,直至達到投食標(biāo)準(zhǔn),投食結(jié)束,等待下次投食。
監(jiān)測水溫實時控制:通過DS18B20 來不斷監(jiān)測水中溫度,并在LCD12864 上顯示,若當(dāng)前溫度低于設(shè)定值,開始對加熱棒進行控制,間斷加熱,并通過PID 算法不斷掃描,使溫度到達額定溫度后停止。
監(jiān)測水位穩(wěn)定對應(yīng)位置:通過電容式傳感器對水位進行測量,當(dāng)返回值低于設(shè)定水位時,蜂鳴器進行報警并開啟水泵,向魚缸內(nèi)進行注水,直至水位傳感器監(jiān)測到達額定水位后停止注水,并在LCD12864 中實時顯示水位高低。
自動水循環(huán)增氧:通過用戶設(shè)定時間,在DS1302進行判斷是否到達指定時間,并實時顯示當(dāng)前時間,到達指定時間后,開啟水循環(huán)與增氧,為魚類提供一個良好的生活環(huán)境。
掉電保護:將監(jiān)測到的數(shù)據(jù)在AT24C02 中進行存入和取出,遭遇突然停電時,保存當(dāng)前數(shù)據(jù),并展開實時工作,不會因突然斷電而導(dǎo)致數(shù)據(jù)的丟失,并單獨為DS1302 進行供電,保證時鐘芯片一直工作,確保時間的準(zhǔn)確性[6]。
本系統(tǒng)是一體化、智能化、自動化的智能魚缸,針對家庭觀賞魚缸各方面的需求,為長期出門在外但是熱愛養(yǎng)魚的人群提供一個良好的飼養(yǎng)容器,打消了人們養(yǎng)殖魚類最后一絲顧慮,給魚類提供了一個穩(wěn)定舒適的生活環(huán)境。