支元++王登科
摘要:當(dāng)今基于物聯(lián)網(wǎng)技術(shù)的智能魚缸實(shí)現(xiàn)了家庭科學(xué)養(yǎng)殖的新模式,本文提出了一種基于嵌入式系統(tǒng)的智能魚缸的設(shè)計(jì),借助手機(jī)短信實(shí)現(xiàn)遠(yuǎn)程監(jiān)視與控制,從系統(tǒng)的功能組成、硬件設(shè)計(jì)和軟件設(shè)計(jì)與實(shí)現(xiàn)等方面進(jìn)行闡述。
關(guān)鍵詞:智能控制;魚缸;傳感器
中圖分類號(hào):TP393 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2015)29-0155-02
1 概述
當(dāng)今物聯(lián)網(wǎng)技術(shù)應(yīng)用于農(nóng)牧漁業(yè)有著許多重要的意義,而智能魚缸則是基于物聯(lián)網(wǎng)技術(shù)實(shí)現(xiàn)家庭中科學(xué)養(yǎng)殖的一種新模式。用戶通過遠(yuǎn)程監(jiān)控了解魚缸的狀況進(jìn)而控制相關(guān)設(shè)備的工作。面對現(xiàn)代化水產(chǎn)養(yǎng)殖規(guī)模和科學(xué)化養(yǎng)殖的要求,如何對養(yǎng)殖生態(tài)環(huán)境進(jìn)行科學(xué)監(jiān)測,將養(yǎng)殖環(huán)境控制在最佳狀態(tài)成為非常重要的一個(gè)環(huán)節(jié)。養(yǎng)殖水質(zhì)的優(yōu)劣主要包括水的溫度、PH值、溶解氧和透明度,不同的水產(chǎn)動(dòng)物對水質(zhì)參數(shù)的要求各不相同。隨著傳感器技術(shù)的發(fā)展,各種傳感信息的獲取已成為可能,結(jié)合成熟的計(jì)算機(jī)信息處理技術(shù),可以實(shí)現(xiàn)水質(zhì)參數(shù)監(jiān)測的數(shù)據(jù)化、實(shí)時(shí)化,并參考水產(chǎn)養(yǎng)殖的專家數(shù)據(jù),通過控制加熱設(shè)備、水循環(huán)設(shè)備、增氧設(shè)備等改善水質(zhì),達(dá)到養(yǎng)殖要求,形成養(yǎng)殖科學(xué)化和自動(dòng)化。
2 系統(tǒng)功能組成
該系統(tǒng)的控制對象是魚缸,包括一個(gè)中央控制模塊,其功能是通過嵌入式網(wǎng)絡(luò)控制技術(shù)與用戶通信,用戶通過手機(jī)短信功能實(shí)現(xiàn)溶氧控制開關(guān)、燈光控制開關(guān)、充氣控制開關(guān)、加熱控制開關(guān)、PH值控制開關(guān)的遠(yuǎn)程控制,在手機(jī)上可以定時(shí)收到魚缸視頻和魚缸溫度的變化曲線,使養(yǎng)魚居民在長時(shí)間出差或者出門旅游的情況下也可以方便地照顧自己的魚缸,克服了現(xiàn)有技術(shù)中魚缸控制功能只能進(jìn)行定時(shí)喂食或者加氣的缺陷。
系統(tǒng)設(shè)計(jì)時(shí)需要注意的水質(zhì)及環(huán)境參數(shù)有:水溶氧量、水溫、光強(qiáng)度、水質(zhì)濁度等參數(shù)[1],表1顯示控制系統(tǒng)對各項(xiàng)參數(shù)的處理內(nèi)容。
表1 系統(tǒng)控制參數(shù)
2 系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
2.1 系統(tǒng)硬件結(jié)構(gòu)
本系統(tǒng)核心控制芯片采用STC89C52單片機(jī),該芯片使用簡單、方便、成本低。增氧泵、加熱棒、排水泵、供水泵通過繼電器控制開關(guān),而繼電器則通過單片機(jī)的引腳連接三極管,三極管和繼電器、加熱棒串聯(lián)。WQ101溫度傳感器:工作溫度范圍-50°到+50°,轉(zhuǎn)換為4mA~20mA的電流輸出,利用溫度傳感器實(shí)時(shí)監(jiān)測水溫并控制加熱棒對對水體加熱,利用換水來降溫。WQ401溶解氧傳感器:用于測量水中氧氣的含量,量程范圍0~100%,轉(zhuǎn)換為4mA~20mA的電流輸出,通過改變C程序中中斷發(fā)生時(shí)間控制增氧泵充氧時(shí)間和頻率,來改變不同時(shí)期的溶氧度[2]。傳感器采集到的模擬電流信號(hào)分別送入4個(gè)12位A/D,轉(zhuǎn)換成對應(yīng)的數(shù)字編碼,串行輸入到數(shù)據(jù)處理模塊單片機(jī)STC89C52。
經(jīng)編程處理后相關(guān)數(shù)據(jù)送顯示器顯示實(shí)測數(shù)值,鍵盤用于設(shè)置水質(zhì)參數(shù)專家數(shù)據(jù),當(dāng)水質(zhì)不達(dá)標(biāo)時(shí)進(jìn)行相應(yīng)的調(diào)整,溫度太低時(shí)自動(dòng)啟動(dòng)加熱設(shè)備,水含氧量過低時(shí)啟動(dòng)增氧設(shè)備,水渾濁時(shí)自動(dòng)啟動(dòng)水循環(huán)設(shè)備,實(shí)現(xiàn)水質(zhì)的自動(dòng)調(diào)整;用戶隨時(shí)可以在手機(jī)端查看所有設(shè)備狀態(tài),或控制設(shè)備開關(guān),調(diào)整參數(shù)范圍實(shí)現(xiàn)實(shí)時(shí)監(jiān)控;當(dāng)水質(zhì)自動(dòng)調(diào)整出現(xiàn)異常時(shí),系統(tǒng)通過短信向用戶發(fā)出相應(yīng)的警報(bào),提供對異常狀況的適應(yīng)能力。系統(tǒng)硬件結(jié)構(gòu)框圖如下所示:
圖1 系統(tǒng)硬件結(jié)構(gòu)框圖
借助溫度、PH值、溶解氧和透明度等傳感器將信息進(jìn)行采集,實(shí)現(xiàn)水質(zhì)參數(shù)監(jiān)測的數(shù)據(jù)化、實(shí)時(shí)化,并參考水產(chǎn)養(yǎng)殖的專家數(shù)據(jù),通過控制加熱設(shè)備、水循環(huán)設(shè)備、增氧設(shè)備等改善水質(zhì)達(dá)到養(yǎng)殖要求。
2.2 軟件設(shè)計(jì)
本系統(tǒng)采用Keil C51集成環(huán)境開發(fā)軟件部分,它兼容了C語言軟件開發(fā)系統(tǒng),為用戶提供了豐富的庫函數(shù)和功能強(qiáng)大的集成開發(fā)調(diào)試工具。軟件流程分為主流程和串口流程,主流程用來采集傳感器數(shù)據(jù)、控制執(zhí)行機(jī)構(gòu)、自動(dòng)調(diào)整,串口流程中進(jìn)行手機(jī)指令的接收判斷。
1)系統(tǒng)初始化
首先對系統(tǒng)進(jìn)行初始化編程,硬件方面包括定時(shí)器,中斷控制字等。軟件方面包括定時(shí)器初值設(shè)置,水位高低、水溫高低等初值設(shè)定。
void init()
{ EA=0;
Init_BH1750(); //光強(qiáng)傳感器初始化
Ds18b20Init(); //溫度傳感器初始化
LCD_Yugang_Init();//顯示初始化
Uart_Config();
Timer0_init();
EA=1;}
2)顯示模塊
根據(jù)實(shí)際情況處理8位數(shù)碼管顯示,顯示分為兩種狀態(tài),一種是參數(shù)編輯狀態(tài),配合按鍵控制模塊,對系統(tǒng)狀態(tài)進(jìn)行手動(dòng)或自動(dòng)設(shè)置;另一種是非參數(shù)編輯狀態(tài),顯示系統(tǒng)運(yùn)行信息、各種系統(tǒng)參數(shù)等,如系統(tǒng)時(shí)間。
void LcdDisplay_wendu(int temp) //溫度顯示函數(shù)
{ uchar *t2;
t2=numtochar(temp);
write_cmd(0x93);
write_dat(*t2++);
write_dat(*t2++);
write_dat('.');
write_dat(*t2++);}
3)采樣檢測模塊
借助各種傳感器獲取環(huán)境參數(shù)的變化情況和狀態(tài)。環(huán)境參數(shù)主要包括系統(tǒng)時(shí)間、水質(zhì)溫度、水位高低、進(jìn)排水和溶氧度狀態(tài),照明控制狀態(tài)等。
Wen=Ds18b20ReadTemp(); //采集溫度
Guang=BH1750_gettemper(); //采集光強(qiáng)度
Rong=getstate_rongyangliang(); //采集溶氧量
Zhuo=getstate_zhuodu(); //采集濁度
Shuiwei=getstate_shuiwei(); //檢測水位
4)按鍵檢測和控制
按鍵被按下即進(jìn)入中斷模式,檢測按鍵操作并獲取按鍵編碼,而控制模塊和顯示模塊則根據(jù)不同的按鍵編碼完成不同的操作控制或顯示相應(yīng)的信息。
5)輸出控制程序
根據(jù)系統(tǒng)時(shí)鐘和按鍵處理信息,結(jié)合當(dāng)前所處工作狀態(tài),實(shí)現(xiàn)充氧、進(jìn)/出水、照明和恒溫控制等工作參數(shù)的取值。
6)看門狗控制
判斷看門狗控制寄存器WDT_CONTR的值是否是程序設(shè)置好的,如果是則將寄存器復(fù)位,并開始新一次循環(huán);如果不是,則系統(tǒng)報(bào)錯(cuò)并重新復(fù)位。
7)中斷服務(wù)子程序
主程序中各種信息和數(shù)據(jù)處理子程序,一是放在緩存中,二是放在中斷服務(wù)子程序中完成,本系統(tǒng)利用定時(shí)器中斷服務(wù)子程序,在工作方式1下,通過T0中斷服務(wù)子程序?qū)崿F(xiàn),為控制系統(tǒng)提供控制時(shí)間[3]。
void Timer0_init() //時(shí)鐘初始化
{ TMOD|=0x01;
TH0=(-50000)/256;
TL0=(-50000)%256;
ET0=1;
TR0=1;}
3 系統(tǒng)實(shí)施效果
該項(xiàng)目受到我校和常州市教育局創(chuàng)新項(xiàng)目的資金扶持與幫助,用戶通過手機(jī)客戶端實(shí)時(shí)監(jiān)測并控制系統(tǒng)的狀態(tài),系統(tǒng)平臺(tái)和手機(jī)客戶端顯示效果如下圖所示:
圖2 系統(tǒng)實(shí)物效果
4 結(jié)論
本系統(tǒng)設(shè)計(jì)的智能魚缸經(jīng)過長時(shí)間測試與運(yùn)行,證實(shí)了系統(tǒng)具有較好的穩(wěn)定性,其成本低廉、易于拓展,適用范圍廣,性價(jià)比高等特點(diǎn)給廣大養(yǎng)魚愛好者也會(huì)帶來更好的興趣感受。
參考文獻(xiàn):
[1] 葛華.魚缸只能控制系統(tǒng)的設(shè)計(jì)與開發(fā)[J].科技咨詢導(dǎo)報(bào),2007(5).
[2] 陳建樹,楊光軍.適合不同魚種生存環(huán)境的智能魚缸的設(shè)計(jì)[J].福建電腦,2013(5).
[3] 丁惠忠.觀賞魚缸智能控制系統(tǒng)的設(shè)計(jì)[D].蘇州大學(xué),2007:36-37.