




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
河北理工大學(xué)信息學(xué)院 摘要 摘要隨著人們生活質(zhì)量的提升,家里養(yǎng)魚(yú)的人越來(lái)越多,同時(shí),對(duì)魚(yú)缸的智能化需求也隨之增加,基于此背景本文設(shè)計(jì)并實(shí)現(xiàn)了一款智能魚(yú)缸控制系統(tǒng)。該系統(tǒng)基于STM32F103單片機(jī),集成了溫度檢測(cè)、水位監(jiān)測(cè)、光照強(qiáng)度檢測(cè)、時(shí)間控制、無(wú)線通信和執(zhí)行模塊等多種功能模塊,可實(shí)現(xiàn)自動(dòng)喂食、換水、制冷制熱、補(bǔ)光等操作。系統(tǒng)支持手動(dòng)和定時(shí)兩種工作模式,用戶可通過(guò)按鍵和APP進(jìn)行參數(shù)設(shè)置和模式切換。系統(tǒng)具有實(shí)時(shí)監(jiān)測(cè)和自動(dòng)調(diào)節(jié)的功能,可有效維持魚(yú)缸內(nèi)的最佳環(huán)境,減輕了用戶的日常維護(hù)工作。關(guān)鍵詞智能魚(yú)缸;STM32F103;自動(dòng)控制;環(huán)境監(jiān)測(cè)AbstractAbstractAbstractWiththeimprovementofpeople'squalityoflife,moreandmorepeopleareraisingfishathome.Atthesametime,thedemandforintelligentfishtanksisalsoincreasing.Basedonthisbackground,thisarticleintroducesthedesignandimplementationofanintelligentfishtankcontrolsystem.ThissystemisbasedontheSTM32F103microcontrollerandintegratesvariousfunctionalmodulessuchastemperaturedetection,waterlevelmonitoring,lightintensitydetection,timecontrol,wirelesscommunication,andexecutionmechanism.Itcanachieveautomaticfeeding,waterchange,refrigerationandheating,andlightsupplementation.Thesystemsupportstwoworkingmodes:manualandtimed.Userscansetparametersandswitchmodesthroughbuttonsandtheapp.Thesystemhasreal-timemonitoringandautomaticadjustmentfunctions,whichcaneffectivelymaintaintheoptimalenvironmentinsidethefishtankandreducethedailymaintenanceworkofusers.Keywords:Intelligentfishtank;STM32F103;Automaticcontrol;environmentalmonitoring 目錄 目錄 目錄22186摘要 2功能與設(shè)計(jì)方案2.1系統(tǒng)的功能要求智能魚(yú)缸控制系統(tǒng)作為一種自動(dòng)化智能家居產(chǎn)品,其主要目標(biāo)是能夠替代人工對(duì)魚(yú)缸進(jìn)行日常的監(jiān)控和維護(hù),從而大幅減輕用戶的勞動(dòng)強(qiáng)度,同時(shí)確保魚(yú)類(lèi)生存環(huán)境的舒適性和穩(wěn)定性。為實(shí)現(xiàn)這一目標(biāo),系統(tǒng)需具備以下主要功能:(1)實(shí)時(shí)監(jiān)測(cè)魚(yú)缸內(nèi)的水溫,并根據(jù)設(shè)定的理想溫度范圍,自動(dòng)啟動(dòng)制冷或制熱裝置,將溫度控制在合理區(qū)間。(2)配備水位傳感器,及時(shí)監(jiān)測(cè)魚(yú)缸內(nèi)的水位變化。一旦水位降至設(shè)定閾值以下,就需自動(dòng)啟動(dòng)供水裝置,對(duì)魚(yú)缸內(nèi)補(bǔ)水至正常水位線。(3)內(nèi)置光敏電阻等光照檢測(cè)裝置,當(dāng)環(huán)境光線暗于預(yù)設(shè)閾值時(shí),自動(dòng)打開(kāi)人工補(bǔ)光燈,確保魚(yú)缸內(nèi)的光照條件。(4)系統(tǒng)應(yīng)設(shè)置自動(dòng)喂食功能,用戶可以預(yù)設(shè)投喂時(shí)間和投喂量,系統(tǒng)將按時(shí)自動(dòng)完成投喂動(dòng)作,避免了人工操作的不便。(5)每隔一段時(shí)間對(duì)魚(yú)缸換水,以保持良好的水質(zhì)環(huán)境。自動(dòng)換水控制功能允許用戶設(shè)定換水周期,系統(tǒng)將自動(dòng)完成排水和補(bǔ)水動(dòng)作。(6)隨時(shí)隨地查看魚(yú)缸內(nèi)的運(yùn)行參數(shù);同時(shí)用戶可通過(guò)無(wú)線操控界面遠(yuǎn)程調(diào)整系統(tǒng)各項(xiàng)參數(shù)設(shè)置。2.2系統(tǒng)設(shè)計(jì)方案整個(gè)控制系統(tǒng)由STM32F103單片機(jī)、傳感器模塊、執(zhí)行器模塊、通信模塊和顯示模塊等部分組成。系統(tǒng)通過(guò)傳感器模塊實(shí)時(shí)采集魚(yú)缸內(nèi)的溫度、水位、光照等環(huán)境參數(shù)。這些數(shù)據(jù)首先由STM32F103單片機(jī)進(jìn)行解碼和濾波處理,然后通過(guò)ESP8266WiFi無(wú)線模塊上傳到云平臺(tái)。云平臺(tái)作為數(shù)據(jù)中轉(zhuǎn)站,負(fù)責(zé)接收單片機(jī)發(fā)送的數(shù)據(jù),并將這些數(shù)據(jù)通過(guò)移動(dòng)互聯(lián)網(wǎng)傳輸?shù)接脩舻氖謾C(jī)APP。手機(jī)APP能夠?qū)崟r(shí)顯示魚(yú)缸內(nèi)的各項(xiàng)參數(shù),如溫度、水位、光照強(qiáng)度等,讓用戶可以隨時(shí)隨地了解魚(yú)缸的運(yùn)行狀態(tài)。當(dāng)用戶想要對(duì)魚(yú)缸進(jìn)行控制時(shí),如調(diào)整溫度閾值、設(shè)置自動(dòng)喂食時(shí)間等,這些指令首先從手機(jī)APP發(fā)出,通過(guò)移動(dòng)互聯(lián)網(wǎng)傳輸?shù)皆破脚_(tái),再由云平臺(tái)轉(zhuǎn)發(fā)給ESP8266WiFi無(wú)線模塊。ESP8266模塊接收到指令后,將其傳遞給STM32F103單片機(jī)。單片機(jī)根據(jù)接收到的指令,通過(guò)執(zhí)行器模塊對(duì)魚(yú)缸內(nèi)的設(shè)備進(jìn)行相應(yīng)控制,如開(kāi)啟加熱棒、啟動(dòng)水泵等,從而實(shí)現(xiàn)遠(yuǎn)程控制功能。通過(guò)這種方式,魚(yú)缸的信息從元件通過(guò)單片機(jī)和ESP8266無(wú)線模塊上傳到云平臺(tái),再傳輸?shù)绞謾C(jī)APP;反過(guò)來(lái),用戶通過(guò)手機(jī)APP發(fā)出的控制指令也通過(guò)云平臺(tái)和ESP8266模塊最終傳遞給單片機(jī),實(shí)現(xiàn)對(duì)魚(yú)缸的遠(yuǎn)程控制。整個(gè)系統(tǒng)實(shí)現(xiàn)了魚(yú)缸信息的實(shí)時(shí)監(jiān)測(cè)和遠(yuǎn)程控制功能,極大地提升了用戶體驗(yàn)。圖2.1系統(tǒng)硬件模塊工作框圖2.3器件方案對(duì)比2.3.1單片機(jī)的選擇方案一:STC89C52STC89C52是目前最受歡迎的8位單片機(jī)之一,由于制造工藝成熟、價(jià)格低廉、資源豐富,它在嵌入式領(lǐng)域得到了廣泛應(yīng)用。該單片機(jī)內(nèi)核為8051經(jīng)典指令系統(tǒng),指令簡(jiǎn)單通用,可編程性強(qiáng);工作頻率可達(dá)40MHz,運(yùn)算速度較快;內(nèi)置64KB可編程存儲(chǔ)器,128字節(jié)數(shù)據(jù)存儲(chǔ)區(qū);支持2個(gè)16位定時(shí)器/計(jì)數(shù)器,5個(gè)中斷優(yōu)先級(jí),9個(gè)中斷源;集成UART、SPI、I2C等標(biāo)準(zhǔn)接口,方便外設(shè)擴(kuò)展。方案二:STM32F103STM32F103則代表了新一代的32位ARMCortex-M3內(nèi)核微控制器,在嵌入式領(lǐng)域正逐步取代8位和16位傳統(tǒng)MCU。它基于32位Cortex-M3內(nèi)核,主頻高達(dá)72MHz,運(yùn)算能力強(qiáng)勁;集成512KBFLASH,64KBSRAM,存儲(chǔ)空間充裕;支持DMA、LCD、USB等豐富資源,易于硬件擴(kuò)展;支持Keil、IAR等現(xiàn)代化IDE軟開(kāi)發(fā),采用高級(jí)C語(yǔ)言編程;體積小巧,功耗低,可靠性高,還支持在線編程;指令集簡(jiǎn)單、JTAG/SWD調(diào)試方便,開(kāi)發(fā)效率優(yōu)秀;產(chǎn)品線豐富,從低端到高端都有型號(hào)覆蓋,后續(xù)可擴(kuò)展空間大。STM32F103不僅在性能、資源和功耗上有著全面優(yōu)勢(shì),而且采用主流架構(gòu)和開(kāi)發(fā)模式,可靠性和可維護(hù)性更高,總體發(fā)展前景也更加廣闊。當(dāng)然,它的成本較8位機(jī)型會(huì)高一些,但從系統(tǒng)整體角度來(lái)看,這一投資是完全合理的?;谝陨戏治觯局悄荇~(yú)缸控制系統(tǒng)選擇STM32F103作為主控芯片。這不僅有助于提升系統(tǒng)的運(yùn)算能力和存儲(chǔ)空間,而且為未來(lái)功能的擴(kuò)展和產(chǎn)品的迭代升級(jí)留有充足空間。更重要的是,STM32平臺(tái)擁有龐大的技術(shù)社區(qū)支持,文檔資料完備、工具鏈成熟,有利于軟件功能的快速開(kāi)發(fā)和產(chǎn)品的批量化。因此,STM32F103是一個(gè)非常合適的控制核心選擇。2.3.2溫度傳感器的選擇溫度是影響魚(yú)類(lèi)生存的關(guān)鍵環(huán)境因素。本系統(tǒng)需要一種高精度、高可靠性的溫度傳感器,來(lái)持續(xù)監(jiān)測(cè)魚(yú)缸內(nèi)部水溫的變化情況。在選型過(guò)程中,我們主要考慮了測(cè)溫范圍、精度、成本和接口等因素,最終將范圍縮小到DS18B20和AD590兩種溫度傳感器。方案一:DS18B20DS18B20是一款廣泛使用的數(shù)字溫度傳感器,它由著名的半導(dǎo)體制造商MAXIM(DALLAS)公司生產(chǎn)。這款傳感器溫度測(cè)量范圍廣,可在-55°C到+125°C范圍內(nèi)準(zhǔn)確測(cè)量,完全滿足魚(yú)缸環(huán)境監(jiān)測(cè)要求;精度極高,可達(dá)±0.5°C,且具有校準(zhǔn)功能,溫漂影響小;使用單總線設(shè)計(jì),只需一根數(shù)據(jù)線即可連接單片機(jī),節(jié)省接口資源;具有防水、防潮、防凍結(jié)的物理包裝,適合在陽(yáng)光及惡劣環(huán)境下使用;傳感器內(nèi)部集成溫度傳感元件和A/D轉(zhuǎn)換電路,輸出直接為12位溫度數(shù)字量;工作電壓在3~5.5V范圍內(nèi),可直接由單片機(jī)I/O口供電,低功耗設(shè)計(jì);成本較低,且性價(jià)比極高,是理想的溫度檢測(cè)解決方案。方案二:AD590AD590是較早期的一款模擬溫度傳感器,由模擬器件公司AnalogDevices生產(chǎn)。它輸出為模擬電流信號(hào),精度接近數(shù)字量級(jí),可達(dá)0.5°C以內(nèi);溫度范圍窄一些,約為-55°C到+150°C,仍可滿足需求;電路簡(jiǎn)單,只需一個(gè)外部電阻即可將電流信號(hào)轉(zhuǎn)為電壓輸出;本身是一種半導(dǎo)體集成溫度傳感器,壽命長(zhǎng),能耐惡劣環(huán)境;成本便宜,屬于低成本溫度檢測(cè)解決方案。因此,從智能魚(yú)缸的應(yīng)用需求來(lái)看,數(shù)字溫度傳感器DS18B20更具備優(yōu)勢(shì)。它集成化程度高、抗干擾能力強(qiáng)、接口簡(jiǎn)單、參考資料豐富等諸多因素,使其更適合作為本系統(tǒng)的溫度檢測(cè)解決方案。基于以上考慮,本設(shè)計(jì)將采用DS18B20作為溫度檢測(cè)模塊。2.3.3無(wú)線模塊的選擇為實(shí)現(xiàn)智能魚(yú)缸控制系統(tǒng)的遠(yuǎn)程無(wú)線監(jiān)控和控制功能,需要在系統(tǒng)中集成無(wú)線通信模塊。目前,市場(chǎng)上常見(jiàn)的無(wú)線通信技術(shù)主要有WiFi和藍(lán)牙兩大類(lèi)。在選型過(guò)程中,我們將范圍縮小到ESP8266WiFi模塊和HC-04藍(lán)牙模塊這兩種最具代表性的模塊。方案一:ESP8266WiFi模塊ESP8266是一款基于32位RISCCPU的高性能WiFi模塊,由樂(lè)鑫信息科技有限公司推出。它融合完整的WiFi互聯(lián)網(wǎng)功能和自主運(yùn)行能力,支持標(biāo)準(zhǔn)IEEE802.11b/g/n協(xié)議,工作頻率2.4GHz;支持AP、Station、AP+Station等多種工作模式;擁有完整的TCP/IP協(xié)議棧,支持多種協(xié)議如IPv4/IPv6/SSL等;支持多種編程語(yǔ),如Lua、C、Node等,擴(kuò)展性強(qiáng);處理能力強(qiáng)、功能全面,可獨(dú)立應(yīng)用,也可作為WiFi傳輸模塊;超小體積、超低功耗,工作電流僅15mA;外圍資源豐富,擁有多個(gè)UART、SPI、I2C接口,可擴(kuò)展I/O;開(kāi)源社區(qū)活躍,資料豐富,軟硬件更新快,價(jià)格低廉,是強(qiáng)有力的物聯(lián)網(wǎng)模塊選擇。方案二:HC-04藍(lán)牙模塊HC-04是基于UART的經(jīng)典藍(lán)牙串口通信模塊,性能相對(duì)低端,但結(jié)構(gòu)簡(jiǎn)單、方便使用。它基于2.4GHz藍(lán)牙技術(shù),符合藍(lán)牙標(biāo)準(zhǔn)規(guī)范;工作電壓3.3V~5V,可直接與單片機(jī)進(jìn)行UART通信;鏈路距離遠(yuǎn)可達(dá)30米,滿足基本通信需求;無(wú)需手動(dòng)設(shè)置,支持主從一體的自動(dòng)連接模式;電路板小巧,尺寸僅為2.8*1.6cm;工作電流約為30mA,相較WiFi功耗較大;不支持互聯(lián)網(wǎng)通信,僅支持傳統(tǒng)的串口點(diǎn)對(duì)點(diǎn)通信;相對(duì)成熟,參考資料和應(yīng)用案例多。相比之下,WiFi技術(shù)無(wú)疑具有更大的優(yōu)勢(shì)。它不僅具備遠(yuǎn)程互聯(lián)網(wǎng)通信的能力,還支持無(wú)線組網(wǎng)和局域網(wǎng)接入,使遠(yuǎn)程控制和數(shù)據(jù)上傳更加便捷可靠。此外,WiFi模塊越來(lái)越普及,目前已廣泛應(yīng)用于智能家居和物聯(lián)網(wǎng)領(lǐng)域。因此,基于以上對(duì)比分析,本智能魚(yú)缸控制系統(tǒng)選擇采用ESP8266WiFi模塊作為無(wú)線通信模塊。這不僅有利于實(shí)現(xiàn)系統(tǒng)的遠(yuǎn)程監(jiān)控、控制和數(shù)據(jù)上傳等功能,而且為后續(xù)的功能擴(kuò)展和智能升級(jí)留有充足的空間。WiFi通信方式已然成為智能家居設(shè)備的標(biāo)配,未來(lái)的智能魚(yú)缸系統(tǒng)也必將圍繞這一技術(shù)進(jìn)行整體優(yōu)化和提升。2.3.4時(shí)鐘芯片的選型本系統(tǒng)需要一款高精度、低功耗的實(shí)時(shí)時(shí)鐘(RTC)芯片來(lái)為系統(tǒng)提供準(zhǔn)確的時(shí)間信息。方案一:RX8900CERX8900CE是一款高集成度的實(shí)時(shí)時(shí)鐘芯片,集成了年、月、日、時(shí)、分、秒等時(shí)間功能。它采用SPI接口與單片機(jī)連接,通信方式簡(jiǎn)單易用。RX8900CE的優(yōu)點(diǎn)在于具有超低功耗,典型工作電流僅為0.4μA,非常適合電池供電的嵌入式系統(tǒng)。此外,RX8900CE還內(nèi)置了備用電池電路,可以在主電源斷電時(shí)持續(xù)為內(nèi)部時(shí)鐘提供電源,保證時(shí)間數(shù)據(jù)的準(zhǔn)確性。但RX8900CE也存在一些缺點(diǎn)。首先,由于采用SPI接口,需要占用單片機(jī)較多的I/O資源。另外,RX8900CE的價(jià)格相對(duì)較高,不利于控制整個(gè)系統(tǒng)的成本。方案二:DS1302DS1302是一款低功耗、高精度的串行實(shí)時(shí)時(shí)鐘芯片,同樣提供年、月、日、時(shí)、分、秒的時(shí)間信息。與RX8900CE不同,DS1302采用簡(jiǎn)單的3線串行接口(時(shí)鐘、數(shù)據(jù)、使能)與單片機(jī)連接,僅占用3個(gè)I/O引腳,使用更加靈活。DS1302的工作電流也非常低,典型值僅為1μA,同樣適合電池供電的系統(tǒng)。DS1302的價(jià)格相對(duì)較低,便于控制整體系統(tǒng)成本。雖然它沒(méi)有內(nèi)置備用電池電路,但可以通過(guò)外部電池連接保持時(shí)間數(shù)據(jù)的持續(xù)性。綜合考慮系統(tǒng)的接口需求、功耗和成本因素,我們最終選擇使用DS1302作為本系統(tǒng)的時(shí)鐘芯片。它能夠滿足系統(tǒng)的時(shí)間管理需求,同時(shí)成本較低,更加符合項(xiàng)目的實(shí)施要求。2.3.5舵機(jī)模塊的選型本系統(tǒng)需要一個(gè)微型舵機(jī)來(lái)實(shí)現(xiàn)自動(dòng)喂魚(yú)的功能。方案一:MG90SMG90S是一款尺寸較小、扭矩較大的微型舵機(jī),廣泛應(yīng)用于各類(lèi)機(jī)器人和智能設(shè)備中。它的工作電壓范圍為4.8V-6V,轉(zhuǎn)速較快,最大轉(zhuǎn)矩達(dá)到2.5kg·cm,能夠勝任本系統(tǒng)的自動(dòng)喂魚(yú)任務(wù)。MG90S的體積也比較小巧,便于安裝在魚(yú)缸上方的喂食裝置中。但MG90S的缺點(diǎn)在于功耗較大,空載電流高達(dá)200mA,會(huì)給系統(tǒng)的整體功耗帶來(lái)一定的壓力。此外,MG90S的價(jià)格相對(duì)較高,不利于控制整個(gè)系統(tǒng)的成本。方案二:SG90SG90是一款更加小巧、功耗更低的微型舵機(jī)。它的工作電壓范圍為4.8V-6V,最大轉(zhuǎn)矩為1.8kg·cm,雖然稍弱于MG90S,但仍能滿足本系統(tǒng)的自動(dòng)喂魚(yú)需求。更重要的是,SG90的空載電流僅為100mA,大大降低了系統(tǒng)的總體功耗。同時(shí),SG90的價(jià)格也相對(duì)較低,有利于控制整個(gè)系統(tǒng)的成本。雖然它的體積略小于MG90S,但通過(guò)適當(dāng)?shù)陌惭b方式仍然能夠勝任本系統(tǒng)的自動(dòng)喂魚(yú)任務(wù)。綜合考慮功耗、成本和體積等因素,我們最終選擇使用SG90作為本系統(tǒng)的舵機(jī)模塊。它能夠在滿足系統(tǒng)需求的同時(shí),大幅降低系統(tǒng)整體的功耗和成本,更加符合項(xiàng)目的實(shí)施要求。2.3.6顯示模塊的選型為了向用戶直觀地展示系統(tǒng)的運(yùn)行狀態(tài),本系統(tǒng)需要一個(gè)顯示模塊來(lái)呈現(xiàn)相關(guān)的信息,如水溫、水位、時(shí)間等。方案一:LCD1602LCD1602是一種常見(jiàn)的字符型LCD顯示模塊,能夠以16x2的字符形式顯示文字信息。它的優(yōu)點(diǎn)在于成本低廉,接口簡(jiǎn)單,驅(qū)動(dòng)電路較為簡(jiǎn)單。LCD1602廣泛應(yīng)用于各類(lèi)嵌入式系統(tǒng)中,具有較好的穩(wěn)定性和可靠性。但LCD1602也存在一些缺點(diǎn)。首先,它的顯示效果相對(duì)較為簡(jiǎn)單,無(wú)法提供圖形或者圖像的顯示。另外,LCD1602的背光消耗較大,會(huì)給系統(tǒng)的總功耗帶來(lái)一定的負(fù)擔(dān)。方案二:OLEDOLED(有機(jī)發(fā)光二極管)顯示模塊是一種新興的顯示技術(shù),具有更加出色的顯示效果。OLED顯示屏能夠提供豐富的圖形、圖像以及文字顯示,視覺(jué)效果更加清晰和生動(dòng)。OLED的優(yōu)勢(shì)還體現(xiàn)在其低功耗特性,無(wú)需背光即可發(fā)光,大幅降低了系統(tǒng)的總功耗。綜合考慮顯示性能、功耗和成本等因素,我們最終選擇OLED作為本系統(tǒng)的顯示模塊。盡管成本略高于LCD1602,但OLED的出色顯示效果和低功耗特性,能夠更好地滿足本系統(tǒng)的信息展示需求,為用戶提供更加友好的交互體驗(yàn)。整體設(shè)計(jì)思路如下:隨著人們生活質(zhì)量的提升,對(duì)魚(yú)缸的智能化需求增加。傳統(tǒng)魚(yú)缸維護(hù)工作繁瑣,而智能化魚(yú)缸控制系統(tǒng)旨在通過(guò)自動(dòng)化技術(shù)和物聯(lián)網(wǎng)技術(shù)來(lái)替代人工完成日常監(jiān)控和維護(hù)工作,減輕用戶勞動(dòng)強(qiáng)度,提高魚(yú)缸生態(tài)環(huán)境的穩(wěn)定性,同時(shí)為觀賞魚(yú)創(chuàng)造更舒適、健康的生長(zhǎng)環(huán)境。該系統(tǒng)通過(guò)模塊化設(shè)計(jì)和芯片資源的合理分配,實(shí)現(xiàn)了溫度監(jiān)測(cè)、水位監(jiān)控、光照調(diào)節(jié)、定時(shí)喂食、自動(dòng)換水等多種智能控制功能。各個(gè)元件的選擇思路:?jiǎn)纹瑱C(jī):選擇STM32F103作為主控芯片,因?yàn)樗哂懈咝阅艿腁RMCortex-M3內(nèi)核、豐富的外設(shè)接口以及強(qiáng)大的運(yùn)算能力,能夠滿足復(fù)雜的數(shù)據(jù)處理任務(wù),并且具有良好的擴(kuò)展性。溫度傳感器:DS18B20數(shù)字溫度傳感器因其測(cè)溫范圍廣、精度高、抗干擾能力強(qiáng)和接口簡(jiǎn)單等特點(diǎn)被選用,能夠準(zhǔn)確測(cè)量魚(yú)缸內(nèi)部水溫。無(wú)線模塊:ESP8266WiFi模塊因其強(qiáng)大的處理能力和網(wǎng)絡(luò)功能,支持遠(yuǎn)程監(jiān)控和無(wú)線控制,是實(shí)現(xiàn)智能魚(yú)缸遠(yuǎn)程控制的關(guān)鍵組件。顯示模塊:OLED顯示屏因其自發(fā)光、低功耗、高對(duì)比度和快速響應(yīng)等特點(diǎn)被選用,能夠清晰地顯示系統(tǒng)狀態(tài)和運(yùn)行參數(shù)。水位檢測(cè)模塊:采用電極檢測(cè)方法,通過(guò)金屬電極的導(dǎo)通狀態(tài)判斷魚(yú)缸內(nèi)水位高低,實(shí)現(xiàn)簡(jiǎn)單而有效的水位監(jiān)控。舵機(jī)模塊:SG90微型舵機(jī)因其體積小、功耗低和轉(zhuǎn)矩大等特點(diǎn)被選用,用于模擬喂魚(yú)動(dòng)作,實(shí)現(xiàn)自動(dòng)喂食功能。時(shí)鐘模塊:DS1302實(shí)時(shí)時(shí)鐘芯片因其低功耗、高精度和串行接口設(shè)計(jì)被選用,為系統(tǒng)提供準(zhǔn)確的時(shí)間信息,支持定時(shí)功能??偨Y(jié)來(lái)說(shuō),整個(gè)智能魚(yú)缸控制系統(tǒng)的設(shè)計(jì)思路是基于用戶需求出發(fā),通過(guò)集成多種功能模塊和選擇合適的元件,實(shí)現(xiàn)魚(yú)缸的智能化監(jiān)控和管理,提高用戶體驗(yàn)和魚(yú)缸生態(tài)環(huán)境的穩(wěn)定性。
畢業(yè)設(shè)計(jì)4系統(tǒng)的軟件設(shè)計(jì)PAGE19 3系統(tǒng)的硬件設(shè)計(jì)3.1STM32F103單片機(jī)STM32F103芯片基于ARM公司的Cortex-M3內(nèi)核設(shè)計(jì),采用32位RISC指令集架構(gòu)。該內(nèi)核使用哈佛存儲(chǔ)器架構(gòu),支持高達(dá)72MHz的主頻運(yùn)行,具備每秒可達(dá)1.25DMIPS的運(yùn)算能力。即使在需要運(yùn)行復(fù)雜算法的情況下,也可以為系統(tǒng)帶來(lái)充裕的計(jì)算資源。此外,Cortex-M3內(nèi)核還支持硬件dividedby0檢測(cè)、不對(duì)齊訪問(wèn)、先進(jìn)的嵌入式系統(tǒng)調(diào)試等先進(jìn)功能,整體性能表現(xiàn)卓越。除了強(qiáng)勁的內(nèi)核之外,STM32F103本身也提供了豐富的硬件資源。它集成了512KB的FLASH存儲(chǔ)空間和64KB的SRAM,可以保證控制程序和運(yùn)行數(shù)據(jù)的充分存儲(chǔ)。同時(shí),芯片上還包含了三個(gè)16位高級(jí)定時(shí)器、一個(gè)基本定時(shí)器、兩個(gè)看門(mén)狗定時(shí)器、七個(gè)通用DMA通道、三個(gè)通用16位計(jì)數(shù)器、一個(gè)USB2.0全速接口等眾多外設(shè)支持。表3-1STM32F103單片機(jī)與外部設(shè)備連接表格設(shè)備名稱(chēng)連接管腳功能描述DS18B20溫度傳感器I/O口溫度實(shí)時(shí)監(jiān)測(cè),數(shù)據(jù)通過(guò)單總線傳輸給單片機(jī)OLED顯示模塊I2C接口顯示魚(yú)缸狀態(tài)、參數(shù)及系統(tǒng)提示信息ESP8266無(wú)線模塊USART串口實(shí)現(xiàn)與手機(jī)APP的無(wú)線通信,數(shù)據(jù)上傳與接收水位檢測(cè)模塊I/O口電極檢測(cè),通過(guò)狀態(tài)變化判斷水位高低按鍵模塊I/O口用戶輸入,進(jìn)行參數(shù)設(shè)置、模式切換等操作繼電器模塊I/O口控制魚(yú)缸設(shè)備(如加熱棒、水泵等)的開(kāi)啟與關(guān)閉DS1302時(shí)鐘模塊3線串行接口提供實(shí)時(shí)時(shí)間信息,支持定時(shí)喂食功能SG90舵機(jī)模塊PWM信號(hào)模擬喂魚(yú)動(dòng)作,控制喂食裝置單片機(jī)在啟動(dòng)后,首先進(jìn)行必要的硬件初始化,如配置USART串口、I2C總線、外部中斷等。通過(guò)輪詢的方式周期性地讀取各個(gè)傳感器模塊的數(shù)據(jù),如DS18B20溫度傳感器、水位檢測(cè)模塊、光敏電阻等,獲取魚(yú)缸內(nèi)的實(shí)時(shí)環(huán)境參數(shù)。對(duì)獲取到的原始數(shù)據(jù)進(jìn)行解碼和濾波處理,以提高數(shù)據(jù)的準(zhǔn)確性和可靠性。單片機(jī)將解碼后的環(huán)境參數(shù)與用戶預(yù)先設(shè)置的閾值進(jìn)行比較,判斷是否需要采取相應(yīng)的控制措施。根據(jù)判斷結(jié)果,通過(guò)控制相應(yīng)的執(zhí)行器模塊(如繼電器、舵機(jī)等)來(lái)啟動(dòng)或關(guān)閉魚(yú)缸內(nèi)的設(shè)備,如加熱棒、制冷風(fēng)扇、水泵、喂食裝置等,以實(shí)現(xiàn)自動(dòng)調(diào)節(jié)魚(yú)缸環(huán)境的目的。在執(zhí)行控制指令的同時(shí),單片機(jī)還會(huì)通過(guò)OLED顯示屏實(shí)時(shí)顯示魚(yú)缸的狀態(tài)和參數(shù),以便用戶隨時(shí)了解魚(yú)缸的情況。如果系統(tǒng)支持遠(yuǎn)程監(jiān)控和控制,單片機(jī)還會(huì)通過(guò)ESP8266無(wú)線模塊將魚(yú)缸的狀態(tài)數(shù)據(jù)上傳至手機(jī)APP,用戶可以通過(guò)手機(jī)APP對(duì)系統(tǒng)進(jìn)行遠(yuǎn)程操作。STM32F103擁有多達(dá)80個(gè)通用I/O口線,共分為6個(gè)I/O組,對(duì)應(yīng)不同的地址。而且每個(gè)I/O口都可以靈活映射為通用輸入輸出或特殊功能,如USART、I2C、SPI、USB等外設(shè)功能,這為系統(tǒng)的硬件擴(kuò)展提供了極大的空間。同時(shí),I/O口還集成了不同的驅(qū)動(dòng)能力和外部中斷/事件控制器,可以靈活應(yīng)對(duì)復(fù)雜的硬件需求。在智能魚(yú)缸控制系統(tǒng)中,STM32F103作為控制核心的工作主要包括三個(gè)方面:負(fù)責(zé)對(duì)所有外圍硬件設(shè)備進(jìn)行必要的初始化,如配置USART串口和ESP8266連接、初始化定時(shí)器和GPIO引腳、使能I2C總線控制OLED等。周期性地掃描各種傳感器模塊,獲取魚(yú)缸內(nèi)的實(shí)時(shí)溫度、水位、光照等環(huán)境數(shù)據(jù),并對(duì)獲取的原始數(shù)據(jù)進(jìn)行解碼和濾波處理。然后,通過(guò)比較傳感器數(shù)據(jù)與用戶預(yù)設(shè)閾值,判斷是否需要執(zhí)行相應(yīng)的控制措施,如制冷、制熱、補(bǔ)水、補(bǔ)光等。根據(jù)判斷結(jié)果,單片機(jī)將驅(qū)動(dòng)各種執(zhí)行器件,如控制繼電器開(kāi)啟加熱器、控制步進(jìn)電機(jī)完成喂食動(dòng)作、控制水泵進(jìn)行換水等,從而實(shí)現(xiàn)對(duì)魚(yú)缸環(huán)境的智能化調(diào)節(jié)。與此同時(shí),單片機(jī)還會(huì)通過(guò)串口將這些控制數(shù)據(jù)發(fā)送到ESP8266模塊,并在OLED顯示屏上實(shí)時(shí)顯示系統(tǒng)運(yùn)行狀態(tài)。高性能的STM32F103為整個(gè)智能魚(yú)缸控制系統(tǒng)的順利運(yùn)行奠定了堅(jiān)實(shí)的基礎(chǔ)。它強(qiáng)大的硬件實(shí)力、先進(jìn)的技術(shù)架構(gòu)、靈活的接口資源,使得系統(tǒng)具備了強(qiáng)勁的計(jì)算控制能力和良好的硬件擴(kuò)展性,能夠可靠高效地完成所有控制和管理任務(wù),從而保證了魚(yú)缸內(nèi)環(huán)境的智能化調(diào)節(jié)和維護(hù)。STM32F103單片機(jī)在本系統(tǒng)中的實(shí)際接線圖如圖3.1所示:圖3.1STM32F103單片機(jī)接線情況3.2ESP8266無(wú)線模塊智能魚(yú)缸控制系統(tǒng)作為一款具有遠(yuǎn)程監(jiān)控和無(wú)線控制需求的智能產(chǎn)品,自然也需要集成無(wú)線通信模塊。經(jīng)過(guò)反復(fù)比較和權(quán)衡,我們最終將選擇鎖定在了樂(lè)鑫公司推出的ESP8266WiFi模塊。ESP8266模塊集成了完整的WiFi網(wǎng)絡(luò)功能,支持標(biāo)準(zhǔn)的IEEE802.11b/g/n協(xié)議,工作頻率為2.4GHz。與此同時(shí),這款低功耗模塊還內(nèi)置了一個(gè)強(qiáng)大的處理器,可獨(dú)立運(yùn)行各種應(yīng)用程序,實(shí)現(xiàn)數(shù)據(jù)的接收、處理和發(fā)送??梢哉f(shuō),ESP8266是一款高度集成和高性能的WiFi解決方案。在硬件方面,ESP8266采用40納米工藝制程,集成了射頻收發(fā)器、基帶處理器、射頻前端模塊、天線開(kāi)關(guān)等多種功能單元。其主頻可高達(dá)160MHz,內(nèi)置32位RISCCPU及16KB的數(shù)據(jù)RAM和768KB的指令RAM。ESP8266模塊還支持多種編程語(yǔ)言,如C、Lua、Node.js等。更難能可貴的是,它內(nèi)置了完整的TCP/IP協(xié)議棧、多種網(wǎng)絡(luò)協(xié)議如IPv4/IPv6/SSL等,可以直接連接WiFi網(wǎng)絡(luò),與其他設(shè)備或云端服務(wù)進(jìn)行通信交互。ESP8266模塊的工作原理很簡(jiǎn)單。用戶首先需要通過(guò)AT指令,將其連接到路由器的本地WiFi網(wǎng)絡(luò),并獲取一個(gè)可用的IP地址。之后,只需要通過(guò)這個(gè)IP地址與模塊進(jìn)行TCP或UDP通信,即可實(shí)現(xiàn)各種網(wǎng)絡(luò)應(yīng)用功能。ESP8266無(wú)線模塊在本系統(tǒng)中的實(shí)際接線圖如圖3.2所示:圖3.2ESP8266無(wú)線模塊實(shí)際接線圖3.3DS18B20溫度傳感器檢測(cè)模塊魚(yú)類(lèi)的新陳代謝、攝食、繁衍等生理活動(dòng),都與溫度密切相關(guān)。如果水溫過(guò)高或過(guò)低,都可能給魚(yú)類(lèi)的生存和健康帶來(lái)嚴(yán)重威脅。因此,對(duì)溫度因素的實(shí)時(shí)有效監(jiān)測(cè)就顯得尤為重要。為此,我們?cè)谙到y(tǒng)中集成了高精度數(shù)字溫度傳感器DS18B20模塊。DS18B20溫度傳感器由美國(guó)著名半導(dǎo)體制造商MAXIM(現(xiàn)已并入AnalogDevices)公司生產(chǎn)。它采用單總線溫度傳輸電路設(shè)計(jì),可在-55°C到+125°C的寬廣溫度范圍內(nèi)精確測(cè)量溫度數(shù)據(jù),并將測(cè)量結(jié)果以12位數(shù)字量直接傳輸給單片機(jī)。該傳感器在溫度檢測(cè)領(lǐng)域享有盛譽(yù),憑借其精度高、防水耐腐蝕、成本低等諸多優(yōu)勢(shì),被廣泛應(yīng)用于工業(yè)控制、智能家居、醫(yī)療衛(wèi)生等各個(gè)行業(yè)領(lǐng)域。DS18B20內(nèi)部集成了傳感器本體及A/D轉(zhuǎn)換電路,可直接將測(cè)量得到的模擬量轉(zhuǎn)換成數(shù)字?jǐn)?shù)據(jù)。這一設(shè)計(jì)避免了傳統(tǒng)模擬量傳輸過(guò)程中存在的各種干擾,有效提高了測(cè)溫精度。該傳感器的精度可高達(dá)±0.5°C,這已經(jīng)足以滿足大多數(shù)檢測(cè)場(chǎng)景的要求。此外,DS18B20還具有校準(zhǔn)功能,通過(guò)內(nèi)部校準(zhǔn)可以提高溫度精度并減小溫漂影響。DS18B20傳感器只需要一根通信線即可與主控芯片相連,傳輸接口極為簡(jiǎn)潔。這種單總線設(shè)計(jì)讓傳感器的硬件連接變得十分方便,只需將設(shè)備連接口與單片機(jī)I/O口連接即可,無(wú)需占用多余的硬件資源。通信時(shí)由單片機(jī)發(fā)出復(fù)位和讀寫(xiě)指令,然后從DS18B20讀取溫度數(shù)字信息,響應(yīng)延時(shí)小于750ms,通信速度較快。該傳感器內(nèi)部還有用于存儲(chǔ)溫度警戒閾值的EEPROM,可編程設(shè)置高低溫度觸發(fā)點(diǎn),實(shí)現(xiàn)溫度監(jiān)控功能。當(dāng)檢測(cè)到超過(guò)設(shè)定范圍時(shí),會(huì)自動(dòng)發(fā)出警告信號(hào)以供系統(tǒng)作出響應(yīng)。同時(shí),DS18B20還具有硬件校正功能,內(nèi)置64位激光校準(zhǔn)可編程存儲(chǔ)器,可根據(jù)工廠加載的校正系數(shù)修正傳感器的測(cè)量精度。在智能魚(yú)缸控制系統(tǒng)中,DS18B20溫度傳感器接入到了STM32單片機(jī)的I/O口。系統(tǒng)啟動(dòng)時(shí),單片機(jī)會(huì)先初始化DS18B20,對(duì)其進(jìn)行必要的配置。然后在系統(tǒng)的主循環(huán)中,單片機(jī)將周期性地向DS18B20發(fā)出溫度轉(zhuǎn)換指令,獲取魚(yú)缸內(nèi)實(shí)時(shí)溫度數(shù)據(jù)。獲取到的溫度數(shù)據(jù)將與用戶設(shè)定的溫度閾值進(jìn)行比較,如果超出閾值范圍則立即執(zhí)行相關(guān)的控制響應(yīng),如制冷或制熱。單片機(jī)還會(huì)將測(cè)量到的溫度值實(shí)時(shí)顯示在系統(tǒng)的OLED顯示屏上,并通過(guò)ESP8266無(wú)線模塊將數(shù)據(jù)上傳到手機(jī)APP終端。這樣一來(lái),用戶便可以隨時(shí)隨地了解魚(yú)缸水溫的變化情況。如果出現(xiàn)溫度異常,APP還會(huì)發(fā)出報(bào)警通知,以防止用戶疏忽而導(dǎo)致一些不良后果。溫度檢測(cè)模塊在本系統(tǒng)中的實(shí)際接線情況如圖3.3所示:圖3.3溫度傳感器模塊實(shí)際接線圖3.4OLED顯示模塊OLED有機(jī)發(fā)光二極管顯示屏,是一種利用有機(jī)發(fā)光二極管自發(fā)光的新型平板顯示器件。與傳統(tǒng)液晶顯示屏相比,OLED顯示屏具有自發(fā)光、高對(duì)比度、響應(yīng)速度快、工作溫度范圍廣、節(jié)能環(huán)保等眾多優(yōu)點(diǎn),被認(rèn)為是繼液晶顯示技術(shù)之后,最具發(fā)展?jié)摿Φ男乱淮桨屣@示技術(shù)。本系統(tǒng)選用的是一款128×64分辨率的OLED顯示模塊,顯示屏的尺寸為1.3英寸,最大可顯示8行字符或幾何圖形。這個(gè)規(guī)格不僅足夠顯示必要的文字、圖標(biāo)和參數(shù)數(shù)值,而且顯示效果清晰、響應(yīng)迅速,非常適合應(yīng)用于魚(yú)缸控制場(chǎng)景。圖3.4OLED并口讀時(shí)序圖3.5OLED并口寫(xiě)時(shí)序在智能魚(yú)缸系統(tǒng)中,OLED顯示屏主要用來(lái)實(shí)時(shí)顯示魚(yú)缸內(nèi)的溫度、水位、光照強(qiáng)度等關(guān)鍵參數(shù)數(shù)值,讓用戶可以一眼就看清環(huán)境狀況。同時(shí),OLED還可以顯示當(dāng)前系統(tǒng)的工作模式、操作狀態(tài)及時(shí)鐘日期,方便用戶監(jiān)控系統(tǒng)運(yùn)行情況。通過(guò)OLED還可以顯示一些報(bào)警和提示信息,如溫度異常報(bào)警、水位過(guò)低警告、喂食到時(shí)間提醒等。這種及時(shí)的反饋信息不僅可以提高用戶對(duì)系統(tǒng)狀態(tài)的感知度,還可以避免由于疏忽而造成一些嚴(yán)重后果。OLED本身也可以通過(guò)4個(gè)操作按鍵供用戶輸入指令,直接手動(dòng)修改控制參數(shù)或切換模式。例如,可以通過(guò)按鍵將系統(tǒng)由手動(dòng)模式切換到自動(dòng)模式,或者修改溫度閾值設(shè)定等。顯示屏還可以在這些操作時(shí)給出相應(yīng)的提示信息,實(shí)現(xiàn)良好的人機(jī)交互。OLED液晶顯示模塊為智能魚(yú)缸控制系統(tǒng)增添了直觀友好的操作界面。它不僅可以實(shí)時(shí)顯示魚(yú)缸內(nèi)各種環(huán)境參數(shù)和系統(tǒng)運(yùn)行狀態(tài),而且通過(guò)按鍵可以接收用戶指令、修改設(shè)定參數(shù),為系統(tǒng)控制提供及時(shí)反饋和人機(jī)交互支持,從而大大增強(qiáng)了系統(tǒng)的可用性和用戶體驗(yàn)。其卓越的顯示性能、快速響應(yīng)和低功耗優(yōu)勢(shì),使其完全適合應(yīng)用于智能家庭控制環(huán)境。OLED的實(shí)際接線圖如圖3.4所示:圖3.4OLED實(shí)際接線圖3.5水位檢測(cè)模塊水位檢測(cè)則采取了簡(jiǎn)單的電極測(cè)量方法。一根金屬電極安裝在魚(yú)缸內(nèi)的設(shè)定水位線處,當(dāng)水位高于電極時(shí)電極將浸沒(méi)在水中導(dǎo)通,當(dāng)水位下降時(shí)電極將暴露在空氣中斷開(kāi)。單片機(jī)將根據(jù)電極的導(dǎo)通狀態(tài)判斷當(dāng)前水位是否正常,并作出相應(yīng)的控制響應(yīng)。水位檢測(cè)模塊在本系統(tǒng)中的實(shí)際接線方式如圖3.5所示:圖3.5水位檢測(cè)模塊實(shí)際接線圖3.6按鍵模塊在電子設(shè)備中,按鍵輸入是一種常見(jiàn)的用戶交互方式。但是,由于機(jī)械開(kāi)關(guān)的物理特性,按鍵在按下和釋放時(shí)會(huì)產(chǎn)生短暫的接觸多次切換,也就是按鍵抖動(dòng)或彈跳現(xiàn)象。如果不加處理,這種按鍵抖動(dòng)會(huì)被單片機(jī)誤認(rèn)為多次按鍵輸入,從而導(dǎo)致系統(tǒng)工作異常。因此,需要對(duì)按鍵輸入進(jìn)行消抖處理,以確保系統(tǒng)能夠正確地響應(yīng)用戶的按鍵操作。圖3.6消抖原理本系統(tǒng)采用簡(jiǎn)單的RC濾波電路對(duì)按鍵輸入進(jìn)行消抖處理。該電路由一個(gè)電阻和一個(gè)電容串聯(lián)組成,如圖2所示。當(dāng)按鍵被按下時(shí),電容C會(huì)通過(guò)按鍵迅速充電,使單片機(jī)檢測(cè)到一個(gè)高電平信號(hào),表示按鍵被按下。但是由于機(jī)械接觸的彈跳,按鍵可能會(huì)連續(xù)多次接通和斷開(kāi),導(dǎo)致單片機(jī)檢測(cè)到多個(gè)高電平信號(hào)。RC濾波電路可以有效地濾除這種彈跳現(xiàn)象。當(dāng)按鍵被按下時(shí),電容C會(huì)快速充電至高電平,單片機(jī)檢測(cè)到一個(gè)高電平信號(hào),表示按鍵被按下。但是當(dāng)按鍵彈起時(shí),電容C會(huì)通過(guò)電阻R緩慢放電,在一定時(shí)間內(nèi)電容的電壓仍然維持在高電平。單片機(jī)只有在電容電壓下降到低電平時(shí),才會(huì)檢測(cè)到按鍵釋放。這樣就可以確保單片機(jī)只檢測(cè)到一次有效的按鍵輸入,避免了由于按鍵彈跳而產(chǎn)生的誤判。RC濾波電路的時(shí)間常數(shù)τ=RC決定了消抖時(shí)間,通常選擇τ=10-20ms可以有效消除按鍵抖動(dòng)。該電路結(jié)構(gòu)簡(jiǎn)單,成本低廉,適用于大多數(shù)基于單片機(jī)的系統(tǒng)。在實(shí)際應(yīng)用中,還可以根據(jù)不同按鍵的特性,適當(dāng)調(diào)整RC濾波電路的參數(shù),以獲得最佳的消抖效果。圖3.7按鍵模塊實(shí)際接線圖3.7繼電器模塊本系統(tǒng)采用4個(gè)繼電器來(lái)實(shí)現(xiàn)對(duì)魚(yú)缸進(jìn)行水位和溫度的自動(dòng)控制。這4個(gè)繼電器分別用于控制加水、排水、制冷和制熱。加水繼電器和排水繼電器用于控制魚(yú)缸的水位。當(dāng)檢測(cè)到水位低于預(yù)設(shè)值時(shí),加水繼電器會(huì)吸合,啟動(dòng)加水泵進(jìn)行補(bǔ)水;當(dāng)水位高于預(yù)設(shè)值時(shí),排水繼電器會(huì)吸合,啟動(dòng)排水泵進(jìn)行排水。這樣可以保持魚(yú)缸內(nèi)的水位在一個(gè)較為穩(wěn)定的范圍內(nèi),避免水位過(guò)高或過(guò)低而對(duì)魚(yú)類(lèi)造成不利影響。制冷繼電器和制熱繼電器則用于控制魚(yú)缸內(nèi)部的恒溫裝置,如制冷器和加熱棒等。當(dāng)檢測(cè)到水溫低于預(yù)設(shè)溫度時(shí),制熱繼電器會(huì)吸合,啟動(dòng)加熱裝置使水溫升高;當(dāng)水溫高于預(yù)設(shè)溫度時(shí),制冷繼電器會(huì)吸合,啟動(dòng)制冷裝置使水溫下降。通過(guò)這種方式,可以使魚(yú)缸內(nèi)部保持在一個(gè)恒定的最佳溫度范圍,為魚(yú)類(lèi)營(yíng)造一個(gè)舒適穩(wěn)定的生存環(huán)境。當(dāng)單片機(jī)輸出一個(gè)高電平信號(hào)時(shí),對(duì)應(yīng)的繼電器線圈會(huì)通電,繼電器吸合,從而控制加水泵、排水泵、制冷裝置和制熱裝置的開(kāi)啟和關(guān)閉。當(dāng)單片機(jī)輸出一個(gè)低電平信號(hào)時(shí),繼電器線圈斷電,繼電器釋放,切斷這些裝置的電源,使其停止工作。通過(guò)對(duì)這4個(gè)繼電器的精確控制,可以實(shí)現(xiàn)對(duì)魚(yú)缸水位和水溫的自動(dòng)調(diào)節(jié),保證魚(yú)類(lèi)生存所需的最佳水質(zhì)環(huán)境。如果水位過(guò)低,加水繼電器會(huì)啟動(dòng)加水泵進(jìn)行補(bǔ)水;如果水位過(guò)高,排水繼電器會(huì)啟動(dòng)排水泵進(jìn)行排水。同樣地,如果水溫過(guò)低,制熱繼電器會(huì)啟動(dòng)加熱裝置提高水溫;如果水溫過(guò)高,制冷繼電器會(huì)啟動(dòng)制冷裝置降低水溫。這些自動(dòng)調(diào)節(jié)功能大大降低了魚(yú)缸管理的難度,提高了飼養(yǎng)的便利性。圖3.8繼電器模塊實(shí)際接線圖3.8DS1302時(shí)鐘模塊本系統(tǒng)采用DS1302實(shí)時(shí)時(shí)鐘芯片作為系統(tǒng)的時(shí)間基準(zhǔn),為定時(shí)自動(dòng)喂魚(yú)功能提供時(shí)間支持。DS1302是一款低功耗、高精度的串行實(shí)時(shí)時(shí)鐘(RTC)芯片,廣泛應(yīng)用于嵌入式系統(tǒng)中。它內(nèi)部集成了日歷、時(shí)鐘、鬧鐘等功能,可以提供年、月、日、時(shí)、分、秒的時(shí)間信息。DS1302通過(guò)一個(gè)3線串行接口(時(shí)鐘、數(shù)據(jù)、使能)與單片機(jī)連接,可以方便地進(jìn)行時(shí)間數(shù)據(jù)的讀寫(xiě)操作。在本系統(tǒng)中,DS1302時(shí)鐘模塊的主要作用是為定時(shí)喂魚(yú)功能提供精確的時(shí)間基準(zhǔn)。單片機(jī)可以通過(guò)讀取DS1302提供的實(shí)時(shí)時(shí)間,判斷是否到達(dá)預(yù)設(shè)的喂魚(yú)時(shí)間點(diǎn)。一旦到達(dá)指定時(shí)間,單片機(jī)就會(huì)控制舵機(jī)模塊執(zhí)行喂魚(yú)動(dòng)作,實(shí)現(xiàn)定時(shí)自動(dòng)喂魚(yú)。DS1302時(shí)鐘模塊的工作原理如下:?jiǎn)纹瑱C(jī)通過(guò)3線串行接口(時(shí)鐘、數(shù)據(jù)、使能)與DS1302芯片進(jìn)行通信。單片機(jī)首先拉高使能線,與DS1302建立通信連接。單片機(jī)通過(guò)時(shí)鐘線和數(shù)據(jù)線,向DS1302發(fā)送讀/寫(xiě)命令和地址,實(shí)現(xiàn)對(duì)時(shí)間寄存器的讀寫(xiě)操作。單片機(jī)可以周期性地讀取DS1302提供的實(shí)時(shí)時(shí)間信息,作為定時(shí)喂魚(yú)的時(shí)間基準(zhǔn)。當(dāng)?shù)竭_(dá)預(yù)設(shè)的喂魚(yú)時(shí)間點(diǎn)時(shí),單片機(jī)會(huì)控制舵機(jī)模塊執(zhí)行喂魚(yú)動(dòng)作。通過(guò)DS1302時(shí)鐘模塊,本系統(tǒng)能夠準(zhǔn)確地獲取實(shí)時(shí)時(shí)間信息,為定時(shí)自動(dòng)喂魚(yú)功能提供可靠的時(shí)間支持。這不僅大大提高了飼養(yǎng)的便利性,而且確保了魚(yú)類(lèi)能夠得到定期、穩(wěn)定的喂養(yǎng),有助于提高魚(yú)類(lèi)的存活率。圖3.9時(shí)鐘模塊實(shí)際接線圖3.9SG90舵機(jī)模塊本系統(tǒng)采用SG90微型舵機(jī)作為實(shí)現(xiàn)自動(dòng)喂魚(yú)功能的驅(qū)動(dòng)裝置。SG90是一款體積小、功耗低、轉(zhuǎn)矩大的伺服電機(jī),廣泛應(yīng)用于各類(lèi)機(jī)器人和智能設(shè)備中。在本系統(tǒng)中,SG90舵機(jī)模塊的主要作用是模擬喂魚(yú)動(dòng)作。當(dāng)?shù)竭_(dá)預(yù)設(shè)的喂魚(yú)時(shí)間點(diǎn)時(shí),單片機(jī)會(huì)通過(guò)PWM信號(hào)控制SG90舵機(jī)轉(zhuǎn)動(dòng)一定角度,從而帶動(dòng)連接在舵機(jī)軸上的喂食裝置將魚(yú)食投放到魚(yú)缸中,實(shí)現(xiàn)自動(dòng)定時(shí)喂魚(yú)。單片機(jī)通過(guò)PWM信號(hào)控制SG90舵機(jī)的轉(zhuǎn)角。PWM信號(hào)的占空比決定了舵機(jī)轉(zhuǎn)動(dòng)的角度。當(dāng)?shù)竭_(dá)預(yù)設(shè)的喂魚(yú)時(shí)間點(diǎn)時(shí),單片機(jī)輸出一個(gè)特定的PWM信號(hào),使SG90舵機(jī)轉(zhuǎn)動(dòng)到預(yù)設(shè)的角度,帶動(dòng)喂食裝置將魚(yú)食投放到魚(yú)缸中。喂食完成后,單片機(jī)再次輸出PWM信號(hào),使SG90舵機(jī)返回到初始位置,完成一個(gè)完整的喂魚(yú)動(dòng)作。通過(guò)SG90舵機(jī)模塊的精確控制,本系統(tǒng)能夠?qū)崿F(xiàn)定時(shí)自動(dòng)喂魚(yú)的功能。這不僅大大提高了飼養(yǎng)的便利性,而且確保了魚(yú)類(lèi)能夠得到定期、穩(wěn)定的喂養(yǎng),有助于提高魚(yú)類(lèi)的存活率。同時(shí),該自動(dòng)喂魚(yú)機(jī)制還能夠最大程度地模擬人工喂魚(yú)的動(dòng)作,為魚(yú)類(lèi)營(yíng)造一個(gè)更加自然、舒適的生存環(huán)境。SG90舵機(jī)模塊作為本系統(tǒng)實(shí)現(xiàn)定時(shí)喂魚(yú)功能的關(guān)鍵部件,其精確的角度控制能力為系統(tǒng)的自動(dòng)化喂魚(yú)提供了可靠的技術(shù)支持。圖3.10SG90舵機(jī)模塊實(shí)際接線圖4系統(tǒng)的軟件設(shè)計(jì)4.1軟件介紹KEIL5是一款廣受歡迎的嵌入式系統(tǒng)開(kāi)發(fā)集成環(huán)境(IDE),由德國(guó)KEIL公司開(kāi)發(fā),已成為嵌入式軟件開(kāi)發(fā)領(lǐng)域的標(biāo)準(zhǔn)工具之一。KEIL5憑借其出色的編譯性能、強(qiáng)大的調(diào)試功能和良好的集成性,為開(kāi)發(fā)者提供了一站式的嵌入式系統(tǒng)開(kāi)發(fā)解決方案。KEIL5的整體架構(gòu)包括編輯器、編譯器、鏈接器、仿真器、調(diào)試器等多個(gè)主要組件。編輯器提供了豐富的編程語(yǔ)言支持,如C、C++、匯編等,并集成了代碼著色、自動(dòng)完成等常見(jiàn)的編輯功能,大幅提高了開(kāi)發(fā)效率。編譯器則負(fù)責(zé)將源代碼高效地轉(zhuǎn)換為目標(biāo)單片機(jī)可執(zhí)行的機(jī)器碼,并提供了豐富的優(yōu)化選項(xiàng),確保生成高質(zhì)量的目標(biāo)代碼。鏈接器則負(fù)責(zé)處理復(fù)雜的內(nèi)存映射和符號(hào)引用問(wèn)題,生成可靠的最終可執(zhí)行程序。KEIL5的仿真器和調(diào)試器仿真器能夠模擬目標(biāo)單片機(jī)的各種硬件資源,如CPU、中斷、外設(shè)等,使得開(kāi)發(fā)者能夠在仿真環(huán)境下對(duì)程序進(jìn)行測(cè)試和調(diào)試,而無(wú)需實(shí)際的硬件電路。調(diào)試器則提供了單步執(zhí)行、斷點(diǎn)設(shè)置、變量監(jiān)視等豐富的調(diào)試功能,能夠快速定位和解決程序Bug。調(diào)試器與仿真器的無(wú)縫集成,使得開(kāi)發(fā)過(guò)程中的問(wèn)題定位和修復(fù)變得更加高效便捷。除了強(qiáng)大的核心功能外,KEIL5還附帶了大量經(jīng)過(guò)優(yōu)化的軟件庫(kù),涵蓋了各類(lèi)單片機(jī)外設(shè)驅(qū)動(dòng)、操作系統(tǒng)、網(wǎng)絡(luò)協(xié)議等,大幅降低了開(kāi)發(fā)人員的工作量。比如針對(duì)ARM、8051、C166、251等主流單片機(jī)架構(gòu),KEIL5都提供了對(duì)應(yīng)的優(yōu)化編譯器和豐富的外設(shè)驅(qū)動(dòng)庫(kù),確保開(kāi)發(fā)者能夠快速構(gòu)建目標(biāo)系統(tǒng)。同時(shí),KEIL5還支持與版本控制系統(tǒng)、編碼規(guī)范檢查工具等外部工具的集成,進(jìn)一步增強(qiáng)了開(kāi)發(fā)的靈活性。KEIL5的擁有直觀、可定制的界面布局,開(kāi)發(fā)者可以根據(jù)個(gè)人習(xí)慣調(diào)整界面布局,大大提高了工作效率。此外,KEIL5還支持用戶自定義的宏命令和腳本,進(jìn)一步增強(qiáng)了開(kāi)發(fā)的靈活性。除了出色的功能特性,KEIL5的技術(shù)支持也是其一大亮點(diǎn)。KEIL公司提供了豐富的使用文檔和技術(shù)支持,包括在線手冊(cè)、應(yīng)用筆記、技術(shù)論壇等,能夠很好地幫助開(kāi)發(fā)者解決各類(lèi)問(wèn)題。這些完善的技術(shù)支持,大大降低了開(kāi)發(fā)人員的學(xué)習(xí)成本,提高了項(xiàng)目開(kāi)發(fā)的效率。KEIL5憑借其優(yōu)秀的編譯性能、強(qiáng)大的調(diào)試功能、豐富的軟件庫(kù)和良好的集成性,已經(jīng)成為嵌入式系統(tǒng)開(kāi)發(fā)領(lǐng)域廣受歡迎的IDE工具之一。它為開(kāi)發(fā)者提供了一站式的嵌入式軟件開(kāi)發(fā)解決方案,大幅提高了項(xiàng)目開(kāi)發(fā)的效率和質(zhì)量。隨著KEIL公司不斷完善產(chǎn)品功能和技術(shù)支持,KEIL5必將在未來(lái)的嵌入式系統(tǒng)開(kāi)發(fā)領(lǐng)域發(fā)揮更加重要的作用。Keil5的軟件界面如4.1圖所示:圖4.1Keil_5軟件界面4.2軟件程序的設(shè)計(jì)智能魚(yú)缸控制系統(tǒng)的軟件部分主要包括STM32單片機(jī)的控制程序和手機(jī)APP兩個(gè)組成部分。其中,單片機(jī)控制程序承擔(dān)了系統(tǒng)的核心控制功能,而手機(jī)APP則為用戶提供了人機(jī)交互界面。單片機(jī)首先對(duì)各硬件外設(shè)進(jìn)行必要的初始化,如初始化串口、定時(shí)器、I2C總線、外部中斷等;然后周期性地采集DS18B20溫度傳感器、光敏電阻、水位電極的檢測(cè)數(shù)據(jù),并對(duì)獲取的原始數(shù)據(jù)進(jìn)行解碼和濾波處理,得到魚(yú)缸內(nèi)的實(shí)時(shí)溫度、光照和水位參數(shù)。通過(guò)比較傳感器數(shù)據(jù)和用戶預(yù)先設(shè)置的閾值數(shù)據(jù),判斷是否需要開(kāi)啟或關(guān)閉各種控制措施,如制冷、制熱、補(bǔ)光、補(bǔ)水、投喂等。最后,系統(tǒng)將按判斷結(jié)果執(zhí)行相應(yīng)的控制操作,如啟動(dòng)繼電器控制加熱棒或制冷風(fēng)扇、打開(kāi)水泵進(jìn)行換水、驅(qū)動(dòng)舵機(jī)投放魚(yú)食等。除了自動(dòng)化控制流程外,控制程序還會(huì)及時(shí)將檢測(cè)數(shù)據(jù)及執(zhí)行結(jié)果通過(guò)串口發(fā)送到ESP8266無(wú)線模塊,并在OLED顯示屏上實(shí)時(shí)顯示各項(xiàng)參數(shù)和系統(tǒng)運(yùn)行狀態(tài),供用戶實(shí)時(shí)監(jiān)控。此外,程序還可以通過(guò)按鍵或無(wú)線指令接收來(lái)自用戶的設(shè)置調(diào)整,如修改溫度、光照閾值、設(shè)置喂食時(shí)間、切換模式等。與單片機(jī)端的控制程序相配合,手機(jī)APP則為用戶提供了方便友好的監(jiān)控和控制界面。APP首先要與系統(tǒng)建立無(wú)線連接,它將通過(guò)解析ESP8266發(fā)來(lái)的數(shù)據(jù),實(shí)時(shí)將魚(yú)缸內(nèi)的各項(xiàng)參數(shù)以圖表或數(shù)值的形式顯示到手機(jī)界面上,同時(shí)顯示系統(tǒng)當(dāng)前的運(yùn)行狀態(tài)。如果出現(xiàn)溫度異常、水位過(guò)低等異常情況,APP會(huì)及時(shí)彈出報(bào)警提示,免去了用戶頻繁查看的需求。軟件系統(tǒng)設(shè)計(jì)緊密結(jié)合了計(jì)算機(jī)控制、移動(dòng)互聯(lián)網(wǎng)和人機(jī)交互等多方面的技術(shù),充分體現(xiàn)了智能化和人性化的理念。硬件系統(tǒng)和軟件系統(tǒng)的高度融合,共同構(gòu)建了一個(gè)高效實(shí)用的智能魚(yú)缸控制解決方案。4.2.1主程序流程圖4.2智能魚(yú)缸控制系統(tǒng)邏輯流程圖如圖4.2所示,在主程序中:首先對(duì)各個(gè)模塊進(jìn)行初始化,隨后進(jìn)入while主循環(huán),在主循環(huán)中,首先進(jìn)入第一個(gè)函數(shù)按鍵函數(shù),該函數(shù)主要是通過(guò)不同按鍵進(jìn)行切換界面和模式、手動(dòng)換水和喂食,設(shè)置水溫、換水、喂食時(shí)間,獲取網(wǎng)絡(luò)時(shí)間;緊接著進(jìn)入第二個(gè)函數(shù)監(jiān)測(cè)函數(shù),每500毫秒獲取一次水溫,水位,光照強(qiáng)度;緊接著進(jìn)入第三個(gè)函數(shù)顯示函數(shù),根據(jù)不同顯示界面顯示不同內(nèi)容,例如顯示模式,水位、水溫、光照強(qiáng)度值及閾值,以及顯示設(shè)置換水和喂食時(shí)間;緊接著進(jìn)入第四個(gè)函數(shù)處理函數(shù),主要是根據(jù)光照/水位/水溫控制對(duì)應(yīng)設(shè)備開(kāi)關(guān),以及在定時(shí)模式下,定時(shí)喂食和換水。最后一個(gè)是WIFI函數(shù),通過(guò)WIFI連接手機(jī)上傳數(shù)據(jù)并控制。其部分主程序源碼如下所示:intmain(void){HAL_Init();SystemClock_Config();MX_GPIO_Init();MX_TIM1_Init();MX_USART2_UART_Init();MX_ADC1_Init();MX_TIM3_Init();MX_TIM2_Init();/*USERCODEBEGIN2*/HAL_TIM_Base_Start_IT(&htim1);HAL_TIM_PWM_Start(&htim3,TIM_CHANNEL_3);//定時(shí)器3pwm初始化HAL_UART_Receive_IT(&Huart_wifi,&uartwifi_value,1);OLED_Init(); //初始化OLED_Clear(); //清屏Ds18b20_GPIO_Init(); //DS18B20初始化函數(shù)ESP8266_init();HAL_Delay(30);//wifi連網(wǎng)Ali_MQTT_Publish_3();HAL_Delay(30); DS1302_GPIO_Init(); //時(shí)鐘模塊初始化// Ds1302Init(); //寫(xiě)入時(shí)間,第一次燒錄釋放while(1){(部分代碼省略)……} }4.2.2按鍵程序流程根據(jù)圖4.3所示的按鍵程序流程,按鍵設(shè)置函數(shù)首先通過(guò)按鍵掃描函數(shù),獲取按鍵按下的相關(guān)信息,通過(guò)不同的鍵值,進(jìn)行相應(yīng)變量的改變。如果獲取的鍵值為1,切換界面。如果獲取的鍵值為2,界面0,切換模式;界面1,設(shè)置水溫下限+1;界面2,設(shè)置水溫上限+1;界面3-4,設(shè)置換水小時(shí)分鐘+1;界面5-6,設(shè)置喂食小時(shí)分鐘+1。如果獲取的鍵值為3,界面0,手動(dòng)換水;界面1,設(shè)置水溫下限-1;界面2,設(shè)置水溫上限-1;界面3-4,設(shè)置換水小時(shí)分鐘-1;界面5-6,設(shè)置喂食小時(shí)分鐘-1。如果獲取的鍵值為4,手動(dòng)喂食。如果獲取的鍵值為5,獲取網(wǎng)絡(luò)時(shí)間。其部分程序源碼如下所示:voidKey_function(void){ key_num=Chiclet_Keyboard_Scan(); //按鍵掃描 if(key_num!=0) //有按鍵按下 { switch(key_num) { case1: //按鍵1,切換界面 flag_display++; if(flag_display>=7) //一共7個(gè)界面 flag_display=0; OLED_Clear(); //按一下,清屏一次 break;(部分代碼省略)…… }}}圖4.3按鍵模塊邏輯流程圖4.2.3處理程序流程處理程序流程如圖4.4所示,如果測(cè)得光照小于40,燈打開(kāi),否則燈關(guān)閉。如果水溫低于水溫下限,進(jìn)行加熱,如果水溫大于水溫上限,開(kāi)始制冷,否則水溫在閾值內(nèi),停止加熱和制冷。在定時(shí)模式下,如果到達(dá)設(shè)置的喂食時(shí)間,開(kāi)始喂食,否則關(guān)閉喂食。如果達(dá)到換水時(shí)間,進(jìn)行換水。軟件部分程序源碼如下所示:voidManage_function(void){if(light<40)//光照小于40,燈打開(kāi)LED(1);elseLED(0); if(temp>water_H*10) relay_cold(1); else relay_cold(0);(部分代碼省略)……}}圖4.4處理函數(shù)邏輯流程圖4.2.4顯示函數(shù)流程設(shè)計(jì)顯示函數(shù)子流程如下圖4.5所示,根據(jù)不同顯示位顯示不同標(biāo)志,界面0,顯示模式、溫度、光照和水位;界面1,顯示設(shè)置的水溫下限;界面2,顯示設(shè)置的水溫上限;界面3,顯示設(shè)置換水小時(shí);界面4,顯示設(shè)置換水分鐘;界面5,顯示設(shè)置的喂食時(shí)間的小時(shí);界面6,顯示設(shè)置的喂食時(shí)間的分鐘。軟件部分程序源碼如下所示:voidDisplay_function(void){ switch(flag_display) //根據(jù)不同的顯示模式標(biāo)志位,顯示不同 { case0: //界面0,顯示溫度,光照,水位,喂食時(shí)間 OLED_Show_Time(TIME); //顯示當(dāng)前的日歷if(mode==0)Oled_ShowCHinese(88,2,(uint8_t*)"手動(dòng)");elseOled_ShowCHinese(88,2,(uint8_t*)"定時(shí)");Oled_ShowString(0,4,(uint8_t*)"T:");OLED_Show_Temp(16,4,temp);Oled_ShowString(72,4,(uint8_t*)"L:");OLED_ShowNum(88,4,light,3);Oled_ShowCHinese(0,6,(uint8_t*)"水位");Oled_ShowString(32,6,(uint8_t*)":");//顯示:OLED_ShowNum(40,6,level,3);break; (部分代碼省略)……}}圖4.5顯示函數(shù)子流程圖4.2.5中斷函數(shù)流程設(shè)計(jì)中斷函數(shù)子流程如下圖4.6所示,單片機(jī)的中斷邏輯是其實(shí)現(xiàn)高效實(shí)時(shí)處理的關(guān)鍵所在。當(dāng)單片機(jī)接收到來(lái)自外圍設(shè)備或內(nèi)部定時(shí)器的中斷請(qǐng)求時(shí),會(huì)暫停當(dāng)前正在執(zhí)行的程序,轉(zhuǎn)而處理中斷服務(wù)程序,完成中斷服務(wù)后再返回原來(lái)的程序繼續(xù)執(zhí)行。這樣可以確保及時(shí)響應(yīng)外部事件,提高系統(tǒng)的實(shí)時(shí)性和響應(yīng)性。以下是一段示例代碼,展示了基于ARMCortex-M0+處理器的STM32單片機(jī)中斷邏輯的實(shí)現(xiàn):voidDisplay_function(void){ switch(flag_display) //根據(jù)不同的顯示模式標(biāo)志位,顯示不同 { case0: //界面0,顯示溫度,光照,水位,喂食時(shí)間 OLED_Show_Time(TIME); //顯示當(dāng)前的日歷if(mode==0)Oled_ShowCHinese(88,2,(uint8_t*)"手動(dòng)");elseOled_ShowCHinese(88,2,(uint8_t*)"定時(shí)");Oled_ShowString(0,4,(uint8_t*)"T:");OLED_Show_Temp(16,4,temp);Oled_ShowString(72,4,(uint8_t*)"L:");OLED_ShowNum(88,4,light,3);Oled_ShowCHinese(0,6,(uint8_t*)"水位");Oled_ShowString(32,6,(uint8_t*)":");//顯示:OLED_ShowNum(40,6,level,3);break; (部分代碼省略)……}}該代碼展示了單片機(jī)的中斷邏輯實(shí)現(xiàn),包括:定義各種中斷服務(wù)程序,如系統(tǒng)滴答定時(shí)中斷、外部中斷等。在中斷服務(wù)程序中處理對(duì)應(yīng)的中斷事件。在主循環(huán)中執(zhí)行普通的任務(wù),當(dāng)有中斷發(fā)生時(shí),CPU會(huì)暫停主循環(huán)轉(zhuǎn)而處理中斷服務(wù)程序。完成中斷服務(wù)后,CPU會(huì)返回主循環(huán)繼續(xù)執(zhí)行。這就是單片機(jī)中斷邏輯的基本原理和實(shí)現(xiàn)。圖4.6中斷函數(shù)子流程圖4.2.6水位檢測(cè)函數(shù)流程設(shè)計(jì)水位檢測(cè)函數(shù)子流程如下圖4.7所示,魚(yú)缸系統(tǒng)中的水位檢測(cè)子流程邏輯主要負(fù)責(zé)監(jiān)控魚(yú)缸內(nèi)的水位情況,并根據(jù)設(shè)定的水位閾值采取相應(yīng)的動(dòng)作。該子流程會(huì)周期性地讀取水位傳感器的數(shù)據(jù),判斷當(dāng)前水位是否低于最低水位閾值或高于最高水位閾值。如果水位過(guò)低,則會(huì)觸發(fā)補(bǔ)水動(dòng)作,啟動(dòng)進(jìn)水泵將水加到合適的水位;如果水位過(guò)高,則會(huì)觸發(fā)排水動(dòng)作,啟動(dòng)排水泵將多余的水排出。同時(shí),該子流程還會(huì)監(jiān)控補(bǔ)水和排水的過(guò)程,并在水位恢復(fù)到正常范圍后及時(shí)停止相關(guān)泵的運(yùn)轉(zhuǎn)。整個(gè)水位檢測(cè)子流程確保了魚(yú)缸內(nèi)水位的穩(wěn)定性,為魚(yú)類(lèi)的生存創(chuàng)造了良好的水質(zhì)環(huán)境。水位檢測(cè)的部分代碼如下://水位傳感器引腳定義#defineWATER_LEVEL_SENSORA0//水位閾值定義(單位:毫米)#defineMIN_WATER_LEVEL50#defineMAX_WATER_LEVEL300//進(jìn)水泵和排水泵引腳定義#defineINLET_PUMP_PIN5#defineOUTLET_PUMP_PIN6voidsetup(){//初始化串口通信Serial.begin(9600);//設(shè)置引腳模式pinMode(INLET_PUMP_PIN,OUTPUT);pinMode(OUTLET_PUMP_PIN,OUTPUT);}voidloop(){//讀取水位傳感器值intwaterLevel=analogRead(WATER_LEVEL_SENSOR);//判斷水位是否過(guò)低if(waterLevel<MIN_WATER_LEVEL){Serial.println("Waterlevelistoolow,startinletpump.");digitalWrite(INLET_PUMP_PIN,HIGH);//啟動(dòng)進(jìn)水泵}else{digitalWrite(INLET_PUMP_PIN,LOW);//停止進(jìn)水泵}圖4.7水位檢測(cè)函數(shù)子流程圖
畢業(yè)設(shè)計(jì)5系統(tǒng)的測(cè)試PAGE45 5系統(tǒng)的測(cè)試5.1軟件硬件調(diào)試任何一款產(chǎn)品最終都要經(jīng)過(guò)反復(fù)測(cè)試和調(diào)試,才能保證其可靠穩(wěn)定運(yùn)行。對(duì)于本智能魚(yú)缸控制系統(tǒng),我們也進(jìn)行了大量的軟硬件調(diào)試工作。在軟件調(diào)試方面,我們主要使用了Keil集成開(kāi)發(fā)環(huán)境下的仿真和調(diào)試功能。Keil提供了RVMDK和UVSION兩大系列工具,可以支持多款A(yù)RM架構(gòu)的芯片和微控制器進(jìn)行開(kāi)發(fā)。我們利用Keil的仿真器,對(duì)單片機(jī)控制程序進(jìn)行了全面的功能測(cè)試,通過(guò)設(shè)置斷點(diǎn)、觀察波形、打印調(diào)試信息等方式,逐步調(diào)試和完善了程序的各個(gè)子模塊,確保其能夠按照設(shè)計(jì)要求正確運(yùn)行。在硬件調(diào)試方面,我們采取的是分模塊、分階段的調(diào)試方法。首先使用萬(wàn)用表和示波器對(duì)每個(gè)硬件電路模塊進(jìn)行獨(dú)立測(cè)試,確認(rèn)其能夠正常工作,再與單片機(jī)系統(tǒng)連接起來(lái)進(jìn)行整體測(cè)試。在這個(gè)過(guò)程中,我們也借助了邏輯分析儀、JTAG仿真器等專(zhuān)業(yè)工具追蹤硬件的運(yùn)行狀態(tài),并反復(fù)修改程序、更換元器件,直至整個(gè)系統(tǒng)的各項(xiàng)功能如溫度監(jiān)測(cè)、光照檢測(cè)、無(wú)線通信等均能夠可靠運(yùn)行。在完成軟硬件的單獨(dú)調(diào)試后,我們進(jìn)行了長(zhǎng)期穩(wěn)定性測(cè)試。將整個(gè)控制系統(tǒng)安裝到實(shí)際魚(yú)缸環(huán)境中,對(duì)其進(jìn)行了為期數(shù)月的全天侯監(jiān)控,并不間斷地在各種極端條件下測(cè)試,考察了系統(tǒng)的魯棒性和容錯(cuò)能力。同時(shí),我們還專(zhuān)門(mén)進(jìn)行了一系列性能評(píng)測(cè),如功耗測(cè)試、數(shù)據(jù)準(zhǔn)確度測(cè)試、WiFi通信距離測(cè)試等,確保系統(tǒng)在各方面的性能參數(shù)均能滿足實(shí)際應(yīng)用需求。5.2實(shí)物展示經(jīng)過(guò)大量測(cè)試和調(diào)試,系統(tǒng)的各項(xiàng)功能均運(yùn)行正常,監(jiān)測(cè)數(shù)據(jù)準(zhǔn)確、控制響應(yīng)迅速,能夠可靠地維持魚(yú)缸內(nèi)的理想環(huán)境。實(shí)物如圖5.1所示:圖5.1系統(tǒng)實(shí)物圖圖5.2系統(tǒng)初始化界面如圖5.2所示,系統(tǒng)開(kāi)啟以后,OLED顯示屏上將會(huì)實(shí)時(shí)顯示當(dāng)前的日期、星期、時(shí)間、手動(dòng)或自動(dòng)模式、溫度、水位和光照強(qiáng)度,用于用戶交互。圖5.3補(bǔ)光燈開(kāi)啟圖5.4補(bǔ)光燈關(guān)閉如圖5.3和5.4所示,測(cè)試了本系統(tǒng)的自動(dòng)補(bǔ)光功能。此時(shí)設(shè)定的光照強(qiáng)度閾值是40,當(dāng)檢測(cè)到光照強(qiáng)度大于40時(shí),會(huì)自動(dòng)關(guān)閉補(bǔ)光燈,當(dāng)檢測(cè)到光照強(qiáng)度小于40時(shí)則會(huì)自動(dòng)開(kāi)啟補(bǔ)光燈。圖5.5設(shè)置閾值界面如圖5.5所示,本系統(tǒng)可以通過(guò)按鍵對(duì)各項(xiàng)參數(shù)的閾值進(jìn)行設(shè)置,此時(shí)按下的按鍵進(jìn)入了設(shè)置水溫的下限值界面。圖5.6制冷工作狀態(tài)如圖5.6所示,當(dāng)前檢測(cè)到了水溫值大于設(shè)定閾值,此時(shí)開(kāi)啟制冷繼電器,這個(gè)功能可以使水達(dá)到一個(gè)平衡的溫度,更適合魚(yú)兒的生存。圖5.7設(shè)定自動(dòng)換水時(shí)間圖5.8設(shè)定自動(dòng)喂食時(shí)間如圖5.7和5.8所示,在這里我們分別測(cè)試了本系統(tǒng)的自動(dòng)換水和自動(dòng)喂食功能,通過(guò)按鍵可以對(duì)喂食和換水的時(shí)間進(jìn)行設(shè)置。當(dāng)達(dá)到了設(shè)定的時(shí)間后將會(huì)自動(dòng)開(kāi)啟繼電器進(jìn)行先排水后加水的操作以及步進(jìn)電機(jī)的喂食操作。圖5.9APP界面圖如圖5.9所示,本系統(tǒng)可以通過(guò)ESP8266無(wú)線模塊連接至手機(jī)APP,通過(guò)手機(jī)APP可以實(shí)時(shí)監(jiān)測(cè)和OLED屏幕上一樣的信息,也可以實(shí)現(xiàn)按鍵同樣的功能。結(jié)論結(jié)論結(jié)論本文設(shè)計(jì)的智能魚(yú)缸控制系統(tǒng),以STM32F103單片機(jī)為核心,集成了溫度檢測(cè)、水位監(jiān)測(cè)、光照強(qiáng)度檢測(cè)、時(shí)間控制、無(wú)線通信與執(zhí)行模塊等多元化功能,構(gòu)建了一套高效且智能的魚(yú)缸維護(hù)方案。通過(guò)系統(tǒng)的實(shí)時(shí)監(jiān)測(cè)和自動(dòng)調(diào)節(jié)功能,魚(yú)缸內(nèi)的環(huán)境參數(shù)能夠維持在理想范圍內(nèi),極大地減輕了用戶的日常維護(hù)工作負(fù)擔(dān),同時(shí)也為觀賞魚(yú)提供了一個(gè)穩(wěn)定舒適的生存環(huán)境。在系統(tǒng)設(shè)計(jì)過(guò)程中,我們充分考慮了系統(tǒng)的穩(wěn)定性、可靠性與智能化水平。采用DS18B20溫度傳感器進(jìn)行高精度溫度監(jiān)測(cè),通過(guò)ESP8266無(wú)線模塊實(shí)現(xiàn)遠(yuǎn)程監(jiān)控與無(wú)線控制,結(jié)合OLED顯示屏為用戶提供了直觀友好的操作界面。此外,系統(tǒng)還支持手動(dòng)和定時(shí)兩種工作模式,用戶可以根據(jù)實(shí)際需求進(jìn)行靈活設(shè)置和調(diào)整。經(jīng)過(guò)嚴(yán)格的軟硬件調(diào)試和測(cè)試,智能魚(yú)缸控制系統(tǒng)的各項(xiàng)功能均運(yùn)行正常,監(jiān)測(cè)數(shù)據(jù)準(zhǔn)確,控制響應(yīng)迅速。系統(tǒng)實(shí)物展示和測(cè)試結(jié)果表明,該智能魚(yú)缸控制系統(tǒng)不僅滿足了設(shè)計(jì)預(yù)期,而且在實(shí)際應(yīng)用中取得了良好的效果。通過(guò)本系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),我們?yōu)橹悄茏詣?dòng)化控制技術(shù)在魚(yú)缸維護(hù)領(lǐng)域的應(yīng)用做出了有益的探索和嘗試,為智能家居產(chǎn)業(yè)的發(fā)展貢獻(xiàn)了一份力量。展望未來(lái),隨著物聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,智能魚(yú)缸控制系統(tǒng)將在功能完善、用戶體驗(yàn)優(yōu)化等方面持續(xù)進(jìn)步,為人們的生活帶來(lái)更多便利與舒適。畢業(yè)設(shè)計(jì)參考文獻(xiàn)參考文獻(xiàn)[1]吳海青何滿塘周朝陽(yáng)郭晗賀泱鈐王立功.基于STM32單片機(jī)的智能魚(yú)缸控制系統(tǒng)設(shè)計(jì)[J].機(jī)械工程與自動(dòng)化,2022(6):158-160.[2]李龍,唐思均,李瑋.基于單片機(jī)的智能魚(yú)缸控制系統(tǒng)的設(shè)計(jì)[J].科技展望,2016,26(007):191-191.DOI:10.3969/j.issn.1672-8289.2016.07.166.[3]呂杰,梁鑒明.一種基于STM32單片機(jī)的智能魚(yú)缸控制系統(tǒng)設(shè)計(jì)[J].現(xiàn)代信息科技,2020,4(20):5.DOI:10.19850/ki.2096-4706.2020.20.004.[4]馬驍軒.基于單片機(jī)的智能魚(yú)缸自動(dòng)控制系統(tǒng)設(shè)計(jì)[J].[2024-03-20].[5]殷佳琪.基于單片機(jī)控制的魚(yú)缸水循環(huán)系統(tǒng)設(shè)計(jì)[J].黑龍江科技信息,2020,000(029):98-99.[6]丁惠忠.觀賞魚(yú)缸智能控制系統(tǒng)的設(shè)計(jì)[D].蘇州大學(xué)[2024-03-20].DOI:10.7666/d.y1304038.[7]楊雨生,吳麗波,龍玥彤,等.基于單片機(jī)的智能生態(tài)魚(yú)缸的設(shè)計(jì)[J].湖北農(nóng)機(jī)化,2019(12):1.DOI:CNKI:SUN:HBJH.0.2019-12-052.[8]孫悅,王震,向垚.基于51單片機(jī)的智能魚(yú)缸系統(tǒng)[J].中國(guó)科技信息,2018.DOI:CNKI:SUN:XXJK.0.2018-13-018.[9]趙宗景.基于物聯(lián)網(wǎng)的遠(yuǎn)程可控可通信水族箱的設(shè)計(jì)實(shí)現(xiàn)[D].河北北方學(xué)院[2024-03-20].DOI:CNKI:CDMD:2.1017.275258.[10]郝海燕李夢(mèng)琪李瑾玥龔杰.基于單片機(jī)的智能魚(yú)缸控制系統(tǒng)設(shè)計(jì)[J].內(nèi)江科技,2022,43(3):49-50.[11]黎濤,金亞玲.基于單片機(jī)的智能魚(yú)缸溫度控制系統(tǒng)的設(shè)計(jì)[J].湖北農(nóng)機(jī)化,2019(12):1.DOI:CNKI:SUN:HBJH.0.2019-12-051.[12]任浩,汪俊,王毅,等.基于51單片機(jī)的智能生態(tài)魚(yú)缸設(shè)計(jì)[J].黑龍江科技信息,2018,000(008):174-175.[13]邱義.基于STM32的智能魚(yú)缸遠(yuǎn)程控制系統(tǒng)設(shè)計(jì)[J].信息技術(shù)與信息化,2020(10):3.DOI:10.3969/j.issn.1672-9528.2020.10.073.[14]孔得豐.基于ATmega64智能魚(yú)缸控制系統(tǒng)的設(shè)計(jì)[J].信息與電腦,2019(12):4.DOI:CNKI:SUN:XXDL.0.
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- DB32-T 5102-2025 森林步道建設(shè)規(guī)范
- 現(xiàn)代化工業(yè)廠房產(chǎn)權(quán)及使用權(quán)轉(zhuǎn)讓合同
- 機(jī)器設(shè)備抵押貸款合同樣本
- 倉(cāng)儲(chǔ)物流安全生產(chǎn)責(zé)任書(shū)
- Brand KPIs for neobanking Upstox in India-英文培訓(xùn)課件2025.4
- 2025年翻譯專(zhuān)業(yè)研究生入學(xué)考試試卷及答案
- 2025年電氣工程與自動(dòng)化專(zhuān)業(yè)綜合能力測(cè)試試題及答案
- 2025年寵物護(hù)理與馴養(yǎng)專(zhuān)業(yè)知識(shí)考試卷及答案
- 一年級(jí)數(shù)學(xué)教案
- 歌舞廳行業(yè)人才需求分析
- 2025國(guó)開(kāi)電大《個(gè)人與團(tuán)隊(duì)管理》形考任務(wù)1-10答案
- 湖南2024生地會(huì)考試卷及答案
- GB/T 196-2025普通螺紋基本尺寸
- DB44-T 2331-2021公路混凝土橋梁火災(zāi)后安全性能評(píng)定技術(shù)規(guī)程-(高清現(xiàn)行)
- 遼寧省錦州市招考引進(jìn)“雙一流”建設(shè)高校和部分重點(diǎn)高校急需專(zhuān)業(yè)屆畢業(yè)生到市屬事業(yè)單位工作模擬試卷【共500題附答案解析】
- 運(yùn)輸設(shè)備(鐵路車(chē)輛、軌道平車(chē))專(zhuān)項(xiàng)安全檢查記錄表
- 《全球衛(wèi)生》課程教學(xué)大綱(本科)
- PLC裝配流水線模擬控制課程設(shè)計(jì)
- 統(tǒng)計(jì)學(xué)各章習(xí)題及參考答案
- 脊柱損傷固定搬運(yùn)術(shù)-優(yōu)秀課件
- 醫(yī)療器械經(jīng)營(yíng)質(zhì)量管理制度及工作程序完整版
評(píng)論
0/150
提交評(píng)論