林天翔 謝欣辰 黃炳曉 丁 嘉
水族箱俗稱魚缸,是一種飼養熱帶魚或金魚用作觀賞的玻璃器皿,據不完全統計全球約有6 000 萬以上愛好者。水族箱可分為魚缸、草缸、龜缸等多種類型,簡單的水族箱往往只飼養一條或者幾條魚,而復雜的水族箱往往配置齊全的加熱、過濾系統和各種造景,尤其是熱帶雨林缸,有的水族箱系統還配備精密的智能控制系統用于模擬生態環境,給人以美的享受。
在中國,隨著社會發展和人民生活水平的逐步提高,有越來越多的人加入水族箱愛好者這一群體中來,但由于缺乏經驗以及工作繁忙,很多水族箱的境況并不是很好,部分水族箱內部環境較差,魚群死亡頻率較高,不僅影響了用戶心情,也影響了水族箱作為裝飾品的作用發揮。
一個典型的水族箱必須包含以下功能:首先是過濾系統,過濾系統主要用于過濾水中的雜質比如多余餌料、魚便等,在硝化細菌作用下,將其分解為無害物質,避免氨的比例過高;其次是溫度控制系統,很多有熱帶魚基因的魚類尤其是高價熱帶魚,都需要穩定的溫度環境,倘若箱內溫度過低或者變化劇烈,均會大大影響魚群生長,甚至導致其死亡;第三是自動增氧系統,該系統可以在溫度較高時節,及時向箱內補充新鮮空氣,增加水中的溶氧量。除了以上必要系統外,還可以適當燈光控制系統、自動投餌系統、自動補水系統甚至是自動遮光系統,還可以借助發達的網絡和高清攝影機,將水族箱環境參數和實景畫面通過互聯網傳遞到遠處的用戶移動終端中,便于用戶及時了解家中水族箱的情況[1-2]。
根據以上需求分析,智能水族箱硬件系統框架簡圖如圖1 所示。

圖1 智能水族箱硬件框架簡圖
微控制器是整個系統核心,通常選用高性能的單片機比如STM3F103 系列單片機構成,其內部往往包含64KB 的FLASHROM 和20KB 左右的RAM,可以滿足簡單算法控制的運算能力需求。
外部模塊中主要包含檢測、輸入、輸出、顯示與傳輸、電源及擴展等若干模塊。其中檢測模塊包含水溫傳感器、水位傳感器和濁度傳感器三部分,用于檢測水族箱的環境因子,以便微控制器根據箱內環境變化做出決策,啟動過濾、補水或加熱系統。
燈光控制、過濾控制、增氧控制、自動投餌控制、補水和加熱系統構成了水族箱智能硬件的執行機構模組。其中燈光系統是一組高亮度LED 補光燈,用于向水族箱內補光,但需要注意的是,光照會加劇箱內藻類繁殖,因此光照時間需要精確控制,非必要時不開啟補光燈。過濾系統核心是一個受控的“增氧——造浪——過濾”三合一微型水泵,本次設計中水泵額定功率6W,揚程約為0.8m,流量約每小時350升。根據研究,天然水體的溶氧量通常在7mg/L,而水族箱內通常為3-5mg/L,增氧系統主要用于向水中補充氧氣,尤其是在箱內魚群密度較高時,增氧系統的效果除了跟工作功率有關外,還跟氣石涌出的氣泡大小有關,在條件允許情況下,應優先選擇氣泡顆粒較小的納米氣盤,以增大空氣與水接觸面積,提高溶氧效率。自動投餌系統由一個電機以及附屬機械結構組成,通過微控制器定時控制閥門的開閉時間長短,打開時間越長,投餌量越多,且投餌系統與過濾系統需要協調,如果15 分鐘內魚兒沒有吃完餌料,則開啟過濾系統,將多余餌料過濾掉,以免污染水質。加熱系統是一個PMW 控制的金屬殼加熱棒,利用PWM 和PID 算法,精確控制溫度并改變溫度變化率,將其穩定在魚類最適宜的溫度水平上。以上執行機構模組和微控制器之間通過三極管、繼電器等驅動電路相連,可在微控制器控制下,改變箱內多種物理量狀態,使得水族箱基本穩定在最佳狀態,減輕用戶的操作負荷。
由于微控制器自身計時精度較低,故設置外部時鐘模組(DS12C887),它是一款純數字式芯片,在無外部電源情況下連續工作10 年,可計算到2100 年前七種日歷信息并帶閏年補償,即年、月、日、星期、時、分、秒。該模組用于為系統提供統一的時間基準,減少時間誤差;輸入模塊(包括六個獨立按鍵),可便于用戶設置和改變預訂信息或命令;整個水族箱的狀態可在顯示模組上顯示出來,也可以通過無線傳輸模組上傳到云端。電源模組給整個系統提供電力支持,它由一個220V 轉 5V 和3.3V 的模塊化電路構成。本系統還留有一定的擴展口,預留給諸如遮光控制模塊等新的輸出控制模塊使用。
系統啟動后,首先完成初始化并進行自檢,然后根據用戶需求選擇自動管理模式或手動管理模式;自動和手動管理模式的差別在于手動模式下,各種日常工作將在顯示模組顯示,但各種執行機構并不會被自動啟動,而等待用戶操作,這樣可讓用戶體驗飼養的樂趣;而在自動管理模式下,系統將讀取預存在ROM 中的命令操作符,根據預定日程完成定時自動投餌、過濾等功能,考慮到夏天餌料容易變質,故最長自動管理時間限定在7 天。在其他空閑時間段,系統將不斷查詢當前的環境狀態信息并加以判斷,根據判斷結果調用功能實體(過濾、恒溫、水位控制)等函數,使得環境條件維持在預設范圍內,圖2 為系統主流程圖。

