劉大川 李釗合 孫淑杰 袁馳 張志佳
摘 要:本文基于單片機技術(shù),設(shè)計了一套基于時間控制與多線程技術(shù)的水族箱智能控制系統(tǒng)。通過一臺arduino mega 2560 單片機作為系統(tǒng)的處理器,控制控溫模塊,換水模塊,時間顯示模塊,自動喂食模塊,水位控制模塊等。總體基于時間控制,用時鐘芯片提供整體的系統(tǒng)時間,系統(tǒng)按照預先設(shè)定好的時間順序依次運行,除非觸發(fā)中斷點,否則無限循環(huán)。本控制系統(tǒng)功能多、成本低,能夠?qū)崿F(xiàn)對水族箱的智能控制。
關(guān)鍵詞:水族箱;智能控制;單片機;多線程
中圖分類號:TP23 文獻標識碼:A 文章編號:2095-2163(2015-)02-
Design and Implementation of Aquatic Animals Box Intelligent Control System
LIU Dachuan, LI Zhaohe, SUN Shujie, YUAN Chi, ZHANG Zhijia
(School of Software, Shenyang University of Technology, Shenyang 110003,China)
Abstract:Based on the single chip computer, this paper described the design of a fish tank intelligent control system basing on time control and multithreading technology. It adopts an arduino mega 2560 single chip computer as a processor of system to control temperature modular, water changing modular, time display modular, water condition modular and other modular. Totally, the system is based on time control, which uses a clock chip to provide the whole system time, and the system will run in the preset sequence. Unless actuate the trigger point, it will cycle infinitely. The system has the advantages of various functions and low cost, and also can realize the intelligent control of aquarium.
Keywords: Aquarium; Intelligent control; Microcontrollers; Multi-thread
0引 言
隨著人們生活水平的日益提高,家用水族產(chǎn)業(yè)規(guī)模的年增長率達到13.8%,且有逐年遞增的趨勢,而現(xiàn)有的智能水族箱大多智能化水平低,仍需要人們投入大量精力去管理,并且價格昂貴,結(jié)構(gòu)復雜,容易損壞,令保持一個適宜水族生活的環(huán)境成為一件非常耗費精力的工作。
由此可見,智能水族箱的商業(yè)前景十分廣闊。市面上針對水族生活環(huán)境的凈化和改善的設(shè)備有很多[1],目前市場上常用的魚缸控制系統(tǒng)有:過濾器、加熱器、增氧泵等改善水質(zhì)的設(shè)備,但是卻大多是非智能化單獨工作的器件,同時多個單一器件機械化的組裝之后,也存在一定的資源浪費,如果僅僅把多個單獨的設(shè)備組成一套多功能的魚缸控制系統(tǒng),需要投入大量費用[2]。本系統(tǒng)正是從智能控制的角度出發(fā),用集成化的開發(fā)思路,集自動加熱、水位加換水控制、供氧、自動喂食、定時照明于一體[3-5]。現(xiàn)有市場上的智能水族箱產(chǎn)品大多是單一工作的獨立系統(tǒng),僅由簡單的電路控制,實現(xiàn)基礎(chǔ)的控制,并不能滿足市場的需求。本系統(tǒng)以一臺arduino mega 2560單片機為核心,硬件設(shè)備為基礎(chǔ),軟件控制為方式,實現(xiàn)對魚缸的集中控制和管理。系統(tǒng)的設(shè)計是在充分分析調(diào)查現(xiàn)有各類水族箱控制設(shè)備后進行的,本文從系統(tǒng)總體結(jié)構(gòu)、硬件、軟件等方面進行設(shè)計與論述。
1系統(tǒng)總體設(shè)計
系統(tǒng)總體基于時間順序工作,其下分為以下幾個功能模塊:溫度控制模塊,水位控制過濾模塊,自動/定時喂食模塊,時間顯示模塊,定時/自動照明模塊,定時增氧系統(tǒng)等模塊,如圖1所示。這些子系統(tǒng)均受單片機控制,具有獨立的信號檢測輸入以及模擬信號輸出功能,結(jié)合單片機自身的數(shù)據(jù)儲存電路,復位電路,運算電路,以及數(shù)碼管顯示電路,共同集成成為水族箱智能控制系統(tǒng)。
中央處理系統(tǒng)
圖1 系統(tǒng)模塊示意圖
Fig.1 System module schematic
系統(tǒng)的控制對象為水族箱,目的為實現(xiàn)水族箱的智能控制,提供自動管理的水族箱智能控制系統(tǒng),設(shè)計時涉及的參數(shù)有水面高度、水溫、環(huán)境光照強度等。各種參數(shù)及其處理機制如表1所示。
表1 系統(tǒng)主要參數(shù)及處理機制
Tab.1 Main parameters and system processing mechanism
系統(tǒng)參數(shù)
相應(yīng)的處理機制
水溫
多點采集,分析后控制加熱棒的工作狀態(tài)
水面高度
通過判斷是否超限來控制兩個水泵的開閉情況,從而控制水位
喂食時間
通過獲取環(huán)境時間并比對來決定是否喂食
環(huán)境時間
時鐘模塊獲取環(huán)境時間交由8位數(shù)碼管模塊
環(huán)境光照強度
在光照低時打開燈光(只在天黑后開啟)
增氧時間
通過獲取環(huán)境時間并比對來決定是否增氧
本系統(tǒng)在使用過程中還有部分參數(shù)可以設(shè)置,具體有以下幾個:定時照明時間,定時增氧時間,自動喂食時間和喂食量,這些參數(shù)可以通過手機使用藍牙連接通信系統(tǒng),在輸入伴隨系統(tǒng)提供的口令后進行設(shè)置,設(shè)置后對應(yīng)系統(tǒng)自動按照參數(shù)設(shè)置進行運行,參數(shù)可隨時通過手機進行修改。
本系統(tǒng)智能水族箱及控制系統(tǒng)布置如圖2所示。
圖2 智能魚缸及控制系統(tǒng)布置示意圖
Fig.2 Aquarium and intelligent control system schematic diagram layout
2 硬件設(shè)計
系統(tǒng)的硬件設(shè)計分為數(shù)據(jù)采集、中央處理、通信三個主要部分,具體設(shè)計如下。
數(shù)據(jù)采集部分包括溫度采集、水位采集、光強度采集,其中溫度采集使用多個DS18B20模塊進行多點溫度信息采集,水位采集使用HC-SR04超聲探測模塊進行高度信息采集。光強度通過一個BH1750FVI光強感應(yīng)模塊監(jiān)測,使用的模塊誤差均不超過測量值的1%。
中央處理部分使用1臺arduino mega 2560單片機作為中央處理器,該單片機以一個ATmega16u2為內(nèi)核,其主要特點如下:具有54個I/O接口,4路UART,1路I2C總線,3種供電方式,4KB的EEPROM,其電路圖如圖3所示。在系統(tǒng)中使用其9個引腳作為輸入腳來接收傳感器采集的數(shù)據(jù),使用13個引腳作為輸出腳控制效應(yīng)裝置,另使用一個引腳作為5V穩(wěn)壓電源輸出。
圖3 Arduino mega 2560 電路圖
Fig.3 Arduino mega 2560 circuit diagram
通信部分用一個HC-05主從一體藍牙模塊來實現(xiàn),該模塊為民用級模塊傳輸距離大約10cm-10m,符合系統(tǒng)利用手機藍牙通訊及實現(xiàn)相應(yīng)控制的需求,使用UART協(xié)議與單片機實施串口通信,模塊由中央處理系統(tǒng)統(tǒng)一供電,在檢測到設(shè)備接入后將信息傳至單片機進行分析,在密碼匹配正確后允許進行用戶操作。HC-05的電路圖如圖4所示。
圖4 HC-05藍牙模塊電路圖
Fig.4 HC-05 Bluetooth module circuit diagram
3 軟件設(shè)計
系統(tǒng)軟件流程以時間控制為核心,分為系統(tǒng)運行時間和環(huán)境時間兩個部分。流程如圖5所示。其中系統(tǒng)運行時間部分運用了中斷控制思想,定時讀取傳感器采集的信息交由單片機運算,這些設(shè)備只受系統(tǒng)運行時間影響,與環(huán)境時間無關(guān),溫度設(shè)備5s采集一次,其他設(shè)備均10s采集一次。
環(huán)境時間部分主要為數(shù)碼管提供時間信息,同時,控制需要定時開啟的設(shè)備。運行兩個時間,由于搶占,會大大增加沖突可能,降低單片機的運算效能,甚至導致死機,所以系統(tǒng)利用了arduino mega2560位多線程芯片的好處,設(shè)計了多線程運行,基于時間片輪轉(zhuǎn)調(diào)度算法,讓兩個時間以快速交替運行的方式模擬同時運行,這樣減小了運行的沖突發(fā)生幾率。系統(tǒng)流程如圖5所示。
開始
開始環(huán)境時間獲取
開始系統(tǒng)運行計時
否
否 與設(shè)定時間進行比對
判斷是否到達中斷點 是否相同
是
是
執(zhí)行中斷函數(shù) 執(zhí)行設(shè)定函數(shù)
判斷是否 否 判斷是否 否
有結(jié)束操作 有結(jié)束操作
是 是
結(jié)束
圖5 軟件流程圖
Fig.5 Software flow chart
系統(tǒng)軟件設(shè)計中存在中斷控制、多線程控制、用戶控制與反饋、采集頻度等幾個關(guān)鍵問題。具體可做如下論述。
(1)中斷控制。系統(tǒng)的中斷控制是指在到達系統(tǒng)運行的特定時間點時,系統(tǒng)中止計時并切入中斷函數(shù)中,待運行中斷函數(shù)后,系統(tǒng)重新返回計時,同時繼續(xù)運行,在進行軟件設(shè)計時,并未將各個數(shù)據(jù)采集作為主程序,若將數(shù)據(jù)采集作為主程序,則會導致系統(tǒng)時刻都在進行數(shù)據(jù)采集,導致高速刷新,影響程序的流暢運行,直至死機,雖然用延時處理的方法可以解決該問題,但是這樣卻大大增加了程序的占空比,將顯著影響處理效率和處理速度,容易導致處理延誤從而造成錯誤。
(2)多線程控制。系統(tǒng)使用多線程控制和中斷控制并存的原因是系統(tǒng)并未使用單片機自帶的時鐘芯片而是使用了外接的時鐘模塊ds1307,這樣可以獲取年月日時分秒信息,從而做出獨立于系統(tǒng)運行時間的真實時間,單片機多線程的基礎(chǔ)是時間片輪轉(zhuǎn)調(diào)度算法,這是最古老公平的算法,由于系統(tǒng)較為簡單,并不涉及線程搶占和優(yōu)先級操作。采用多線程可有效避免系統(tǒng)運行時間計算和時鐘模塊提供的時間計算合理分配內(nèi)存不沖突,時鐘模塊在接入后即開始工作,如果沒有多線程會很快使時鐘模塊的效應(yīng)器8位數(shù)碼管的緩存溢出,從而使得數(shù)碼管卡住,無法顯示。
(3)用戶控制與反饋。系統(tǒng)由于受單片機運算能力所限,只向用戶提供一部分控制功能,這種部分開放的方式可以有效避免因誤操作或惡意操作所導致的系統(tǒng)故障,同時,系統(tǒng)并未考慮使用過多的外部顯示設(shè)備,而是選擇使用手機顯示,這樣可以減少成本,同時減輕了系統(tǒng)的處理壓力,反饋的模式采用基本的詢問—回答模式。在處理反饋和控制操作前,用戶需輸入實現(xiàn)設(shè)定的口令,但鑒于系統(tǒng)安全級別不高,因此口令不進行加密,可直接使用明文存儲,這樣可以一定程度避免因惡意連接而導致的長時間占用。
(4)關(guān)于采集頻度低的問題。系統(tǒng)屬于家居設(shè)備應(yīng)用,對數(shù)據(jù)的需求量小,要求的實時程度低,沒有必要進行過度高頻的信號采集,所以系統(tǒng)確定的信號采集頻度較低。另外,本系統(tǒng)僅采用成本較低、能耗較小的單片機進行控制。
4結(jié)束語
以arduino mega 2560單片機為核心的水族箱智能控制系統(tǒng)可以使水族箱獲得自動控制溫度、自動控制水位、過濾、自動喂食、時間顯示、燈光控制等智能控制功能,有效地降低了總體成本,并明顯提升了水族箱的智能度,目前該系統(tǒng)仍有較大的可擴充性,具有較好的理論參考和使用價值。
參考文獻:
[1]葛華.魚缸智能控制的設(shè)計與開發(fā)[J].科技資訊,2006(36):199-200.
[2]丁惠忠.觀賞魚缸智能控制系統(tǒng)的設(shè)計[D].蘇州:蘇州大學,2007.
[3]陳杰,鄭純軍,丁開迪,等.基于ARM的智能魚缸控制系統(tǒng)的設(shè)計與實現(xiàn)[J].
軟件工程師,2013(18):44-46.
[4]王珍娟,宋正剛.魚缸智能控制器的設(shè)計[J]甘肅科技,2012.28(9):72-74.
[5]李克天,劉吉安,印波,等. 基于AT89S52單片機的PID恒溫控制系統(tǒng)的開發(fā)和實驗研究[J].機電工程技術(shù),2009.38(9):52-54.
1 基金項目:2013年遼寧省大學生創(chuàng)新創(chuàng)業(yè)基金(XX),沈陽工業(yè)大學創(chuàng)新創(chuàng)業(yè)項目(沈工大教發(fā)[2013]62號)。
作者介紹:劉大川(1995-),男,遼寧丹東人,本科生,主要研究方向: UI設(shè)計、軟件算法;
李釗合(1995-),男,遼寧大連人,本科生,主要研究方向: 嵌入式;
孫淑杰(1970-),女,遼寧瓦房店人,碩士,講師,主要研究方向:數(shù)據(jù)庫信息系統(tǒng)、移動互聯(lián)。