生態(tài)魚缸自動控制系統(tǒng)設(shè)計與制作_第1頁
生態(tài)魚缸自動控制系統(tǒng)設(shè)計與制作_第2頁
生態(tài)魚缸自動控制系統(tǒng)設(shè)計與制作_第3頁
生態(tài)魚缸自動控制系統(tǒng)設(shè)計與制作_第4頁
生態(tài)魚缸自動控制系統(tǒng)設(shè)計與制作_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

河北理工大學(xué)信息學(xué)院 摘要 xi3系統(tǒng)的硬件設(shè)計3.1STM32F103C8T6單片機(jī)STM32F103單片機(jī)充當(dāng)系統(tǒng)核心控制部分,復(fù)位電路通過一個10kΩ上拉電阻搭配復(fù)位按鈕而構(gòu)成,電源電路則選用了AMS1117-3.3穩(wěn)壓芯片,整體最小系統(tǒng)電路已完成設(shè)計,濾波電容也被配備用以削減電源噪聲,采取LQFP48封裝方式把5V輸入電壓轉(zhuǎn)成3.3V為單片機(jī)供電,其工作電壓恰為3.3V,電路涉及電源電路、復(fù)位電路以及晶體振蕩電路,借助PLL倍頻至72MHz作為系統(tǒng)主頻,從而能夠在通電或者異常狀況下確保系統(tǒng)可靠地復(fù)位,晶體振蕩電路使用了8MHz的外部晶振[15]。在對STM32F103的I/O口進(jìn)行配置的時候,其與OLED顯示屏相連接,PB10和PB11被設(shè)定為UART接口,加熱棒、排水泵、加水泵以及增氧泵的開關(guān)控制就依賴它們來實(shí)現(xiàn),PB5連接著DS18B20溫度傳感器的數(shù)據(jù)線,而PB6與PB7被配置成了I2C接口,參數(shù)設(shè)置以及模式切換要靠這個來完成,PA8借助PWM對LED補(bǔ)光燈亮度實(shí)施控制,四個繼電器分別由PA11、PA15、PA12和PB8掌控,光照傳感器以及濁度傳感器就連接在其上面,系統(tǒng)按鍵連向PA3到PA5,至于PA0與PA1,則設(shè)為ADC輸入,和ESP8266WiFi模塊相連在了一起。為了提升系統(tǒng)的抗干擾能力以及穩(wěn)定性,電源層和地層被進(jìn)行了合理的規(guī)劃安排,這樣單片機(jī)電路被設(shè)計成四層PCB結(jié)構(gòu)的局面出現(xiàn),信號串?dāng)_的情況由此得以減少,而調(diào)試接口中的SWDIO和SWCLK引腳也預(yù)留了出來,在單片機(jī)電源引腳旁邊去耦電容的數(shù)量增加,重要信號線上的保護(hù)電阻也被加上去,這樣一來程序下載以及在線調(diào)試工作的方便性就體現(xiàn)出來,最終系統(tǒng)的穩(wěn)定性得到進(jìn)一步保障的結(jié)果也隨之到來。圖3.1STM32F103C8T6單片機(jī)原理圖圖3.2STM32F103C8T6最小系統(tǒng)板實(shí)物圖3.2ESP8266無線模塊ESP8266無線模塊選擇了ESP-01S型號,TCP/IP協(xié)議棧已經(jīng)集成在其內(nèi)部,PB11(USART3_RX)連接著ESP8266的TXD引腳,波特率被設(shè)置成9600bps,WiFiDirect(P2P)、soft-AP等多種運(yùn)行模式能夠被這一模塊所支持,單片機(jī)的PB10(USART3_TX)與ESP8266的RXD引腳相連接,STM32F103單片機(jī)經(jīng)由UART接口同這個模塊建立連接。ESP8266采用Station模式運(yùn)行時,在完成了配置任務(wù)之后,單片機(jī)體也可通過APP實(shí)現(xiàn)指令傳輸需求,此時一個TCP服務(wù)器會被ESP8266搭建起來,而包括工作模式選擇、WiFi聯(lián)網(wǎng)操作及TCP服務(wù)器參數(shù)調(diào)整等工作逐步進(jìn)行,手機(jī)APP能順利完成連接的前提是單片機(jī)利用AT指令完成對ESP8266的初始化設(shè)置,由此才使遠(yuǎn)程控制得以達(dá)成,5000端口被設(shè)定為監(jiān)聽狀態(tài),再經(jīng)由家庭WiFi網(wǎng)絡(luò)來實(shí)現(xiàn)接入過程,并等待手機(jī)APP前來連通,數(shù)據(jù)如溫度光照還有濁度值等會被單片機(jī)定時借助ESP8266傳遞至APP之中[16]。圖3.3ESP8266無線模塊原理圖圖3.4ESP8266無線模塊實(shí)物圖3.3濁度檢測模塊濁度檢測模塊采用光電式濁度傳感器,輸出電壓較低的情況下,該信號與水的濁度呈現(xiàn)反比關(guān)系,傳感器發(fā)出模擬電壓信號之后通過ADC完成模數(shù)轉(zhuǎn)換,濁度越高時,傳感器的模擬輸出信號則連接至STM32F103的PA1引腳,通過對水中懸浮物對光線的散射或吸收進(jìn)行檢測,從而實(shí)現(xiàn)對水體濁度的測量,其組成部分包括發(fā)光二極管與光敏傳感器。提高測量精度就涉及到運(yùn)算放大器和低通濾波電路的使用,這是為了把環(huán)境光和電源干擾產(chǎn)生的高頻噪聲濾除掉,傳感器輸出微弱信號被放大以適配ADC采集區(qū)間,低通濾波電路由電阻與電容構(gòu)成,在這里面設(shè)置了信號調(diào)理電路,截止頻率大概10Hz左右,運(yùn)算放大器則是選用了LM393比較器[17]。傳感器探頭采用防水設(shè)計,避開水流湍急與氣泡聚集之處后直接浸入魚缸水里即可使用,ADC采集到的電壓值能夠換算成濁度單位NTU,系統(tǒng)設(shè)定了濁度閾值,換水操作分成排水和加水兩個步驟,安全性以及可靠性在這一過程中有所體現(xiàn),水位變化經(jīng)由水位傳感器檢測之后自動引發(fā)換水程序流程。圖3.5濁度檢測模塊原理圖圖3.6渾濁度檢測模塊實(shí)物圖3.4光照檢測模塊光照檢測模塊采用光敏電阻作為傳感元件,一個光敏電阻搭配10kΩ固定電阻構(gòu)成分壓器結(jié)構(gòu),隨后信號經(jīng)ADC采集,光敏電阻的阻值會由于光照強(qiáng)度的變化而改變。隨著光照逐漸變強(qiáng),這種情形下模塊中的分壓電路已完成設(shè)計,阻值則愈發(fā)小,分壓點(diǎn)連接至STM32F103的PA0引腳處,系統(tǒng)測得的光照強(qiáng)度與亮度呈反向關(guān)聯(lián),此設(shè)計旨在確保補(bǔ)光能夠平穩(wěn)過渡,LED燈隨之自動開啟,由此避免了亮度突變對魚類產(chǎn)生的影響[18]。圖3.7光照檢測模塊原理圖圖3.8光照檢測模塊實(shí)物圖3.5ULN2003模塊ULN2003是一種擁有高電壓和高電流特點(diǎn)的達(dá)林頓晶體管陣列芯片,可用來驅(qū)動很多種類的負(fù)載,里面有7個NPN達(dá)林頓管,自動喂食功能才能夠?qū)崿F(xiàn),本系統(tǒng)中食物分配器的轉(zhuǎn)動被控制,步進(jìn)電機(jī)的驅(qū)動主要借助ULN2003來達(dá)成,其特性成為各類操作的基礎(chǔ)。ULN2003的輸入端IN1-IN4被接到STM32F103的PA2、PA3、PA4、PA5引腳上,選用的是5線四相單極性步進(jìn)電機(jī),每條控制信號線都加上了一個1kΩ的限流電阻,為了保障單片機(jī)I/O口的安全,GND端接地,公共端連著5V電源,輸出端OUT1-OUT4連接至步進(jìn)電機(jī)的四個相位線,而ULN2003的COM端與5V電源相連。步進(jìn)電機(jī)驅(qū)動采用四相八拍的方式,喂食時間依魚群密度自動變化:若魚少于5條,則為一檔對應(yīng)10秒的喂食時長;魚在6至10條范圍時屬于二檔,喂食時長達(dá)20秒,這時電機(jī)轉(zhuǎn)速約為30RPM;一旦魚的數(shù)量超出10條便達(dá)到三檔,在這種情況下要進(jìn)行持續(xù)30秒的喂食,通過程序讓ULN2003的四個輸出端按照一定順序切換通斷狀態(tài),脈沖間隔時間被改變以達(dá)成對電機(jī)速度的控制目的,默認(rèn)狀態(tài)下設(shè)定每步5ms運(yùn)行,喂食量由調(diào)整電機(jī)轉(zhuǎn)動步數(shù)來實(shí)現(xiàn)決定。電機(jī)控制線路里添加了反向續(xù)流二極管,電機(jī)啟停時的沖擊得以減輕,程序運(yùn)行時候有加速減速步驟包含在內(nèi),在此過程之中ULN2003芯片受到了保護(hù),電機(jī)斷電時反電動勢帶來的潛在損害風(fēng)險被降低,停止時從減速慢慢過渡到完全停下來,啟動時則從低速平穩(wěn)提升至目標(biāo)速度,這么一來系統(tǒng)的機(jī)械穩(wěn)定性與可靠性就得到了改善[19]。圖3.9ULN2003模塊原理圖圖3.10ULN2003模塊實(shí)物圖3.6DS18B20溫度傳感器模塊DS18B20歸于高精度數(shù)字溫度傳感器之列,VCC引腳連著5V電源,數(shù)據(jù)線上還多加了個4.7kΩ的上拉電阻,通信靠的是單總線協(xié)議,系統(tǒng)里信號完整性得以確保,GND引腳接了地,DS18B20的DQ引腳與STM32F103的PB5引腳相連接,數(shù)據(jù)傳輸方向?yàn)殡p向的,就一根數(shù)據(jù)線便實(shí)現(xiàn)了傳感器和單片機(jī)之間的交互溝通這一任務(wù)。DS18B20既能支持寄生供電又可以使用外部供電,本系統(tǒng)選用了外部供電的方式,局部高溫可能會對寄生供電有影響,這樣一來傳感器的安裝位置就被設(shè)置在與加熱棒相隔一定距離的地方,這樣的測量更加可靠,畢竟測得的數(shù)值更能反映魚缸整體水體的溫度狀況,該傳感器直接放進(jìn)魚缸水中就能執(zhí)行測量任務(wù),它是防水封裝型號的傳感器[20]。圖3.11DS18B20溫度傳感器模塊原理圖圖3.12DS18B20溫度傳感器模塊實(shí)物圖3.7繼電器模塊系統(tǒng)選用了4路繼電器模塊,每路繼電器額定電流達(dá)10A,工作電壓為5V,水族箱常見設(shè)備功率需求能夠被滿足,加熱棒以及增氧泵、排水泵還有加水泵分別受其控制,繼電器模塊的控制信號被連接至STM32F103的PA11、PB8、PA15、PA12引腳上,整體的適配性在實(shí)際應(yīng)用中得到體現(xiàn)。單片機(jī)I/O口的保護(hù)于該設(shè)計里得以達(dá)成,繼電器與單片機(jī)就此隔開來,發(fā)射極被連接至繼電器的控制端處,每一路繼電器控制電路展現(xiàn)為三極管驅(qū)動形式,1N4148續(xù)流二極管在繼電器線圈兩端并聯(lián)著,避免反電動勢自繼電器線圈產(chǎn)生時對單片機(jī)造成損壞成了目標(biāo),斷電之際產(chǎn)生的反電動勢則通過集電極經(jīng)由1kΩ電阻接通5V電源予以吸收,至于STM32的I/O口借助1kΩ限流電阻來到了三極管9012基極。繼電器的常開觸點(diǎn)(NO)與常閉觸點(diǎn)(NC),根據(jù)控制需要進(jìn)行連接,單片機(jī)如果出現(xiàn)異常狀況則加熱棒能夠?qū)崿F(xiàn)自動斷電,所有繼電器的公共端接在交流220V電源零線之上,加熱棒被常閉觸點(diǎn)控制著,系統(tǒng)異常時以防設(shè)備意外開啟,達(dá)到對設(shè)備通電或斷電的控制來提升安全性能,排水泵、增氧泵以及加水泵的控制則用的是常開觸點(diǎn),常開或者常閉觸點(diǎn)連接到了各個設(shè)備的電源線路上。每路繼電器都配了LED燈用于指示,臨界狀態(tài)頻繁切換的現(xiàn)象能夠避免,這樣一來設(shè)備壽命就被延長,繼電器的工作狀況還可以很直觀地呈現(xiàn)出來,為讓系統(tǒng)可靠性得到提升,軟啟動與軟關(guān)斷功能在系統(tǒng)中實(shí)現(xiàn),防抖動設(shè)計被加入到繼電器的控制程序,于是設(shè)備開啟瞬間產(chǎn)生的沖擊電流便降了下來。圖3.13繼電器模塊原理圖圖3.13繼電器模塊實(shí)物圖3.8OLED顯示模塊OLED顯示模塊采用0.96英寸分辨率為128×64的單色顯示屏,基于SSD1306控制芯片,通過I2C接口與單片機(jī)通信。顯示屏的SCL引腳連接到STM32F103的PB6引腳,SDA引腳連接到PB7引腳,VCC接3.3V電源,GND接地。I2C通信速率設(shè)置為400kHz,滿足顯示刷新需求。OLED顯示采用分頁刷新方式,將128×64像素點(diǎn)分為8頁,每頁8個像素點(diǎn)高度。顯示驅(qū)動程序?qū)崿F(xiàn)了點(diǎn)、線、矩形、圓形等基本圖形繪制功能,以及ASCII字符、漢字的顯示功能。漢字采用點(diǎn)陣字庫,存儲在Flash中,支持16×16點(diǎn)陣大小。為優(yōu)化顯示效果,程序中實(shí)現(xiàn)了區(qū)域刷新功能,僅更新發(fā)生變化的顯示區(qū)域,減少閃爍并提高刷新速率。顯示界面設(shè)計為多級菜單結(jié)構(gòu),主界面顯示當(dāng)前日期、時間、水溫、光照強(qiáng)度和濁度值;設(shè)置界面可調(diào)整溫度上下限、光照閾值、濁度閾值、定時喂食和充氧時間。界面切換通過按鍵K1控制,參數(shù)調(diào)整通過按鍵K2、K3實(shí)現(xiàn)增減,按鍵K4確認(rèn)設(shè)置或返回主界面。界面設(shè)計注重簡潔明了,關(guān)鍵參數(shù)字體加大,便于用戶直觀了解系統(tǒng)狀態(tài)。顯示程序采用狀態(tài)機(jī)設(shè)計,根據(jù)當(dāng)前模式(moshi變量)決定顯示內(nèi)容。當(dāng)處于參數(shù)設(shè)置模式時,被調(diào)整的參數(shù)會閃爍顯示,提高用戶交互體驗(yàn)。系統(tǒng)還設(shè)計了簡單的動畫效果,如參數(shù)變化時的平滑過渡,增強(qiáng)用戶體驗(yàn)。圖3.14OLED模塊原理圖圖3.15OLED模塊實(shí)物圖3.9本章小結(jié)本章詳細(xì)闡述了生態(tài)魚缸自動控制系統(tǒng)硬件設(shè)計的內(nèi)容,這些設(shè)計為軟件功能的達(dá)成提供了基礎(chǔ)支持,從而構(gòu)建起完整的控制體系結(jié)構(gòu),各部分硬件借助精心設(shè)計的電路實(shí)現(xiàn)了彼此有機(jī)聯(lián)結(jié),硬件設(shè)計重心放在功能實(shí)現(xiàn)方面以及運(yùn)行的可靠性與安全性上,多種防護(hù)措施和優(yōu)化策略被采用后,穩(wěn)固地支撐了系統(tǒng)整體表現(xiàn),并且保證其在復(fù)雜環(huán)境中依舊平穩(wěn)運(yùn)行著,內(nèi)容包括STM32F103單片機(jī)核心控制電路、ESP8266無線通信模塊、濁度檢測模塊、光照檢測模塊、ULN2003步進(jìn)電機(jī)驅(qū)動模塊、DS18B20溫度檢測模塊、繼電器控制模塊還有OLED顯示模塊等。5系統(tǒng)的測試4系統(tǒng)的軟件設(shè)計4.1軟件介紹Keil5是ARM公司推出的一款集成開發(fā)環(huán)境(IDE),專門用于ARM架構(gòu)微控制器的軟件開發(fā),支持STM32系列單片機(jī)的所有型號,它提供了編輯器、編譯器、鏈接器、調(diào)試器等工具鏈,本系統(tǒng)采用KeilMDK5.25版本進(jìn)行軟件開發(fā),Keil5之中集成了μVisionIDE,涵蓋代碼編輯工程管理以及編譯構(gòu)建仿真調(diào)試等功能,其可支持多種代碼優(yōu)化策略,通過ST-Link這類調(diào)試器就能和硬件相連接,優(yōu)化級別可以調(diào)整,ARM-GCC作為編譯器基礎(chǔ),實(shí)現(xiàn)實(shí)時調(diào)試,C/C++與匯編語言混合編程可被支持,調(diào)試器支持JTAG/SWD接口。此項(xiàng)目借助Keil5搭建STM32工程,開發(fā)依托于CMSIS和STM32標(biāo)準(zhǔn)外設(shè)庫,調(diào)試與維護(hù)的便捷性由此提升,各功能模塊獨(dú)自開展開發(fā)任務(wù),項(xiàng)目遵循模塊化編程思想,分層設(shè)計被采納,代碼可讀性及可維護(hù)性得以增強(qiáng),連接借由標(biāo)準(zhǔn)接口達(dá)成,項(xiàng)目文件結(jié)構(gòu)包含主程序、驅(qū)動程序、用戶庫以及系統(tǒng)配置這四個部分。圖4.1Keil_5軟件界面4.2軟件程序的設(shè)計4.2.1主程序流程圖圖4.2系統(tǒng)邏輯流程圖系統(tǒng)的主流程圖如圖4.2所示,主程序設(shè)計融合了順序與循環(huán)結(jié)構(gòu),主循環(huán)承擔(dān)數(shù)據(jù)采集、處理以及控制功能執(zhí)行的任務(wù),其中延時初始化工作被完成著,I2C配置步驟也不容忽視,OLED顯示屏的初始化狀態(tài)呈現(xiàn)出來,LED初始化設(shè)定已然結(jié)束,按鍵處于已初始化的狀態(tài)下,步進(jìn)電機(jī)初始化操作得以進(jìn)行,關(guān)于中斷優(yōu)先級也經(jīng)歷了相應(yīng)的配置流程,定時器完成了初始化,串口3與ESP8266均達(dá)成初始化后的結(jié)果,RTC結(jié)束初始化且ADC亦處在其后狀態(tài),顯示屏幕負(fù)責(zé)把歡迎界面展現(xiàn)而出,借助moshi變量完成對當(dāng)前模式記錄是程序的選擇手段,在持續(xù)開展按鍵處理的同時,數(shù)據(jù)采集任務(wù)、參數(shù)數(shù)值展示工作以及自動控制功能不斷地在被執(zhí)行之中,主循環(huán)執(zhí)行頻率受到延時函數(shù)的制約作用明顯。主程序相關(guān)流程如下所言,系統(tǒng)一旦上電就為實(shí)時響應(yīng)用戶操作舉動和環(huán)境變化態(tài)勢做準(zhǔn)備,相關(guān)初始化工作完成后便進(jìn)入主循環(huán),不同模式對應(yīng)各自應(yīng)有之的功能邏輯以執(zhí)行指令,整體流程涵蓋兩個部分初始階段以及主循環(huán)內(nèi)容,先是前者將系統(tǒng)時鐘、外設(shè)裝置還有變量等要素涉及的相關(guān)初始化任務(wù)統(tǒng)統(tǒng)包含到內(nèi)部,緊接下來才會踏入后面的主循環(huán)內(nèi)里去運(yùn)行相應(yīng)操作指示規(guī)范等等關(guān)鍵信息內(nèi)容描述特征表現(xiàn)。4.2.2按鍵子程序流程圖圖4.3按鍵子程序流程圖按鍵子程序流程圖如圖4.3所示,顯示子程序負(fù)責(zé)OLED顯示屏的驅(qū)動以及界面展示任務(wù),刷新頻率大概于20Hz左右浮動,為削減I2C通信次數(shù)服務(wù),無論是ASCII字符亦或是中文字符皆可被呈現(xiàn),數(shù)字借助LCD_ShowNum來顯現(xiàn),這其中便包括了顯示初始化操作、數(shù)據(jù)傳輸還有頁地址設(shè)置等基礎(chǔ)工作,在內(nèi)容被統(tǒng)一輸送至控制器前會先寫入內(nèi)存緩沖區(qū)之中以達(dá)到效率提升的目的,整個程序分為了底層驅(qū)動與應(yīng)用層這兩大部分,系統(tǒng)資源并不會被過多占據(jù),LCD_ShowNum_0可以用來對帶前導(dǎo)零的數(shù)字加以顯示,底層實(shí)現(xiàn)的過程之中遵循了I2C協(xié)議并且和SSD1306指令集相互兼容,就像OLED_ShowStr承擔(dān)著字符串顯示的任務(wù),多個函數(shù)經(jīng)由顯示子程序定義來達(dá)成目的,滿足人眼感受方面的需求,這些內(nèi)容受到主程序調(diào)用后投入應(yīng)用,應(yīng)用層還對點(diǎn)線矩形等基礎(chǔ)圖形繪制功能予以實(shí)現(xiàn),當(dāng)顯示程序運(yùn)用緩沖技術(shù)時其能在不同模式下應(yīng)對界面顯現(xiàn)的問題狀況。4.2.3顯示子程序流程圖圖4.4溫度子程序流程圖溫度模塊子程序流程如下圖4.4所示,溫度子程序服務(wù)于DS18B20溫度傳感器的驅(qū)動,承擔(dān)著收集與處理溫度數(shù)據(jù)的任務(wù),單總線協(xié)議得以依靠精確的延時被達(dá)成,向DS18B20寫入一字節(jié)命令的操作如DS18B20_WriteByte這般呈現(xiàn),而再看DS18B20_Reset,它的功能就是使傳感器復(fù)位,至于DS18B20_Check可以完成檢測傳感器是否存在的任務(wù),依據(jù)DS18B20對時序的要求,控制住數(shù)據(jù)線上電平狀態(tài)的變化情況,讀取一位數(shù)據(jù)的能力通過DS18B20_ReadBit被執(zhí)行起來,這一整個程序包含的內(nèi)容較多,像單總線通信協(xié)議的實(shí)現(xiàn)、針對DS18B20的初始化環(huán)節(jié)、進(jìn)行溫度轉(zhuǎn)換還能做到讀取數(shù)據(jù)等一些內(nèi)容全都被容納其中,基礎(chǔ)操作函數(shù)也已經(jīng)被此程序定義穩(wěn)妥,它還能借由調(diào)用DS18B20_ReadByte讀取一字節(jié)的數(shù)據(jù)。溫度采集函數(shù)DS18B20_Get_Temp貫穿了整個溫度讀取的過程,復(fù)位脈沖先被發(fā)出,緊接著傳感器的存在需要檢測,溫度轉(zhuǎn)換指令隨后發(fā)送,目的是為了在顯示和控制上提供便利性,也讓系統(tǒng)運(yùn)行的穩(wěn)定性得以提升,通信部分可靠性問題格外受到關(guān)注。溫度子程序中狀態(tài)檢查技術(shù)發(fā)揮作用用以獲取溫度數(shù)據(jù),一旦出現(xiàn)錯誤就能夠馬上被捕獲并進(jìn)入自動重試階段,將最終取得的溫度數(shù)值乘以10后存為完整的整型數(shù)據(jù),耐心等待轉(zhuǎn)換結(jié)束變得尤為關(guān)鍵,暫存器里面的數(shù)據(jù)顯示出重要價值,此時跳過ROM命令顯得不可或缺,處理數(shù)據(jù)精度時選擇了嚴(yán)謹(jǐn)保留一位小數(shù)的方法,所有動作完成之后需再次執(zhí)行復(fù)位操作以及完成跳過ROM的行為才算是結(jié)束整個流程。4.3本章小結(jié)本章對生態(tài)魚缸自動控制系統(tǒng)中的軟件設(shè)計展開描述,將實(shí)時性可靠性以及用戶體驗(yàn)全面考慮到其中,主程序利用狀態(tài)機(jī)的模式去處理系統(tǒng)各類的工作狀態(tài)以便完成系統(tǒng)的功能需求得以實(shí)現(xiàn),而主程序顯示子程序與溫度子程序在經(jīng)過設(shè)計和實(shí)現(xiàn)之后直觀呈現(xiàn)出系統(tǒng)相關(guān)狀態(tài)參數(shù)及設(shè)定條件等細(xì)節(jié)狀況呈現(xiàn)出來,采集水溫數(shù)據(jù)這一任務(wù)被溫度子程序精確地進(jìn)行下去從而保證為溫度控制提供依據(jù)變得可信可靠可維護(hù)性還有清晰性反映在代碼質(zhì)量里,分層結(jié)構(gòu)配合模塊化的思想應(yīng)用到整個軟件設(shè)計之中硬件層面的設(shè)計也同步考慮了協(xié)調(diào)工作確保各模塊穩(wěn)定運(yùn)行友好的交互界面由顯示子程序負(fù)責(zé)塑造這里面涉及到了使用開發(fā)環(huán)境Keil5。5系統(tǒng)的測試5.1軟硬件調(diào)試系統(tǒng)軟硬件的調(diào)試分成單元測試與集成測試這兩個階段,傳感器被放進(jìn)已知溫度的水里后,參考溫度計的讀數(shù)和顯示數(shù)值需要對照比對,借此符合系統(tǒng)要求。在單元測試這個階段,各個功能模塊會被單獨(dú)拿出來測試,DS18B20溫度傳感器會采用已知溫度環(huán)境對比法來進(jìn)行測試,為的是驗(yàn)證模塊功能的正確性。STM32F103單片機(jī)的核心部分由系統(tǒng)時鐘、GPIO、ADC、PWM、USART、I2C等外設(shè)功能構(gòu)成,在測試過程中這些外設(shè)的初始化以及配置是否正確得以確認(rèn),最終結(jié)果顯示誤差位于±0.5℃范圍之內(nèi)。多點(diǎn)法被應(yīng)用于光照傳感器和濁度傳感器的校準(zhǔn),借此擬合出特性曲線,ESP8266WiFi模塊的測試涉及AT指令響應(yīng)、WiFi連接以及TCP通信功能等多個方面,在不同條件下記錄傳感器輸出后,編寫轉(zhuǎn)換算法,從而確認(rèn)顯示內(nèi)容的清晰可讀性,無線通信的可靠性也經(jīng)過了驗(yàn)證。OLED顯示測試包括字符顯示、數(shù)字顯示還有界面切換功能等部分,繼電器控制測試通過測量繼電器觸點(diǎn)電壓來完成,控制邏輯正確性被確認(rèn),防抖電路與保護(hù)電路的有效性同樣受到查驗(yàn)。集成測試階段各模塊拼接到一起,通過APP盯著實(shí)時數(shù)據(jù)接著發(fā)送控制命令,系統(tǒng)對于水溫變化的回應(yīng)處在被觀測中,設(shè)定范圍之內(nèi)的水溫趨于穩(wěn)定,依據(jù)預(yù)設(shè)時間準(zhǔn)確實(shí)施對應(yīng)操作的現(xiàn)象得以出現(xiàn),LED補(bǔ)光燈依著光照強(qiáng)度自主調(diào)節(jié)亮度這項(xiàng)功能被核查,水質(zhì)監(jiān)測加換水功能的測試經(jīng)由調(diào)節(jié)濁度傳感器閾值來達(dá)成,不同環(huán)境光照條件下光照補(bǔ)償測試給施行,遠(yuǎn)程監(jiān)控以及控制功能的有效程度被證實(shí),手機(jī)APP與系統(tǒng)之間的鏈接被構(gòu)建起來用于完結(jié)WiFi遠(yuǎn)程控制測試,±1℃的控溫精確程度達(dá)到,系統(tǒng)里展現(xiàn)出精準(zhǔn)檢測水質(zhì)狀況的實(shí)力,溫度控制測試模仿魚缸實(shí)際使用環(huán)境進(jìn)行,魚缸光照在合適范圍內(nèi)被維持住,定時喂食還有增氧功能憑借設(shè)置不同的時刻點(diǎn)被執(zhí)行且實(shí)行換水操作,用以驗(yàn)證系統(tǒng)整體功能,自動執(zhí)行狀況也在視線之內(nèi)觸發(fā)自動換水步驟。5.2實(shí)物展示經(jīng)過大量測試和調(diào)試,系統(tǒng)的各項(xiàng)功能均運(yùn)行正常,監(jiān)測數(shù)據(jù)準(zhǔn)確、控制響應(yīng)迅速,能夠可靠地維持魚缸內(nèi)的理想環(huán)境。實(shí)物如圖5.1所示:圖5.1系統(tǒng)實(shí)物圖圖5.2系統(tǒng)初始化界面如圖5.2所示,系統(tǒng)開啟以后,OLED顯示屏上將會實(shí)時顯示當(dāng)前的日期、星期、時間、手動或自動模式、溫度和光照強(qiáng)度,用于用戶交互。圖5.3補(bǔ)光燈開啟圖5.4補(bǔ)光燈關(guān)閉如圖5.3和5.4所示,測試了本系統(tǒng)的自動補(bǔ)光功能。此時設(shè)定的光照強(qiáng)度閾值是40,當(dāng)檢測到光照強(qiáng)度大于40時,會自動關(guān)閉補(bǔ)光燈,當(dāng)檢測到光照強(qiáng)度小于40時則會自動開啟補(bǔ)光燈。5.3本章小結(jié)本章圍繞生態(tài)魚缸自動控制系統(tǒng)的測試流程以及實(shí)物展示展開介紹,系統(tǒng)與魚缸環(huán)境實(shí)現(xiàn)了恰如其分的融合且完成了預(yù)期設(shè)計目標(biāo),經(jīng)由單元測試、集成測試后各部件布局被安排得較為合理,實(shí)物安裝既兼顧美觀性又考慮實(shí)用性,接線工作滿足規(guī)范標(biāo)準(zhǔn),在此過程中各功能模塊連同整體運(yùn)行的準(zhǔn)確性及可靠性得到了驗(yàn)證。測試結(jié)果體現(xiàn)了魚缸環(huán)境管理已被智能化,依據(jù)預(yù)設(shè)參數(shù)諸如加熱、補(bǔ)光、喂食、增氧、換水這些任務(wù)均被執(zhí)行到位,測試階段加上成品展示都顯示出這一系統(tǒng)設(shè)計方案合理可行,而水溫、光照和水質(zhì)狀態(tài)也被精準(zhǔn)監(jiān)控著。結(jié)論結(jié)論結(jié)論以STM32F103單片機(jī)為核心設(shè)計出了一套生態(tài)魚缸自動控制系統(tǒng),傳統(tǒng)魚缸管理里的不少問題被順利解決,飼養(yǎng)者的管理負(fù)擔(dān)也因此輕松許多,水溫得以監(jiān)測和控制,光照被實(shí)施監(jiān)測并且進(jìn)行補(bǔ)光,魚類流量檢測后還可實(shí)現(xiàn)智能投喂,定時投喂和增氧功能同樣沒有遺漏,水質(zhì)受到監(jiān)測之后還實(shí)現(xiàn)了自動換水,遠(yuǎn)程的監(jiān)控和控制也成了現(xiàn)實(shí)。相關(guān)設(shè)備被自動操控著,魚類就此擁有了穩(wěn)定且適宜的生存環(huán)境,憑借多種傳感器完成了對魚缸環(huán)境參數(shù)的實(shí)時監(jiān)測目標(biāo)。系統(tǒng)硬件設(shè)計借由模塊化理念推進(jìn),底層驅(qū)動和中間層功能算法以及上層應(yīng)用邏輯被雜糅到一起并有機(jī)聯(lián)系,核心控制器選定STM32F103單片機(jī),其操作簡便性得以凸顯,智能控制功能在系統(tǒng)中也成功達(dá)成,不同用戶的使用需求能借此得到滿足。軟件設(shè)計以分層架構(gòu)為手段,完整控制系統(tǒng)逐漸成型,直觀友好的用戶界面經(jīng)設(shè)計后呈現(xiàn)出來,強(qiáng)大運(yùn)算能力與外設(shè)資源的富裕狀態(tài)共存,通信模塊選擇了ESP8266WiFi模塊,各功能單元獨(dú)立完成設(shè)計之余彼此配合達(dá)成了遠(yuǎn)程監(jiān)控與控制功能,諸多種類傳感器與執(zhí)行裝置的選擇搭配電路的設(shè)計,把功能實(shí)現(xiàn)可靠性安全性全都容納進(jìn)來被著重考量。系統(tǒng)測試結(jié)果出來后,觀賞魚養(yǎng)殖的成功率與觀賞價值有了顯著提升,運(yùn)行狀態(tài)穩(wěn)定且可靠,各項(xiàng)功能指標(biāo)都達(dá)到了設(shè)計要求,本系統(tǒng)不同于傳統(tǒng)魚缸管理方式,自動化程度得以大幅提高,控制精度也得到增強(qiáng),遠(yuǎn)程操作的便捷性被大大優(yōu)化。本系統(tǒng)成功完成設(shè)計與實(shí)現(xiàn),為觀賞魚愛好者提供了一套實(shí)用智能管理工具的過程里,物聯(lián)網(wǎng)技術(shù)在家庭生活中的典型應(yīng)用被展現(xiàn)出來,這其中蘊(yùn)含著重要的實(shí)用價值以及不容忽視的推廣意義。參考文獻(xiàn)參考文獻(xiàn)[1]吳海青何滿塘周朝陽郭晗賀泱鈐王立功.基于STM32單片機(jī)的智能魚缸控制系統(tǒng)設(shè)計[J].機(jī)械工程與自動化,2022(6):158-160.[2]李龍,唐思均,李瑋.基于單片機(jī)的智能魚缸控制系統(tǒng)的設(shè)計[J].科技展望,2016,26(007):191-191.DOI:10.3969/j.issn.1672-8289.2016.07.166.[3]呂杰,梁鑒明.一種基于STM32單片機(jī)的智能魚缸控制系統(tǒng)設(shè)計[J].現(xiàn)代信息科技,2020,4(20):5.DOI:10.19850/ki.2096-4706.2020.20.004.[4]馬驍軒.基于單片機(jī)的智能魚缸自動控制系統(tǒng)設(shè)計[J].[2024-03-20].[5]殷佳琪.基于單片機(jī)控制的魚缸水循環(huán)系統(tǒng)設(shè)計[J].黑龍江科技信息,2020,000(029):98-99.[6]丁惠忠.觀賞魚缸智能控制系統(tǒng)的設(shè)計[D].蘇州大學(xué)[2024-03-20].DOI:10.7666/d.y1304038.[7]楊雨生,吳麗波,龍玥彤,等.基于單片機(jī)的智能生態(tài)魚缸的設(shè)計[J].湖北農(nóng)機(jī)化,2019(12):1.DOI:CNKI:SUN:HBJH.0.2019-12-052.[8]孫悅,王震,向垚.基于51單片機(jī)的智能魚缸系統(tǒng)[J].中國科技信息,2018.DOI:CNKI:SUN:XXJK.0.2018-13-018.[9]趙宗景.基于物聯(lián)網(wǎng)的遠(yuǎn)程可控可通信水族箱的設(shè)計實(shí)現(xiàn)[D].河北北方學(xué)院[2024-03-20].DOI:CNKI:CDMD:2.1017.275258.[10]郝海燕李夢琪李瑾玥龔杰.基于單片機(jī)的智能魚缸控制系統(tǒng)設(shè)計[J].內(nèi)江科技,2022,43(3):49-50.[11]黎濤,金亞玲.基于單片機(jī)的智能魚缸溫度控制系統(tǒng)的設(shè)計[J].湖北農(nóng)機(jī)化,2019(12):1.DOI:CNKI:SUN:HBJH.0.2019-12-051.[12]任浩,汪俊,王毅,等.基于51單片機(jī)的智能生態(tài)魚缸設(shè)計[J].黑龍江科技信息,2018,000(008):174-175.[13]邱義.基于STM32的智能魚缸遠(yuǎn)程控制系統(tǒng)設(shè)計[J].信息技術(shù)與信息化,2020(10):3.DOI:10.3969/j.issn.1672-9528.2020.10.073.[14]孔得豐.基于ATmega64智能魚缸控制系統(tǒng)的設(shè)計[J].信息與電腦,2019(12):4.DOI:CNKI:SUN:XXDL.0.2019-12-032.[15]王燕平.基于藍(lán)牙技術(shù)的智能魚缸控制系統(tǒng)設(shè)計[J].電子技術(shù)(上海),2021(003):000.[16]殷佳琪.基于單片機(jī)控制的魚缸水循環(huán)系統(tǒng)設(shè)計[J].科學(xué)技術(shù)創(chuàng)新,2020(29):2.DOI:CNKI:SUN:HLKX.0.2020-29-042.[17]李湘,李東來,張大偉.基于C51的智能魚缸系統(tǒng)設(shè)計[J].湖北農(nóng)機(jī)化,2021(11):2.DOI:10.3969/j.issn.1009-1440.2021.11.071.[18]陳帥華.基于物聯(lián)網(wǎng)的智能魚缸投食系統(tǒng)設(shè)計[J].科學(xué)咨詢,2021,000(012):82.[19]朱炯健,張喜洋,楊樹輝,等.基于STM32的遠(yuǎn)程無線智能魚缸控制系統(tǒng)設(shè)計[J].科技風(fēng),2019(6):1.DOI:CNKI:SUN:KJFT.0.2019-06-052.[20]王馨萱.基于單片機(jī)的魚缸溫度控制系統(tǒng)設(shè)計[J].電子測試,2019(15):3.附錄B附錄A原理圖:附錄B部分源程序:#include"delay.h"#include"sys.h"#include"usart.h"#include"oled.h"#include"key.h"#inc

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論