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