王勛,康榮顯,王玥,張新宇,劉小龍,王曉童
摘 要:隨著經(jīng)濟水平的迅速發(fā)展,人們對家庭娛樂設(shè)施的需求越來越高,休閑水族行業(yè)也正是在這種需求下應(yīng)運而生。目前國內(nèi)市場上常見智能魚缸的功能性并不強,自動程度較低,控溫模塊、加氧模塊、自動投喂和水位調(diào)節(jié)模塊采用的是互相獨立的組件,不但使用時不方便,而且成本比較高。本文設(shè)計了一款可以根據(jù)需要自動調(diào)節(jié)水溫,自動加氧、自動喂食和遠程控制與管理的智能魚缸,在節(jié)省經(jīng)濟的同時降低了養(yǎng)殖難度。
關(guān)鍵詞:STM32;智能魚缸;設(shè)計
中圖分類號:TP273? 文獻標識碼:A? 文章編號:1673-260X(2022)05-0010-05
0 引言
隨著社會經(jīng)濟的迅速發(fā)展,生活質(zhì)量的提高,人們對家庭休閑娛樂設(shè)施的需求也不斷增加,水族寵物行業(yè)也因此蓬勃發(fā)展。據(jù)《2021年中國寵物消費趨勢研究報告》中顯示,2020年在我國因養(yǎng)寵物的人數(shù)日益增多所拉動的寵物行業(yè)的規(guī)模已經(jīng)在向3000億元靠攏。疫情帶來的更多潛在養(yǎng)寵人群及情感消費,預計到2023年規(guī)模將達到4456億元。在大城市生活的居民和90后、00后的年輕一代因不同的身份和個性等原因,養(yǎng)殖的寵物種類由貓、犬等常規(guī)寵物轉(zhuǎn)移到養(yǎng)水族類寵物或異寵。據(jù)統(tǒng)計,2021年養(yǎng)殖寵物的類別結(jié)構(gòu)中,水族類寵物的占比達到了16%,成為了非貓、犬寵物中的第一選擇,而且有接近兩成的寵物養(yǎng)殖者開始“智能養(yǎng)寵”,使用科技的力量養(yǎng)殖寵物。智能寵物用品在兩個方面受到主要的關(guān)注,一個是寵物用品的科技屬性和便捷程度,另一個就是最重要的安全性。既能使寵物養(yǎng)殖者省時省力,還能更好的照顧寵物。
由于當前市場上常見的智能魚缸的科技屬性和便捷程度并不高,為了能給觀賞魚養(yǎng)殖者提供一種便捷程度高、自動化程度高、成本低、節(jié)能且高效的智能魚缸。本文選用ARM公司的STM32F103ZET6單片機作為主控制板設(shè)計了一款基于STM32單片機控制的智能魚缸[1-3],該智能魚缸可以實現(xiàn)定時自動喂食、根據(jù)預設(shè)溫度自動調(diào)節(jié)水溫、根據(jù)水位自動換水,并且還能提供外圍娛樂氛圍燈光、換氧機等。用戶可以使用手機藍牙與魚缸進行無線連接,在APP上設(shè)置魚缸的溫度等所需參數(shù)、遠程進行喂食和監(jiān)控魚缸內(nèi)部的狀態(tài)等,并且可以選擇所養(yǎng)殖的魚種,自動將魚缸設(shè)置為最適宜該魚種生存的環(huán)境。該系統(tǒng)包含控制魚缸測溫和加熱、定時投食、水位檢測和自動加水、室溫檢測、水質(zhì)的檢測、遠程監(jiān)控、藍牙通信七個子系統(tǒng)。魚缸為用戶提供了三種操作模式,分別為自動模式、手動模式和遠程模式[4-6]。
1 系統(tǒng)總體設(shè)計
智能魚缸的核心處理器為STM32F103ZET6單片機。智能魚缸的總體構(gòu)造由圖1可示。該系統(tǒng)主要由九個模塊組成,由主控制模塊(STM32單片機核心處理器)為核心,向外延申出繼電器模塊、電源模塊、藍牙通信模塊、定時喂食模塊、智能溫控模塊、自動換水模塊、用戶操作模塊和其他執(zhí)行單元組成,該系統(tǒng)與魚缸相結(jié)合,組成智能魚缸[7]。智能魚缸通過STM32F103單片機與室溫檢測傳感器、水溫檢測傳感器、水位檢測傳感器和光照度檢測傳感器相連。其中主控制模塊STM32單片機的GPIO接口與溫度傳感器、水位傳感器、喂食模塊使用的舵機、藍牙模塊、繼電器、矩陣鍵盤連接在一起。繼電器模塊通過單片機與加熱器、氛圍燈、換氧機、水泵連接。單片機通過藍牙模塊與手機APP進行數(shù)據(jù)的傳輸和交換。喂食時間采用單片機中的定時器,當系統(tǒng)檢測到定時器達到預設(shè)值時驅(qū)動舵機將食物投放到魚缸中。
2 系統(tǒng)硬件設(shè)計
2.1 主控制模塊
智能魚缸的主控制模塊使用的是STM32F103 ZET6單片機與轉(zhuǎn)接控制板,該單片機成本較低、功耗不高、資源豐富。最高72MHz的工作頻率使其工作的速度非???。該單片機片內(nèi)的Flash存儲為512Kbytes,足以將魚缸所需要的變量和參數(shù)存儲在Flash上。單片機內(nèi)部集成了多達8個定時器,包含3個16位定時器,兩個看門狗定時器和系統(tǒng)時間定時器,單片機根據(jù)時鐘信號的頻率一拍一拍地進行工作。單片機具有2個I2C(Inter Integrated Circuit)總線接口,3個USART(Universal Synchronous Asynchronous Receiver/Transmitter)接口和2個SPI(Serial Peripheral Interface)總線接口。單片機含有3個采集速度快、精度高的的12位的高速數(shù)模轉(zhuǎn)換電路。具有引出IO口106個,采用2*27排針引出,可以同時控制溫度傳感器、投食結(jié)構(gòu)、加熱器、繼電器模塊、換氧機等多個元件。智能魚缸主控制模塊引腳使用情況及功能簡介如表1所示。
2.2 電壓模塊設(shè)計
智能魚缸使用220V交流電供電。因水泵、換氧機LED燈帶和傳感器分別需要使用12V和5V的直流電供電,故使用降低電壓并轉(zhuǎn)換電流的裝置將220V交流電轉(zhuǎn)化為12V直流電,為水泵、換氧機等裝置供電。并使用LM2596S-ADJ可調(diào)穩(wěn)壓降壓芯片將12V直流電轉(zhuǎn)化為5V直流電。
主控制模塊的STM32單片機采用3.3V直流電源,通過電壓調(diào)整芯片將220V交流電源調(diào)整到5VDC后,再使用降低電壓穩(wěn)壓芯片降壓后轉(zhuǎn)化為3.3V直流電,通過濾波后提供給單片機。同時降低電壓穩(wěn)壓芯片具有過流過載過壓保護,可以有效降低由于過流過載過壓對于單片機的傷害。
2.3 溫度傳感器
室溫檢測和水溫檢測采用返回值為數(shù)字的DS18B20傳感器,DS18B20溫度傳感器是一款常用的只有一條控制總線的數(shù)字溫度傳感器,它的功能十分強大,最低測試溫度可以達到零下55攝氏度,最高測試溫度可以達到125攝氏度,在足夠日常生活的使用,而且它的體積非常小巧、抵抗外界干擾的能力也比較強,測試溫度的誤差非常小。DS18B20連接到核心控制模塊的的PA6和PA7引腳上,在初始化階段時,首先讓Pin_A的時鐘使能,其次將PA6和PA7的引腳模式設(shè)置為輸出模式,為推挽輸出模式。初始化結(jié)束后,通過DS18B20的一條控制總線,向傳感器分別傳輸0xCC、0x44和0xBE指令,其中0xCC這個指令執(zhí)行的任務(wù)跳過ROM;0x44指令啟動溫度轉(zhuǎn)換;0xBE指令為讀取溫度轉(zhuǎn)換值。它能輸出數(shù)字信號的溫度。溫度檢測電路模塊實現(xiàn)的功能是:當系統(tǒng)檢測到缸中溫度過低時,驅(qū)動升溫裝置為缸中的水加熱,避免水溫過低而導致缸中生物死亡,當溫度達到預定溫度時,關(guān)閉加熱器。其溫控模塊邏輯圖如圖2所示。
2.4 光照度傳感器
光照傳感器實現(xiàn)檢測光照度功能的主要是依靠其內(nèi)部的光敏電阻,通過檢測輸入引腳模擬輸入的電壓,由于光敏電阻的阻值會因光照度的變化而變化,輸出的電壓會發(fā)生變化,便可以檢測光照度的變化情況。因為光照度傳感器的輸出是電壓,電壓并不是單片機能直接識別的數(shù)字量,而是模擬量,所以需要將光照度傳感器的引腳連接到核心控制模塊的AD轉(zhuǎn)換接口。在初始化階段,首先將Pin_A的時鐘使能,將與光照度傳感器與核心控制模塊連接的PA4引腳配置為模擬輸入模式,通過核心控制模塊的數(shù)模轉(zhuǎn)換(ADC)來檢測模擬輸入的電壓的變化。由光照度傳感器組成的水質(zhì)檢測模塊實現(xiàn)的功能是:通過光照度傳感器來感受水的渾濁成度,當水質(zhì)太差時,發(fā)送信號驅(qū)動蜂鳴器進行報警。光照度傳感器邏輯圖如圖3所示。
2.5 水位傳感器
水位傳感器本裝置采用非接觸式的液體位傳感器,它不需要和液體直接接觸,所以它不會受到水垢或其他雜物的影響,而且不會受到腐蝕液體對傳感器的傷害,極大的延長了使用的時間,適用容器外壁不是金屬的容器檢測水位。采用輸出為高電平和低電平的傳感器,當感應(yīng)到有液體的時候,傳感器輸出為高電平,沒有感應(yīng)到液體時輸出低電平。水位檢測電路模塊實現(xiàn)的功能是:當水位傳感器檢測到缸中水位過低時,驅(qū)動抽水泵進行加水功能,驅(qū)動蜂鳴器進行報警。并更新狀態(tài)。當水位傳感器檢測到魚缸中水位達到預設(shè)的最高水位時,關(guān)閉加水泵。水位檢測邏輯圖如圖4所示。
2.6 顯示器模塊
顯示器采用的是大小為2.8寸的TFT液晶屏顯示屏溫度。該液晶屏通過I2C總線連接,可以顯示字符與文字,完全滿足溫度顯示、水位顯示、室溫顯示、魚缸狀態(tài)等要求。
2.7 開關(guān)模塊
開關(guān)模塊分為手動開關(guān)與電子鎖,手動開關(guān)控制整體的電源接通與關(guān)閉,電子開關(guān)是通過手機的遠程控制來決定系統(tǒng)是否開啟,還保留手動控制的方法打開電子開關(guān)。當手動開關(guān)開啟時,電源接通,電源開始對魚缸正常供電,在遠程控制的電子開關(guān)打開的同時,系統(tǒng)開始正常運行。
2.8 執(zhí)行單元
執(zhí)行單元由LED燈帶、換氧機等外圍元件組成。他們通過繼電器與核心控制模塊相連接,其中繼電器采用低電平觸發(fā)的JQC-3FF-S-Z繼電器,在使用低電平觸發(fā)的同時還具有光耦隔離,抵抗外界的干擾的能力非常強,而且驅(qū)動的能力比較強、信號穩(wěn)定,輸入的控制信號的電壓范圍是0-5VDC,可以負載250V、10A的交流電或30V、10A的直流電,并且可通過指示燈判斷開關(guān)的狀態(tài)。LED使用三路控制,為VCC、GND和信號線,當繼電器低電平控制LED點亮,高電平熄滅LED,信號線用來控制LED燈帶所顯示的顏色。
2.9 按鍵模塊
按鍵模塊采用的是4*4的矩陣鍵盤。4*4矩陣鍵盤僅僅使用8個引腳即可檢測16個按鍵是否被按下,故體積較小,節(jié)省整體的空間。軟件中使用4*4編碼鍵盤檢測來檢測是否有按鍵按下,若有按鍵按下則通過掃描的方法去確定按下的鍵是哪一個鍵,然后執(zhí)行這個鍵對應(yīng)的操作。
2.10 系統(tǒng)復位
系統(tǒng)復位操作就是按下單片機的復位按鍵后,產(chǎn)生一個復位信號,單片機收到復位信號后,進入復位狀態(tài),使單片機的中燒寫的程序從執(zhí)行main函數(shù)從頭執(zhí)行。STM32單片機的復位端口為RES,在復位電路中:連接上拉電阻,SW-PB為復位按鍵,按下SW-PB后,RES引腳收到低電平信號,系統(tǒng)進入復位狀態(tài)。當復位按鍵沒有被按下時,RES引腳接在上拉電阻上,為高電平狀態(tài),單片機系統(tǒng)便正常工作。系統(tǒng)復位按鍵電路圖如圖5可示。
3 系統(tǒng)軟件設(shè)計
該魚缸使用的編程語言為C語言,在Keil5 KeliuVision5這個編程軟件上編程,以ARM公司的STM32F103作為核心控制模塊。多種傳感器各司其職的檢測魚缸內(nèi)部的環(huán)境情況,將檢測的參數(shù)通過GPIO接口傳送到核心控制模塊中,核心內(nèi)部模塊將根據(jù)傳入的信息進行相應(yīng)的操作。
當手動開關(guān)打開后,魚缸會被供電,此時核心控制模塊啟動板層驅(qū)動程序的初始化后,初始化GPIO引腳模式、時鐘使能狀態(tài)、串口波特率、定時器的初始化等操作。初始化過后,魚缸的核心控制模塊會開啟由電子鎖控制的模式,當電子鎖被打開后,核心控制模塊收到信號后,單片機進入正常模式,開始繼續(xù)執(zhí)行main函數(shù)。當電子鎖未被打開時,單片機進入休眠模式,以較少的能量消耗維持單片機運行,等待電子鎖被打開。
其中,main為程序中的主函數(shù),main函數(shù)中首先進行對各個模塊的初始化工作,其中包括了GPIO引腳初始化、延時函數(shù)初始化、串口波特率初始化和中斷優(yōu)先級初始化等一系列的正常工作前對所使用單片機功能的初始化。初始化完成后,main函數(shù)將調(diào)用各個模塊工作所需要的子程序,如溫度檢測子程序、判定溫度是否過低或過高的子程序等等,將所有魚缸中的傳感器所傳回的信息進行判斷,判斷后返回對應(yīng)的返回值,再根據(jù)返回值的不同從而讓核心控制模塊執(zhí)行不同的操作,根據(jù)返回值,核心控制模塊也會將當前魚缸中的狀態(tài)通過屏幕反饋給用戶。此魚缸的程序共有三種操作模式供用戶選擇使用,分別為自動模式、手動模式和遠程模式。當魚缸正常啟動時,會直接進入自動模式,自動進行對魚缸的檢測和驅(qū)動其他執(zhí)行單元進行操作,與此同時智能魚缸的用戶也可以通過使用手機與智能魚缸的藍牙模塊進行連接后,會將操作模式由自動模式切換為遠程模式,用戶也可以通過4*4的矩陣鍵盤來控制核心操作模塊的參數(shù),操作模式便會切換為手動模式。
3.1 自動控制
當核心操作模塊被供電且電子鎖處于打開狀態(tài)時,系統(tǒng)將自動進入自動模式,自動進入main中函數(shù)中按順序執(zhí)行程序中的命令。當系統(tǒng)處于自動模式時,核心操作模塊會收到來自通過GPIO連接的水溫傳感器、室溫傳感器、光照度傳感器、非接觸式水位傳感器傳回的參數(shù)。其中,水溫傳感器會返回此時魚缸中的水溫,當傳回的溫度低于系統(tǒng)預設(shè)的溫度時,核心操作模塊會使用通過GPIO連接的繼電器模塊來控制加熱棒的使能從而進行對魚缸中水的加熱,同時核心操作模塊會將溫度傳感器返回的溫度和此時加熱器是否開啟的信息通過顯示屏顯示出來,當STM32F1單片機接受到溫度傳感器所檢測到的溫度到達預設(shè)溫度,若此時加熱棒處于加熱狀態(tài),則停止加熱,LED顯示屏會同步顯示溫度和加熱棒開關(guān)情況;當STM32F1單片機接收到水位傳感器為缺水狀態(tài),則進行報警,通過繼電器驅(qū)動水泵進行加水功能,同時LED顯示屏會同步顯示當前狀態(tài);當單片機接收到定時器達到預設(shè)值時,則驅(qū)動舵機將魚食投入魚缸中,之后將數(shù)據(jù)顯示在LED顯示屏上。
3.2 手動操作
當核心操作模塊通過對4*4矩陣鍵盤的掃描程序中檢測到有按鍵被按下時,系統(tǒng)將自動切換為手動操作??梢酝ㄟ^外置的矩陣鍵盤來設(shè)置魚缸中所需要的水溫最高溫度與水溫最低溫度、自動喂食間隔、換氧機的啟動、LED燈帶的啟動與顏色、水位最低閾值與最高閾值、水泵的啟動等操作,優(yōu)先級為最高。
3.3 遠程操作
當用戶使用手機與魚缸中的藍牙模塊進行連接后,魚缸會由自動模式切換為遠程模式,通過手機向藍牙模塊發(fā)送信號從而進行對魚缸的遠程控制功能。遠程模式與手動模式不同,想要實現(xiàn)魚缸的遠程操控的功能,就需要對實現(xiàn)遠程操作的信號和指令的傳送方式進行選擇。因遠程信號的發(fā)射器與魚缸使用的遠程信號接收器的距離比較近,且沒有較多的障礙物和遮擋的物體對信號進行阻攔,所以本文便采用日常中比較常見和經(jīng)常使用的Bluetooth(藍牙)就可以實現(xiàn)魚缸的遠程操控的功能。因需要使用手機與魚缸的藍牙模塊連接,為用戶使用的便捷性和簡單化,于是通過使用Android Studio制作了安卓手機使用的APP,其主要功能有“控制加熱器”“控制燈光”“其他模式選擇”“顯示當前魚缸狀態(tài)”等。利用單片機中的串口通信功能,實現(xiàn)了藍牙模塊與核心控制模塊信息的交互,從而進一步實現(xiàn)了遠程操作控制魚缸的核心控制模塊從而控制魚缸的功能。魚缸通過藍牙進行遠程對魚缸控制的結(jié)構(gòu)圖如圖6所示。
4 智能魚缸遠程控制APP設(shè)計
本設(shè)計所使用的手機端遠程控制APP是由Android Studio軟件設(shè)計實現(xiàn)的,該軟件主要實現(xiàn)安卓系統(tǒng)的軟件設(shè)計和開發(fā),采用Kotlin作為主要編程語言。
該APP設(shè)計的Activity中主要使用RecyclerView控件,RecyclerView是很常用的一種數(shù)據(jù)展示的控件,它與傳統(tǒng)使用的ListView相比較,不但可以輕松地實現(xiàn)和與ListView相同的滾動顯示功能,還優(yōu)化了ListView中的不足之處,成為本程序使用Activity中優(yōu)先使用的控件。APP中使用RecyclerView作為一個列表視圖,并且智能魚缸中每個功能的展示的條目布局是一致的,因此在創(chuàng)建item的布局時,每一個區(qū)域都對應(yīng)了一個圖片控件和一個文本控件的展示和點擊跳轉(zhuǎn)布局的點擊事件,創(chuàng)建監(jiān)視器創(chuàng)建點擊事件進行布局的跳轉(zhuǎn),跳轉(zhuǎn)到不同的設(shè)置界面。傳感數(shù)據(jù)監(jiān)測頁面,RecyclerView控件把魚缸各區(qū)域的傳感數(shù)據(jù)展示到了界面中,看起來結(jié)構(gòu)清晰,也更加美觀?;赟TM32的智能魚缸app設(shè)計界面如圖7所示。
5 結(jié)語
本文基于STM32單片機控制的智能魚缸采用STM32F103ZET6單片機作為主控芯片,實現(xiàn)了魚缸的定時投喂、水溫調(diào)節(jié)、智能增氧、自動換水等功能,同時也可以滿足用戶遠程控制的需求。該系統(tǒng)具有操作簡單、性能穩(wěn)定,人機交互更加直觀等特點。隨著智能家居的快速發(fā)展,智能化魚缸的發(fā)展前景十分可觀,具有良好的市場價值。
參考文獻:
〔1〕張杰斌,謝澤奇.基于STM32的寵物智能投喂裝置的設(shè)計與實現(xiàn)[J].科技創(chuàng)新與應(yīng)用,2021,35(10):93-95.
〔2〕李金武,宋新愛.智能魚缸自動控制系統(tǒng)設(shè)計與實現(xiàn)[J].智能計算機與應(yīng)用,2020,6(03):284-287.
〔3〕邱義.基于STM32的智能魚缸遠程控制系統(tǒng)設(shè)計[J].信息技術(shù)與信息化,2020,27(10):230-232.
〔4〕何穎,唐幸洪,張法強,等.多功能智能魚缸控制系統(tǒng)的研究與設(shè)計[J].電子制作,2019,55(21):45-47.
〔5〕曹益豪.基于單片機的智能魚缸溫控系統(tǒng)設(shè)計[J].機電信息,2019,15(11):11-12.
〔6〕劉偉,林開司,劉安勇.基于物聯(lián)網(wǎng)的魚缸智能控制系統(tǒng)設(shè)計與實現(xiàn)[J].淮海工學院學報(自然科學版),2016,25(04):1-4.
〔7〕向鎳鋅,郭平,曹旬.基于STM32智能魚缸監(jiān)控系統(tǒng)的設(shè)計[J].科技視界,2020,45(31):97-99.