版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
目錄TOC\o"1-2"\u摘要 Iabstract II第1章引言 11.1選題背景與意義 11.2國內(nèi)外研究現(xiàn)狀和相關(guān)工作 21.3本文的研究內(nèi)容與主要工作 41.4本文的論文結(jié)構(gòu)與章節(jié)安排 4第2章系統(tǒng)總體設(shè)計 52.1系統(tǒng)總體設(shè)計框架 52.2本章小結(jié) 8第3章系統(tǒng)硬件設(shè)計 93.1硬件設(shè)計整體框架 93.2系統(tǒng)主控芯片 103.3紅外傳感模塊 123.4舵機模塊 153.5顯示屏模塊 173.6稱重傳感模塊 203.7實時時鐘???233.8溫濕度檢測模塊 243.9步進電機模塊 263.10藍牙模塊 293.11紅外對射模塊 303.12系統(tǒng)電路板實物設(shè)計 313.13本章小結(jié) 33第4章系統(tǒng)軟件設(shè)計 344.1軟件開發(fā)平臺介紹 344.2系統(tǒng)軟件流程圖 354.3紅外傳感模塊控制舵機程序 354.4紅外對射模塊控制LED程序設(shè)計 374.5溫濕度傳感模塊程序設(shè)計 384.6實時時間與電機程序設(shè)計 384.7投喂量功能與稱重模塊程序設(shè)計 414.8本章小結(jié) 42第5章系統(tǒng)測試 435.1系統(tǒng)整體測試 435.2項目實施過程中遇到的問題及解決方法。 495.3本章小結(jié) 51第6章總結(jié)與展望 526.1項目總結(jié) 526.2研究展望 52參考文獻 54致謝 55隨著時代的不斷發(fā)展,人們的各種壓力也隨之增大,寵物反而成為了人們緩解壓力的一種途徑。在歷史長河中的寵物逐漸地不再單單是“寵物”,更像是朋友,親人,陪伴在我們身邊,讓我們在生活中多一個精神依托,讓在外漂泊的人們覺得家里還有“親人”在等他們下班回家。就目前市場形式來看,未來相關(guān)行業(yè)都將保持一個高速發(fā)展狀態(tài),尤其是寵物醫(yī)療、寵物美容、寵物用品等都屬于朝陽產(chǎn)業(yè)[3]。隨著社會的發(fā)展,人們的空余時間也越來越少。在養(yǎng)寵物方面,人們盡可能的讓自己便利化,以節(jié)省更多的時間來完成自己的事情,讓飼養(yǎng)寵物不再是一件操心的事。在人們追求生活品質(zhì)的時候,寵物的生活品質(zhì)也在得到提升。這樣,一個智能的寵物用品就會讓人們和寵物在多方面都得到便利和科學化。人們在忙碌的時候,常常不能夠給予寵物一個科學和規(guī)律的飼養(yǎng)條件,這樣會使得寵物很容易養(yǎng)成各種壞習慣以及健康狀況的下降,從而引誘各種疾病,從另一層面讓寵物主人們增加經(jīng)濟負擔以及飼養(yǎng)寵物的成本。有的主人甚至會拋棄有疾病或者惡習的寵物,從而增加社會上的流浪動物,增加社會流浪動物傷人事件。寵物本身具有情緒價值,讓人們在生活中有一種特殊的精神寄托。兩者是相輔相成的,寵物需要人們精心的呵護,人們也需要寵物給予的精神寄托,甚至有的寵物也需要人們的陪伴。人類與寵物本就是已經(jīng)長達數(shù)千年的關(guān)系,已經(jīng)在心靈上被深深束縛,兩者未來將會不斷書寫整個人類文明和地球文明。本論文將以以上研究意義為出發(fā)點,讓人們與寵物之間的關(guān)系更加鞏固,讓人們飼養(yǎng)寵物更加便利,讓寵物們更加健康。2018年,寵物犬貓用品占比激增,帶動寵物智能用品市場規(guī)模上漲。2022年后受疫情及中國一人戶家庭數(shù)量持續(xù)上漲的影響,寵物數(shù)量不斷增長寵物行業(yè)消費規(guī)?;鶖?shù)變大,寵物智能用品市場在整體行業(yè)繁榮的情況下持續(xù)增長,市場規(guī)模由2017年的98億元提高至2021年的38.6億元,年復合增長率為40.9%,預計2022將增長至48.9億元,如圖1-1所示。圖1-12017-2022年中國寵物智能用品市場規(guī)模變化(華經(jīng)情報網(wǎng))中國寵物主在寵物智能用品的品類偏好上還是較為明顯的,其主要時集中于寵物的食、住、娛方面,其中智能飲水機占比最高,為63%,如圖1-2所示。圖1-22021年中國消費者主要寵物智能用品選擇情況(華經(jīng)情報網(wǎng))從中國寵物智能用品消費者年齡分布來看,占比最重的為90后,占比46.3%,其次為80后,占比30.5%,70后占比15.7%,70前人群占比7.5%,如圖1-3所示。圖1-32021年中國寵物智能用品消費者年齡分布(華經(jīng)情報網(wǎng))本文基于STM32F103C8T6單片機,設(shè)計與實現(xiàn)一款寵物主們都能夠使用上的便捷的高性價比的寵物智能喂食系統(tǒng),目的是讓寵物的飲食更加健康規(guī)律,讓寵物主人的飼養(yǎng)更加方便輕松。本課題可以實現(xiàn)溫濕度檢測、重量檢測、紅外傳感控制實盤防塵蓋、紅外對射控制LED、定時投喂、藍牙控制等功能。實現(xiàn)本課題中的研究內(nèi)容,首先要對總體的設(shè)計計劃經(jīng)行撰寫,查閱相關(guān)文獻資料,對當前國內(nèi)外寵物市場和寵物智能產(chǎn)品的形勢做一個了解,熟悉傳感器模塊的工作原理以及電路搭建。在完成這些后,就要對課題程序進行撰寫和調(diào)試整體效果,實現(xiàn)本課題功能效果。本文共分為章,章節(jié)內(nèi)容安排如下:第1章引言第2章系統(tǒng)總體設(shè)計第3章系統(tǒng)軟件設(shè)計第4章系統(tǒng)測試第5章總結(jié)與展望本章節(jié)主要介紹系統(tǒng)的總體設(shè)計,說明系統(tǒng)能夠完成的功能。有關(guān)寵物的市場目前十分廣泛,已經(jīng)形成一個十分完善的產(chǎn)業(yè)鏈,從具有多樣性的寵物本身出發(fā),分散出了非常的產(chǎn)業(yè)分支,小到寵物食物、寵物用品,大到寵物市場,寵物醫(yī)院等等。由于目前養(yǎng)寵的普遍性,我們在系統(tǒng)設(shè)計上占地面積盡量小,在場景中需要一些占地面積來擺放寵物用品,這樣就會減少人們的使用面積,所以我們需要盡可能的減少系統(tǒng)的占地面積。我們本次選用的硬件都是較為小且具有性價比的,這樣就能滿足大部分用戶。為了能夠給人們在飼養(yǎng)寵物帶來更大的便利,不論是家庭寵物、寵物醫(yī)院還是寵物市場中暫養(yǎng)的寵物,我們要以用戶使用便利為導向,設(shè)計一套綜合性強、檢測內(nèi)容完善、適用大量使用場景的寵物智能喂食系統(tǒng)。本系統(tǒng)中采用的核心是STM32F103C8T6單片機,通過單片機連接各個硬件,實現(xiàn)每個硬件之間的互動,系統(tǒng)整體框架圖如圖2-1所示。系統(tǒng)中的稱重模塊用來實時檢測食盤中食物的重量,溫濕度用于檢測儲糧倉中環(huán)境變化,實時時鐘模塊用于給系統(tǒng)提供定時作用,同時把重量、溫濕度以及時間反應到OLED顯示上,便于人們的觀察。紅外對射模塊則是用來檢測儲糧倉中儲糧情況,當快要沒有糧食的時候LED燈就會亮,用來提醒人們儲糧倉需要加糧了。紅外傳感模塊是用來控制食盤的舵機,也就是防塵蓋,當紅外檢測模塊檢測到寵物,防塵蓋就會打開,這樣寵物就可以進食了。電機用于控制儲糧倉底部的進糧旋盤,當定時的時間到了,電機就會轉(zhuǎn)動,這樣儲糧倉中的糧食就會落入食盤中。通過藍牙模塊連接手機APP,可以通過手機APP來進行定時操作。系統(tǒng)硬件功能如圖2-2所示,系統(tǒng)工作流程圖如圖2-3所示。圖2-1系統(tǒng)整體框架圖圖2-2硬件功能圖圖2-3系統(tǒng)工作流程圖本章簡略介紹系統(tǒng)的整體設(shè)計框架,明確每個模塊在系統(tǒng)中的工作模式以及工作任務,哪些模塊之間需要聯(lián)動,為課題研究明確方向。本章節(jié)主要內(nèi)容是對系統(tǒng)所選硬件和系統(tǒng)所需電路的設(shè)計進行介紹,最終使得模塊之間能夠合理的運行。本系統(tǒng)中運用到的硬件模塊不算少,需要規(guī)劃好每個硬件的連接端口。系統(tǒng)總線原理圖如圖3-1所示。圖3-1系統(tǒng)電路原理圖處理器對于每個系統(tǒng)來說都是必不可少的,是每個模塊之間密切配合的必然需求,它的存在相當于人們的大腦。在單片機選擇中,一般選擇市面上常見的單片機。51系列單片機:最常用到的8位單片機是51系列單片機,在當前市場中所占份額較大,在大多數(shù)的產(chǎn)品中都能找到它的身影。單片機的儲存空間比較小是其缺點,還有處理速度上也有缺點,就是相對較慢。STM32系列單片機:STM32系列單片機搭載的是32位的處理器,其集成了非常豐富的外設(shè),包括模擬/數(shù)字轉(zhuǎn)換器、定時器、串口、SPI、I2C等,支持多種編程語言。STM32單片機的處理器內(nèi)核是有很多種的,每個的功能都有所不同。綜合考慮本系統(tǒng)的功能需求以及所需單片機的性能要求,最終決定采用STM32F103C8T6型號。STM32F103C8T6最小系統(tǒng)包括電路組成上有晶振電路、復位電路、電源濾波電路、擴展接口電路、SWD下載器等[4]。STM32F103C8T6最小系統(tǒng)實物如圖3-2所示、原理圖如圖3-3所示。圖3-2STM32F103C8T6實物圖圖3-3STM32F103C8T6電路原理圖STM32F103C8T6最小系統(tǒng)中的晶振電路如圖3-4所示。圖3-4STM32F103C8T6最小系統(tǒng)晶振電路STM32F103C8T6最小系統(tǒng)中的復位電路如圖3-5所示。圖3-5STM32F103C8T6最小系統(tǒng)復位電路STM32F103C8T6最小系統(tǒng)的電源電路設(shè)計如圖3-6所示,需要注意的是,電源電路中有個RT9193芯片來幫助電源電路進行濾波。圖3-6STM32F103C8T6最小系統(tǒng)電源電路本系統(tǒng)的檢測寵物控制防塵蓋打開功能中的檢測寵物運用到的就是紅外傳感模塊,其又分為主動式紅外傳感模塊以及被動式紅外傳感模塊。市面上常見的主動式紅外傳感模塊是YL-62實物如圖3-7所示。其中白色的是紅外發(fā)射管,黑色的紅外接收管。圖3-7主動式紅外傳感模塊YL-62實物被動式紅外傳感器依賴于動物活動時散發(fā)的紅外線來進行檢測,而本身不會主動發(fā)射紅外線。在市面上最常見到的被動式紅外傳感模塊就是HC-SR501實物如圖3-8所示。圖3-8被動式紅外傳感模塊HC-SR501實物相比于兩者,兩者之間的價格都相差無幾,各有各的好處。但是更符合本系統(tǒng)的我認為是主動式紅外傳感模塊YL-62,因為它能夠自主發(fā)射接收紅外,具有更強的穩(wěn)定性,能夠很好的識別出寵物,更好的實現(xiàn)了到寵物到了防塵蓋就能打開的功能。主動式紅外傳感模塊YL-62的引腳圖說明如圖3-9所示。圖3-9主動式紅外傳感模塊YL-62引腳圖本系統(tǒng)采用的YL-62紅外傳感模塊,內(nèi)部搭配了LM393雙電壓比較器電路,LM393內(nèi)部引腳功能如表3-1所示。YL-62紅外傳感原理圖如圖3-10所示。表3-1LM393引腳說明管腳號名稱功能1OUTA輸出A2INA-反向輸入A3INA+同相輸入A4GND接地端5INB+同相輸入B6INB-反向輸入B7OUTB輸出B8VCC電源電壓圖3-10紅外傳感模塊原理圖YL-62紅外傳感模塊的OUT接口口與STM32F103C8T6單片機的PA1接口連接,如圖3-11所示。圖3-11YL-62紅外傳感模塊連接原理圖本系統(tǒng)舵機用來模擬食盤防塵蓋控制,好的舵機能夠在實現(xiàn)場景中有更好的表現(xiàn)。其中舵機有旋轉(zhuǎn)角度之分,市面上常見的舵機分別有SG90舵機和MG90S舵機。SG90舵機:SG90舵機是一款旋轉(zhuǎn)角度為180度的舵機,實物圖如圖3-12所示。圖3-12舵機SG90實物圖MG90S舵機:MG90S舵機是一款旋轉(zhuǎn)角度為360度的舵機,實物圖如圖3-13所示。圖3-13舵機MGO0S實物圖市面上的舵機型號相對來說還是比較多的,綜合考慮下選擇了旋轉(zhuǎn)角度較為寬廣的MG90S,本系統(tǒng)中的食盤為原形,能夠旋轉(zhuǎn)360度的舵機更能夠發(fā)揮出它在本系統(tǒng)中的作用。便于本系統(tǒng)后續(xù)的升級優(yōu)化。MG90S的引腳圖如圖3-14所示。圖3-14舵機MG90S引腳圖MG90S舵機是通過調(diào)整脈沖的寬度來實現(xiàn)對舵機的旋轉(zhuǎn)角度進行控制,從而實現(xiàn)運動,如圖3-15所示。圖3-15舵機脈沖寬度與舵機輸出角度對應圖本系統(tǒng)采用MG90S舵機,是本系統(tǒng)中為數(shù)不多要用到5V電壓的元器件,MS90S的OUT接口與STM32F103C8T6單片機的PB0接口連接,如圖3-16所示。圖3-16MG90S舵機連接原理圖系統(tǒng)中的重量溫濕度以及時間等參數(shù)為了能夠方便觀察,就需要顯示屏讓這些參數(shù)可視化,讓寵物主們更好的觀察當前情況。顯示模塊一般分為LCD和OLED,這兩種在單片機運用中是非常常見的。LCD顯示模塊是有一層白色背光層,通過控制電壓來改變液晶的透光度。不論是在市面上還是在教學上,最常見的LCD顯示模塊就是1602型號的,實物如圖3-17所示。圖3-17LCD1602顯示模塊實物OLED顯示不需要背光層,每個像素都能夠各自發(fā)光,市面上常見的OLED顯示模塊為12864如圖3-18所示。OLED如果需要顯示黑色,就讓所有像素都不發(fā)光,OLED更加的省電。(a)正面(b)反面圖3-18OLED12864顯示模塊實物通過兩者的比較,本系統(tǒng)運用分辨率更為高一些的OLED顯示模塊來顯示參數(shù),其引腳說明如圖3-19所示。圖3-19OLED顯示模塊12864引腳說明本系統(tǒng)中采用的OLED顯示屏原理圖如圖3-20所示。圖3-20OLED12864顯示模塊電路原理圖OLED12846顯示模塊與STM32F103C8T6單片機連接時,其連接圖如圖3-21所示。圖3-21OLED12864連接原理圖稱重傳感模塊在本系統(tǒng)中扮演這十分重要的角色,實時監(jiān)測食盤里的食物剩余重量。本系統(tǒng)的所選的是一款是搭載HX711芯片的稱重模塊。HX711引腳排列如圖3-23所示,引腳說明如表3-2所示。圖3-22HX711實物圖圖3-23HX711引腳排序圖表3-2HX711引腳說明管腳號名稱性能描述1VSUP電源穩(wěn)壓電路供電電源:2.6~5.5V2BASE模擬輸出穩(wěn)壓電路控制輸出(不用穩(wěn)壓電路時為無連接)3AVDD電源模擬電源:2.6~5.5V4VFB模擬輸入穩(wěn)壓電路控制輸入(不用穩(wěn)壓電路時應接地)5AGND地模擬地6VBG模擬輸出參考電源輸出7INA-模擬輸入通道A負輸入端8INA+模擬輸入通道A正輸入端9INB-模擬輸入通道B負輸入端10INB+模擬輸入通道B正輸入端11PD_SCK數(shù)字輸入斷電控制(高電平有效)和串口時鐘輸入12DOUT數(shù)字輸出串口數(shù)據(jù)輸出13XO數(shù)字輸入輸出晶振輸入(不用晶振時為無連接)14XI數(shù)字輸入外部時鐘或晶振輸入,0:使用片內(nèi)振蕩器15RATE數(shù)字輸入輸出數(shù)據(jù)速率控制,0:10Hz;1:80Hz16DVDD電源數(shù)字電源:2.6~5.5V稱重傳感器,又稱負載單元或稱重單元,其實物如圖3-24所示。圖3-24稱重傳感器實物將兩者相結(jié)合組成了本系統(tǒng)所運用的稱重模塊,實物如圖3-25所示。圖3-25稱重模塊實物圖本系統(tǒng)采用的HX711稱重模塊其電路原理如圖3-26所示。圖3-26HX711稱重模塊電路原理圖在進行HX711稱重模塊與STM32F103C8T6連接的連接原理圖如圖3-27所示。圖3-27HX711稱重模塊連接原理圖本系統(tǒng)中的定時喂食功能需要用到一個DS1302實時時鐘模塊如圖3-28所示,來提供精準的實時時間。采用外部時鐘模塊而不是內(nèi)部時鐘源的主要原因是為了防止時鐘源斷電后導致時間數(shù)據(jù)丟失。采用外部時鐘模塊可以有效降低系統(tǒng)復雜度,延長系統(tǒng)的使用壽命。圖3-28DS1302實時時鐘模塊實物圖DS1302采用外接的32.768kHz晶體,其振蕩電路無需任何外接電阻或電容即可工作。此外,DS1302還配備了雙電源引腳,可用于主電源和備用電源,這是一個非常高效和實用的功能。DS1302引腳排列如圖3-29所示。圖3-29DS1302引腳排列圖本系統(tǒng)采用的是DS1302實時時鐘模塊,其電路原理圖如圖3-30所示。圖3-30DS1302S實時時鐘電路原理圖DS1302S實時時鐘模塊有5個引腳,其引腳說明如表3-3所示。表3-3DS1302實時時鐘模塊引腳說明引腳名稱引腳說明VCC主電源,外接3.3V電源GND接地CLK接收同步時鐘信號DAT數(shù)據(jù)輸入/輸出引腳RST復位引腳DS1302實時時鐘模塊與STM32F103C8T6連接,連接如圖3-31所示。圖3-31DS1302實時時鐘連接原理圖本系統(tǒng)中的溫濕度模塊用于檢測食物儲存?zhèn)}中的溫濕度情況,便于寵物主們檢測糧糧食存放情況,讓寵物吃到更加健康的糧食。溫濕度模塊在市面上非常常見,廣泛應用于許多單片機教學項目中。該模塊的工藝技術(shù)已經(jīng)非常成熟,具有體積小、極低功耗的特點,同時信號傳輸距離可達20米以上。本系統(tǒng)中用到的就是數(shù)字溫濕度傳感器DHT11,實物如圖3-32。DHT11引腳說明如表3-4所示。圖3-32DHT11溫濕度檢測模塊實物表3-4DHT11引腳說明管腳號名稱功能1VDD供電3~5.5V2DATA串行數(shù)據(jù),單總線3NC空腳,請懸空4GND接地,電源負極本系統(tǒng)選用的溫濕傳感器DHT11原理圖如圖3-33所示。圖3-33溫濕度檢測模塊DHT11電路原理圖溫濕度傳感器模塊DHT11的引腳說明如表3-5所示。表3-5DHT11引腳說明引腳名稱引腳說明VCC電源接口,接3.3V電源DATA單總線串行數(shù)據(jù)接口NC空腳GND接地將DATA引腳連接到STM32F103RCT6的PC6接口,DHT11模塊連接STM32F103RCT6的硬件電路設(shè)計如圖3-34所示。圖3-34DHT11溫濕度檢測模塊連接原理圖本系統(tǒng)中的電機用于控制儲糧倉下方的旋轉(zhuǎn)門,從而使得儲糧倉中的糧食準確落入食盤中。本系統(tǒng)選用的是28BYJ48步進電機,28BYJ48就是一種常見的單極性五線四相步進電機,實物如圖3-35所示。其型號所表示以我們本次使用的步進電機為例,表示28的意思是步進電機有效最大外徑是28毫米,表示B的意思是步進電機,表示Y的意思是該電機是永磁式,表示J的意思是該電機是減速型的,表示48的意思是該電機是四相八拍的。圖3-35步進電機實物圖想要步進電機運動起來需要按照它的規(guī)則,相位排放順序如圖3-36所示,通電順序如圖3-37所示。圖3-3628BYJ48步進電機相位排放圖圖3-3728BYJ48步進電機通電順序圖本系統(tǒng)的電機搭配的是ULN2003驅(qū)動芯片,實物如圖3-38所示,引腳說明如表3-6所示。圖3-38ULN2003驅(qū)動芯片實物圖圖3-39ULN2003芯片引腳排列圖表3-6ULN2003芯片引腳說明管腳號名稱功能11BCPU脈沖輸入端,端口對應一個信號輸出端。22BCPU脈沖輸入端33BCPU脈沖輸入端44BCPU脈沖輸入端55BCPU脈沖輸入端66BCPU脈沖輸入端77BCPU脈沖輸入端8E接地9COM該腳是一個公共端,是在內(nèi)部7個續(xù)流二極管負極的107C脈沖信號輸出端,對應7腳信號輸入端116C脈沖信號輸出端,對應6腳信號輸入端125C脈沖信號輸出端,對應5腳信號輸入端134C脈沖信號輸出端,對應4腳信號輸入端143C脈沖信號輸出端,對應3腳信號輸入端152C脈沖信號輸出端,對應2腳信號輸入端161C脈沖信號輸出端,對應1腳信號輸入端ULN2003驅(qū)動板是用于驅(qū)動本系統(tǒng)中的步進電的,ULN2003驅(qū)動版原理圖如圖3-40所示。圖3-40ULN2003驅(qū)動板原理圖ULN2003驅(qū)動板輸入端的IN口與STM32F103C8T6單片機的PB口連接如圖3-41所示。圖3-41ULN2003驅(qū)動板連接原理圖為了讓本系統(tǒng)更加的便利,我們運用了無線傳輸模塊讓系統(tǒng)與手機相連接,用手機對系統(tǒng)進行一個定時投喂的功能。在本系統(tǒng)中我們選擇了藍牙無線通信,所選的型號為HC-06,HC-06基于藍牙2.0標準,支持串口通信協(xié)議,這使得與單片機的連接和數(shù)據(jù)交換相對簡單。HC-06實物如圖3-42所示。圖3-42HC-06藍牙通信模塊實物圖本系統(tǒng)采用的HC-06藍牙模塊引腳說明如表3-7所示。表3-7HC-06藍牙引腳說明引腳名稱引腳說明RX設(shè)備中的通信方式為UART,TX引腳用于數(shù)據(jù)發(fā)送。TX該引腳有助于接收與微控制器等外部設(shè)備進行UART通信的數(shù)據(jù)。VCC接5V電源GND接地HC-06藍牙按照引腳說明與STM32F103C8T6單片機連接,如圖3-43所示。圖3-43HC-06藍牙連接原理圖本章節(jié)運用紅外對射模塊主要是檢測糧倉內(nèi)的糧食儲存情況,實物如圖3-44。圖3-44紅外對射模塊紅外對射的信號輸出接單片機的PA11腳,用來報警的LED燈接PA12,如圖3-45所示。圖3-45紅外對射模塊連接原理圖在系統(tǒng)整體的焊接前,我們需要電路板將各個硬件之間連接起來。本章節(jié)運用的電路板是用嘉立創(chuàng)來完成的。首先我們用嘉立創(chuàng)先完成一個繪制PCB板時所需的電路原理圖,原理圖如圖3-46所示。圖3-46PCB板繪制原理圖接下來我們就要將原理圖轉(zhuǎn)換成PCB圖,這樣我們就可以擺放元器件位置以及根據(jù)原理圖將模塊之間進行布線,如圖3-47所示。圖3-47系統(tǒng)PCB圖我們可以通過軟件自帶的3D功能來查看電路板完成后的實物情況。如圖3-48所示。正面(b)反面圖3-48PCB板3D效果圖本章主要根據(jù)系統(tǒng)所需內(nèi)容進行一個硬件選型以及硬件電路設(shè)計,優(yōu)化系統(tǒng)電路結(jié)構(gòu),實現(xiàn)了紅外傳感模塊、無線通信模塊、溫濕度傳感模塊、OLED顯示模塊、實時時鐘模塊、稱重模塊、電機、舵機、紅外對射模塊、藍牙模塊的連接與互動。本章節(jié)的主要內(nèi)容是介紹本系統(tǒng)所需程序,以及介紹所使用到的軟件。對于STM32F103C8T6單片機,常用的軟件開發(fā)平臺之一是Keil5。Keil5是由Keil公司推出的一款嵌入式開發(fā)工具,工作軟件界面如圖4-1所示。圖4-1keil5窗口圖其界面非常整潔明了,上手門檻低,能夠很好的為使用者提供便利。軟件的UI設(shè)計以及背景顏色,工具窗口等等都與市面上常見的軟件相似,這讓我們這種學習過多款軟件的學生來說是十分友善的。本系統(tǒng)的電路原理圖采用的是AltiumDesigner,該軟件集電子信息專業(yè)中非常多應用所需的功能,是個功能非常強大的軟件,其工作界面如圖4-2所示。圖4-2AltiumDesigner軟件界面圖圖4-3總程序設(shè)計流程圖當紅外傳感模塊檢測到有物體后,控制舵機旋轉(zhuǎn),從而打開本系統(tǒng)食盤的防塵蓋。程序設(shè)計圖如圖4-4所示。圖4-4紅外傳感模塊控制舵機程序流程圖主要代碼:voiddongwushibie(void)//紅外對管檢測{ if(HAL_GPIO_ReadPin(HONGWAI_GPIO_Port,HONGWAI_Pin)==0) { HAL_Delay(20); if(HAL_GPIO_ReadPin(HONGWAI_GPIO_Port,HONGWAI_Pin)==0) { __HAL_TIM_SetCompare(&htim3,TIM_CHANNEL_3,15);//90°開 } } else { __HAL_TIM_SetCompare(&htim3,TIM_CHANNEL_3,5);//0°關(guān) }}當紅外對射模塊中間沒有東西擋住,意味著糧倉的底部已經(jīng)沒有糧食,這時候LED報警燈就會亮起,提醒寵物主人需要添加糧食了。程序設(shè)計圖如圖4-5所示。圖4-5紅外對射模塊控制LED程序流程圖主要程序:if(HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_11)==0)////紅外對射檢測檢測到糧食 { HAL_Delay(20); if(HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_11)==0) { OLED_ShowString(10,16,"OK",16,1); //屏幕顯示 HAL_GPIO_WritePin(GPIOA,GPIO_PIN_12,0);//LED燈滅 } } else { OLED_ShowString(10,16,"??!",16,1);//屏幕顯示 HAL_GPIO_WritePin(GPIOA,GPIO_PIN_12,1);//LED燈亮 }溫濕度稍微簡單一些,我們只需要把傳感器采集到的數(shù)據(jù)顯示在顯示屏即可。主要程序:Dht11_Init();//初始化DHT_Read(); sprintf(txt,"T:%d",temperature); OLED_ShowString(10,0,txt,16,1);//顯示溫度 sprintf(txt,"H:%d",humidity); OLED_ShowString(60,0,txt,16,1);//顯示濕度本系統(tǒng)的兩個功能涉及到實時時間與電機的聯(lián)動,如圖4-6所示。圖4-6定時功能與隔時功能程序流程圖主要程序:voidDs1302ReadTime(){ uint8_tn; for(n=0;n<7;n++)//讀取7個字節(jié)的時鐘信號:分秒時日月周年 { TIME[n]=Ds1302Read(READ_RTC_ADDR[n]); } }voidds1302ceshi(void)//ds1302時間更新函數(shù){ Ds1302ReadTime(); TIME[0]=(TIME[0]>>4)*10+(TIME[0]&0x0f); TIME[1]=(TIME[1]>>4)*10+(TIME[1]&0x0f); TIME[2]=(TIME[2]>>4)*10+(TIME[2]&0x0f); TIME[3]=(TIME[3]>>4)*10+(TIME[3]&0x0f); TIME[4]=(TIME[4]>>4)*10+(TIME[4]&0x0f); TIME[5]=(TIME[5]>>4)*10+(TIME[5]&0x0f); TIME[6]=(TIME[6]>>4)*10+(TIME[6]&0x0f);}if(TIME[2]==DINGSHI&&TIME[1]==DINGSHI2&&TIME[0]==DINGSHI1)//小時測試 { motorNcircle(1,true); OLED_Clear(); OLED_ShowString(16,16,"Timeout",16,1); HAL_Delay(2000); motorNcircle(1,false); OLED_Clear(); DINGSHI=TIME[2]+luoji.m_time[0]; if(DINGSHI>=24) { DINGSHI=DINGSHI-24; } }voidRX_Poll(void){ uint8_tarr[10]; if(luoji.RX_flag==1) { switch(luoji.RX_arr[0]) { case0x01: luoji.mao=1; luoji.lanya_flag=1; luoji.jieshou_zl=luoji.RX_arr[1]; break; case0x04: luoji.g=1; for(uint8_ti=0;i<luoji.RX_cishu-1;i++) { arr[i]=char_2_hex(&luoji.RX_arr[i+1]); } luoji.g_time[0]=arr[0]*10+arr[1];//時 luoji.g_time[1]=arr[3]*10+arr[4];//分 luoji.g_time[2]=arr[6]*10+arr[7];//秒 //定時 break; case0x05: for(uint8_ti=0;i<luoji.RX_cishu-1;i++) { arr[i]=char_2_hex(&luoji.RX_arr[i+1]); } luoji.m_time[0]=arr[0]*10+arr[1];//時 DINGSHI=TIME[2]+luoji.m_time[0];//小時測試 DINGSHI1=TIME[0]; DINGSHI2=TIME[1]; //定時 break; } luoji.RX_flag=0; memset(luoji.RX_arr,0,luoji.RX_cishu); luoji.RX_cishu=0; }}我們在手機APP上輸入重量,電機就會轉(zhuǎn)動,直到重量達到預設(shè),電機就會關(guān)閉。程序流程如圖4-7所示。圖4-7投喂量功能程序流程圖主要程序:keshu=chengzhong();//稱重 OLED_ShowNum(24*2,16,keshu,4,16,1);//顯示實時刻度if(luoji.mao==1&&luoji.lanya_flag==1) { motorNcircle(1,true);OLED_Clear();//清空屏幕 while(1) { uint32_tkeshu; keshu=chengzhong(); OLED_ShowString(30,32,"petfeeder",16,1); OLED_ShowNum(24*2,16,keshu,4,16,1);//顯示克度 if(keshu>luoji.jieshou_zl*100)//判定手機輸入的值乘100 { break; } }} 本章節(jié)主要介紹的是系統(tǒng)的軟件設(shè)計,其包括實現(xiàn)該系統(tǒng)所采用的軟件的介紹,說明了硬件模塊之間聯(lián)動所需程序的設(shè)計。系統(tǒng)電路與程序都實現(xiàn)后,接下來就需要對系統(tǒng)進行一次全面的功能檢測。以及總結(jié)項目中遇到的問題。經(jīng)過硬件選型、電路設(shè)計、程序調(diào)試以及焊接,最終實現(xiàn)系統(tǒng)預設(shè)功能,系統(tǒng)實物如圖5-1所示。圖5-1系統(tǒng)實物圖在本系統(tǒng)中有個扮演著非常重要的角色的模塊,那就是顯示模塊。本系統(tǒng)的顯示模塊需要顯示實時時間、定時喂食時間、糧倉情況、溫濕度和重量。第一行分別是溫濕度,第二行分別是糧倉情況和實時重量,第三行是定時喂食時間,第四行是實時時間。如圖5-2所示。圖5-2OLED實物測試圖紅外傳感模塊控制電機的調(diào)試,當紅外傳感模塊檢測到物體,控制防塵蓋的舵機轉(zhuǎn)動,沒有的話舵機就轉(zhuǎn)回去。功能如圖5-3所示。有物體(b)無物體圖5-3紅外傳感與舵機功能測試紅外對射模塊與LED燈互動的測試,用于檢測糧倉內(nèi)糧食情況。當有糧食的時候,紅外對射處于遮擋狀態(tài),顯示屏上顯示“OK”并且LED燈不亮,當糧倉內(nèi)沒有糧食后,LED燈亮報警,屏幕顯示“??!”。功能如圖5-4所示。無糧食(b)有糧食圖5-4糧倉糧食檢測功能測試本系統(tǒng)的定時功能可謂是非常的完善,先來介紹定量投喂。如圖5-3所示食物盤上沒有食物,我們可以選擇投喂200克,在手機APP的投喂量設(shè)置輸入2實物如圖5-4所示,然后控制糧倉門的電機就會轉(zhuǎn)動,同時顯示稱重重量如圖5-5所示,當食物添加大于200后,電機就會轉(zhuǎn)回去關(guān)閉糧倉門如圖5-6所示。圖5-3定時投喂初始狀態(tài)圖圖5-4手機APP設(shè)置投喂量圖圖5-5定時投喂功能加糧界面圖圖5-6定時投喂功能完成圖接下來是介紹隔時投喂功能,該功能是用于設(shè)置間隔幾個小時加量操作,本次測試定的是一小時如圖5-7所示,屏幕上就會顯示下次加糧時間如圖5-8所示,當一小時時間到,電機就會轉(zhuǎn)動,然后定時時間再加一小時如圖5-9所示。如果我們定的是兩小時,加完量后下次加糧時間就會繼續(xù)加兩小時以此類推。圖5-7手機APP設(shè)置隔時時間圖5-8下次喂食時間顯示圖圖5-9下次喂食時間更新圖接下來介紹的是定時投喂功能,我們在手機APP的定時投喂處設(shè)置想要投喂的時間如圖5-10所示,我們設(shè)置凌晨一點十分二十秒,當?shù)竭_該時間,喂食器就會進行加糧操作如圖5-11所示。圖5-10定時投喂設(shè)置界面圖圖5-11定時投喂功能測試圖在本項目制作過程中遇到了十分多的難題,一邊遇到難題一邊學習怎么解決難題。制作本系統(tǒng)使用了多個軟件,有的軟件還挺陌生,學習軟件就花去了我很長的時間。期間遇到了非常多的問題,接下來我將選擇幾個比較讓我印象深刻的問題來介紹:在硬件搭建初期,我很少用到需要5V的硬件,所以我不太知道其工作特點,所以我直接把5V的硬件連接到了單片機的5V輸出,但是硬件不工作。問了老師才知道,我下載器那里連接的是3.3V的,沒有連接5V的,所以要在下載器再連一個5V的線出來接到面包板,如圖5-12所示,或者接STM32的TYPE-C電源。這個問題之所以讓我印象這么深刻,主要是其原因太簡單,網(wǎng)上沒有找到解決方法,所以困擾我挺長時間,最終問了老師才得以解決。圖5-12下載器5V供電連接圖2.焊接部分也是我一大難點,我的手挺笨的,用萬能板焊接的時候很容易把銅片焊掉,這導致我走線非常困難,整個焊接工藝非常的難看。所以我就自己動手畫一塊板子然后打出來,這是我第一次自己打一塊板子,所以學習到了非常多的東西,特別是嘉立創(chuàng)這個國產(chǎn)的軟件,非常的好用。我學習嘉立創(chuàng)的軟件用了一段時間,畫板子用了一段時間,因為嘉立創(chuàng)一個月是可以免費打兩次板子的,所以我就用了嘉立創(chuàng)這個軟件,從頭學習這個軟件。軟件整體使用下來的體驗非常的友善,上手非常快,元件庫非常的龐大,通過本次的制作,我向我自己安利了一個非常好用的軟件。3.在硬件調(diào)試期間常常會出現(xiàn)的問題就是傳感器采集的數(shù)據(jù)出現(xiàn)了不穩(wěn)定或者異常值。最開始遇到一個硬件采集數(shù)據(jù)的問題,就是稱重模塊,數(shù)值跳動的問題很大,數(shù)值異常,經(jīng)過檢查發(fā)現(xiàn),我所使用的面包板電源和地在面板版的中間是斷開的。所以導致我的重量傳感沒有提供電源,而信號線則接到了單片機上,在程序運行檢測中,重量數(shù)據(jù)就表現(xiàn)的異常。在傳感器出現(xiàn)數(shù)據(jù)采集不穩(wěn)定或者異常的情況后,我們首先要檢查的是傳感器與STM32單片機是否有連接好,要確保連接穩(wěn)定,沒有斷開或者松開,可以重新插拔來調(diào)整,實在找不到問題原因可以用萬用表看看電路導電情況,或者是查看硬件說明等相關(guān)資料,看看是不是其他原因?qū)е碌?。我在遇到傳感器采集?shù)據(jù)不穩(wěn)定或者異常時,除了檢查電路外,最主要時看看電源信號引腳是否有接錯,電源正負腳接錯是十分危險的,這很有可能會損壞傳感器,甚至引起其他危險情況。檢查信號線主要是檢查程序中所引用的引腳是否是我連接的引腳,實物與程序所引用的引腳一定要對應好。還要檢查程序是否有編寫錯誤,程序邏輯是否有誤等等,程序編寫出錯導致的功能問題往往是非常常見的,一般的傳感器采集數(shù)據(jù)問題都是程序編寫出現(xiàn)的錯誤。在解決傳感器采集數(shù)據(jù)的問題中,解決程序問題占據(jù)了非常多的時間,傳感器出現(xiàn)BUG我往往都是在調(diào)試程序,而很少是電路硬件的問題。4.在用嘉立創(chuàng)打板的時候,遇到了上傳Gerber文件時,系統(tǒng)提示存在格式錯誤,導致無法成功下單的情況。由于是第一次使用嘉立創(chuàng)這個軟件,所以很多東西都特別的陌生,特別是用軟件直接下單,這個功能是用這么多軟件以來第一款有這個功能的軟件。經(jīng)過檢查,發(fā)現(xiàn)是沒有正確下載Gerber文件,要到處PCB制版文件,這樣才能正常使用,如圖5-13所示。并且試過在解析文件的時候卡在99%不動,我還等了好久,以為是正常情況,最后我是通過重啟軟件來解決這個問題的。圖5-13嘉立創(chuàng)Gerber文件導出選項圖本章節(jié)主要介紹了系統(tǒng)的實物制作以及系統(tǒng)功能測試,測試結(jié)果說明本系
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026廣西柳州市苗圃林場招聘編外聘用人員1人備考考試題庫附答案解析
- 煉油生產(chǎn)車間管理制度
- 2026河南鄭州市新徽維綱中學、鄭州牟新實驗學校招聘參考考試題庫附答案解析
- 食品生產(chǎn)管理制度范本
- 漁業(yè)生產(chǎn)車間制度
- 企業(yè)安全生產(chǎn)三個一制度
- 工件生產(chǎn)車間管理制度
- 2026新疆和田地區(qū)興和集團騰達運輸有限公司招聘參考考試題庫附答案解析
- 生產(chǎn)計劃采購制度
- 2026浙江杭州錢江小學非編教師招聘參考考試題庫附答案解析
- 麻醉科2025年度工作總結(jié)與2026年發(fā)展規(guī)劃
- 2026屆安徽省合肥一中八中、六中生物高一上期末聯(lián)考試題含解析
- 中西醫(yī)結(jié)合治療慢性病康復優(yōu)勢
- 診所醫(yī)生營銷培訓課件
- 2026年開封大學單招職業(yè)傾向性測試題庫及答案詳解1套
- 2025遼寧葫蘆島市市直部分事業(yè)單位招聘高層次人才84人參考考試試題及答案解析
- 《小學數(shù)學課程與教學論》課程教學大綱
- 部隊手榴彈使用課件
- 消化系統(tǒng)疾病健康教育宣教
- 河南省洛陽市2023-2024學年九年級第一學期期末質(zhì)量檢測數(shù)學試卷(人教版 含答案)
- Unit-3-Reading-and-thinking課文詳解課件-高中英語人教版必修第二冊
評論
0/150
提交評論