圖2 系統主流程圖
本系統大部分執行機構都采用定時/開關控制手法,控制方式簡單。但考慮溫度控制具有大滯后性以及魚類的適應能力,水族箱的溫度控制考慮采用閉環控制手法。其主要控制思路是利用溫度傳感器檢測溫度,然后利用PID 算法解算出PWM 占空比,然后通過調整開啟/關斷的時間比值來實現溫度控制。圖3 是PID 算法基本結構框圖。

圖 3 PID 基本結構框圖
在本系統中采用位置型數字PID 控制算法,其基本控制公式為:

其中e(k-N)為本時刻前第N 時刻的檢測誤差。
在PID 算法中,比例系數KP主要用于加快調節,減少偏差,但Kp過大會大幅度增加超調量;積分時間TI用于消除靜差,同時減少超調;微分時間TD用于超前響應,提高系統的響應速度同時改善超調。在本次設計中,考慮到水族箱系統溫度超調是不允許出現的,因為魚類無法承受溫度急劇升高,因此采用了專家型PID 的設計思路[4]。主要措施包括:
(1)當偏差e(k)絕對值很大時,不管誤差變化趨勢如何,控制器都按預設定值輸出,以期快速減少誤差,同時避免超調,此時的系統相當于一個開環系統。
(2)當偏差 e(k)·Δe(k)>0 或者 Δe(k)=0 時,說明偏差在朝絕對值增加的方向變化或者維持某一定值;此時觀察e(k)大小,如e(k)絕對值超過某個設定值M,則輸出較強的控制作用(2),減少偏差。

如e(k)絕對值小于該設定值,則可認為雖然偏差有增大趨勢,但偏差本身并不大,可以考慮實施一般程度的PID 控制作用(3)。

(3)如 e(k)·Δe(k)<0,e(k)·Δe(k-N)>0 或者 e(k)=0 時,說明偏差的絕對值有減小的趨勢或者以達到平衡,此時可以維持控制器輸出不變。
(4)如 e(k)·Δe(k)<0,e(k)·Δe(k-N)<0 時,說明偏差處于極值,此時如果偏差絕對值較大,可實施較強的控制作用(4)

如果此時偏差絕對值較小,可實施較弱的控制作用(5)。

(5)當偏差小于精度時,引入積分作用,可進一步減少偏差。
根據以上思路,利用文獻3 中的模型,可實現較理想的控制效果,其matlab 仿真結果如圖4 所示。
在試驗型樣機中采用Zigbee 模塊模擬聯機效果,在工程化后可用藍牙或者wifi 模塊來替代,主要用于多水族箱控制和數據整理、傳輸,具體措施如下:
(1)對分機進行初始化,使其處于接收地址的待命狀態。
(2)首先主機發送代表地址的數據包,該數據包包括了8 位地址代碼。所有分機接收該地址包后與本機地址對比,匹配的標志位置零,并發送本機地址返回主機;否則標志位置一,等待主機發送下一個地址數據包。
(3)各環境變量都由4 位數字組成,在發送數據前需要將數據逐位拆分。
(4)主機發送命令 20,21,22,23,分別定義為要求分機發送環境變量的千、百、十、個位。

圖4 專家型PID 性能仿真
(5)主機發送后會等待分機應答,如分機發出有效應答信號并被主機接收,則下一步主機將發送命令,否則重復發送地址或命令代碼。
(6)主機命令信息如表1 所示。

表1 命令信息
根據以上軟硬件設計思路,相繼完成了硬件和軟件設計,并制作了樣機,并利用湊試法[3]在原有算法基礎上調整了PID參數,控制效果如表2 所示。

表2 數據記錄
通過實測數據發現,加入了PID 算法后,控溫效果較傳統模擬式加熱棒效果有很大提升,除非傳感器失靈,否則不易出現“燒煮”效果。
為節省成本,本次采用了浮子開關作為液位控制裝置,現實中浮子開關精度較低,但高性能的液位變送器價格過高,難以在家庭水族箱中應用,因此未來還需要搜索更具有性價比更適合家庭的液位控制開關。
通過以上試驗表明,在水族箱智能控制方面,即便是低成本的STM32 系列微控制器,也能實現很好的控制效果。現在水族箱智能控制器還屬于比較小眾的領域,但個性化需求進一步凸顯,會涌現出各種各樣適合不同類型水族箱的控制器,其生態環境控制和模仿能力還將會進一步提高。同時智能水族箱融入智能家居系統,也會給這一“古老”的愛好增添新的樂趣。