基于單片機的家用智能垃圾桶_第1頁
基于單片機的家用智能垃圾桶_第2頁
基于單片機的家用智能垃圾桶_第3頁
基于單片機的家用智能垃圾桶_第4頁
基于單片機的家用智能垃圾桶_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

基于單片機的家用智能垃圾桶設計摘要隨著城鎮(zhèn)化進程的加快和人口數(shù)量的增長,垃圾處理已經(jīng)成為日益迫切需要解決的問題。傳統(tǒng)的垃圾箱只能將垃圾暫時存放而且無法進行分揀處理,不僅對資源造成浪費,也對環(huán)境造成污染。并且智能家居產(chǎn)品在智能家居產(chǎn)品中的地位越來越高,隨著人們生活水平的不斷提高,智能家居產(chǎn)品已經(jīng)逐漸成為人們生活中必不可少的一部分。其中,作為智能家居重要組成部分的家用智能垃圾桶也逐漸受到重視。一款基于單片機技術(shù)設計的家用智能垃圾桶,旨在提升垃圾桶的使用體驗和環(huán)保性能。本文設計的家用智能垃圾桶是基于單片機控制的,在設計過程中,我們考慮了垃圾桶的材質(zhì)、容量、外觀設計等因素,并且我們還注意到了其安全性與可靠性,確保垃圾桶在使用過程中不會出現(xiàn)故障或意外情況,相較于傳統(tǒng)的垃圾桶,本文設計的智能垃圾桶可以通過語音識別技術(shù)實現(xiàn)垃圾的自動識別并用語音提示用戶正確投放垃圾,如果桶內(nèi)垃圾超過一定重量時,就會通過壓力傳感器技術(shù)觸發(fā)蜂鳴器報警,提醒用戶及時更換垃圾袋,并利用溫度傳感器技術(shù)實時監(jiān)控桶內(nèi)溫度并在超出設定值溫度情況下報警,總之,該垃圾桶具有節(jié)約空間、環(huán)保、方便、智能化等特點,是現(xiàn)代家庭不可或缺的生活必需品。綜上所述,本文設計的這款家用智能垃圾桶在整體設計上具有更加人性化的使用體驗,相比傳統(tǒng)垃圾桶能夠更好的滿足用戶的需求,提升垃圾桶的使用效率和便捷性,將為人們的生活帶來更多便利和舒適。關鍵詞:單片機;垃圾分類;智能;環(huán)保AbstractWiththeaccelerationofurbanizationandthegrowthofpopulation,garbagedisposalhasbecomeanincreasinglyurgentproblemtobesolved.Traditionaldustbinscanonlytemporarilystoregarbageandcannotbesorted,resultinginwasteofresourcesandpollutiontotheenvironment.Andsmarthomeproductsinthesmarthomeproductsmoreandmorehighstatus,withthecontinuousimprovementofpeople'slivingstandards,smarthomeproductshavegraduallybecomeanindispensablepartofpeople'slives.Amongthem,asanimportantpartofsmarthome,householdsmarttrashcanhasgraduallyattractedattention.Ahouseholdsmarttrashcanbasedonsingle-chipmicrocomputertechnologyisdesignedtoimprovetheuseexperienceandenvironmentalprotectionperformanceofthetrashcan.Inthedesignprocess,weconsiderthematerial,capacity,appearancedesignandotherfactorsofthegarbagecan,andwealsopayattentiontoitssafetyandreliability,toensurethattherewillbenofailureoraccidentintheuseofthegarbagecan.Comparedwiththetraditionalgarbagecan,Thesmarttrashcandesignedinthispapercanrealizetheautomaticidentificationofgarbagethroughvoicerecognitiontechnologyandprompttheusertoputthegarbagecorrectly.Ifthegarbageinthebucketexceedsacertainweight,thepressuresensortechnologywilltriggerthebuzzeralarmtoremindtheusertoreplacethegarbagebagintime.Thetemperaturesensortechnologyisusedtomonitorthetemperatureinthebucketinrealtimeandalarmwhenthetemperatureexceedsthesetvalue.Inshort,thetrashcanhasthecharacteristicsofsavingspace,environmentalprotection,convenienceandintelligence,whichisanindispensablenecessityformodernfamilies.Tosumup,thehouseholdintelligenttrashcandesignedinthispaperhasamorehumanizeduseexperienceintheoveralldesign.Comparedwiththetraditionaltrashcan,itcanbettermeettheneedsofusers,improvetheefficiencyandconvenienceofthetrashcan,andbringmoreconvenienceandcomforttopeople'slives.Keywords:Singlechipmicrocomputer;Garbageclassification;Intelligence;Environmentalprotection目錄摘要 IAbstract II目錄 IVContents V第1章緒論 11.1課題研究背景及意義 11.2國內(nèi)外智能家用垃圾桶的研究現(xiàn)狀 2第2章家用智能垃圾桶的總體設計 42.1功能概述及設計原理 42.2各模塊方案選型 5第3章系統(tǒng)硬件設計與實現(xiàn) 83.1系統(tǒng)硬件電路設計 83.2微控制器模塊設計 93.3語音控制模塊設計 113.4溫度傳感器模塊設計 13.5壓力傳感器模塊設計 13.6本章小結(jié) 1第4章系統(tǒng)軟件設計與實現(xiàn) 14.1控制系統(tǒng)程序設計 14.2語音模塊程序設計 14.3溫度傳感器模塊程序設計 14.4壓力傳感器模塊程序設計 1第5章系統(tǒng)調(diào)試與實現(xiàn) 15.1整體調(diào)試 15.2控制系統(tǒng)整體評估 15.3本章小結(jié) 1第6章總結(jié)與展望 16.1總結(jié) 16.2展望 1致謝 1參考文獻 1ContentsAbstract(inChinese) IAbstract(inEnglish) IIChapter1:Introduction 11.1Backgroundandsignificanceoftheproject 11.2Researchstatusofsmarthouseholdtrashcanathomeandabroad 2Chapter2:Theoveralldesignofhouseholdsmarttrashcans 42.1Functionaloverviewanddesignprinciples 42.2Selectionofeachmodulescheme 5Chapter3:SystemHardwareDesignandImplementation 83.1Systemhardwarecircuitdesign 13.2Powersupplycircuitdesign 13.3Voicecontrolmoduledesign 13.4Temperaturesensormoduledesign 13.5Pressuresensormoduledesign 13.6ChapterSummary 1Chapter4:SystemSoftwareDesignandImplementation 14.1Controlsystemprogramdesign 14.2Voicemoduleprogramming 14.3Temperaturesensormoduleprogramdesign 14.4Pressuresensormoduleprogramming 1Chapter5:SystemDebuggingandImplementation 15.1OverallDebugging 15.2Overallevaluationofthecontrolsystem 15.3ChapterSummary 1Chapter6:Summaryandoutlook 16.1Summary 16.2Outlook 1Thanks 1References 1第3章系統(tǒng)硬件設計與實現(xiàn)3.1系統(tǒng)電路設計本設計硬件系統(tǒng)包括單片機控制芯片、電源模塊,壓力傳感器HX711、溫度傳感器DS18B20、語音模塊HLK-V20、SG90舵機等模塊,本系統(tǒng)的構(gòu)建意義在于能夠通過語音控制成功使垃圾桶開蓋并實現(xiàn)溫度檢測、溫度報警、超重報警等功能。部分控制功能如下圖(圖3.1)所示:圖3.1系統(tǒng)部分控制功能Fig.3.1Systemcontrolfunctions系統(tǒng)功能概括:主控/輔控MCU:單片微型計算機,本設計的核心部分,檢測系統(tǒng)狀態(tài),處理溫度傳感器、壓力傳感器的數(shù)據(jù)等功能。電源接口及電源開關:外接5V電源,根據(jù)當前需要,通過開關來控制垃圾桶。重量檢測及重量數(shù)值顯示屏:通過與垃圾桶連接的壓力傳感器HX711來檢測當前垃圾桶內(nèi)部垃圾的重量,具體數(shù)值將通過外接顯示屏進行顯示。當垃圾重量超出設定閾值時,觸發(fā)蜂鳴器報警。溫度檢測:通過溫度傳感器DS18B20實時監(jiān)測筒內(nèi)溫度,當溫度超過設定閾值時,觸發(fā)蜂鳴器報警。語音檢測及語音輸出:用戶通過發(fā)出指令來控制垃圾桶,當語音模塊HLK-V20檢測到該語音指令時,輸出高電平信號,通過單片機檢測語音模塊發(fā)出的信號來驅(qū)動舵機使垃圾桶打開桶蓋,并且語音模塊會給予用戶反饋信號。例如:用戶說出:“可回收垃圾”,此時語音模塊進行對應指令檢測,與該垃圾桶相對應引腳從默認低電平轉(zhuǎn)變?yōu)楦唠娖?,隨后通過舵機來打開垃圾桶,此時垃圾桶會說:“已為您打開可回收垃圾桶”。3.2微控制器模塊設計主控MCU選用STC89C52RC單片機芯片,STC89C52RC是一款由中國的STC微電子公司生產(chǎn)的常見的8位單片機,該單片機采用MCS-51指令集架構(gòu)并且具有豐富的外設和強大的功能特性,被廣泛應用于嵌入式系統(tǒng)、自動化控制、電子設備等領域,并且它的價格相對于傳統(tǒng)單片機更便宜,更受人們青睞。它采用高性能的8位CPU內(nèi)核,支持不同種類的工作頻率,其中最常見的工作頻率為11.0592MHz。并且擁有4KB的閃存程序存儲器(內(nèi)置ISP下載功能)、128字節(jié)RAM數(shù)據(jù)存儲器。而且它還具有32個通用I/O端口,方便外部設備的連接與控制,它內(nèi)置定時器和計數(shù)器,可用于精確的定時和脈沖計數(shù),并且支持UART串行通信接口與外部設備進行數(shù)據(jù)傳輸,并且具有豐富的中斷控制功能,可實現(xiàn)對外部事件的及時響應。圖3.2STC89C52RC單片機最小系統(tǒng)電路原理圖Fig.3.2minimumsystemcircuitschematicdiagramofSTC89C52RCMCU上圖包含了晶振電路、復位電路、電源濾波電路、芯片電源電路、I/O口驅(qū)動電路等,在這里詳細介紹前兩種電路。1.晶振電路:晶振電路(圖3.3)由晶振、兩個電容和兩個電阻組成。晶振一般是一個陶瓷諧振器,它為系統(tǒng)提供了穩(wěn)定的振蕩頻率,兩個電容用于調(diào)節(jié)晶振的工作條件,一般為兩個33pF電容,而兩個電阻則是用于提供合適的電阻值確保晶振能夠正常工作,一般建議使用兩個10kΩ的電阻,晶振的引腳分別連接到單片機的XTAL1和XTAL2引腳。XTAL1是晶振的輸入引腳,XTAL2是晶振的輸出引腳。通過正確連接晶振電路,晶振將提供一個穩(wěn)定的時鐘信號給單片機,使其能夠按照設定的頻率進行運算。圖3.3晶振電路Fig.3.3Crystalcircuit2.復位電路:復位電路(圖3.4)主要由一個電阻、一個電容和一個復位按鍵構(gòu)成。電阻連接到單片機的復位引腳(RST),電容并聯(lián)在電阻上,而復位按鍵則連接到電容的另一端,當按下復位按鍵時,電容會短暫地將復位引腳拉低,觸發(fā)單片機復位。電阻和電容的數(shù)值可根據(jù)實際情況進行調(diào)整,一般選擇10kΩ和10μF,復位電路的作用是確保單片機在啟動時處于可控狀態(tài),并避免不確定的初始狀態(tài)導致系統(tǒng)異常。通過正確連接復位電路,當需要復位單片機時,可以通過按下復位按鍵或?qū)⑼獠繌臀恍盘栆_拉低來實現(xiàn)單片機的復位操作。圖3.4復位電路Fig.3.4Resetcircuit輔控芯片選用ArduinoUNO單片機,通過連接語音模塊,實現(xiàn)垃圾桶的開關蓋的控制,同時語音模塊的通電由主控芯片STC89C52RC來控制,該單片機是一款基于ATmega328P微控制器的開源單板電腦,由意大利的開發(fā)團隊設計制造,采用AVR8位架構(gòu),主頻為16MHz,具有32KB的閃存、2KB的SRAM和1KB的EEPROM存儲器。并且該單片機具有14個數(shù)字輸入/輸出引腳(其中6個可用作PWM輸出)和6個模擬輸入引腳。這些引腳可以連接傳感器、執(zhí)行器和其他外部設備。在接口通信方面ArduinoUNO支持串行通信,包括通過USB和UART。它還具有I2C和SPI接口,可用于連接外部設備和傳感器。圖3.5ArduinoUNO開發(fā)板原理圖Fig.3.5SchematicdiagramofArduinoUNOdevelopmentboard編譯環(huán)境介紹:ArduinoUNO使用ArduinoIDE(集成開發(fā)環(huán)境)進行編程,開發(fā)者可以使用C/C++語言編寫代碼,并通過簡單的編程接口進行上傳和調(diào)試。ArduinoIDE支持各種庫和示例代碼,方便用戶快速上手。并且其硬件設計和軟件代碼都在開源許可下發(fā)布,任何人都可以自由使用、修改和分發(fā)。3.3語音控制模塊設計本設計需要滿足語音控制功能,所以需要v選用性價比較高的語音模塊,由海凌科公司生產(chǎn)的V20語音模塊就是很好的選擇,模塊具有豐富的系統(tǒng)外設,包括UART/I2C/SPI/PWM/I2S/DAC/GPIO/DMic/AMic。下圖為模塊系統(tǒng)功能框圖(圖3.5)和引腳分布圖(圖3.6):圖3.5系統(tǒng)功能框圖Fig.3.5Systemfunctionalblockdiagram圖3.6引腳分布圖Fig.3.6Pindistributiondiagram該語音模塊共有16個引腳,各引腳具體功能如下表所示(表3.1):表3.1模塊具體引腳介紹Table3.1Introductionofspecificpinsofthemodule引腳類型說明1IGeneralpurposeinput/output2、3、4、5、10、11、12I/OGeneralpurposeinput/outputVCCPOWER電源(3.6V-5V)GNDGNDGNDSPK+/-O功放差分輸出P/N端MIC-/+IMIC1差分輸入N/P端RX/TXI/OUartrx/Uarttx模塊內(nèi)置5V轉(zhuǎn)3.3V、3.3V轉(zhuǎn)1.2VLDO為芯片供電,RC12MHz時鐘源和PLL鎖相環(huán)時鐘源,置POR(PoweronReset)、低電壓檢測和看門狗,32bitRISC內(nèi)核,運行頻率為240M,支持DSP指令集以及FPU浮點運算單元,F(xiàn)FT加速器:最大支持1024點復數(shù)FFT/IFFT運算或者是2048點的實數(shù)FFT/IFFT運算,并且擁有定制化語音算法算子。存儲:內(nèi)置高速SRAM,內(nèi)置2MBFLASH音頻輸入輸出:支持1路模擬Mic輸入,支持雙聲道DAC輸出,支持I2Sinput/output外圍接口:它最多支持10個GPIO,所有GPIO均可配置為外部中斷輸入和喚醒源,1個標準SPIMaster接口,最高速率30MHz,1個SPISlave接口最高速率30MHz,1個全雙工UART最高速率3Mbps,1個I2C主/從控制器最高速率400kHz,2個PWM輸出1個12-bitSAR-ADC最大450Khz采樣率。3.4溫度傳感器模塊設計DS18B20是一款數(shù)字溫度傳感器,它的內(nèi)部結(jié)構(gòu)如下圖(圖3.7)所示,它可以直接通過數(shù)字接口與微處理器或單片機連接,提供高精度的溫度測量功能。圖3.7DS18B20內(nèi)部結(jié)構(gòu)圖Fig.3.7InternalstructureofDS18B201.DS18B20的概述(1)DS18B20是DALLAS公司生產(chǎn)的一線制數(shù)字溫度傳感器;(2)具有3引腳T0-92小體積封裝形式;(3)溫度測量范圍為一55℃~+125℃;(4)電源供電范圍為3V~5.5V;(5)可編程為9位~12位數(shù)字表示;(6)測溫分辨率可達0.0625℃,被測溫度用符號擴展的16位數(shù)字量方式串行輸出;(7)其工作電源既可在遠端引入,也可采用寄生電源方式產(chǎn)生;(8)多個DS18B20可以并聯(lián)到3根(VDD、DQ和GND)或2根(利用DQ線供電、GND)線上,CPU只需一根端口線就能與總線上的多個串聯(lián)的DS18B20通信,占用微處理器的端口較少,可節(jié)省大量的引線和邏輯電路。一線總線獨特而且經(jīng)濟的特點,使用戶可輕松地組建傳感器網(wǎng)絡,為測量系統(tǒng)的構(gòu)建引入全新概念。2.DS18B20溫度傳感器的特點DS18B20采用了數(shù)字信號輸出,采用單總線接口進行通信,因此只需要一個I/O引腳就可以完成數(shù)據(jù)傳輸和控制。除此之外它還具有以下特點:(1)高精度:DS18B20具有±0.5°C的溫度測量精度,在-10°C到+85°C范圍內(nèi)。(2)寬工作電壓范圍:從3.0V到5.5V的工作電壓范圍,使得DS18B20可以廣泛應用于各種電子設備中。(3)不需要外部元件:DS18B20內(nèi)部集成了溫度轉(zhuǎn)換器和序列通信引擎,不需要外部元件即可實現(xiàn)溫度測量和通信功能。(4)多樣化封裝:DS18B20有TO-92、TO-220、SOIC等多種封裝形式(圖3.8),適合不同的應用場景。圖3.8DS18B20封裝示例圖Fig.3.8DS18B20packagingexample我們使用DS18B20進行溫度測量時可以直接讀取數(shù)字輸出,并通過相應的計算公式將其轉(zhuǎn)換為攝氏度或華氏度溫度值。由于其便捷性和精準度,DS18B20被廣泛應用于溫度測量領域,包括家用電器、工業(yè)自動化、醫(yī)療設備等各個領域。在本設計中DS18B20溫度傳感器的I/O口與STC89C52RC單片機的P37的引腳連接,如圖所示(圖3.9):圖3.9DS18B20電路原理圖Fig.3.9SchematicdiagramoftheDS18B20circuit3.5壓力傳感器模塊設計稱重方面選用了HX711壓力傳感器,它的工作原理(圖3.10)如下,圖3.10HX711壓力傳感器工作原理圖Fig.3.10WorkingprinciplediagramofHX711pressuresensorHX711是一款專為高精度電子秤而設計的24位A/D轉(zhuǎn)換器芯片,電路原理圖如下圖所示(圖3.11)。圖3.11HX711電路原理圖Fig.3.11SchematicdiagramoftheHX711circuit與同類型其它芯片相比,該芯片集成了包括穩(wěn)壓電源、片內(nèi)時鐘振蕩器等其它同類型芯片所需要的外圍電路,具有集成度高、響應速度快、抗干擾性強等優(yōu)點。降低了電子秤的整機成本,提高了整機的性能和可靠性。該芯片與后端MCU芯片的接口和編程非常簡單,所有控制信號由管腳驅(qū)動,無需對芯片內(nèi)部的寄存器編程。輸入選擇開關可任意選取通道A或通道B,與其內(nèi)部的低噪聲可編程放大器相連,通道A的可編程增益為128或64,對應的滿額度差分輸入信號幅值分別為±20mV或±40mV。通道B則為固定的32增益,用于系統(tǒng)參數(shù)檢測。芯片內(nèi)提供的穩(wěn)壓電源可以直接向外部傳感器和芯片內(nèi)的A/D轉(zhuǎn)換器提供電源,系統(tǒng)板上無需另外的模擬電源。芯片內(nèi)的時鐘振蕩器不需要任何外接器件。上電自動復位功能簡化了開機的初始化過程。711模塊A通道帶有128倍信號增益,可以將5mV的電壓放大128倍,然后采樣輸出24bitAD轉(zhuǎn)換的值,單片機通過指定時序?qū)?4bit數(shù)據(jù)讀出。如何將AD值反向轉(zhuǎn)換為重力值:假設重力為AKg,(x<5Kg),測量出來的AD值為y傳感器輸出,發(fā)送給AD模塊的電壓為AKg*4.3mV/5Kg=0.86AmV經(jīng)過128倍增益后為128*0.86A=110.08AmV轉(zhuǎn)換為24bit數(shù)字信號為110.08AmV*224/4.3V=429496.7296A所以y=429496.7296A因此得出A=y/429496.7296,在后續(xù)的程序編寫過程中,我們會用到所求的y值。下圖為官方推薦的稱重電路參考圖(圖3.12)圖3.12HX711經(jīng)典工作電路Fig.3.12HX711classicaloperatingcircuit本設計對官方推薦的電路進行參考,將該模塊的DT、SCK與單片機的P20、P21接口連接。3.6本章小結(jié)本章詳細介紹了選用模塊的原理圖及工作電路,通過結(jié)合下圖(圖3.13)對本設計的工作流程進行整體敘述,首先將MCU進行通電,通過MCU激活DS18B20溫度傳感器、HX711壓力傳感器及語音模塊HLK-V20,此時垃圾桶的兩個傳感器對桶內(nèi)溫度及重量處于實時監(jiān)測狀態(tài),并且桶內(nèi)垃圾的具體重量將顯示在LCD1602上,當其中某個數(shù)據(jù)變化超出了設定的閾值將會觸發(fā)蜂鳴器報警而語音模塊處于待機狀態(tài),等待用戶發(fā)出語音指令,當用戶發(fā)出對應指令時,該引腳從默認的低電平轉(zhuǎn)化為高電平,通過繼電器將SG90舵機打開,舵機打開后進行5秒的延遲,待用戶扔完垃圾后自動閉合,至此流程全部完成。圖3.13智能垃圾桶工作流程圖Fig.3.13Smarttrashcanworkflowchart第4章系統(tǒng)軟件設計與實現(xiàn)4.1控制系統(tǒng)程序設計在控制系統(tǒng)中,我們選用傳統(tǒng)的51單片機STC89C52RC作為主控芯片,ArduinoUNO單片機作為輔控芯片,運用Keil5和ArduinoIDE進行程序的編程,在程序設計中,需要對Arduino編程語言及C語言進行學習,在STC89C52RC單片機中,需要了解溫度傳感器及壓力傳感器與主控MCU的串口通信、LCD1602顯示屏的初始化、閾值設定等程序,在ArduinoUNO單片機的編程中,我們需要學習舵機程序庫的調(diào)用、舵機初始化設計、舵機旋轉(zhuǎn)角度、對外置語音模塊的函數(shù)解讀、數(shù)據(jù)存儲以及程序循環(huán)等相關程序。4.1.1STC89C52RC主控系統(tǒng)的編程在STC89C52RC單片機中,需要對DS18B20溫度傳感器和HX711壓力傳感器進行程序編程。首先對子文件進行編寫,編寫延遲函數(shù),并對蜂鳴器引腳、溫度傳感器引腳、壓力傳感器引腳及LCD1602顯示屏引腳進行定義,并檢查實物接線情況,確保各模塊接線正確。圖4.1主控芯片程序讀寫流程Fig.4.1Maincontrolchipprogramreadandwriteflow主控芯片的主要作用是將所有模塊進行上電,對模塊數(shù)據(jù)及工作情況進行檢測,并將各模塊的相關程序進行整合,確保系統(tǒng)正常運行,同時收集并反饋信號到顯示屏或蜂鳴器上,使相關功能都能夠精準實現(xiàn)。4.1.2ArduinoUNO輔控系統(tǒng)的編程在ArduinoUNO單片機中,需要對HLK-V20語音模塊及舵機控制角度進行編程,通過單片機與語音模塊的TX、RX引腳接收到的十六進制數(shù)字信號來反饋到舵機相關引腳,執(zhí)行相關動作,程序流程如圖所示。圖4.2輔控芯片程序讀寫流程Fig.4.2Programreadingandwritingflowofauxiliarycontrolchip對于語音功能的實現(xiàn),需要對Arduino編程語言和模塊輸出函數(shù)信號的讀取進行了解。首先是對Arduino語言的運用,Arduino語言是一種基于C/C++語言的簡化版本,專門用于Arduino開發(fā)板上的編程。Arduino語言基本上由兩個主要函數(shù)組成:setup()和loop()。setup()函數(shù)用于初始化變量、引腳模式等;而loop()函數(shù)則是用于循環(huán)執(zhí)行,是實際的控制邏輯部分。當初次打開ArduinoIDE時,就可以看到以下界面。圖4.3Arduino語言的主要函數(shù)Fig.4.3.ThemainfunctionsoftheArduinolanguage選用Arduino語言的優(yōu)點:(1)數(shù)據(jù)類型,如整型(int)、浮點型(float)、布爾型(boolean)等。(2)控制結(jié)構(gòu),如if語句、for循環(huán)、while循環(huán)等,用于實現(xiàn)條件判斷和循環(huán)控制。(3)自定義函數(shù):用戶可以自定義函數(shù)來組織代碼,提高代碼的可讀性和復用性。(4)數(shù)據(jù)庫:Arduino語言提供了豐富的庫,包括用于控制各種傳感器、執(zhí)行器的庫,我們可以通過庫快速實現(xiàn)各種功能。(5)串口通信:Arduino語言內(nèi)置了Serial庫,方便與計算機或其他設備進行串口通信。在編寫函數(shù)時,我們需要調(diào)用Servo數(shù)據(jù)庫,用來操縱舵機,同時定義一個變量a,它的主要作用是用于讀取和儲存串口收到的信息,接著對舵機的初始角度進行定義,至于垃圾桶的開關,我們只需要控制舵機的開關角度就可以了。在這里需要注意的是,需要定義兩個delay延遲函數(shù),作為舵機轉(zhuǎn)動時間及扔垃圾的時間,接著對RX串口信號接收的語音函數(shù)進行解讀,這部分在語音模塊中進行具體介紹,接著對四個舵機進行初始定義及串口波特率設置,及輸出引腳的電平定義,隨后調(diào)用loop()函數(shù)對垃圾桶的程序進行循環(huán)。4.2語音模塊程序設計語音模塊我們選用的是海凌科公司的V20語音模塊,在語音模塊的設計中我們需要進入海凌科公司官網(wǎng)進行產(chǎn)品定制,在通信串口中我們只需設置TX引腳,如下如所示:圖4.4語音模塊通信串口設置Fig.4.4CommunicationserialportSettingsofvoicemodule語音模塊通過十六進制進行信號發(fā)送,其中00表示全部關閉,F(xiàn)F表示全部開啟,而主控芯片可以通過RX接收端進行函數(shù)解析,在上一章中我們講到定義變量a,在語音模塊中我們需要對它進行使用,通過voidopreator數(shù)據(jù)和switch語句對V20發(fā)出的信號進行函數(shù)解析,通過解析來打開對應指令的垃圾桶。Switch語句的使用示例如下圖所示:圖4.5Switch語句的使用示例Fig.4.5.ExamplesofSwitchstatementsinaction當switch語句執(zhí)行時,變量值會被計算,然后與每個case后面的值逐個比較,直到找到匹配的值為止。一旦找到匹配的值,將會執(zhí)行對應case后面的代碼塊,并且在執(zhí)行完該代碼塊后會遇到break,從而跳出整個switch語句。如果沒有找到匹配的值,則會執(zhí)行default后面的代碼塊。4.3溫度傳感器模塊程序設計在溫度傳感器程序設計中,需要對DS18B20的i/o口與主控芯片STC89C52RC的P37引腳進行連接,在數(shù)據(jù)讀取等方面,需要引用AT24C02的子文件名,因為在Keil5中,沒有關于STC芯片的元器件庫。此外,需要對蜂鳴器的引腳進行連接,引腳為P25,并對LCD的數(shù)據(jù)讀取進行編譯,對延遲函數(shù)、蜂鳴器報警、定時器等,程序編寫流程及執(zhí)行流程如下圖所示:圖4.6溫度傳感器運行圖Fig.4.6OperationdiagramoftemperaturesensorDS18B20在編程中需要對寫時序和讀時序需要注意,在寫時序方面,有兩種類型的寫時序:寫1時序和寫0時序??刂破饔脤憽?”時序?qū)戇壿嫛?”到DS18B20,用寫“0”時序?qū)戇壿嫛?”到DS18B20。所有寫時序必須持續(xù)最少60us,每個寫時序之間必須有至少1us的恢復時間。兩種類型的寫時序都從控制器把總線拉低開始。為產(chǎn)生寫“1”時序,在將總線拉低后,總線控制器必須在15ps內(nèi)釋放總線??偩€釋放后,5K的上拉電阻將總線電平抬高。為產(chǎn)生寫“0”時序,在將總線拉低后,控制器在整個時序內(nèi)必須持續(xù)控制總線為低電平(至少60us)。DS18B20在控制器發(fā)出寫時序后的15`60us的時間窗口內(nèi)采樣總線。如果在采樣窗口期間總線為高,“1”就被寫入DS18B20:如果在采樣窗口期間總線為低,“0”就被寫入DS18B20。當控制器發(fā)出讀時序時,DS18B20可以發(fā)送數(shù)據(jù)到控制器。所有讀時序必須持續(xù)最少60us,每個讀時序之間必須有至少1us的恢復時間。讀時序從控制設備將總線拉低至少1us后釋放總線開始??刂破鲉幼x時序后,DS18B20開始在總線上傳送“1”或“0”時,DS18B20通過保持總線為高發(fā)送“1”,將總線拉低發(fā)送“0”發(fā)送“0”時,DS18B20在時序結(jié)束時釋放總線,總線被上拉電阻拉回到高電平空閑狀態(tài)。從DS18B20輸出的數(shù)據(jù)在啟動讀時序的下降沿后15us,內(nèi)有效。因此,控制器必須在時序開始的15us內(nèi)釋放總線然后采樣總線狀態(tài)。通過讀寫時序,控制器可以發(fā)出控制命令,對DS18B20進行讀寫操作。4.4壓力傳感器模塊程序設計在壓力傳感器的編程中,首先要對HX711的DOUT和SCK引腳與主控芯片進行連接,在第三章的模塊原理圖可知,這兩個引腳與單片機的P31、P30引腳相連,程序編寫和運行流程如下圖所示:圖4.7溫度傳感器運行圖Fig.4.7Operationdiagramoftemperaturesensor在進行AD轉(zhuǎn)換之前,通常需要對HX711進行校準,以確保測量的準確性。校準的主要目的是確定傳感器的零點和比例因子,即零位偏移和滿量程值。校準步驟如下:(1)設置零點偏移:在沒有施加壓力或負載的情況下,將傳感器置于零位,記錄此時的ADC讀數(shù)作為零點偏移。(2)設置滿量程值:施加已知負載或壓力到傳感器上,記錄此時的ADC讀數(shù)作為滿量程值。(3)計算比例因子:通過已知的零點偏移和滿量程值,計算出比例因子,用于將ADC讀數(shù)轉(zhuǎn)換為相應的壓力值。 完成初始化和校準之后,就可以開始進行數(shù)據(jù)讀取了。數(shù)據(jù)讀取的主要步驟包括:啟動AD轉(zhuǎn)換:通過向HX711發(fā)送適當?shù)拿?,啟動AD轉(zhuǎn)換過程。等待轉(zhuǎn)換完成:等待AD轉(zhuǎn)換完成,通常需要一定的轉(zhuǎn)換時間,時間長度取決于所選擇的增益。讀取ADC數(shù)據(jù):一旦轉(zhuǎn)換完成,從HX711讀取ADC數(shù)據(jù),可以通過串口輸出或者直接使用在微控制器中進行進一步處理。讀取到的ADC數(shù)據(jù)通常是一個數(shù)字值,需要根據(jù)之前的校準結(jié)果將其轉(zhuǎn)換為相應的物理量,例如壓力或負載值。這個過程可以通過簡單的比例縮放和偏移來完成。第5章系統(tǒng)調(diào)試與實現(xiàn)5.1整體調(diào)試在本章節(jié)中進行垃圾桶功能的整體調(diào)試,完整實物圖如下圖所示(圖5.1).圖5.1家用智能垃圾桶實物圖Fig.5.1Physicalpictureofhouseholdsmarttrashcan首先是對垃圾桶開蓋功能的調(diào)試,通過ArduinoUNO開發(fā)板及語音模塊進行控制,語音模塊需要設置配置模式,此時語音模塊的TX、RX與單片機的TX、RX相連,語音模塊通電后,首先是電源指示燈亮起,當撥動語音模塊上的工作開關時,其他指示燈全部亮起,如圖5.1所示。圖5.2語音模塊狀態(tài)圖Fig.5.2Statediagramofthespeechmodule在程序中默認輸出引腳為高電平,所以在啟動時垃圾桶蓋應全部打開。當說出指令時開發(fā)板上的TX和RX指示燈將快速閃爍一次,隨后相應動作完成。在正常使用中,應先說出全部關閉指令,當垃圾桶蓋全部關閉時再調(diào)試單個垃圾桶的具體功能,當說出“我要扔垃圾”指令時,垃圾桶會播報說:“請您說出垃圾的名字或種類”,指引用戶進行垃圾分類。(1)對可回收垃圾桶的調(diào)試:如圖5.4所示,首先對垃圾桶內(nèi)部的舵機進行接線,可回收垃圾桶的舵機信號線對應開發(fā)板上的6號接口,語音模塊的十六進制信號為0x02,由于開發(fā)板上的電源引腳有限,同時連接四個舵機無法實現(xiàn),所以需要通過從單片機上引出5V電壓及GND(地線),以供四個舵機的電源連接,連接完成后,進行語音指令測試,當說出“可回收垃圾”時,可回收垃圾桶開蓋,開蓋時間為三秒,用于用戶扔垃圾,三秒后自動關閉,隨后對垃圾分類播報系統(tǒng)進行測試,說出幾種可回收垃圾物品的名字如易拉罐、舊書包、報紙、塑料瓶等,測試垃圾桶的語音識別情況,經(jīng)過測試可回收垃圾桶成功開蓋,至此可回收垃圾桶調(diào)試完畢。圖5.3可回收垃圾桶的調(diào)試圖Fig.5.3Theadjustmentoftherecyclablebinattempts(2)對有害垃圾桶的調(diào)試:與上文的調(diào)試流程一致,但是舵機的信號線有所不同,有害垃圾桶連接的是開發(fā)板上的8號引腳,語音模塊的十六進制信號為0x04,線路連接完成后開始調(diào)試,當說出“有害垃圾時”,有害垃圾桶打開(圖5.5),三秒后自動關閉,說明開蓋功能實現(xiàn),隨后再測試垃圾識別播報功能,以“電池、化妝品、農(nóng)藥瓶”等有害垃圾名詞測試,測試過程中有害垃圾桶成功開蓋,至此有害垃圾桶調(diào)試完畢。圖5.4有害垃圾桶的調(diào)試圖Fig.5.4Theadjustmentofharmfultrashcansattempts(3)對廚余垃圾桶的調(diào)試:廚余垃圾桶的舵機信號線與開發(fā)板上的5號引腳相連,語音模塊的十六進制信號為0x01,線路連接完成后進行調(diào)試(圖5.6),當說出廚余垃圾時看,對應的桶蓋打開,說明語音控制功能實現(xiàn),再測試垃圾識別播報功能,以”菜葉、蛋殼、骨頭“等廚余垃圾名詞進行測試,垃圾桶成功開蓋,至此廚余垃圾桶調(diào)試完畢。圖5.5廚余垃圾桶的調(diào)試圖Fig.5.5Theadjustmentofthekitchenwastebinattempts(4)對其他垃圾桶的測試:ArduinoUNO的開發(fā)板的7號引腳與其他垃圾桶的舵機信號線相連,語音模塊的十六進制信號為0x03,完成線路連接進行調(diào)試(圖5.6),當說出其他垃圾時,垃圾桶蓋成功打開,三秒后自動關閉,說明語音控制功能實現(xiàn),再以“杯子、瓦片、一次性筷子”等其他垃圾的名詞進行測試語音播報功能,垃圾桶成功開蓋,至此其他垃圾桶調(diào)試完畢。圖5.6其他垃圾桶的測試圖Fig.5.6Testplotsofotherbins(5)全部打開/關閉:全部打開/關閉指令在語音模塊中對應的十六進制信號為FF/00,當說出全部打開指令時,四個垃圾桶全部打開(圖5.7),并不自動關閉,說明全部打開功能已經(jīng)實現(xiàn),再測試全部關閉功能,說出指令后垃圾桶全部關閉(圖5.8),至此基于ArduinoUNO單片機的垃圾桶語音控制、語音播報功能成功實現(xiàn),在這里需要注意的是:語音模塊必須連接在開發(fā)板電源上,不可通過面包板進行連接,在通過面包板連接時,會導致電流過小,當執(zhí)行全部打開或關閉指令時,語音模塊會出現(xiàn)重啟狀況。圖5.7全部打開功能調(diào)試圖Fig.5.7Allonfunctiontuningattempted圖5.8全部關閉功能調(diào)試圖Fig.5.8All-offfunctiontuningisattempted對超重報警功能的調(diào)試:超重報警功能與溫度報警都由蜂鳴器來實現(xiàn),所以在程序上要對兩種報警的聲音進行區(qū)別,在程序中通過延遲函數(shù)修改蜂鳴器發(fā)出聲音的頻率以區(qū)別兩個報警,壓力傳感器存在無物體但有示數(shù)的情況,所以要設置一個復位鍵來避免這種情況的發(fā)生。HX711壓力傳感器在調(diào)試過程當中需要實現(xiàn)的功能有:(1)在LCD1602顯示屏上顯示當前重量,具體顯示內(nèi)容為WEIGHT:0000g。(2)設置閾值為4000g,當超出閾值時,WEIGHT變?yōu)镋RROR,由于壓力傳感器的最大量程是5000g,所以在LCD1602上還會顯示當前重量的具體示數(shù)。(3)蜂鳴器報警,當超出閾值時,蜂鳴器響起,聲音為:響起1秒,停頓1秒,再次響起1秒,結(jié)束,旨在提醒用戶垃圾桶內(nèi)的垃圾較多,應盡快更換垃圾袋,并且在超重報警時開發(fā)板上的LED模塊的D7燈將熄滅,報警結(jié)束后再次亮起,D6燈將由明變暗閃爍,報警結(jié)束后恢復正常狀態(tài)。LCD1602顯示屏顯示內(nèi)容如下圖所示(圖5.9),LCD上有兩排示數(shù)顯示,上排具體內(nèi)容為:WEIGHT:0000g,下排示數(shù)為桶內(nèi)溫度,在后面內(nèi)容中會具體敘述。圖5.9LCD1602顯示內(nèi)容Fig.5.9LCD1602showsthecontent首先需要對壓力傳感器的精準度進行評估,由于垃圾桶適用于存放廢棄物品且報警功能是用于提醒用戶用來更換垃圾袋,所以允許小重量誤差存在,允許在±5g,若超出該范圍,則對weight.h子程序參數(shù)進行修改,修改的代碼為#defineGapValue400,當發(fā)現(xiàn)測試出來的重量偏大時,增加該數(shù)值。如果測試出來的重量偏小時,減小改數(shù)值;然后用50g砝碼來測量,經(jīng)測量,誤差在1g左右,在允許范圍內(nèi),程序無需修改,隨后進行超重報警功能,用手來按壓壓力傳感器的感應區(qū)(圖5.10),在重量超過4000g時,屏幕示數(shù)不變,保持這個示數(shù)持續(xù)四秒,并且伴隨蜂鳴器響起,頻率為響起1秒,停頓1秒,再次響起1秒后結(jié)束報警,并且D7燈熄滅,D6燈明暗交替變化,符合設計預期,至此壓力傳感器調(diào)試結(jié)束。圖5.10壓力傳感器報警圖Fig.5.10Alarmdiagramofthepressuresensor對超溫報警功能的調(diào)試:DS18B20與主控芯片STC89C52RC的P37引腳相連,溫度傳感器實現(xiàn)的功能有:(1)檢測當前室內(nèi)(桶內(nèi))溫度并在LCD1602上顯示。(2)若溫度超過設定閾值時,蜂鳴器一直報警,聲音應急促連續(xù),直到溫度降到閾值以下為止。(3)當超溫報警時,開發(fā)板上的LED模塊上的D7應由滅到亮連續(xù)閃爍,直到溫度恢復到閾值以下為止。首先對當前室溫進行檢測,首先用室內(nèi)酒精溫度計進行測量當前溫度,測量出的結(jié)果為26.2℃,隨后將主控芯片通電后,LCD1602上顯示當前室內(nèi)溫度(圖5.11),具體示數(shù)為26.1875℃,測量結(jié)果的誤差在0.1%,誤差較小,可忽略不計,隨后對超溫報警功能進行調(diào)試,為了方便測量,我

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論