基于STM32的農(nóng)業(yè)大棚智能控制系統(tǒng)_第1頁
基于STM32的農(nóng)業(yè)大棚智能控制系統(tǒng)_第2頁
基于STM32的農(nóng)業(yè)大棚智能控制系統(tǒng)_第3頁
基于STM32的農(nóng)業(yè)大棚智能控制系統(tǒng)_第4頁
基于STM32的農(nóng)業(yè)大棚智能控制系統(tǒng)_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

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

文檔簡(jiǎn)介

[1]。該設(shè)計(jì)基于使用STM32的農(nóng)業(yè)大棚智能控制系統(tǒng)。農(nóng)業(yè)大棚是未來發(fā)展的一種趨勢(shì)。本論文的工作內(nèi)容及章節(jié)安排論文第一章介紹了國(guó)內(nèi)外農(nóng)用大棚的背景和現(xiàn)狀。第二章概述了總體設(shè)計(jì)方針。第三章論述了系統(tǒng)的硬件和電路設(shè)計(jì)。第四章介紹了各組件的軟件設(shè)計(jì)。第五章討論軟件和硬件系統(tǒng)的調(diào)試過程,測(cè)試所設(shè)計(jì)的系統(tǒng)能否正常工作??傮w方案設(shè)計(jì)設(shè)計(jì)的主要內(nèi)容本次論文系統(tǒng)是基于STM32F103C8T6微控制器的濕度檢測(cè),主要采用廣泛使用的YL-69土壤濕度傳感器來檢測(cè)濕度。該系統(tǒng)使用DHT11傳感器收集當(dāng)前環(huán)境溫度和濕度數(shù)據(jù),并使用光敏電阻器測(cè)量當(dāng)前植物照明強(qiáng)度。通過藍(lán)牙模塊將數(shù)據(jù)傳輸?shù)绞謾C(jī)以顯示和控制。外圍部件用于控制關(guān)鍵參數(shù),如土壤濕度、溫度和空氣濕度、當(dāng)前環(huán)境中的光強(qiáng)度。方案可行性分析我們首先要考慮技術(shù)可行性,通過系統(tǒng)的硬件設(shè)備實(shí)現(xiàn)對(duì)大棚的控制與監(jiān)測(cè),器件的功能和性能經(jīng)測(cè)試在實(shí)際應(yīng)用中具有穩(wěn)定,可靠性。然后,我們還要考慮經(jīng)濟(jì)的可行性。大棚技術(shù)可以提高農(nóng)作物的產(chǎn)量與質(zhì)量,減少勞動(dòng)成本,提高農(nóng)民的收入。最后,大棚技術(shù)還要具備一定的社會(huì)可行性。隨著農(nóng)業(yè)現(xiàn)代化和智能化的發(fā)展,人們對(duì)生產(chǎn)效率和環(huán)境保護(hù)的要求越來越高。而農(nóng)業(yè)大棚智能控制技術(shù),可以提高農(nóng)業(yè)的自動(dòng)化,這有利于推動(dòng)農(nóng)業(yè)產(chǎn)業(yè)結(jié)構(gòu)的升級(jí)。結(jié)合農(nóng)業(yè)大棚智能控制系統(tǒng)在技術(shù),經(jīng)濟(jì)和社會(huì)三方面的可行性分析,通過合理運(yùn)用,這會(huì)給農(nóng)業(yè)生產(chǎn)帶來顯著的效益。方案論證方案一:濕度傳感器通過使用模數(shù)轉(zhuǎn)換器將模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào),然后使用解碼器顯示結(jié)果,以便轉(zhuǎn)換的數(shù)字信號(hào)可以傳遞到顯示電路中。ADC轉(zhuǎn)換電路的脈沖可以由計(jì)時(shí)器555組成的多諧振動(dòng)器產(chǎn)生。圖2-1方案一框圖方案二:在這個(gè)設(shè)計(jì)中,主控芯片是32單片機(jī),各個(gè)功能由外部電路完成。主要組件包括時(shí)鐘晶體振蕩器電路、土壤濕度測(cè)量電路、空氣溫濕度采集電路、光照采集電路和液晶顯示模塊。此外還包括傳輸模塊、報(bào)警模塊、按鍵模塊以及水泵灌溉系統(tǒng)。如下圖2-2所示:圖2-2方案二框圖系統(tǒng)方案對(duì)比論證在方案一中,74HC4511解碼器具有稱為“衰減”的功能。這意味著,當(dāng)ADC轉(zhuǎn)換超過1001個(gè)數(shù)據(jù)時(shí),解碼器將輸出1010到1111之間的六個(gè)代碼保存在較低的水平。因此,顯示器無法正確顯示每個(gè)設(shè)備的濕度值。。在方案二中,單片機(jī)相對(duì)于方案一具有顯著優(yōu)勢(shì),如體積更小、功耗更低等。最重要的優(yōu)點(diǎn)是其高性價(jià)比。單片機(jī)的工作速度比方案一快得多,提供了更高的工作速率和更高的精確度。在設(shè)計(jì)系統(tǒng)時(shí),必須優(yōu)先考慮在簡(jiǎn)化外圍設(shè)備的同時(shí)保持高性能。此外,在可行的情況下,應(yīng)將硬件功能替換為軟件功能,確保它們?cè)谙到y(tǒng)的速度和性能參數(shù)范圍內(nèi)運(yùn)行。因此選擇備選方案二作為完成論文的首選實(shí)施方法。系統(tǒng)硬件設(shè)計(jì)單片機(jī)最小系統(tǒng)電路最小微控制器系統(tǒng)是指微控制器正確運(yùn)行和運(yùn)行程序所需的最簡(jiǎn)單電路。為了使微控制器能夠正常啟動(dòng)和運(yùn)行,每個(gè)組件都是必不可少的。微控制器的最小系統(tǒng)通常包括微控制器本身、程序存儲(chǔ)器、時(shí)鐘電路和復(fù)位電路。對(duì)于32位微控制器,最小系統(tǒng)包括微控制器本身、外部時(shí)鐘電路和復(fù)位電路。微控制器是將處理器、存儲(chǔ)器和輸入/輸出接口集成到單個(gè)芯片中的微型計(jì)算機(jī)的集成電路。它由CPU系統(tǒng)、程序存儲(chǔ)器、數(shù)據(jù)存儲(chǔ)器、各種輸入/輸出端口和其他基本功能塊組成。用軟件系統(tǒng)來控制,可以準(zhǔn)確、快速、高效地執(zhí)行開發(fā)人員編程的任務(wù)。微控制器提供經(jīng)濟(jì)性、極低功耗、高可靠性、出色的控制和可擴(kuò)展性,是電子系統(tǒng)中必不可少的工具。微控制器的出現(xiàn),大大簡(jiǎn)化了復(fù)雜電路系統(tǒng)的設(shè)計(jì),提高了系統(tǒng)的智能,廣泛應(yīng)用于技術(shù)開發(fā)和人類生活的各個(gè)領(lǐng)域。微控制器不斷朝著更高性能、更富多樣性的方向進(jìn)化,為未來的應(yīng)用帶來了廣泛的前景。最小的微控制器系統(tǒng)需要微控制器能夠正常運(yùn)行,有效地執(zhí)行任務(wù)。它是集成在一個(gè)芯片上的完整計(jì)算機(jī)系統(tǒng),作為控制核心的微型大腦。此外,還包括輸出設(shè)備和計(jì)時(shí)器,作為定時(shí)功能的中央控制發(fā)揮作用。它還提供通信接口,將所有必需的組件集成到一個(gè)芯片中。這就是微控制器。如下圖3-1所示:圖STYLEREF1\s3-SEQ圖\*Arabic\s11單片機(jī)最小系統(tǒng)框圖STM32單片機(jī)概述單片機(jī)通常稱為微控制器,通常用于控制領(lǐng)域,是嵌入式系統(tǒng)的關(guān)鍵組成部分。該設(shè)計(jì)使用STM32C8T6板。STM32微控制器是一種具有快速字節(jié)擦除能力的低電壓高性能微處理器。它以其簡(jiǎn)單、方便和易于使用而聞名。STM32F103微控制器是STC公司最初生產(chǎn)的低功耗、高性能工業(yè)控制設(shè)備。其功能是控制各種傳感器和設(shè)備,處理數(shù)據(jù)和信號(hào),執(zhí)行相關(guān)操作,基本上在工業(yè)生產(chǎn)中充當(dāng)大腦。與日常生活中使用的計(jì)算機(jī)不同,微控制器是小型有限電路集成系統(tǒng),主要用于處理簡(jiǎn)單的控制任務(wù)。微控制器廣泛使用,從冰箱、空調(diào)、洗衣機(jī)、電視等主要家電產(chǎn)品到遙控器、鼠標(biāo)、鍵盤、鬧鐘等小型設(shè)備,幾乎控制所有電器產(chǎn)品。它還廣泛應(yīng)用于儀器制造、航空航天、家用電器、醫(yī)療器械等各個(gè)領(lǐng)域。智能設(shè)備的開發(fā)很大程度上依賴于微控制器。在這個(gè)設(shè)計(jì)中,我們選擇STM32F103C8T6微控制器。與51系列相比,這款微控制器有很多附加功能。它比51微控制器運(yùn)行速度要快得多,還配備了兩個(gè)內(nèi)置ADC和5個(gè)串行通信端口。圖STYLEREF1\s3-2STM32F103C86實(shí)物圖電源電路電源模塊包括三針連接器和六針電源開關(guān)。連接器用于連接外部電源插頭,而電源開關(guān)控制整個(gè)微控制器電路的開關(guān)狀態(tài)。插座包括三個(gè)端子。其中兩個(gè)用于接地,第三個(gè)用于固定。插座的端子連接到電源開關(guān)的第三端子。電源開關(guān)的第一和第三端子以及第四和第六端子執(zhí)行相同的功能,提供正極輸出功率。電源開關(guān)根據(jù)設(shè)置選擇第一和第三引腳作為輸出,第五引腳用于接地。本次設(shè)計(jì)的電源電路設(shè)計(jì)如下圖3-3所示:圖STYLEREF1\s3-3電源電路設(shè)計(jì)按鍵設(shè)置電路該功能允許我們隨時(shí)發(fā)送各種控制命令和輸入數(shù)據(jù),連接OLED顯示器以顯示操作狀態(tài)和系統(tǒng)結(jié)果。鍵盤可分為兩種主要類型:獨(dú)立鍵盤和矩陣鍵盤?;诰幋a方法,每種類型可以分為編碼和未編碼。由于該系統(tǒng)只有一些功能,如自動(dòng)/手動(dòng)操作和增加/減少,因此選擇了獨(dú)立鍵。按下按鈕后,微控制器將發(fā)送低信號(hào),反之,松開按鈕后,高信號(hào)將發(fā)送給微控制器。通過在程序中編寫一個(gè)按鍵掃描函數(shù),我們可以執(zhí)行所需的功能。圖STYLEREF1\s3-4按鍵電路圖設(shè)計(jì)液晶顯示電路有機(jī)發(fā)光二極管(OLED)顯示器是一種新型照明和顯示設(shè)備?;旧?,OLED由夾在陽極和陰極之間的多層有機(jī)材料組成,以形成穩(wěn)定的發(fā)光器件。當(dāng)電流流動(dòng)時(shí),這些有機(jī)材料發(fā)光。OLED采用一般的矩陣交叉屏結(jié)構(gòu),有機(jī)OLED布置在陽極與陰極的交叉圖形之間。通過選擇性驅(qū)動(dòng)陽極和陰極的組合,可以控制每個(gè)OLED的照明。OLED是電流驅(qū)動(dòng)的設(shè)備,可以通過調(diào)整電流來控制顯示的亮度。圖3-5OLED實(shí)物圖圖STYLEREF1\s3-6OLED原理圖土壤濕度傳感器傳感器是一種設(shè)備或組件,會(huì)對(duì)某一測(cè)量的物理量作出反應(yīng)并將其轉(zhuǎn)換為輸出信號(hào)。傳感器通常由與測(cè)量的物理量直接反應(yīng)的靈敏度高的部件、生成輸出信號(hào)的靈敏度高的部件以及與其對(duì)應(yīng)的電子電路構(gòu)成。濕度傳感器可以被認(rèn)為是可變電阻。當(dāng)檢測(cè)到濕度時(shí),電阻值發(fā)生變化。最小濕度下的電阻為10K,最大濕度下為0.1歐姆。變化范圍取決于傳感器檢測(cè)到的濕度。當(dāng)電阻值變化時(shí),電路的輸出電壓也會(huì)變化。通過調(diào)整電阻值,可以獲得電路所需的電壓。該設(shè)計(jì)使用YL-69土壤濕度傳感器。圖STYLEREF1\s3-7YL-69土壤濕度傳感器光照采集電路設(shè)計(jì)光電元件廣泛用于照明測(cè)量、光控制和光電轉(zhuǎn)換。一般是由半導(dǎo)體材料制成。光伏電池的光敏性與人眼對(duì)可見光的反應(yīng)密切相關(guān)。只要人眼能感知光,光電元件的電阻就會(huì)發(fā)生變化。在光控制電路的設(shè)計(jì)中,白熾燈或自然光源通常用作可控光源。這大大簡(jiǎn)化了設(shè)計(jì)的復(fù)雜性。感光電路使用ADC將光轉(zhuǎn)換為模擬信號(hào),可以使用電位計(jì)校準(zhǔn)當(dāng)前的光強(qiáng)度值。光敏電阻器的光效應(yīng)用于根據(jù)光強(qiáng)度改變其在半導(dǎo)體中的電阻。當(dāng)光強(qiáng)度降低時(shí),電阻增加。圖STYLEREF1\s3-8光照傳感器繼電器驅(qū)動(dòng)電路在設(shè)計(jì)中,繼電器主要用于控制外圍設(shè)備。通過將負(fù)載電路連接到繼電器端口,可以控制這些設(shè)備的動(dòng)作。主要負(fù)載包括泵、風(fēng)扇和光補(bǔ)償系統(tǒng)。在繼電器關(guān)閉的狀態(tài)下,泵可以直接工作為植物提供水、冷卻和照明。因此,控制只需使用繼電器就足夠了。圖3-9繼電器實(shí)物圖圖STYLEREF1\s3-10繼電控制原理圖DHT11電路設(shè)計(jì)DHT11是一種復(fù)合傳感器,提供溫度和濕度測(cè)量的校準(zhǔn)數(shù)字輸出。采用專業(yè)級(jí)數(shù)字校準(zhǔn)技術(shù)和溫度濕度檢測(cè)技術(shù),確保高可靠性和長(zhǎng)期穩(wěn)定性。傳感器由電阻濕度檢測(cè)組件和NTC溫度測(cè)量組件組成,它們與高性能8位微控制器相互作用。該產(chǎn)品以其卓越的質(zhì)量、快速的響應(yīng)時(shí)間、強(qiáng)大的抗干擾性、高性能和成本效益而聞名。DHT11傳感器在高精度濕度校準(zhǔn)室中校準(zhǔn)。校準(zhǔn)系數(shù)存儲(chǔ)在傳感器的內(nèi)部OTP軟件存儲(chǔ)器中,用于信號(hào)處理和測(cè)量。傳感器具有單線串行接口,便于與系統(tǒng)集成。由于其緊湊的尺寸、極低的功耗,DHT11傳感器適用于各種應(yīng)用。即使在困難條件下,它也保持可靠。它安裝在一排4針接線盒中,便于連接。也可根據(jù)用戶要求提供特殊包裝選項(xiàng)。DHT11傳感器原理圖如3-11所示:圖STYLEREF1\s3-11DHT11傳感器原理圖蜂鳴器報(bào)警電路設(shè)計(jì)當(dāng)沒有達(dá)到指定溫濕度時(shí),微控制器使蜂鳴器發(fā)出報(bào)警聲。由于使用了STM32微控制器,在通電時(shí)引腳處于高電壓狀態(tài)。因此,8550晶體管不能使用,因?yàn)樗辉诘碗妷合聦?dǎo)通。相反,必須使用8050晶體管,即使在高電壓狀態(tài)下也會(huì)導(dǎo)通。圖3-12蜂鳴器實(shí)物圖圖STYLEREF1\s3-13蜂鳴器原理圖藍(lán)牙無線傳輸電路設(shè)計(jì)我們使用的無線模塊是HC-05藍(lán)牙模塊。使用此模塊,可以將當(dāng)前數(shù)據(jù)和設(shè)置無線發(fā)送到用戶的智能手機(jī)并進(jìn)行查看。此外,還可以在智能手機(jī)上控制實(shí)物。藍(lán)牙可以傳輸模擬和數(shù)字信號(hào)。這些信號(hào)由模擬或數(shù)字調(diào)制器調(diào)制,以成為固定頻率調(diào)制信號(hào)。然后,這些信號(hào)與合成器的主載波頻率信號(hào)混合,并生成滿足射頻帶寬要求的調(diào)制輸出信號(hào)。最后,在通過高頻濾波器和天線反饋之后,信號(hào)通過天線傳輸。該過程用于傳輸固定頻率信號(hào)。另一方面,時(shí)分多址技術(shù)將時(shí)間劃分為非重疊幀,然后將每個(gè)幀細(xì)分為分配給特定用戶的單個(gè)時(shí)隙。這允許區(qū)分和重用不同的信號(hào),從而允許多個(gè)用戶同時(shí)訪問連接。圖3-14藍(lán)牙模塊實(shí)物圖STYLEREF1\s3-15藍(lán)牙原理圖硬件電路仿真與焊接本次采用AD(AltiumDesigner)設(shè)計(jì)的。AD是一款功能強(qiáng)大的電子設(shè)計(jì)自動(dòng)化(EDA)軟件,用于模擬和設(shè)計(jì)電子電路。它為工程師和學(xué)生提供了一套完整的工具來設(shè)計(jì),建模和驗(yàn)證電路原型。AD可以與數(shù)字和模擬電路一起工作,包括微控制器,微處理器和許多其他常見的電子元件。該軟件還提供了電路板設(shè)計(jì)功能,允許用戶設(shè)計(jì)自己的電路板并執(zhí)行布局和跟蹤。圖STYLEREF1\s3-17原理圖圖3-18仿真圖仿真完成后就是焊接,在將組件焊接到板上之前,檢查設(shè)備的外觀和引腳,以確保它們完好無損。焊接電源連接時(shí),注意極性,確保正極和負(fù)極端子正確對(duì)齊。圖3-19實(shí)物圖系統(tǒng)軟件設(shè)計(jì)開發(fā)軟件介紹在校期間學(xué)習(xí)使用了名為Keil5的編程軟件,因此計(jì)劃在這個(gè)系統(tǒng)中繼續(xù)使用該軟件。由于其分類明確的界面、高度的可用性和通用性,該軟件在微控制器編程中非常受歡迎。Keil5具有匯編語言支持、鏈接器使用和高效的庫功能。這個(gè)軟件具有易于使用的界面,編程效率也非常高。特別是在微控制器編程方面,Keil5非常易于使用,并提供了廣泛的功能。此外,Keil5軟件還配備了強(qiáng)大的編譯器和調(diào)試器,用于有效地開發(fā)和調(diào)試程序??傊?,Keil5是一款功能強(qiáng)大、易于使用的集成開發(fā)環(huán)境,在微控制器編程中廣泛使用。Keil5軟件還包括強(qiáng)大的模擬調(diào)試器,提供仿真功能。這降低了程序偏離正確路徑的可能性。Keil5是一個(gè)高度集成的編譯軟件。設(shè)計(jì)基于STM32處理器,包括各種模塊控制和調(diào)整編程。此論文整個(gè)系統(tǒng)由多個(gè)模塊程序組成,每一個(gè)都有單獨(dú)的研究和測(cè)試。下載KEIL5軟件后,首先創(chuàng)建一個(gè)新的項(xiàng)目文件夾。然后打開軟件,創(chuàng)建一個(gè)新項(xiàng)目并將其保存到新創(chuàng)建的文件夾中。在出現(xiàn)的窗口中,選擇微控制器型號(hào)。然后單擊確定。在左側(cè)的導(dǎo)航窗格中,創(chuàng)建主源文件。此文件用于編寫主程序代碼。然后,創(chuàng)建用于描述子程序的子程序文件夾。編寫代碼后,用軟件運(yùn)行以檢查錯(cuò)誤,然后寫入電路進(jìn)行調(diào)試。如下圖4-1為keil5軟件圖。圖STYLEREF1\s4-SEQ圖\*Arabic\s11keil5軟件圖系統(tǒng)程序設(shè)計(jì)流程本設(shè)計(jì)方案以STM32F103C8T6芯片為主控制,具有微控制器控制、自動(dòng)控制、土壤濕度采集、藍(lán)牙無線傳輸控制、蜂鳴器報(bào)警、光照強(qiáng)度檢測(cè)等功能。用戶可以通過鍵盤輸入設(shè)置濕度下限、溫度上限和光照強(qiáng)度下限。系統(tǒng)根據(jù)傳感器采集的當(dāng)前環(huán)境數(shù)據(jù)自動(dòng)給植物澆水、調(diào)節(jié)溫度并根據(jù)光照強(qiáng)度進(jìn)行補(bǔ)償。此外,還提供了遠(yuǎn)程控制功能,用于調(diào)節(jié)澆水、溫度和光照強(qiáng)度補(bǔ)償。下圖是列出的系統(tǒng)程序流程圖4-2。圖STYLEREF1\s4-SEQ圖\*Arabic\s12系統(tǒng)程序流程圖DHT11程序流程圖DHT11是一個(gè)用于測(cè)量溫度和濕度的數(shù)字模塊。隨著技術(shù)的發(fā)展,對(duì)日常儀器溫度和濕度測(cè)量的需求增加,導(dǎo)致溫度和濕度傳感器的廣泛使用。新一代數(shù)字傳感器不需要外部模擬-數(shù)字轉(zhuǎn)換模塊,并具有標(biāo)準(zhǔn)接口以獲得更大的便利性。此外,它們?cè)絹碓竭m用。DHT11采用簡(jiǎn)化的單線通信模式。單行通信是指數(shù)據(jù)交換在單個(gè)數(shù)據(jù)鏈路上進(jìn)行,在該鏈路上進(jìn)行數(shù)據(jù)交換和控制。微控制器設(shè)備通過開放式導(dǎo)入或三態(tài)端口連接到數(shù)據(jù)通道。當(dāng)數(shù)據(jù)未發(fā)送時(shí),設(shè)備釋放總線,以便其他設(shè)備可以使用它。在單線通信中,通常需要電阻約為5.1千伏的拉伸電阻器。這允許在輪胎閑置時(shí)保持高電壓水平。由于DHT11模塊具有主從結(jié)構(gòu),因此只有當(dāng)主從設(shè)備調(diào)用時(shí),傳感器才會(huì)響應(yīng)。因此,當(dāng)從主設(shè)備訪問傳感器時(shí),必須嚴(yán)格遵守單線通信協(xié)議。如果發(fā)生序列錯(cuò)誤,傳感器將不響應(yīng)。流程圖如4-3所示:圖4.3溫度檢測(cè)流程圖代碼STYLEREF1\s4-SEQ代碼\*Arabic\s11DHT11代碼bitinit_DTH11(){ bitflag; ucharnum; DQ=0; delay_ms(19); //>18ms DQ=1; for(num=0;num<10;num++); //20-40us for(num=0;num<12;num++); flag=DQ; for(num=0;num<11;num++); //DTH響應(yīng)80us for(num=0;num<24;num++); //DTH拉高80us returnflag;}ucharDTH11_RD_CHAR(){ ucharbyte=0; ucharnum; ucharnum1; while(DQ==1); for(num1=0;num1<8;num1++){ while(DQ==0); byte<<=1; //高位在前 for(num=0;DQ==1;num++); if(num<10) byte|=0x00; else byte|=0x01;} returnbyte;}voidDTH11_DUSHU(){ ucharnum; if(init_DTH11()==0){ wendu=DTH11_RD_CHAR();//比正常值高7度左右 DTH11_RD_CHAR(); shidu=DTH11_RD_CHAR(); DTH11_RD_CHAR(); DTH11_RD_CHAR();for(num=0;num<17;num++);//最后BIT輸出后拉低總線50us DQ=1;}}液晶顯示電路oled通過微機(jī)I/O端口連接到液晶屏。程序啟動(dòng)時(shí),首先寫入控制語,然后寫入顯示數(shù)據(jù)。在寫入控制語之前,必須使用命令確認(rèn)液晶的正常動(dòng)作。液晶工作時(shí),等待來自液晶的信號(hào),等待作業(yè)完成后,寫入控制詞和數(shù)據(jù)。如圖4-4所示。圖STYLEREF1\s4-4液晶顯示流程圖代碼STYLEREF1\s4-2液晶顯示部分代碼voidbsp_InitI2C_2(void){ GPIO_InitTypeDefGPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_I2C_PORT,ENABLE); GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_OD; GPIO_InitStructure.GPIO_Pin=PIN_I2C_SCL; GPIO_Init(PORT_I2C_SCL,&GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin=PIN_I2C_SDA; GPIO_Init(PORT_I2C_SDA,&GPIO_InitStructure);土壤濕度光照子程序土壤濕度和光照強(qiáng)度都使用微控制器的內(nèi)置模數(shù)轉(zhuǎn)換器進(jìn)行記錄。因此,編程邏輯是相同的,但選擇不同的ADC通道。在收集土壤濕度和光照強(qiáng)度的當(dāng)前數(shù)據(jù)后,模擬值被發(fā)送到微控制器的ADC輸入端進(jìn)行處理。一旦初始化,就通過ADC轉(zhuǎn)換獲得電流值。圖STYLEREF1\s4-5土壤濕度A/D轉(zhuǎn)換流程圖代碼STYLEREF1\s4-3土壤濕度光照子程序部分代碼voidAdc_Init(void){ ADC_InitTypeDefADC_InitStructure; GPIO_InitTypeDefGPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_ADC1 ,ENABLE); //使能ADC1通道時(shí)鐘 RCC_ADCCLKConfig(RCC_PCLK2_Div8); GPIO_InitStructure.GPIO_Pin=GPIO_Pin_1|GPIO_Pin_0; GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AIN; //模擬輸入引腳 GPIO_Init(GPIOB,&GPIO_InitStructure); ADC_DeInit(ADC1); ADC_InitStructure.ADC_Mode=ADC_Mode_Independent; ADC_InitStructure.ADC_ScanConvMode=DISABLE; ADC_InitStructure.ADC_ContinuousConvMode=DISABLE; ADC_InitStructure.ADC_ExternalTrigConv=ADC_ExternalTrigConv_None; ADC_InitStructure.ADC_DataAlign=ADC_DataAlign_Right; ADC_InitStructure.ADC_NbrOfChannel=1; ADC_Init(ADC1,&ADC_InitStructure); ADC_Cmd(ADC1,ENABLE); //使能指定的ADC1 ADC_ResetCalibration(ADC1); //使能復(fù)位校準(zhǔn) while(ADC_GetResetCalibrationStatus(ADC1)); //等待復(fù)位校準(zhǔn)結(jié)束 ADC_StartCalibration(ADC1); //開啟AD校準(zhǔn) while(ADC_GetCalibrationStatus(ADC1)); //等待校準(zhǔn)結(jié)束} 按鍵設(shè)置子程序本次有K1,K2,K3這3個(gè)按鍵,它們分別掌管設(shè)置,加,減。當(dāng)按下設(shè)置鍵時(shí)它可以切換土壤濕度,環(huán)境溫度和光照強(qiáng)度,然后通過加、減鍵來進(jìn)行增加和減小操作。按鍵電路有四個(gè)插針。其中兩個(gè)是一樣的。連接電路時(shí),只需連接兩個(gè)引腳即可。流程圖如下圖4-6所示,部分代碼如4-4所示。圖STYLEREF1\s4-6按鍵設(shè)計(jì)程序設(shè)計(jì)圖代碼STYLEREF1\s4-4按鍵設(shè)置部分子代碼voidkeyscan(void)//按鍵掃描if(setn>3){setn=0;OLED_CLS();//清屏InitDisplay();}if(KEY2==0)//加{delay_ms(20);if(KEY2==0){while(KEY2==0);if(setn==1){ if(setSoilMoisture<99)setSoilMoisture++;}if(setn==2){ if(setTempValue<99)setTempValue++;}if(setn==3){if(setLightValue<99)setLightValue++;} displaySetValue();}}if(KEY3==0)//減報(bào)警器程序設(shè)計(jì)主函數(shù)執(zhí)行后,它會(huì)持續(xù)檢查當(dāng)前參數(shù)是否在設(shè)定范圍內(nèi)。如果超出范圍,蜂鳴器會(huì)向用戶發(fā)出警告音。報(bào)警電路使用蜂鳴器報(bào)警電路,具有與家電產(chǎn)品揚(yáng)聲器相似的功能。一般來說,工作電流比較高,電路上的TTL電平不能有效驅(qū)動(dòng)蜂鳴器。因此,需要放大電路。因?yàn)橐粋€(gè)插針很難直接敲響蜂鳴器,所以加入晶體管放大通過蜂鳴器的電流。蜂鳴器的正極連接到晶體管。為了防止晶體管直接接通,增加了1kΩ限流電阻器。微控制器的I/O端口發(fā)出高信號(hào)。當(dāng)輸出處于較高水平時(shí),晶體管被打開,形成一條電路,電流從蜂鳴器流出,產(chǎn)生聲音。如果觸點(diǎn)低,晶體管會(huì)斷開,蜂鳴器不會(huì)發(fā)出聲音。圖STYLEREF1\s4-7報(bào)警器程序設(shè)計(jì)圖代碼STYLEREF1\s4-5報(bào)警器模塊部分子代碼voidMOTOR_GPIO_Init(void){ GPIO_InitTypeDefGPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE); //使能PB端口時(shí)鐘GPIO_InitStructure.GPIO_Pin=GPIO_Pin_8; //端口配置 GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP; //上拉輸入 GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; //IO口速度為50MHz GPIO_Init(GPIOB,&GPIO_InitStructure); GPIO_ResetBits(GPIOB,GPIO_Pin_8);//輸出0 }藍(lán)牙無線傳輸我們先給實(shí)物通電然后點(diǎn)擊手機(jī)上的“連接藍(lán)牙”,收集就會(huì)搜索設(shè)備,點(diǎn)擊設(shè)備名稱“HC-05”,然后輸入默認(rèn)密碼1234。實(shí)物和手機(jī)就連接成功。藍(lán)牙通信模塊配對(duì)流程圖如下圖4-8所示。圖STYLEREF1\s4-8藍(lán)牙通信流程圖代碼STYLEREF1\s4-6藍(lán)牙子程序部分代碼voiduart1_Init(u32bound){//GPIO端口設(shè)置GPIO_InitTypeDefGPIO_InitStructure;USART_InitTypeDefUSART_InitStructure;NVIC_InitTypeDefNVIC_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1|RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO,ENABLE); USART_DeInit(USART1);//USART初始化設(shè)置USART_InitStructure.USART_BaudRate=bound;//一般設(shè)置為9600;USART_InitStructure.USART_WordLength=USART_WordLength_8b;USART_InitStructure.USART_StopBits=USART_StopBits_1;USART_InitStructure.USART_Parity=USART_Parity_No;USART_InitStructure.USART_HardwareFlowControl=USART_HardwareFlowControl_None;USART_InitStructure.USART_Mode=USART_Mode_Rx|USART_Mode_Tx;USART_Init(USART1,&USART_InitStructure);軟件調(diào)試安裝此軟件時(shí),注意環(huán)境配置非常重要。初步任務(wù)的完成對(duì)后續(xù)任務(wù)的順利執(zhí)行至關(guān)重要。在物理焊接完成后,下一步是燒錄程序。在燒錄程序之前,通過在軟件中運(yùn)行程序來檢查是否存在任何代碼問題以確保其功能正常是至關(guān)重要的。程序調(diào)試主要在Keil5MDK軟件內(nèi)進(jìn)行。調(diào)試包括修改和修復(fù)在軟件中編譯程序時(shí)出現(xiàn)的問題。這個(gè)芯片設(shè)計(jì)主要集中在STM32F103上,在Keil5軟件環(huán)境中開發(fā)。當(dāng)編譯也沒有問題的時(shí)候我們就可以直接燒到板子上看看效果。圖STYLEREF1\s4-9編譯結(jié)果圖手機(jī)app因?yàn)槭謾C(jī)app不屬于單片機(jī)它是獨(dú)立存在的,是通過藍(lán)牙連接的,所以我們需要先在電腦上下載AndroidStudior軟件,在電腦里面編寫代碼進(jìn)行調(diào)試。調(diào)試完成后再運(yùn)行代碼通過USB安裝到手機(jī)上面。STYLEREF1\s4-10手機(jī)APP界面圖代碼STYLEREF1\s4-7手機(jī)APP部分代碼//查找到設(shè)備actionif(BluetoothDevice.ACTION_FOUND.equals(action)){//得到藍(lán)牙設(shè)備BluetoothDevicedevice=intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);//如果是已配對(duì)的則略過,已得到顯示,其余的在添加到列表中進(jìn)行顯示if(device.getBondState()!=BluetoothDevice.BOND_BONDED){mNewDevicesArrayAdapter.add(device.getName()+"\n"+device.getAddress());}else{//添加到已配對(duì)設(shè)備列表mPairedDevicesArrayAdapter.add(device.getName()+"\n"+device.getAddress());}//搜索完成action}elseif(BluetoothAdapter.ACTION_DISCOVERY_FINISHED.equals(action)){//setTitle("選擇要連接的設(shè)備");Toast.makeText(DeviceListActivity.this,"選擇要連接的設(shè)備",Toast.LENGTH_SHORT).show();if(mNewDevicesArrayAdapter.getCount()==0){StringnoDevices="沒有找到新設(shè)備";mNewDevicesArrayAdapter.add(noDevices);}}}};}整體調(diào)試調(diào)試系統(tǒng)包括硬件和軟件調(diào)試。完成硬件電路的構(gòu)建和編程后,可以開始測(cè)試過程。調(diào)試是系統(tǒng)設(shè)計(jì)的重要階段,決定了系統(tǒng)運(yùn)行的準(zhǔn)確性。程序編寫完成后,最后一步是執(zhí)行全局調(diào)試。過去硬件和軟件的調(diào)試是單獨(dú)進(jìn)行的,但現(xiàn)在它們是集成的。打開系統(tǒng)后,可以使用萬用表檢查電路,使用示波器檢查組件的波形。然后開始測(cè)試系統(tǒng)性能。請(qǐng)注意:1.觀察基板,確認(rèn)所有焊點(diǎn)均牢固連接,沒有虛焊漏焊的情況;2.萬用表調(diào)試電路,首先確保電源中沒有短路,并檢查正確的接線連接以避免接線錯(cuò)誤。使用萬用表時(shí),確保負(fù)極接地;3.上電測(cè)試整體功能,并確保設(shè)計(jì)的功能正常工作;;4.連接藍(lán)牙,測(cè)試手機(jī)是否可以通過藍(lán)牙遠(yuǎn)程實(shí)時(shí)監(jiān)控大棚內(nèi)的情況。5.全面檢查測(cè)試的每個(gè)功能,并確保與設(shè)計(jì)規(guī)格沒有明顯偏差;通過遵守以上步驟,可以測(cè)試系統(tǒng)的性能,確定并修正問題。調(diào)試工作可能需要時(shí)間和耐心,但持續(xù)的調(diào)試工作可以提高系統(tǒng)性能。圖STYLEREF1\s5-1實(shí)物效果圖總結(jié)本次設(shè)計(jì)是以STM32F103C8T6單片機(jī)為核心,集成YL-69土壤濕度傳感器、DHT11溫濕度傳感器、光敏電阻、繼電器、無線傳輸模塊等各種外圍設(shè)備和相關(guān)電路,構(gòu)建檢測(cè)系統(tǒng)。該系統(tǒng)通過終端傳感器檢測(cè)到環(huán)境參數(shù)的變化,工作人員可以實(shí)時(shí)監(jiān)測(cè)OLED顯示屏上顯示的環(huán)境濕度水平。晶體管驅(qū)動(dòng)灌溉水泵,風(fēng)扇幫助調(diào)節(jié)溫度。使用按鈕設(shè)置閾值,并在屏幕上顯示該值。硬件和軟件的結(jié)合,實(shí)現(xiàn)了對(duì)大棚的智能控制。在設(shè)計(jì)過程中也遇到了很多困難。例如,蜂鳴器最初無法發(fā)出聲音。經(jīng)過檢查,發(fā)現(xiàn)當(dāng)以高電平驅(qū)動(dòng)晶體管時(shí),NPN晶體管不導(dǎo)通。這是由于微控制器引腳的輸出電流不足以驅(qū)動(dòng)晶體管。我們可以通過用PNP型晶體管替換NPN晶體管來解決這個(gè)問題,使蜂鳴器在驅(qū)動(dòng)到低電平時(shí)響起。焊接時(shí),由于自己操作不當(dāng),器件報(bào)廢,虛焊漏焊器件達(dá)不到效果也是有的。雖然設(shè)計(jì)已經(jīng)完成,但由于自己的能力有限也有很多不足的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論