




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