




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
基于STM32F103C8T6單片機的觀賞魚養(yǎng)護系統(tǒng)設計根據(jù)對市場現(xiàn)在的分析和研究,本文提出了一套多功能的智能魚以STM32F103C8T6單片機為核心,添加多個傳感器,實現(xiàn)自動換水、自動喂食、溫度檢包括溫度傳感器、水位檢測電路、喂食電路、換水電路等,可以對溫數(shù)據(jù)進行存儲和處理。第二部分是手機APP部分,通過無線WIFI與上位機通信,將相關通過傳感器的相互作用和手機APP的遠程操作,本系統(tǒng)能更好的實現(xiàn)對觀賞養(yǎng)護,形成了一套可完成渾濁度檢測、溫度檢測、自動換水、自2.2系統(tǒng)整體框架6-2.3主控模塊的選型和論證 2.4無線遙控模塊的選型和論證 2.5顯示模塊的選型和論證 3.1系統(tǒng)總體硬件電路圖的設計 3.2STM32F103C8T6最小系統(tǒng)設計 3.5溫度檢測模塊的設計 3.6水深檢測模塊的設計 3.8舵機模塊的設計 3.9按鍵模塊的設計 3.10水位控制模塊的設計 4.2溫度監(jiān)測實現(xiàn) 4.3渾濁度監(jiān)測實現(xiàn) 4.4喂食設計 21-4.5換水設計 4.7APP的設計 29- 5.3測溫演示 31-5.4喂食演示 33-5.5換水演示 5.6渾濁度演示 37- 39- 6.2進一步開發(fā)的展望 第一章緒論現(xiàn)在物質生活已經逐漸豐富,人們對于生活的追求早已擺脫了酒足飯飽等簡單的需求,現(xiàn)在的人們越來越追求精神生活的美滿。大部分人對室內養(yǎng)魚有著巨大的興趣,但是魚缸養(yǎng)魚技術有著很大的學習成本,溫度、濕度、喂食時間對魚的成活都有著很大的影響,但大部分并沒有那么多的學習時間去研究,這時候智能魚缸的出現(xiàn)極大的拉低了魚缸養(yǎng)魚技術的學習成本,所以有更多的養(yǎng)魚愛好者愿意購買一個智能魚缸去檢測自己魚的生活狀態(tài),因此,在這樣的背景下,本設計的完成了一款基于STM32芯片的智能魚缸開發(fā)和設計。水族箱起初是為了公共場所所涉及的,隨著經濟的發(fā)展,科技的提高,水族箱成為了普通家庭的家居裝飾,越來越多的家庭喜歡家里安排一個魚缸去點綴自己的生活,是自己更多的去親近自然。但很多人可能時間有限,無法對水族箱進行很好的維護,往往最后的針對智能水族箱的設計有很多,主要集中在水溫控制,氧氣控制,換水加水等相關系統(tǒng)。但產品的繁雜,且功能也各有不同,使得用戶的挑選也變得困難,且如果自己進行多個功能的組裝,無法形成有效的配合,也存在一定的資源浪費。給用戶造成了多余的經濟負擔又無法達成其預期的效果。因此,在市場的需求催促下,一個集合多個功能的智能魚缸的出現(xiàn),成了用戶們的迫切需求。本設計不僅解決了魚類日常養(yǎng)護問題,同時對智能化家居進入百姓家中的發(fā)展有本文對市面上已經有的智能魚缸裝置進行了調研,發(fā)現(xiàn)了很多公司在智能魚缸方面的研究已經非常的深入。下面,就是本文在調研了相關的文獻之后,得到的一些研究現(xiàn)況。發(fā)展了多年的嵌入式技術如今已經十分成熟,而且用嵌入式技術配合傳感器做成的智能魚缸可以很好的實現(xiàn)溫濕度的控制,對于水位的檢測,渾濁度的檢測有著很好的精度控制,加上無線技術的突破,現(xiàn)在的魚缸能實現(xiàn)遠程控制進行操作等。國外研究現(xiàn)狀:國外的一個團隊在2016年3月推出了一套智能魚缸系統(tǒng),該系統(tǒng)由監(jiān)控器、插座控制器和對應的安卓app組成。該系統(tǒng)雖然把部分功能集成了起來,但集成化程度較低,且使用配置又及其繁瑣,給用戶的上手造成了很大程度的負擔。此外,系統(tǒng)售價過于高昂,很多家庭購買可能需要很大考慮,故推廣過程較為困難。(5)實時檢測水位高低,超過上下限液晶提示,同時可通過手機和液晶屏觀察水位高低通過手機輸入指令或者按鍵的控制進行操作。技術指標:(1)溫度檢測的誤差在±0.5度之間;(2)渾濁度通過兩光敏電阻實現(xiàn),將兩光敏所得值相減取絕對值,如果值小于20為正常,大于20則液晶提醒換水;(3)自動喂食控制在24小時一次。一次投喂量4-5顆魚食;(4)顯示屏和移動端在進行相應操作以后都會及時更新目前的數(shù)據(jù)情況。主要創(chuàng)新點通過傳感器和遠程操作,實現(xiàn)更好的魚類養(yǎng)殖。1.4論文組織結構本論文的組織結構包括:第一章闡明課題的研究背景,介紹課題的研究現(xiàn)狀和來源,并概述設計(論文)的主第二章論文的方案分析和進行零件的選型辯證。第三章硬件的主要介紹和電路圖。第四章軟件的工作流程和設計,以及上位機的實現(xiàn)。第五章系統(tǒng)的實物調試及數(shù)據(jù)分析。第六章對系統(tǒng)未來的拓展和升級闡述。第二章系統(tǒng)方案分析此次課題所制作的智能魚缸其主要功能應具有采集魚缸內的溫度、濕度、光照強度,能自己進行換水,喂食等基本操作,可以遠程控制進行通信,系統(tǒng)監(jiān)測到的溫濕度數(shù)據(jù)、光照強度數(shù)據(jù)皆由WIFI模塊傳至APP上顯示,且環(huán)境監(jiān)測系統(tǒng)也需有個液晶顯示器顯示智能魚缸基于STM32F103C8T6作為主控芯片,對各個電路模塊進行操作以實現(xiàn)相應的功能,硬件電路模塊主要包括:溫度監(jiān)測模塊、水位檢測模塊、液晶顯示模塊、無線少了轉換的步驟,所以使用起來較為方便,且體積小,精傳感器測溫范圍在-55℃-+125℃之間,測溫誤差在上下一攝氏度之間,可以很好的完成(2)水位檢測模塊:本設計使用的是SS水深檢測傳感器模塊,該傳感器簡單易用,發(fā)出的模擬電壓較低,可以直接接入單片機引腳,利用單片機的ADC進行模數(shù)轉換,完成水位的檢測。該方案成本低廉的同時很好的完成了單片機的檢測要(3)液晶顯示模塊:本設計采用TFT觸摸彩屏1.44寸模塊,其優(yōu)點非常的明顯,亮度、對比度展示效果好,但也有著高功耗的缺點。但對比于其所存在的質量上乘的優(yōu)點,(4)無線WIFI通訊模塊:本設計使用的是ESP8266-01無線WIFI模塊,其超低功耗(5)渾濁度檢測模塊:本設計的渾濁度檢測模塊是利用兩個光敏電阻完成的,將一個光敏電阻置于水面上方,一個光敏電阻置于水面下方,利用兩個光敏電阻引起的電流的變化進行渾濁度的判定。(6)喂食模塊:喂食模塊是由一個SG90舵機完成的,預先將所要的食物置于喂食盒中,當達到預先設定的喂食時間,或者按鍵或上位機發(fā)出喂食指令以后,給舵機通電,打開閥門進行喂食。SG90舵機轉速快、耗電小,質量輕盈,是很好的選擇。(7)按鍵模塊:這是人機交互的一種手段,通過按鍵控制,可以對發(fā)出換水,喂食,等指令,達到控制的多樣化。(8)換水模塊:整個換水模塊由水泵,水位傳感器和排水舵機組成。由排水舵機先將水排出,當水位感應器感應到水位排到一定程度以后關閉排水閥門,打開水泵注入新的水資源。本設計上采用的是一個5V水泵。(9)電源模塊:給整個電路供電5V。本設計的硬件組成方案,如圖2.1所示。排水一喂食水泵手機通訊一本設計在單片機芯片的選型上有兩種選擇,分別是MSP430芯片和STM32F103芯片。方案一:MSP430芯片MSP430系列單片機是美國某公司在1996年研發(fā)的一種混合處理器,有著16位超低功耗、精簡指令集的特點,目前MSP430市場占有量大,型號多樣。如果選擇MSP430芯片,其強大的處理能力可以很好的控制和協(xié)調各個模塊,不會出現(xiàn)對模塊控制的延遲。而且MSP430芯片對塵埃的防范能力具有非常出色的表現(xiàn),日常的使用可以很大程度的降低強大的處理能力及其各項優(yōu)點伴隨的其成本的高昂,相比于同類型的芯片的售價足足高了50%,因此在各項權衡和成本控制下,不得不放棄該芯片的選擇。方案二:STM32F103芯片STM32F系列是一款32位ARM微控制器的產品,有著三種不同的閃存種類。雖然STM32F103芯片的處理能力不如MSP430芯片的強大,但此芯片的價格優(yōu)勢相采集溫度、水位的數(shù)據(jù)、判斷換水條件、接受按鍵、上位機指令、對方面也可以很好的完成這些任務。在大幅度降低成本是個很好的選擇,自古以來,魚和熊掌不可兼得,所以最后選擇了STM32F103芯片作為伴隨著科技的飛速發(fā)展,無線遙控模塊已經是非常成熟的技術了非接觸式的方法對被控目標發(fā)出指令,使得實施控制人掌控,目前無線遙控模塊應用及其廣泛,在工業(yè)控及。相比于以前的電纜連線的方法,無線遙控技術安裝成本低廉線,無需大規(guī)模的地下工程,也不會占用空間上的資源,極大的提高紅外載波的頻率是38KHZ,理論的遙控距離在8到10米之間,但容易受障礙物的影響,如果中間有障礙物遮擋,那么遙控距離方案二:無線WIFI模塊使用WIFI模塊覆蓋性強,傳輸距離遠,使得智能魚缸脫離的網線的布線麻煩性,提如果使用藍牙模塊進行本系統(tǒng)的無線數(shù)據(jù)傳輸,可以代替很多于WIFI模塊,藍牙模塊對場景的要求比較高,必須是固定場景下餐能使用,也沒有WIFI模塊覆蓋的范圍廣,藍牙的短距離傳輸無法滿足本設計的設計要求,要頻繁的更換環(huán)境,或者頻繁的移動,再考慮到目前每家每戶基本都本設計為智能魚缸,需要及時的顯示魚缸當前的狀態(tài)及時顯示模塊也是及其重要的組成部分。所謂顯示模塊的加工傳輸給顯示模塊顯示出來,本文選取的顯示模塊是TFT觸摸彩屏1.44寸模塊。第三章系統(tǒng)硬件設計系統(tǒng)的總體硬件由STM32核心芯片、TFT彩屏顯示電路模塊、無線控制模塊、水深檢測模塊、溫度監(jiān)測模塊、水泵控制模塊、渾濁度檢測電路、獨立按鍵模塊、舵機喂食模塊以及舵機排水模塊組成。本設計是基于嵌入式芯片完成對整個魚缸系統(tǒng)的控制,使用的核心器件也就是本設計所完成的單片機部分的設計。如圖3.1所示,芯片所具有的引腳已經全部展示出來了。后面的其它模塊,都需要按照芯片手冊,將其和本芯片進行交互,從而完成基于單片機的控制,指令信號的下達等動作。PA1/ADC12_1/TIMCH2-PB12/SPI2NSS/TM1_BKPA11/USBDMCAN_RXTIM1NC器F68921本設計為智能魚缸,需要及時的顯示魚缸當前的狀態(tài)及時的給使用者反饋信息,所以顯示模塊也是及其重要的組成部分。所謂顯示模塊,就是將傳感器采集到的數(shù)據(jù)通過芯片的加工傳輸給顯示模塊顯示出來,本文選取的顯示模塊是TFT觸摸彩屏1.44寸模塊。的PB15、PB14、PB13、PB12、PB11、PB10引腳。如圖3.2所示。RESV3.3ESP8266是一款超低功耗的UART-WiFi透傳模塊,該模塊功耗低,是一款專門為物體聯(lián)網設計的WIFI模塊。WIFI模塊連接由STM32內部的SPI引腳控制,模塊連接上將ESP8266的TXD、RXD12343.5溫度檢測模塊的設計魚缸對于溫度的檢測需要的是一種靈敏的、高精度DS18B20是常用的數(shù)字溫度傳感器,可以直接輸使用起來較為方便,且體積小,精度高,有著眾多的優(yōu)點。該溫度傳感器測溫范圍在-DS18B20溫度傳感器溫度轉換的最大精度時間為750毫秒,用戶可自定義報警設置,DS18B20溫度傳感器采用的單線接口方式,所以只需要將它的DQ引腳連接上芯片的PC13□,就能實現(xiàn)其和芯片的雙向通訊,其他的1號引腳接地,3號引腳接電源即可。其電路圖如圖3.4所示。3213.6水深檢測模塊的設計本設計使用的是SS水深檢測傳感器模塊,利用水平導線檢測水滴大小進行水位的檢測判斷。該方案成本低廉的同時很好的完成了預期檢測要求,符合設計需求。并且此模塊輸出電壓為0~4.2V,而芯片的PA5引腳作為I/O輸入最大電壓為5.5V,所以我們可以直接將其連接在芯片上,通過芯片的ADC進行模數(shù)的轉換。將取到的AD采樣值轉換到0-99的數(shù)之間作為水位深度值,水位深度值、值的計算公式如公式3.1所示。水位深度值=(AD采樣值-200)*99/(450-200)(3.1)此模塊也是比較容易連接的,將2號引腳和1號引腳分別接電源的正負極,3號引腳連接PA5,便可以把模擬信號傳輸給芯片。其電路圖如圖3.5所示。1十S1十S3.7渾濁度檢測模塊的設計本設計的渾濁度檢測模塊是利用兩個光敏電阻完成的,將一個光敏電阻置于水面上方,一個光敏電阻置于水面下方,利用兩個光敏電阻引起的電壓的變化取其兩者的差值進行渾濁度的判定。將取到的AD采樣值轉換到0-100的數(shù)之間作為電壓值,電壓值的計算公式如公式3.2電壓值=99-AD采樣值*99/4096(3.2)渾濁度=電壓值1-電壓值2(3.3)將光敏電阻上和一個10KQ的電阻進行串聯(lián),可以很方便地把輸出電流轉變?yōu)殡妷?。因選用的光敏電阻亮阻為10K歐左右,故給其串聯(lián)一個10K歐的電阻,然后將兩組電路分別接入芯片的PA1和PA0引腳,獲取模擬信號。其電路圖如圖3.6所示。舵機是一種位置伺服的驅動器,目前,被廣泛應用于各種高檔舵機的組成部分有外殼、電路板、馬達、減速器和定位器構成本設計中,舵機的主要作用是打開排水閥門或者打開喂食閥門。SG90舵機轉速快、度,扭矩為1.5kg/cm,無論是電壓上還是溫度上,都符合魚缸正常環(huán)舵機的功率計算公式如3.4所示。在連接上,將1號引腳數(shù)據(jù)寫入位連接單片機,2號、3號分別接入電源和接地,其電路圖如圖3.7所示。3.9按鍵模塊的設計在本設計中總共使用了4個機械式獨立按鍵,通過4個按鍵協(xié)同工作來完成指令的發(fā)3.10水位控制模塊的設計本設計使用了一個5V的水泵,主要是完成換水任務的注水功能。由于本設計本身使故選擇這個工作電壓為4.5V,工作電流為0.18A,額定功率為0.91W的小水泵,該水泵可缸環(huán)境。因為在電路中存在一個IB=50mA時,其VBE=1.2V的三極管,所以至少要76Q的電阻,所以給其串聯(lián)一個100Ω的電阻進行電路的保護。連接上將電阻段引腳接入PA8,其他引腳分別接地和接入電路,其電路圖如圖3.9所示。2R圖3.9水泵控制電路連接圖第四章系統(tǒng)軟件設計如圖4.1所示。逗西取度屋溫否圖4.1軟件整體流程圖DA-Test-STD.uvgui.AdministrADMINISTRATO..DA-Test-STD.uvgui.EaDA-Test-STD.uvgui.tDEventRecorderStub.Cmain.cCmy_board.cDstartup_stm32f10x_hd.c結尾的文件,都是其中的邏輯代碼,.h則是定義了一些引腳,為庫函數(shù),大多是傳感器廠家所提供的,直接調用即可。本設計選擇的傳感器是DS18B20防水型溫度傳感器。溫度傳感器的高速暫存存儲器是9個字節(jié)組成,當要進行溫度轉換的時候,轉換得到的溫度值以二字節(jié)補碼的形式放在高速緩存器的0和1字節(jié)。單片機可通過數(shù)據(jù)接口直到讀到該數(shù)據(jù),再對應溫度進行計算,不同的符號對應讀取到的數(shù)據(jù)不一樣。溫度傳感器主要是采集魚缸內水的溫度,傳遞給芯片進行處理后再由芯片傳輸給液晶屏進行顯示,給使用者提供一個參考。程序會先初始化溫度傳感器的IO□,接著去接收傳感器傳來的一個字節(jié)數(shù)據(jù),將讀取到的值寫入芯片,由于DS18B20防水型溫度傳感器本身就是傳遞的數(shù)字信號,所以只要進行補碼的轉換就可以得到單片機需要的溫度。其流程圖如圖4.3所示。開始開始結束本設計的渾濁度檢測模塊是利用兩個光敏電阻完成的,將一個光敏電阻置于水面上方,一個光敏電阻置于水面下方,當兩個光敏電阻的光照值產生差別時,會產生兩個不同的電壓,取兩個電壓的差值作為水渾濁度的判定。其水深監(jiān)測工作流程如圖4.4所示。被品品示油度本系統(tǒng)設計的渾濁度閾值為20,兩個光敏電路差值大于20的時候液晶提示換水,如果小于20則正常顯示渾濁度。光敏電阻組成的渾濁度檢測電路生產的模擬電壓輸出需要通過使用AD轉換器進行模數(shù)的轉換,所以要想采集到光敏電阻的數(shù)據(jù),首先要設置好ADC。初始化ADC,并設置好工作模式,設置完之后進行一次采樣,將采樣的值傳遞給轉換函數(shù)進行轉換,最后進行電壓值的計算。ADC的部分代碼如下。{RCC_ADCCLKConfig(RCC_PCLKfor(i=0;i<ArrayCount(PiGPIO_Pin_Init(Pins_ADC[i],GPIO_ADC_InitStructure.ADC_Mode=ADC_Mode_IndepeADC_InitStructure.ADC_ScanConvMode=enableDMA?ENABLE:ADC_InitStructure.ADC_ContinuousConvMode=enableDMA?ENABLE:ADC_InitStructure.ADC_ExternalTrigConv=tADC_Init(ADCx,&ADC_InitStruc{for(i=0;i<ArrayCount(Pi{ADC_RegularChannelConfig(ADCx,My_ADC_GetADCChannel(ADCx,Pins_ADC[i]),i+1,ADC_SampleTime_239Cycl}}//ch:通道值0~3u16My_ADC_GetValue(ADC_TypeDef*ADCx,u8ch)ADC_RegularChannelConfig(ADCx,ch,1,ADC_SampleTime_239CADC_SoftwareStartConvCmd(ADCx,ENwhile(!ADC_GetFlagStatus(ADCx,ADC_FLAG_returnADC_GetConversionValue(ADCx);}//ADC的值轉換u8My_ADC_GetPercent(ADC_TypeDef*ADCx,u8ch,u8times,floatadcVlaueMin,floatadcValueMax){{}{}{percent=(percent-adcVlaueMin)*100/(adcValueMax-adcVlau}}floatMy_ADC_GetCurrent_ASC712(ADC_TypeDef*ADCx,u8ch,u8times,{floatvolt=My_ADC_GetVoltage(ADCx,ch,times,scale);{}{volt=(volt-Volt_ACS712_ZERO)/0}本設計的喂食設計分為兩種情況,一種是手動喂食,由使用者進行按鍵操作或者通過上位機發(fā)出對應指令,芯片解析指令打開喂食閥門。另外一種是自動喂食,由使用者提前設置好喂食間隔,當達到固定的時間間隔,系統(tǒng)自動打開喂食舵機,完成喂食操作,同時本模塊的使用流程如圖4.5所示。是結束否舵機的驅動通過PWM實現(xiàn),舵機的伺服系統(tǒng)主要由脈沖信號的寬度進行實現(xiàn)的,控制線主要傳輸脈沖信號,舵機的基準信號周期為20ms。當舵機接收到一個大于1.5ms的脈沖,輸出軸會順時針旋轉一定角度。接收到的脈沖大于1.5ms時候,輸出軸會逆時針旋轉對應的角度。脈沖信號寬度及舵機轉動角度關系如圖4.6所示。輸入信號脈沖寬度輸入信號脈沖寬度(周期為20ms)舵機輸出軸轉角0.5ms曰-90 具體控制代碼如下所示。{}{case(u32)TIM1:per=Pwm_Pcase(u32)TIM2:per=Pwm_Pcase(u32)TIM3:per=Pwm_P}}整個換水模塊由水泵,水位傳感器和排水舵機組成。由排水舵機先將水排出,當水位感應器感應到水位排到一定程度以后關閉排水閥門,打開水泵注入新的水資源。本設計上采用的是一個5V水泵。如圖4.7所示。判斷水位判斷水位圖4.7換水流程圖此處的L和H為水位的低水位和高水位的設定,分別為10和70。系統(tǒng)收到換水指令以后會打開換水舵機,打開閥門將水排出,水位檢測傳感器協(xié)助換水。當水位傳感器檢測到水位低于L值以后,便會關閉排水閥門,同時打開水泵進行注水。當水位傳感器檢測到水位高于H值以后,系統(tǒng)將自動關閉水泵,停止注水,此時,整個換水流程便完成了。電路中水泵的控制是通過PWM的方式進行控制,程序上電的同時對PWM進行初始化,初始化TIM1定時器、TIM_CH通道和設定周期為2000,當水位降低到設置值時,因為本身的水泵的工作電壓是4.5V的,所以需要給其設置45%的占空比進行電壓的調整,通過PWM的方式可以更加精準的達到對水泵電路的控制。PWM的初始化代碼。{}本設計的報警提示系統(tǒng)主要是對渾濁度模塊和換水模塊進行液晶提示報警。在渾濁度模塊上,當系統(tǒng)檢測到渾濁度超過了系統(tǒng)設計的預定值20時,會在液晶屏上提示“渾濁度過高,請換水”。該部分代碼如下所示。{{}}MyLCD_Show(X_PLACE,yPlace+在換水模塊中,整個換水過程都會有液晶提醒,提示當前換水步驟以及水位高低,主elseif(runStep==1){sprintf(dis0,"%s排水至<L",disO);}//發(fā)送數(shù)據(jù)elseif(runStep==2){sprintf(dis0,"%s加水至>H",disO);}//發(fā)送數(shù)據(jù)elseif(runStep==3){sprintf(disO,"%s換水完成!",disO);}//發(fā)送數(shù)據(jù)本設計的APP開發(fā)使用的是安卓系統(tǒng),使用的編譯器為IDEA。安卓系統(tǒng)是在Linux基礎上開發(fā)的開源操作系統(tǒng),現(xiàn)主要使用在手機上,作為移動端的主要操作系統(tǒng),之所以選擇安卓作為開發(fā)平臺也是因為其開源的性質,使開發(fā)的APP可以很好的安裝與手機上,而蘋果系統(tǒng)的封閉性就無法提供這么高的便捷性。安卓系統(tǒng)的開發(fā)主要用JAVA語言,而JAVA的開發(fā)需要進行系統(tǒng)環(huán)境的搭建(圖4.8),安裝JDK來提供JAVA的編譯,環(huán)境搭建完以后就可以開始創(chuàng)建開發(fā)工程。編輯系統(tǒng)變量編輯系統(tǒng)變量確定取消單片機和上位機的通訊用的是WIFI模塊,所以主要使用的類為Socket類,而Socket類有一個子類為TcpClient,TcpClient類中封裝了部分簡單的通訊方法,調用這些方法我們可以較為方便的實現(xiàn)網絡來連接、發(fā)送和接收流數(shù)據(jù)。所以開發(fā)主要使用TcpClient完成。軟件的工作流程圖如圖4.9所示。息圖4.9軟件工作流程圖TCP是面向連接的協(xié)議,服務器和客戶端進行通信直接需要先進行連接的建立。因此,TCP的server需依次調用以下函數(shù):listen():轉換套接字狀態(tài)從關閉轉換為監(jiān)聽狀態(tài),是客戶端的請求可以被監(jiān)聽。accept):它在監(jiān)聽到套接字的第一個請求后,創(chuàng)建一個新的連接套接字,并返回標志信號。通常情況下,服務器進程在accept調用中進入休眠(sleep)狀態(tài),等到下一次被喚醒。TCP連接使用三次握手來建立連接。connect():為一個套接字分配一個空閑的端口號,并嘗試去建立一個新的TCP連接。TCP的交互流程圖如圖4.10所示。圖4.10TCP交互流程圖軟件部分源碼如下所示。//創(chuàng)建tcp連接,需要提供服務器信息publicstaticXTcpClientgetTcpClient(TargetInfotargetInfo){returngetTcpClient(targe}publicstaticXTcpClientgetTcpClient(TargetInfotargetInfoXTcpClientXTcpClient=TcpClientManager.getTcpClient(targetInfo);if(XTcpClient==null){XTcpClient=newXTcpClXTcpClient.init(targetInfo,tcpConnCoTcpClientManager.putTcpClient(}}publicstaticXTcpClientgetTcpClient(Socketsocket,TargetInforeturngetTcpClient(socket,targetInfo,null);}publicstaticXTcpClientgetTcpClient(Socketsocket,TaExceptionUtils.throwException("soc}XTcpClientxTcpClient=newXTcpClient(xTcpClient.init(targetInfo,connCxTcpClient.mSocket=xTcpClient.mClientState=ClientState.xTcpClient.onConnectSucprivatevoidinit(TargetInfotargetInfo,TcpCthis.mTargetInfo=tamClientState=ClientState.DiscomTcpClientListeners=newAif(mTcpConnConfig==null&&connConfig==null){mTcpConnConfig=newTcpConnConfig.Builder().create();mTcpConnConfig=connCo}第五章系統(tǒng)實物調試如圖5.1所示,這是本設計初步通電時候的狀態(tài)。可以看到,此時WIFI模塊、水位檢測傳感器和液晶屏顯示模塊,都已經呈現(xiàn)相關的亮度以及閃現(xiàn)的狀態(tài),說明各個部件通電信號正常,可以正常使用。以WIFI模塊為例,WIFI模塊紅燈長亮,藍燈閃爍,說明WIFI已經處于可連接狀態(tài),此時可以使用手機連接上對應的WIFI,再通過APP就可以實現(xiàn)上位機對魚缸的控制。從液晶屏顯示可以看到此時系統(tǒng)已經采集到了魚缸當前的基本狀態(tài)信息,以及默認情況下自動喂食間隔時間。本系統(tǒng)的程序使用了KEIL軟件對程序進行了仿真,仿真過程如圖5.2所示,當點擊程序下一步的時候,可以發(fā)現(xiàn),寄存器數(shù)據(jù)會有相應的變換,以此說明此軟件的程序運行正S8n8SceaDuletrtasl本設計的WIFI模塊是ESP8266是一款超低功耗的UART-WiFi透傳模塊,該模塊功耗低,是一款專門為物體聯(lián)網設計的WIFI模塊。ESP8266是一款使用廣泛的WIFI模塊,在智能家居,工業(yè)控制,電力電網,移動交通中都有它的身影。它先進的封裝技術,保證了它有著更穩(wěn)定的工作狀態(tài)。如圖5.3所示,將手機連接上系統(tǒng)的WIFI,然后打開APP,選擇連接,就可以看到,在顯示屏上的數(shù)據(jù)就被傳送了過來,此時可以通過輸入指令FEED或者WATER進行喂食操作或者換水操作。接收到的數(shù)據(jù)制作成表格(表5.2),再利用MATLAB畫成了折線圖如圖5.4所示。水使驗段1070時間s溫度℃渾濁度1234567894從上到下依次為水溫、水位和渾濁度變化折線圖。從折線圖中可以看出,當初始上電的時候溫度,水位及渾濁度就已經被同步到這邊的上位機,然后稍微改變一下各項傳感器的條件,可以發(fā)現(xiàn),上位機端都可以很好的實現(xiàn)數(shù)據(jù)的同步,數(shù)據(jù)的接受和發(fā)送的也同步的很好,基本滿足對上位機的開發(fā)要求。自然界的水溫不是恒定的,魚對水溫的要求也會發(fā)生變化。魚兒在野生的環(huán)境里面,不管是在什么樣的季節(jié),它都會迅速的適應環(huán)境。隨著溫度高低變化,它自身都就會有調節(jié)的過程。現(xiàn)在人工培育繁殖的觀賞魚很多,但是這些魚他們身體里面會有一個基因代碼,有一定的抵抗溫度的能力。對于家里養(yǎng)的觀賞性魚類,魚缸的溫度較為難以把控,夏天炎熱的天氣會提升魚缸的溫度,冬天寒冷的天氣亦會對魚缸的溫度產生影響,所以一個能夠靈敏反應溫度變化的傳感器及時的將魚缸中的溫度反饋給使用者是必要的。DS18B20是常用的數(shù)字溫度傳感器,可以直接輸出數(shù)字信號,少了轉換的步驟,所以使用起來較為方便,且體積小,精度高,有著眾多的優(yōu)點。該溫度傳感器測溫范圍在-55℃-+125℃之間,測溫誤差在上下一攝氏度之間,可以很好的完成魚缸的溫度檢測功能。如圖5.5所示,可以看到當手握住溫度傳感器的時候,液晶屏上的溫度有著明顯的變化,說明溫度傳感器是正常工作的,而且其靈敏程度是有保證的??匆唤M上位機收到的數(shù)據(jù)(表5.2),將上位機采集的數(shù)據(jù)收集到MATLAB中做成折線圖5.6。時間s溫度℃123456789可以看到當手握傳感器以后溫度有了明顯的上升,且隨著時間的增加,溫度的上升程度由慢到快,說明設計使用的傳感器工作正常,且靈敏度是符合要求的。魚缸養(yǎng)魚的對喂食的要求也是非常高的,養(yǎng)魚一天要喂一到兩次。雖然魚類的耐餓性比較強,幾天喂一次也能養(yǎng)得活,但如果在生長期沒有提供足夠的養(yǎng)分,魚兒就會永遠長不大了,變成老頭魚,看上去也不美觀。所以最好天天給魚喂食,每次要喂到七八分飽左右,但不能讓它吃撐,長期吃得多容易患上腸炎,甚至會導致其死亡。所以本設計針對這樣的情況也是設計了兩種不同的喂食模式,手動喂食(如圖5.7)和自動喂食(如圖5.8)。手動喂食是通過APP發(fā)出喂食指令,系統(tǒng)接收到系統(tǒng)APP的指令以后打開喂食閥門,將食物置入魚缸,然后再自動關閉閥門。蓋蓋熱模式投食中.投食中清空接收清空接收自動發(fā)送1000自動喂食模式是通過芯片內部的定時器完成的,可以手動設置它的喂食間隔,當單片機讀秒到計時結束以后,會自動打開喂食閥門進行喂食。可以使用一號按鍵選中“喂食間隔”,然后2號按鍵是時間減少,3號按鍵是時間增加,每次上下5秒鐘。在觀賞魚的飼養(yǎng)過程中,最值得注意的就是水質問題。觀賞魚是非常需要穩(wěn)定的水質,但魚缸的水又不可能一直在穩(wěn)定的水質條件下。為了
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年藥物飼料添加劑項目發(fā)展計劃
- 蘇科版八年級數(shù)學上冊教學計劃(含進度表)
- 40個常見水果的英語
- oa系統(tǒng)涉密自查內容
- mark造句簡單而短
- 一年級道德與法治下冊 第三單元 自救自護我能行 第7課《春夏秋冬學自護》教學實錄 蘇教版
- 電容器電流的計算公式
- 電力安全工作規(guī)程2024版
- 因數(shù)與倍數(shù)(教學設計)-2023-2024學年五年級下冊數(shù)學蘇教版
- 山西省平遙縣高中數(shù)學 第二章 基本初等函數(shù)(Ⅰ)2.2.1 對數(shù)與對數(shù)運算(3)教學實錄 新人教A版必修1
- 新入職員工年終工作總結課件
- 專題10 開展心理健康教育 促進身心健康成長-備戰(zhàn)2023年中考英語閱讀理解時文爆點專題訓練(解析版)
- 黑龍江省哈爾濱市2024屆中考數(shù)學試卷(含答案)
- 產教融合咨詢協(xié)議書
- 智聯(lián)招聘行測題庫及答案
- 外國文學課課程設計
- 《鐵路軌道維護》課件-直線撥道作業(yè)
- 《PDCA循環(huán)法在建筑工程項目施工質量管理中的應用探究》13000字(論文)
- 【MOOC】計算機組成與CPU設計實驗-江蘇大學 中國大學慕課MOOC答案
- 物業(yè)管理服務房屋及公用設施維修養(yǎng)護方案
- 中華人民共和國工會法
評論
0/150
提交評論