《基于物聯(lián)網(wǎng)的智能衣柜設(shè)計(jì)》14000字(論文)_第1頁(yè)
《基于物聯(lián)網(wǎng)的智能衣柜設(shè)計(jì)》14000字(論文)_第2頁(yè)
《基于物聯(lián)網(wǎng)的智能衣柜設(shè)計(jì)》14000字(論文)_第3頁(yè)
《基于物聯(lián)網(wǎng)的智能衣柜設(shè)計(jì)》14000字(論文)_第4頁(yè)
《基于物聯(lián)網(wǎng)的智能衣柜設(shè)計(jì)》14000字(論文)_第5頁(yè)
已閱讀5頁(yè),還剩59頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

基于物聯(lián)網(wǎng)的智能衣柜設(shè)計(jì)目錄TOC\o"1-2"\h\u9623摘要 111829關(guān)鍵詞 2306991.緒論 262811.1研究背景及意義 210511.2國(guó)內(nèi)外研究現(xiàn)狀 2176871.3研究方法 3295032.系統(tǒng)主要技術(shù)簡(jiǎn)介 4248022.1WiFi通訊技術(shù) 434132.2傳感器技術(shù) 6201812.3OneNet云服務(wù)技術(shù) 62493.系統(tǒng)分析 8258713.1功能需求分析 8281543.2可行性分析 914454.系統(tǒng)整體設(shè)計(jì) 10290704.1系統(tǒng)架構(gòu)設(shè)計(jì) 10303444.2衣柜結(jié)構(gòu)設(shè)計(jì) 10105444.3系統(tǒng)硬件設(shè)計(jì) 11146924.4系統(tǒng)軟件設(shè)計(jì) 1424185.系統(tǒng)測(cè)試 17275766.總結(jié)與展望 194163參考文獻(xiàn) 2014460附錄 21摘要:在經(jīng)濟(jì)和生活水平快速發(fā)展和提高的當(dāng)今社會(huì),人們需要放存的衣服越來(lái)越多,這就給人們帶來(lái)了相當(dāng)多的困擾和麻煩。本設(shè)計(jì)的研究目的就是為了處理衣物放存環(huán)境條件中濕度過(guò)大引發(fā)的發(fā)霉、生蟲(chóng)等一些問(wèn)題,還有就是在陰天下雨時(shí)沒(méi)有辦法進(jìn)行快速晾干潮濕衣服的一些問(wèn)題。本設(shè)計(jì)采用了調(diào)查方法,實(shí)驗(yàn)方法,文獻(xiàn)研究方法以及系統(tǒng)科學(xué)的方法,對(duì)潮濕衣物進(jìn)行一定的技術(shù)處理,研究并且設(shè)計(jì)了這個(gè)集除濕、消毒和狀態(tài)顯示功能為一體的智能衣柜系統(tǒng),來(lái)解決衣物放存的一些問(wèn)題。系統(tǒng)把STM32當(dāng)做控制核心,而且還帶有一些智能控制算法,可以完成去潮防霉和消毒殺菌等一系列的功能。不僅如此,智能衣柜在物聯(lián)網(wǎng)的智能系統(tǒng)上,還能夠連接到OneNet云平臺(tái),完成跟用戶的簡(jiǎn)便優(yōu)良的交互。該智能衣柜系統(tǒng)能夠靈活、有效地防止衣物發(fā)霉,而且保證了衣柜內(nèi)部的環(huán)境條件是最適合衣物放存的。該設(shè)計(jì)具有智能,成本低和方便快捷等優(yōu)點(diǎn),合理有效地解決了人們?nèi)粘I钪械囊挛锓糯鎲?wèn)題。關(guān)鍵詞:智能衣柜去潮防霉云平臺(tái)物聯(lián)網(wǎng)1.緒論隨著時(shí)代的發(fā)展和技術(shù)的進(jìn)步,人工智能帶來(lái)了新的生活方式,家具行業(yè)也逐漸引入了智能控制技術(shù)。許多制造商已開(kāi)始嘗試優(yōu)先占領(lǐng)智能家居市場(chǎng)。智能家居產(chǎn)品融合了多種技術(shù),它是創(chuàng)新,智慧和實(shí)用性的統(tǒng)一,并具有強(qiáng)大的功能可塑性REF_Ref2114\w\h[1]。但是市場(chǎng)到目前為止還沒(méi)有得到很好的發(fā)展,是由于各工廠設(shè)計(jì)的相似性以及無(wú)用和繁瑣的功能與互聯(lián)網(wǎng)行業(yè)不完全聯(lián)系所導(dǎo)致的。1.1研究背景及意義近年來(lái),社會(huì)經(jīng)濟(jì)發(fā)展的越來(lái)越快了,大家的生活水平越來(lái)越高了,大家的衣物也是越來(lái)越多,越來(lái)越復(fù)雜了。衣櫥已經(jīng)成為我們?nèi)粘I钪械谋匦杵?。在響?yīng)市場(chǎng)的需求的過(guò)程中,衣櫥從最開(kāi)始存放衣物的功能,到現(xiàn)在發(fā)展到各種各樣的功能衣柜層出不窮。經(jīng)過(guò)對(duì)傳統(tǒng)的衣柜行業(yè)的調(diào)查研究發(fā)現(xiàn):傳統(tǒng)衣柜會(huì)引發(fā)衣服潮濕發(fā)霉和生蟲(chóng)等問(wèn)題,嚴(yán)重的影響了衣服的質(zhì)量和穿著的舒適度。與傳統(tǒng)衣柜相比,智能衣柜具有更強(qiáng)大的功能和“意識(shí)”REF_Ref25216\w\h[2]。在簡(jiǎn)單的儲(chǔ)物衣柜中長(zhǎng)期存放的衣服容易受潮和發(fā)霉。智能化衣櫥能夠?yàn)橐挛锎娣盘峁┓浅:玫臐穸群蜏囟葪l件,而且還能夠調(diào)試衣櫥中的濕度和溫度,防止衣物發(fā)霉。與普通衣柜布局的錯(cuò)亂和沒(méi)有明顯的區(qū)分相比,智能衣柜的布局更加合理。儲(chǔ)衣空間分為衣架區(qū),配飾區(qū),抽屜區(qū)等,儲(chǔ)物效果更好。鑒于傳統(tǒng)衣柜存在的問(wèn)題,該設(shè)計(jì)可以使衣柜內(nèi)部更加整潔。這個(gè)設(shè)計(jì)要運(yùn)用物聯(lián)網(wǎng)方面的一些技術(shù),升級(jí)以前一些衣柜的結(jié)構(gòu)還有功能,然后讓衣柜在放存衣物的時(shí)候具備無(wú)損的干燥、殺菌防霉還有遠(yuǎn)程控制等一些功能,而且能夠操縱智能控制算法來(lái)完成對(duì)衣柜的控制。1.2國(guó)內(nèi)外研究現(xiàn)狀在世界上,跟隨著衣柜研究的不斷進(jìn)步,衣柜也逐步開(kāi)始完成了包括智能化在內(nèi)的一些性能。我們國(guó)家最早在2005年對(duì)智能衣柜開(kāi)始展開(kāi)研究,像唐佳青、鐘吉湘一些人開(kāi)始走上了對(duì)智能衣柜的強(qiáng)大性能進(jìn)行探索的道路,而且還嘗試對(duì)其類型進(jìn)行了分類,可是并沒(méi)有進(jìn)行深入的研究。2011年,毛毅先生在解析智能控制技術(shù)的根源之上,設(shè)計(jì)完成了一款擁有防潮和防霉,還有殺菌消毒等一些功能融為一體的智能衣櫥REF_Ref23374\w\hREF_Ref23374\w\hREF_Ref23400\w\h[3]。在國(guó)外,智能衣柜的一些研究領(lǐng)域,當(dāng)然也有比較多的優(yōu)秀的想法以及成功的案例。早在2006年,美國(guó)的一家公司完成并實(shí)現(xiàn)了第一款智能衣柜系統(tǒng),此產(chǎn)品最主要的是根據(jù)衣柜上裝配好的顯示屏進(jìn)行運(yùn)行。不僅如此,人們還可以通過(guò)對(duì)屏幕地點(diǎn)擊對(duì)它進(jìn)行管控,比較方便。但是由于功能特別少,性能不齊全,尺寸非常大等不足,限制了智能衣柜的普遍而廣泛地推廣。盡管現(xiàn)在研究的智能衣柜已經(jīng)研發(fā)出了多種類型,而且也可以給人們帶來(lái)許許多多的方便,但是還有許許多多的問(wèn)題有待進(jìn)一步解決。1.3研究方法1.文獻(xiàn)研究法:經(jīng)過(guò)收集、研讀、分析與總結(jié)國(guó)內(nèi)外與智能衣柜相關(guān)的一些著作、期刊、碩博士學(xué)位論文及其他材料,去了解現(xiàn)在跟智能衣柜相關(guān)領(lǐng)域的一些研究情況和進(jìn)度,從而能夠系統(tǒng)的把握智能衣柜的整體研究,同時(shí)能夠得到在智能衣柜研究道路上的一些問(wèn)題還有不足。2.實(shí)驗(yàn)法:在模擬使用智能衣柜的基礎(chǔ)上,充分的去感受市面上的衣物的存儲(chǔ)裝置。與此同時(shí),結(jié)合衣物放存的相關(guān)評(píng)論及文章,揣摩衣物放存可能存在的一些場(chǎng)景。并把它做為設(shè)計(jì)智能衣柜的根據(jù),從而建立實(shí)驗(yàn)大綱,驗(yàn)證用戶對(duì)的衣物放存的想法和態(tài)度。3.調(diào)查法:為了擁有大家使用智能衣柜的想法及反饋,安排了關(guān)于智能衣柜使用情況的問(wèn)卷調(diào)查。直接干脆的對(duì)智能衣柜的需求場(chǎng)景進(jìn)行了考證和區(qū)分。4.系統(tǒng)科學(xué)方法:把設(shè)計(jì)好的智能衣柜系統(tǒng)模型裝置,實(shí)行一些可用性的測(cè)試。并且注意使用者在使用智能衣柜時(shí),他們的使用情況、使用時(shí)間和錯(cuò)誤操作等,然后獲得他們對(duì)智能衣柜的反饋意見(jiàn)。最后根據(jù)總結(jié)測(cè)試的結(jié)果,給未來(lái)智能衣柜的設(shè)計(jì)、改動(dòng)和更新提供一些方向和指導(dǎo)。

2.系統(tǒng)主要技術(shù)簡(jiǎn)介2.1WiFi通訊技術(shù)Wi-Fi模塊在物聯(lián)網(wǎng)三層結(jié)構(gòu)中屬于傳輸層。有能夠把串行端口轉(zhuǎn)為切合無(wú)線通信標(biāo)準(zhǔn)的嵌入式的性能。它里邊不僅僅有無(wú)線網(wǎng)絡(luò)協(xié)議IEEE802.11b.gn協(xié)議棧,而且還有TCP/IP協(xié)議棧REF_Ref26039\w\h[4]。內(nèi)置在無(wú)線通信模塊里邊的傳統(tǒng)的硬件裝置,能夠干脆利落的運(yùn)用無(wú)線技術(shù)連接到網(wǎng)絡(luò)。所以,它就是成功完成智能家居,還有其它IOT應(yīng)用程序的一些重要的組成成分。2.1.1WiFi模塊模式WiFi模塊有三大模式:AP、STA、STA+AP。AP模式:提供無(wú)線訪問(wèn)服務(wù),也就是這個(gè)模塊擔(dān)任無(wú)線熱點(diǎn),許可其他設(shè)備連接到這個(gè)模塊,并且無(wú)線路由器/網(wǎng)橋在此模式下工作。STA模式:與無(wú)線終端類似,它不接受無(wú)線訪問(wèn)服務(wù)。這個(gè)模式是連接到無(wú)線網(wǎng)絡(luò)上的,然后它用來(lái)完成串行端口跟其它裝置內(nèi)部的無(wú)線數(shù)據(jù)的傳輸。通常,無(wú)線網(wǎng)卡在此模式下工作。STA+AP模式:這個(gè)模式用在無(wú)線AP還有無(wú)線STA,而且能夠把別的設(shè)備連接到這個(gè)模式。這個(gè)模式還可以實(shí)現(xiàn)串行端口與另外的設(shè)備之間的無(wú)線數(shù)據(jù)傳輸還有轉(zhuǎn)換。2.1.2WiFi模塊選型目前市場(chǎng)上主流的WiFi模塊有cc3200、ESP8266、mt7681,下面是對(duì)三種型號(hào)的WiFi模塊的總結(jié),如表2.1所示。表2.1WiFi模塊型號(hào)總結(jié)表參數(shù)\芯片ESP8266CC3200MT7681頻段2.4G2.4G2.4GCPUTensilicaL106(80M)ARMCortex-M4(80M)32-bitRISCMCU系統(tǒng)FreeRTOSFreeRTOSWindows和LinuxSDK是否開(kāi)源是是是內(nèi)存50KB64KB64KBFLASHEXTFLASHEXTFLASHEXTFLASH工作電壓范圍3.0-3.6V2.1-3.6V2.97-3.63V工作溫度-40~125℃-40~85℃-10~70℃功耗(54MHz)TX:140mARX:56mATX:229mARX:59mATX:210mARX:59mA封裝QFN32引腳5x5mmQFN64引腳9x9mmQFN40引腳5x5mm2.1.3AT指令使用WiFi模塊一般分兩個(gè)步驟。配置WiFi模塊。AT指令是應(yīng)用于WiFi模塊與單片機(jī)之間的連接與通信的指令。常用指令集,如表2.2所示。表2.2常用指令集表RST重新啟動(dòng)模塊指令GMR查看版本信息指令CWJAP設(shè)置加入AP熱點(diǎn)指令CWSAP設(shè)置WIFI參數(shù)指令CWLIF查看已經(jīng)接好的IP指令CIPSTATUS得到連接狀況指令CIPSEND發(fā)送數(shù)據(jù)指令CIFSR得到IP地址指令CIPMUX打開(kāi)多連接指令CIPMODE設(shè)置如何傳輸指令CIPSTO設(shè)置超時(shí)指令CIUPDATE固件升級(jí)指令2.1.4接收、發(fā)送數(shù)據(jù)WiFi模塊與STM32連接,用于發(fā)送和接收數(shù)據(jù),其通常的模塊連接結(jié)構(gòu)圖,如圖2.1所示。圖2.1模塊連接結(jié)構(gòu)圖2.2傳感器技術(shù)傳感器是現(xiàn)在一種非常流行、非常實(shí)用的檢測(cè)裝置,能夠感應(yīng)并檢測(cè)到一些特殊信息,而且能夠根據(jù)必然的規(guī)則,將感應(yīng)到的大部分信息轉(zhuǎn)變成電信號(hào),或者是另外的所需形式的信息傳遞出來(lái),進(jìn)而來(lái)達(dá)到一些像存儲(chǔ)跟顯示記錄,或者是信息的傳輸還有處理之類的良好效果。大部分的傳感器一般是由轉(zhuǎn)換元件,敏感元件,輔助電源和轉(zhuǎn)換電路四部分組成。傳感器包含像小型化、數(shù)字化和系統(tǒng)化等一些非常特別的屬性。2.3OneNet云服務(wù)技術(shù)2.3.1OneNet云平臺(tái)架構(gòu)OneNet在“云、網(wǎng)、邊、端”的整體架構(gòu)的基礎(chǔ)之上,創(chuàng)建了物聯(lián)網(wǎng)的一些性能。它所具有的八最個(gè)主要的特性是增強(qiáng)接入、邊緣計(jì)算、增值、智能、數(shù)據(jù)分析、一站式開(kāi)發(fā)、產(chǎn)業(yè)以及生態(tài)開(kāi)放。OneNet云平臺(tái)向下延伸終端自適應(yīng)訪問(wèn),再就是向上也合成了行業(yè)規(guī)劃的應(yīng)用程序。這個(gè)平臺(tái)供應(yīng)了非?;?、非常普通的設(shè)備的管理能力,就像是設(shè)備的訪問(wèn)、設(shè)備的管理、設(shè)備的定位、設(shè)備的遠(yuǎn)程升級(jí)、設(shè)備的數(shù)據(jù)視圖還有設(shè)備的PaaS功能等。在另一方面,現(xiàn)在的社會(huì)正在部署5G,這個(gè)平臺(tái)還可以給5G+OneNet創(chuàng)建新的功能,專注于視頻的供應(yīng)和改進(jìn)以及其他的功能??梢暂p松地部署到云計(jì)算中,從而完美的支持行業(yè)端到端應(yīng)用。2.3.2OneNet云服務(wù)的特點(diǎn)1.有無(wú)限選擇的開(kāi)放平臺(tái)。創(chuàng)造產(chǎn)品和解決計(jì)劃需求的很多種的軟件和硬件組合,還有多種語(yǔ)言和平臺(tái)都受到OneNet支持。2.端到端的安全。OneNet云平臺(tái)里邊擁有著端到端的安全性,而且還有完整的產(chǎn)物解決方案。并且非常安全的部署也能夠保證對(duì)裝置的控制,進(jìn)而大家可以在正確的時(shí)間段,進(jìn)行正確的訪問(wèn)形式。3.全互聯(lián)的基礎(chǔ)設(shè)施。位于中國(guó)移動(dòng)的超大網(wǎng)絡(luò)環(huán)境條件中開(kāi)創(chuàng)的OneNet,提供了全國(guó)范圍的互連基礎(chǔ)架構(gòu)。大量的設(shè)備投資,以確保設(shè)備的訪問(wèn)和減災(zāi)能力。有專門(mén)進(jìn)行開(kāi)發(fā)和運(yùn)營(yíng)的團(tuán)隊(duì),用來(lái)保證平臺(tái)7X24小時(shí)的平緩運(yùn)轉(zhuǎn)。4.實(shí)時(shí)消息總線。OneNet提供了多種通信方法。依照業(yè)務(wù)需求和規(guī)模,實(shí)時(shí)消息總線使用套接數(shù)字和RESTAPI,并提供了同步和異步的通信方法。5.覆蓋設(shè)備整個(gè)生命期管理。設(shè)備的注冊(cè),身份的驗(yàn)證、刪除還有激活整個(gè)的設(shè)備生存周期處理,還有便捷的廣泛安排以及及時(shí)的數(shù)據(jù)監(jiān)管都由OneNet供應(yīng)了。

3.系統(tǒng)分析智能衣柜系統(tǒng)的設(shè)計(jì),是采用軟件跟硬件相結(jié)合的手段把大家的痛點(diǎn)給解決的,并且滿足大家對(duì)智能衣柜系統(tǒng)的需求。為解決衣物存放的一些問(wèn)題,我們現(xiàn)在需要對(duì)智能衣柜進(jìn)行新的改動(dòng),以使衣柜能夠更好地存放衣物。3.1功能需求分析智能衣柜設(shè)計(jì)的最初目的是為人們提供更好的服務(wù)。因此,在衣柜的設(shè)計(jì)中需要考慮功能設(shè)計(jì),形狀設(shè)計(jì)和材料顏色等的人性化設(shè)計(jì)。它需要基于用戶所在地區(qū)的氣候特征,年齡水平和個(gè)人喜好等方面來(lái)確定REF_Ref25856\w\h[5]。例如,在南部地區(qū),春季氣候相對(duì)潮濕,設(shè)計(jì)的時(shí)候要想到預(yù)定時(shí)間除濕。再例如,青年人的衣物的種類和數(shù)量比年長(zhǎng)的人多,因此,應(yīng)該考慮的是,許多年長(zhǎng)的人的衣服不長(zhǎng)時(shí)間穿著,要增添定時(shí)的消毒和殺菌功能;而青年人則經(jīng)常換衣服,因此有必要增加去潮防霉的功能。功能整合是將現(xiàn)代衣櫥所需的其他功能有機(jī)地、合理地整合在一起,通過(guò)衣櫥中的衣物存放功能以達(dá)到人性化,智能化和便利化的目的。因此,在智能衣柜的設(shè)計(jì)中,衣柜的功能是通過(guò)衣柜的智能控制系統(tǒng)的集成在一起的。系統(tǒng)的功能模塊劃分,如圖3.1所示。圖3.1系統(tǒng)功能模塊劃分圖每個(gè)模塊對(duì)應(yīng)著相應(yīng)的功能,比如去潮防霉模塊對(duì)應(yīng)的功能是根據(jù)濕度的高低,決定是否打開(kāi)加熱系統(tǒng)進(jìn)行除濕;殺菌消毒模塊是通過(guò)繼電器定時(shí)進(jìn)行消毒;溫濕度傳感器進(jìn)行對(duì)溫濕度的檢測(cè);OLED顯示模塊是對(duì)系統(tǒng)狀態(tài)以及各種數(shù)據(jù)進(jìn)行顯示;串口WiFi模塊的功能是實(shí)現(xiàn)數(shù)據(jù)無(wú)線通信,讓系統(tǒng)能夠與OneNet云平臺(tái)相連接;OneNet云服務(wù)模塊能夠?qū)崿F(xiàn)對(duì)系統(tǒng)的遠(yuǎn)程控制等等。3.2可行性分析現(xiàn)如今,智能衣櫥作為科學(xué)技術(shù)的日常生活熱點(diǎn),開(kāi)始緩慢地滲入到生活的方方面面。人們需要用它體現(xiàn)自我魅力,實(shí)用性,舒適性和獨(dú)特的品味等。因此,智能衣櫥將快速流行?,F(xiàn)在,智能衣櫥開(kāi)始變成人們追求便利,自由和特殊體驗(yàn)方式的象征性代表。智能衣櫥的基礎(chǔ)人性化,給所擁有者供應(yīng)了最巨大的便利,而且給人跟衣櫥之間的和諧互動(dòng)供應(yīng)了許許多多的便利。智能衣柜是精心選擇設(shè)計(jì)的智能和衣柜系統(tǒng)的精美結(jié)合。它的發(fā)展是設(shè)計(jì)與技術(shù)相結(jié)合的產(chǎn)物。它的設(shè)計(jì)不僅具有藝術(shù)風(fēng)格,關(guān)鍵更在于將現(xiàn)代技術(shù)融入衣柜的功能。此設(shè)計(jì)運(yùn)用現(xiàn)代科學(xué)技術(shù),解決了衣柜相關(guān)的智能化風(fēng)格,以及合理的實(shí)現(xiàn)了衣柜的結(jié)構(gòu)和加工技術(shù)。因此具有較高的可行性。

4.系統(tǒng)整體設(shè)計(jì)4.1系統(tǒng)架構(gòu)設(shè)計(jì)本這個(gè)設(shè)計(jì)的主要包括空氣的溫濕度檢測(cè)、去潮防霉、殺菌消毒還有狀態(tài)顯示等一系列功能。這個(gè)設(shè)計(jì)是通過(guò)衣柜控制終端還有OneNet云平臺(tái)等組成。OneNet云平臺(tái)是用在查看還有控制衣柜的運(yùn)行狀況,完成了讓衣柜的終端進(jìn)行入網(wǎng)的設(shè)置。衣柜的終端還能夠控制著傳感器去感知和檢測(cè)衣柜里邊的溫濕度的情況,進(jìn)而迅速的去執(zhí)行去潮防霉還有殺菌消毒等功能的一些程序,而且還會(huì)通過(guò)WiFi技術(shù)向OneNet云平臺(tái)傳送系統(tǒng)的所有運(yùn)行狀態(tài),如圖4.1所示。圖4.1系統(tǒng)路線圖4.2衣柜結(jié)構(gòu)設(shè)計(jì)衣柜所擁有的整體架構(gòu)分為三個(gè)區(qū)域,如圖4.2所示。對(duì)衣柜擁有的架構(gòu)實(shí)行了一定水準(zhǔn)的修正,而且還劃分成了不同的衣物存放區(qū)域模塊。然后處于最底下的是智能衣柜的終端控制系統(tǒng)。按照和根據(jù)處理器的控制作用,溫濕度傳感器就能夠及時(shí)、可靠地監(jiān)控衣櫥中的溫度還有濕度。而且在處理器的控制作用下,還能夠?qū)σ聶粚?shí)行殺菌消毒,除濕防霉等一系列的措施,最后能夠讓衣櫥的里邊擁有放存衣物最好、最舒服的環(huán)境條件REF_Ref26525\w\h[6]。圖4.2衣柜整體結(jié)構(gòu)4.3系統(tǒng)硬件設(shè)計(jì)4.3.1處理器模塊這個(gè)設(shè)計(jì)運(yùn)用的是STM32F100R8T6核心處理器,它是基于Coretex-M3內(nèi)核的,如圖4.3所示,這個(gè)處理器能夠達(dá)到溫濕度值的采集、系統(tǒng)工作模式的控制和系統(tǒng)當(dāng)前狀態(tài)的顯示工作的一些功能REF_Ref26754\w\h[7]。圖4.3處理器4.3.2去潮防霉模塊熱效率高、耐氧化還有可控最高溫度等一些安全性的優(yōu)點(diǎn)是PTC加熱器模塊所具備的。一般都在家具的一些領(lǐng)域使用,如圖4.4所示。這個(gè)設(shè)計(jì)運(yùn)用PTC加熱器和風(fēng)扇在衣櫥內(nèi)部產(chǎn)生熱的空氣對(duì)流進(jìn)而達(dá)到除濕效果REF_Ref26996\w\h[8]。PTC加熱器會(huì)和風(fēng)扇一起產(chǎn)生熱空氣,從而達(dá)到完成對(duì)衣物的去潮防霉作用的目的。圖4.4PTC加熱器4.3.3殺菌消毒模塊在主控制器中,根據(jù)定時(shí)功能,將相應(yīng)的引腳設(shè)置為低電平信號(hào),以控制繼電器。或是應(yīng)用按鍵KEY控制相應(yīng)的引腳的高電平跟低電平,進(jìn)而來(lái)控制繼電器。在繼電器從主控制器中接收到低電平的信號(hào)的時(shí)候,繼電器開(kāi)關(guān)打開(kāi),然后消毒系統(tǒng)打開(kāi);在繼電器從主控制器中接收到高電平的信號(hào)的時(shí)候,繼電器開(kāi)關(guān)關(guān)閉,消毒系統(tǒng)閉合。如圖4.5所示。圖4.5消毒模塊繼電器4.3.4門(mén)感應(yīng)模塊衣櫥門(mén)傳感模塊由兩個(gè)輕觸微動(dòng)開(kāi)關(guān)組成,用于檢測(cè)衣櫥門(mén)的狀態(tài),并且確定衣櫥門(mén)是否實(shí)時(shí)打開(kāi)。一旦檢測(cè)到衣櫥門(mén)打開(kāi),就意味著將濕衣服放入衣櫥中,因此系統(tǒng)開(kāi)始自動(dòng)檢測(cè)濕度的變化并確定是否要除濕。4.3.5溫濕度傳感器此設(shè)計(jì)運(yùn)用的是DHT11,如圖4.6所示。溫濕度的傳感技術(shù)和數(shù)字的采集技術(shù)是這種傳感器專有的,以此來(lái)保證擁有極高的可靠性還有非常出色的長(zhǎng)期穩(wěn)定性REF_Ref27178\w\h[9]。而且還擁有著質(zhì)量良好、快速響應(yīng)、強(qiáng)抗干擾能力與高性價(jià)比等一些優(yōu)點(diǎn)。非常小的體積和特別低的功能消耗讓它能夠應(yīng)用于要求嚴(yán)格的應(yīng)用中。DHT11是擁有4針單排的引腳封裝,連接非常方便。而且它還具有特別高、特別準(zhǔn)確的測(cè)量幅度(濕度:20%?90%,溫度:0℃?50℃),完全滿足了系統(tǒng)的要求。圖4.6溫濕度傳感器4.3.6Wi-Fi模塊Wi-Fi模塊是在這個(gè)設(shè)計(jì)中用在完成智能衣柜跟OneNet內(nèi)的數(shù)據(jù)的交互上,還完成對(duì)系統(tǒng)的控制。想到了設(shè)計(jì)傳送的數(shù)據(jù)量比較少,而且想到了性價(jià)比,所以這個(gè)設(shè)計(jì)選擇了ESP8266,如圖4.7所示。運(yùn)用了數(shù)據(jù)透明的傳輸方式完成了系統(tǒng)聯(lián)網(wǎng)還有數(shù)據(jù)傳輸通信的一些功能。圖4.7Wi-Fi模塊4.3.7OLED顯示模塊OLED顯示模塊大部分是根據(jù)電場(chǎng)驅(qū)動(dòng),然后有機(jī)的一般半導(dǎo)體材料和發(fā)光材料經(jīng)過(guò)過(guò)載流子的匯入和混合后,完成發(fā)光的功能。本質(zhì)上,它由數(shù)百萬(wàn)個(gè)“小燈泡”組成。它主要用于顯示各種信息,以方便觀察衣柜的運(yùn)行狀態(tài)。如圖4.8所示。圖4.8OLED顯示屏4.3.8電路模塊系統(tǒng)設(shè)計(jì)中,各個(gè)模塊擁有的電源電路,如圖4.9所示。圖4.9各模塊電路圖4.3.9安全防護(hù)模塊作為家庭用的系統(tǒng),系統(tǒng)的安全性必然是整個(gè)系統(tǒng)的核心需求。這個(gè)設(shè)計(jì)具有硬件保護(hù)和軟件保護(hù)。硬件保護(hù):溫度控制保護(hù)。裝置根據(jù)它自己的物理特殊性質(zhì),讓溫度在穩(wěn)定運(yùn)行的時(shí)候能夠保證恒定不變。每次溫度超出了特定的范圍值,這個(gè)保護(hù)的裝置就馬上會(huì)把電源斷開(kāi)。軟件保護(hù):衣物在除潮的過(guò)程中,總是會(huì)有一些溫度的要求。萬(wàn)一溫度過(guò)高的話,衣服就有可能會(huì)壞掉。因此,這個(gè)裝置能夠及時(shí)地檢測(cè)衣櫥中的溫度,而且能夠在溫度太高的時(shí)候,能夠自動(dòng)的關(guān)閉除濕效果,用來(lái)防止溫度太高而導(dǎo)致衣物壞掉。4.4系統(tǒng)軟件設(shè)計(jì)4.4.1系統(tǒng)主控制流程設(shè)計(jì)衣柜這個(gè)系統(tǒng)在通上電以后,初始化系統(tǒng),也就是系統(tǒng)復(fù)位。然后就開(kāi)始檢驗(yàn)衣柜內(nèi)部的環(huán)境條件。假如濕度太高的時(shí)候,就會(huì)啟動(dòng)除濕程序。在這個(gè)程序運(yùn)行的時(shí)候,可以經(jīng)過(guò)Wi-Fi模塊及時(shí)地向云平臺(tái)發(fā)送當(dāng)前的系統(tǒng)狀況,同時(shí)也能夠在OLED屏上顯示出系統(tǒng)此時(shí)此刻的工作參數(shù)REF_Ref27446\w\h[10]。圖4.10是系統(tǒng)主控的流程圖。圖4.10系統(tǒng)主控制流程圖經(jīng)過(guò)上邊所說(shuō)的處理控制之后,無(wú)線通信模塊實(shí)行數(shù)據(jù)的傳輸還有接收的工作。無(wú)線信通信模塊經(jīng)過(guò)串行端口的方式把數(shù)據(jù)傳送給處理器后,按照指令的類型,讓處理器相應(yīng)的控制程序開(kāi)始運(yùn)作REF_Ref27590\w\h[11]。在完成連接網(wǎng)絡(luò)之后,及時(shí)地通過(guò)WiFi給OneNet云平臺(tái)傳送數(shù)據(jù),具體的工作流程如圖4.11所示。圖4.11WiFi數(shù)據(jù)接收和發(fā)送流程4.4.2智能控制算法設(shè)計(jì)假如柜子中的濕度長(zhǎng)時(shí)間大于80%的話,衣服容易發(fā)霉,因此啟動(dòng)去潮防霉的算法,將衣柜中的濕度控制在80%以下。具體如圖4.12所示。為了防止參數(shù)設(shè)置得太低或太高,引起過(guò)分干燥讓衣服破損或衣服并沒(méi)有完全除濕,這個(gè)算法能夠時(shí)刻監(jiān)控著溫度高低REF_Ref27691\w\h[12]。圖4.12去潮防霉工作流程圖4.4.3OneNet云服務(wù)OneNet定位為PaaS服務(wù),旨在IoT應(yīng)用與真實(shí)的設(shè)備之間構(gòu)建高效的、穩(wěn)定的和安全的應(yīng)用程序平臺(tái)REF_Ref28547\w\h[13]。因此,本系統(tǒng)選用OneNet云平臺(tái)來(lái)實(shí)現(xiàn)監(jiān)測(cè)和控制功能。用戶都能夠憑借OneNet云平臺(tái)隨時(shí)隨地的查看并且控制衣柜終端的運(yùn)行狀況。4.4.4系統(tǒng)程序及介紹(1)主函數(shù)主函數(shù)融合了各個(gè)模塊的功能,是一個(gè)總體函數(shù)。(2)WiFi模塊函數(shù)WiFi模塊函數(shù)實(shí)現(xiàn)了連接網(wǎng)絡(luò)功能,可使ESP8266模塊通過(guò)TCP/IP協(xié)議將數(shù)據(jù)傳輸至服務(wù)器,實(shí)現(xiàn)數(shù)據(jù)交換功能。(3)溫濕度監(jiān)測(cè)函數(shù)這部分函數(shù)用來(lái)實(shí)現(xiàn)監(jiān)測(cè)溫濕度。(4)OLED屏顯示函數(shù)這部分函數(shù)用于在OLED屏顯示數(shù)據(jù)。(5)OneNet云服務(wù)函數(shù)這是一個(gè)云平臺(tái)調(diào)用函數(shù),實(shí)現(xiàn)連接云平臺(tái)的功能。以上各函數(shù)代碼詳見(jiàn)附錄。

5.系統(tǒng)測(cè)試在進(jìn)行此系統(tǒng)設(shè)計(jì)的測(cè)試中,主要測(cè)試:是否可以通過(guò)OneNet云平臺(tái)查看和操控;不同環(huán)境濕度下看設(shè)備是否做出相應(yīng)的反應(yīng);看設(shè)備是否定時(shí)消毒??梢愿鶕?jù)OneNet云平臺(tái)查看并且操控設(shè)備,如圖5.1所示:圖5.1查看和操控設(shè)備在測(cè)試中采集了四組數(shù)據(jù),并查看設(shè)備運(yùn)行狀態(tài)。測(cè)試結(jié)果為濕度大于80的時(shí)候,繼電器紅燈自動(dòng)亮起,代表除濕打開(kāi);濕度小于80的時(shí)候,繼電器紅燈自動(dòng)熄滅,代表除濕關(guān)閉。證明設(shè)備可以通過(guò)濕度的高低,來(lái)自行打開(kāi)或關(guān)閉除濕模塊。如表5.1所示。設(shè)備具體的濕度測(cè)試,如圖5.2所示。表5.1數(shù)據(jù)濕度是否打開(kāi)除濕49否83是84是74否圖5.2濕度測(cè)試在程序中的消毒定時(shí)函數(shù)是每十秒進(jìn)行一次消毒,繼電器紅燈自動(dòng)亮起,代表開(kāi)始消毒,然后自動(dòng)熄滅,代表關(guān)閉消毒。測(cè)試結(jié)果每隔10秒,消毒繼電器紅燈自動(dòng)亮起,隨后自動(dòng)熄滅。證明設(shè)備可以定時(shí)消毒。如圖5.3所示。圖5.3消毒測(cè)試至此,整個(gè)智能衣柜系統(tǒng)的主要功能開(kāi)發(fā)完畢。

6.總結(jié)與展望該系統(tǒng)是在物聯(lián)網(wǎng)技術(shù)的基礎(chǔ)上設(shè)計(jì)的智能衣柜系統(tǒng)。此系統(tǒng)具有殺菌消毒、去潮防霉、液晶顯示等功能。它還可以通過(guò)OneNet云平臺(tái)進(jìn)行查看系統(tǒng)的運(yùn)行狀態(tài)并且對(duì)它進(jìn)行控制。經(jīng)過(guò)真實(shí)地測(cè)試表明,該系統(tǒng)殺菌除濕效果非常明顯,而且可以取得較好的效果。該系統(tǒng)可控制,操作簡(jiǎn)單,內(nèi)置的多個(gè)安全保護(hù)裝置,可以確保系統(tǒng)的長(zhǎng)期安全運(yùn)行。但也還存在不美觀等較多問(wèn)題,以后會(huì)慢慢完善和改進(jìn)。行業(yè)標(biāo)準(zhǔn)的制定對(duì)智能衣柜的快速發(fā)展來(lái)說(shuō)是至關(guān)重要的。智能衣柜現(xiàn)在代表時(shí)代互異化的產(chǎn)品,行走在發(fā)展的道路上任重而道遠(yuǎn),但是還需要看到它非常大的發(fā)展?jié)撃?,?yōu)良的行業(yè)標(biāo)準(zhǔn)現(xiàn)在成為了推進(jìn)它健康發(fā)展的特定重要因素之一。但是,還是要求大家齊心協(xié)力地制定智能生產(chǎn)標(biāo)準(zhǔn)。唯有規(guī)范好智能的道路,形成優(yōu)越的、良好的市場(chǎng)條件,才能夠在智能化的道路上充足、充分地展現(xiàn)智能衣柜的市場(chǎng)長(zhǎng)處,發(fā)揮其它的潛力,從而實(shí)現(xiàn)智能衣柜的開(kāi)發(fā)價(jià)值,并且還推動(dòng)著智能衣柜向更高、更優(yōu)秀的水平發(fā)展。

參考文獻(xiàn)吳智慧,楊勇,徐偉,方露,等.智能家具的研究現(xiàn)狀與發(fā)展趨勢(shì)[J].林產(chǎn)工業(yè),2017.44(05):5-8.毛毅.智能衣柜設(shè)計(jì)研究與制作[J].家居與室內(nèi)裝飾,2011(6):100-101.張逢雪,王香婷,王通生.基于STM32單片機(jī)的無(wú)線智能家居控制系統(tǒng)[J].自動(dòng)化技術(shù)與應(yīng)用,2011(8):102-105.王永虹,徐煒,郝立平.STM32系列ARMCortex-M3微控制器原理與實(shí)踐[M].北京:北京航空航天大學(xué)出版社,2008.李創(chuàng)輝,歐陽(yáng)惕,陳華,等.PTC電加熱器在恒濕恒溫空調(diào)機(jī)上的應(yīng)用研究[J].潔凈與空調(diào)技術(shù),2014.12(4):6-10.陳少勇,王佳權(quán),王皓,黃啟俊,常勝,等.基于物聯(lián)網(wǎng)的智能衣柜系統(tǒng)[J].信息技術(shù),2018(01):14-19.郁一波,陳銳,趙紫權(quán),唐武賓,等.基于單片機(jī)的實(shí)現(xiàn)遠(yuǎn)程控制的智能除濕衣柜[J].工業(yè)控制計(jì)算機(jī),2018,31(10):146+158.宋海友,張巧珍,等.多線程技術(shù)在數(shù)據(jù)通信中的應(yīng)用[J].電子技術(shù)與軟件工程,2015(5):64-64.趙文鵬,萬(wàn)洪莉,姜北辰.物聯(lián)網(wǎng)環(huán)境下智能衣柜系統(tǒng)解決方案的設(shè)計(jì)與原型實(shí)現(xiàn)[J].工業(yè)控制計(jì)算機(jī),2017,30(12):31-32+34.任小強(qiáng),陳金鷹,李文彬,等.網(wǎng)絡(luò)通信之JavaSocket多線程通信[J].信息通信,2015(6):206-207.倪天龍.單總線傳感器DHT11在溫濕度測(cè)控中的應(yīng)用[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2010(06):60-62.AmendolaS,LodatoR,ManzariS,etal.RFIDtechnologyforIoT-basedpersonalhealthcareinsmartspaces[J].IEEEInternetofthingsjournal,2014,1(2):144-152.HuX,JiangL,ChengR,etal.Aprobabilisticclothesrecommenderbasedonclothesfeatures[C].2014InternationalConferenceonManagementScience&Engineering21thAnnualConferenceProceedings.IEEE,2014:76-81.

附錄主函數(shù)程序#include"delay.h"#include"sys.h"#include"string.h"#include"oled.h"#include"exti.h"#include"led.h"#include"usart1.h"http://包含需要的頭文件#include"usart2.h"http://包含需要的頭文件#include"wifi.h" //包含需要的頭文件#include"onenet_http.h"http://包含需要的頭文件#include"timer.h"#include"dht11.h"charfasongbaowencishu_flag;charr_flag=0;//8266狀態(tài)標(biāo)志0:需要復(fù)位或重新復(fù)位1:正常狀態(tài)//u8buff[10];//u8ii;externu8humi_value;voidLCD_mianban(void);intmain(void){ char*presult=0; delay_init(); //滴答時(shí)鐘初始化 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //中斷優(yōu)先級(jí)分組分2組 OLED_Init(); //液晶屏初始化 Usart1_Init(9600); Usart2_Init(115200);// My_EXTI_Init1(); Jidianqi_Init(); WiFi_ResetIO_Init(); LED_Init(); TIM3_Int_Init(4000,36000-1); while(DHT11_Init());//未檢測(cè)到返回1,檢測(cè)到返回0 LCD_mianban(); humi_value=80;// ChuShi=0;//// XiaoDu=0; while(1) { DHT11_Read_Data(&temp1,&humi1); OLED_ShowNum(40,20,temp1,2,16); OLED_ShowNum(110,20,humi1,2,16); OLED_ShowNum(110,40,humi_value,2,16); if(humi1>humi_value) { ChuShi=0; } else { ChuShi=1; } delay_ms(10); if(r_flag==WeiLianJie) {//如果r_flag標(biāo)志等于0,表示需要復(fù)位重置8266模塊 if(WiFi_Init()==0) {//調(diào)用WiFi_Init函數(shù),返回0表示復(fù)位重置成功 u1_printf("ESP8266狀態(tài)初始化正常\r\n");//串口輸出信息 r_flag=YiLianJie; Connect_flag=WeiLianJie; //r_flag標(biāo)志置位,表示8266狀態(tài)正常 } } if(Connect_flag==WeiLianJie) { u1_printf("準(zhǔn)備連接服務(wù)器\r\n"); //串口提示數(shù)據(jù) if(WiFi_Connect_Server(50)) //連接服務(wù)器,100ms超時(shí)單位,總計(jì)5s超時(shí)時(shí)間 { Connect_flag=WeiLianJie;//連接成功標(biāo)志清除 u1_printf("連接服務(wù)器失敗\r\n"); //串口提示數(shù)據(jù) } else {//返回0,進(jìn)入else分支,表示連接服務(wù)器成功 u1_printf("連接服務(wù)器成功\r\n"); //串口提示數(shù)據(jù) OLED_ShowChinese(72,0,10,16); OLED_Refresh(); WiFi_RxCounter=0;//WiFi接收數(shù)據(jù)量變量清零 memset(WiFi_RX_BUF,0,WiFi_RXBUFF_SIZE);//清空WiFi接收緩沖區(qū) Connect_flag=YiLianJie;//連接成功標(biāo)志置位 } } delay_ms(200); if(Connect_flag==YiLianJie) { WiFi_RxCounter=0;//WiFi接收數(shù)據(jù)量變量清零 memset(WiFi_RX_BUF,0,WiFi_RXBUFF_SIZE);//清空WiFi接收緩沖區(qū) OneNet_POST(TEMPHUMI_DID);//構(gòu)建查上報(bào)溫濕度數(shù)據(jù)的報(bào)文 WiFi_printf(TXbuff); WiFi_RxCounter=0;//WiFi接收數(shù)據(jù)量變量清零 memset(WiFi_RX_BUF,0,WiFi_RXBUFF_SIZE); delay_ms(200); OneNet_GET(TEMPHUMI_DID); //構(gòu)建查詢開(kāi)關(guān)狀態(tài)的報(bào)文 WiFi_printf(TXbuff); //把構(gòu)建好的報(bào)文發(fā)給服務(wù)器 delay_ms(200); while(!(strstr(WiFi_RX_BUF,"\"SWITICH\""))); presult=strstr(WiFi_RX_BUF,"\"SWITICH\""); if(presult!=NULL) { OLED_ShowString(0,40,buff,16); for(ii=0;ii<10;ii++) { buff[ii]=*(presult-9+ii); } if(*(presult-9)=='0') //如果是0,關(guān)閉LED1 { KaiChu_flag=2; } elseif(*(presult-9)=='1') { KaiChu_flag=1;//反之是1,打開(kāi)LED1 } } } if(KaiChu_flag==1) { LED=0; OLED_ShowChinese(80,40,7,16);//開(kāi) } elseif(KaiChu_flag==2) { LED=1; OLED_ShowChinese(80,40,8,16);//關(guān) } delay_ms(10); OLED_Refresh();}}voidLCD_mianban(){ OLED_ShowChinese(0,20,0,16); //溫 OLED_ShowChinese(16,20,1,16); //度 OLED_ShowChar(32,20,':',16); OLED_ShowChar(56,20,'C',16); OLED_ShowChinese(70,20,2,16); //濕 OLED_ShowChinese(86,20,1,16); //度 OLED_ShowChar(102,20,':',16); OLED_ShowChinese(0,40,3,16); //衣櫥狀態(tài) OLED_ShowChinese(16,40,4,16); OLED_ShowChinese(32,40,5,16); OLED_ShowChinese(48,40,6,16); OLED_ShowChar(64,40,':',16); OLED_ShowChinese(80,40,8,16);//否 OLED_ShowString(0,0,"wifi",16);//wifi狀態(tài) OLED_ShowChinese(32,0,5,16); OLED_ShowChinese(48,0,6,16); OLED_ShowChar(64,0,':',16); OLED_ShowChinese(72,0,9,16);//未連接 OLED_ShowChinese(88,0,11,16); OLED_ShowChinese(104,0,12,16); OLED_Refresh();}WiFi模塊程序#include"stm32f10x.h"http://包含需要的頭文件#include"wifi.h" //包含需要的頭文件#include"delay.h" //包含需要的頭文件#include"usart1.h" //包含需要的頭文件#include"led.h"http://包含需要的頭文件#include"usart2.h"http://包含需要的頭文件#include"onenet_http.h"http://包含需要的頭文件charwifi_mode=0;//聯(lián)網(wǎng)模式0:SSID和密碼寫(xiě)在程序里1:Smartconfig方式用APP發(fā)送charConnect_flag=0;//同服務(wù)器連接狀態(tài)0:還沒(méi)有連接服務(wù)器1:連接上服務(wù)器了charChaXunBaoWen_flag=0;//定時(shí)時(shí)間到了會(huì)自動(dòng)發(fā)送報(bào)文給服務(wù)器查詢狀態(tài)/*函數(shù)名:初始化WiFi的復(fù)位IO*//*參數(shù):無(wú)*//*返回值:無(wú)*/voidWiFi_ResetIO_Init(void){ GPIO_InitTypeDefGPIO_InitStructure;//定義一個(gè)設(shè)置IO端口參數(shù)的結(jié)構(gòu)體 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//使能PA端口時(shí)鐘 GPIO_InitStructure.GPIO_Pin=GPIO_Pin_8;//準(zhǔn)備設(shè)置PA4 GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;//速率50Mhz GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;//推免輸出方式 GPIO_Init(GPIOA,&GPIO_InitStructure); //設(shè)置PA4 RESET_IO(1);//復(fù)位IO拉高電平}/*函數(shù)名:WiFi發(fā)送設(shè)置指令*//*參數(shù):cmd:指令*//*參數(shù):timeout:超時(shí)時(shí)間(100ms的倍數(shù))*//*返回值:0:正確其他:錯(cuò)誤*/charWiFi_SendCmd(char*cmd,inttimeout){ WiFi_RxCounter=0;//WiFi接收數(shù)據(jù)量變量清零 memset(WiFi_RX_BUF,0,WiFi_RXBUFF_SIZE);//清空WiFi接收緩沖區(qū) WiFi_printf("%s\r\n",cmd);//發(fā)送指令 while(timeout--){//等待超時(shí)時(shí)間到0 delay_ms(100);//延時(shí)100ms if(strstr(WiFi_RX_BUF,"OK"))//如果接收到OK表示指令成功 break; //主動(dòng)跳出while循環(huán) u1_printf("%d",timeout);//串口輸出現(xiàn)在的超時(shí)時(shí)間 } u1_printf("\r\n");//串口輸出信息 if(timeout<=0)return1;//如果timeout<=0,說(shuō)明超時(shí)時(shí)間到了,也沒(méi)能收到OK,返回1 elsereturn0;//反之,表示正確,說(shuō)明收到OK,通過(guò)break主動(dòng)跳出while}/*函數(shù)名:WiFi復(fù)位*//*參數(shù):timeout:超時(shí)時(shí)間(100ms的倍數(shù))*//*返回值:0:正確其他:錯(cuò)誤*/charWiFi_Reset(inttimeout){ RESET_IO(0);//復(fù)位IO拉低電平 delay_ms(100);//延時(shí)500ms RESET_IO(1);//復(fù)位IO拉高電平 while(timeout--){//等待超時(shí)時(shí)間到0 delay_ms(100);//延時(shí)100ms if(strstr(WiFi_RX_BUF,"ready"))//如果接收到ready表示復(fù)位成功 break; //主動(dòng)跳出while循環(huán) u1_printf("%d",timeout);//串口輸出現(xiàn)在的超時(shí)時(shí)間 } u1_printf("\r\n");//串口輸出信息 if(timeout<=0)return1;//如果timeout<=0,說(shuō)明超時(shí)時(shí)間到了,也沒(méi)能收到ready,返回1 elsereturn0; //反之,表示正確,說(shuō)明收到ready,通過(guò)break主動(dòng)跳出while}/*函數(shù)名:WiFi加入路由器指令*//*參數(shù):timeout:超時(shí)時(shí)間(1s的倍數(shù))*//*返回值:0:正確其他:錯(cuò)誤*/charWiFi_JoinAP(inttimeout){ WiFi_RxCounter=0;//WiFi接收數(shù)據(jù)量變量清零 memset(WiFi_RX_BUF,0,WiFi_RXBUFF_SIZE);//清空WiFi接收緩沖區(qū) WiFi_printf("AT+CWJAP=\"%s\",\"%s\"\r\n",SSID,PASS);//發(fā)送指令 while(timeout--){//等待超時(shí)時(shí)間到0 delay_ms(1000);//延時(shí)1s if(strstr(WiFi_RX_BUF,"OK"))//如果接收到WIFIGOTIP表示成功 break; //主動(dòng)跳出while循環(huán) u1_printf("%d",timeout);//串口輸出現(xiàn)在的超時(shí)時(shí)間 } u1_printf("\r\n");//串口輸出信息 if(timeout<=0)return1;//如果timeout<=0,說(shuō)明超時(shí)時(shí)間到了,也沒(méi)能收到WIFIGOTIP,返回1 return0;//正確,返回0}/*函數(shù)名:WiFi_Smartconfig*//*參數(shù):timeout:超時(shí)時(shí)間(1s的倍數(shù))*//*返回值:0:正確其他:錯(cuò)誤*/charWiFi_Smartconfig(inttimeout){ WiFi_RxCounter=0;//WiFi接收數(shù)據(jù)量變量清零 memset(WiFi_RX_BUF,0,WiFi_RXBUFF_SIZE);//清空WiFi接收緩沖區(qū) while(timeout--){//等待超時(shí)時(shí)間到0 delay_ms(1000);//延時(shí)1s if(strstr(WiFi_RX_BUF,"connected"))//如果串口接受到connected表示成功 break;//跳出while循環(huán) u1_printf("%d",timeout);//串口輸出現(xiàn)在的超時(shí)時(shí)間 } u1_printf("\r\n");//串口輸出信息 if(timeout<=0)return1;//超時(shí)錯(cuò)誤,返回1 return0;//正確返回0}/*函數(shù)名:等待加入路由器*//*參數(shù):timeout:超時(shí)時(shí)間(1s的倍數(shù))*//*返回值:0:正確其他:錯(cuò)誤*/charWiFi_WaitAP(inttimeout){ while(timeout--){//等待超時(shí)時(shí)間到0 delay_ms(1000);//延時(shí)1s if(strstr(WiFi_RX_BUF,"WIFIGOTIP"))//如果接收到WIFIGOTIP表示成功 break; //主動(dòng)跳出while循環(huán) u1_printf("%d",timeout);//串口輸出現(xiàn)在的超時(shí)時(shí)間 } u1_printf("\r\n");//串口輸出信息 if(timeout<=0)return1;//如果timeout<=0,說(shuō)明超時(shí)時(shí)間到了,也沒(méi)能收到WIFIGOTIP,返回1 return0;//正確,返回0}/*函數(shù)名:等待連接wifi,獲取IP地址*//*參數(shù):ip:保存IP的數(shù)組*//*參數(shù):timeout:超時(shí)時(shí)間(100ms的倍數(shù))*//*返回值:0:正確其他:錯(cuò)誤*/charWiFi_GetIP(inttimeout){ char*presult1,*presult2; charip[50]; WiFi_RxCounter=0;//WiFi接收數(shù)據(jù)量變量清零 memset(WiFi_RX_BUF,0,WiFi_RXBUFF_SIZE);//清空WiFi接收緩沖區(qū) WiFi_printf("AT+CIFSR\r\n");//發(fā)送指令 while(timeout--){//等待超時(shí)時(shí)間到0 delay_ms(100);//延時(shí)100ms if(strstr(WiFi_RX_BUF,"OK"))//如果接收到OK表示成功 break; //主動(dòng)跳出while循環(huán) u1_printf("%d",timeout);//串口輸出現(xiàn)在的超時(shí)時(shí)間 } u1_printf("\r\n");//串口輸出信息 if(timeout<=0)return1;//如果timeout<=0,說(shuō)明超時(shí)時(shí)間到了,也沒(méi)能收到OK,返回1 else{ presult1=strstr(WiFi_RX_BUF,"\""); if(presult1!=NULL){ presult2=strstr(presult1+1,"\""); if(presult2!=NULL){ memcpy(ip,presult1+1,presult2-presult1-1); u1_printf("ESP8266的IP地址:%s\r\n",ip);//串口顯示IP地址 return0;//正確返回0 }elsereturn2;//未收到預(yù)期數(shù)據(jù) }elsereturn3;//未收到預(yù)期數(shù)據(jù) }}/*函數(shù)名:獲取連接狀態(tài)*//*參數(shù):無(wú)*//*返回值:連接狀態(tài)*//*0:無(wú)狀態(tài)*//*1:有客戶端接入*//*2:有客戶端斷開(kāi)*/charWiFi_Get_LinkSta(void){ charid_temp[10]={0};//緩沖區(qū),存放ID charsta_temp[10]={0};//緩沖區(qū),存放狀態(tài) if(strstr(WiFi_RX_BUF,"CONNECT")){//如果接受到CONNECT表示有客戶端連接 sscanf(WiFi_RX_BUF,"%[^,],%[^,]",id_temp,sta_temp); u1_printf("有客戶端接入,ID=%s\r\n",id_temp);//串口顯示信息 WiFi_RxCounter=0;//WiFi接收數(shù)據(jù)量變量清零 memset(WiFi_RX_BUF,0,WiFi_RXBUFF_SIZE);//清空WiFi接收緩沖區(qū) return1;//有客戶端接入 }elseif(strstr(WiFi_RX_BUF,"CLOSED")){//如果接受到CLOSED表示有鏈接斷開(kāi) sscanf(WiFi_RX_BUF,"%[^,],%[^,]",id_temp,sta_temp); u1_printf("有客戶端斷開(kāi),ID=%s\r\n",id_temp);//串口顯示信息 WiFi_RxCounter=0;//WiFi接收數(shù)據(jù)量變量清零 memset(WiFi_RX_BUF,0,WiFi_RXBUFF_SIZE);//清空WiFi接收緩沖區(qū) return2;//有客戶端斷開(kāi) }elsereturn0;//無(wú)狀態(tài)改變}/*函數(shù)名:獲取客戶端數(shù)據(jù)*//*兩組回車換行符\r\n\r\n作為數(shù)據(jù)的結(jié)束符*//*參數(shù):data:數(shù)據(jù)緩沖區(qū)*//*參數(shù):len:數(shù)據(jù)量*//*參數(shù):id:發(fā)來(lái)數(shù)據(jù)的客戶端的連接ID*//*返回值:數(shù)據(jù)狀態(tài)*//*0:無(wú)數(shù)據(jù)*//*1:有數(shù)據(jù)*/charWiFi_Get_Data(char*data,char*len,char*id){ chartemp[10]={0};//緩沖區(qū) char*presult; if(strstr(WiFi_RX_BUF,"\r\n\r\n")){//兩個(gè)連著的回車換行作為數(shù)據(jù)的結(jié)束符 sscanf(WiFi_RX_BUF,"%[^,],%[^,],%[^:]",temp,id,len);//截取各段數(shù)據(jù),主要是id和數(shù)據(jù)長(zhǎng)度 presult=strstr(WiFi_RX_BUF,":");//查找冒號(hào)。冒號(hào)后的是數(shù)據(jù) if(presult!=NULL)//找到冒號(hào) sprintf((char*)data,"%s",(presult+1));//冒號(hào)后的數(shù)據(jù),復(fù)制到data WiFi_RxCounter=0;//WiFi接收數(shù)據(jù)量變量清零 memset(WiFi_RX_BUF,0,WiFi_RXBUFF_SIZE);//清空WiFi接收緩沖區(qū) return1;//有數(shù)據(jù)到來(lái) }elsereturn0;//無(wú)數(shù)據(jù)到來(lái)}/*函數(shù)名:服務(wù)器發(fā)送數(shù)據(jù)*//*參數(shù):databuff:數(shù)據(jù)緩沖區(qū)<2048*//*參數(shù):data_len:數(shù)據(jù)長(zhǎng)度*//*參數(shù):id:客戶端的連接ID*//*參數(shù):timeout:超時(shí)時(shí)間(10ms的倍數(shù))*//*返回值:錯(cuò)誤值*//*0:無(wú)錯(cuò)誤*//*1:等待發(fā)送數(shù)據(jù)超時(shí)*//*2:連接斷開(kāi)了*//*3:發(fā)送數(shù)據(jù)超時(shí)*/charWiFi_SendData(charid,char*databuff,intdata_len,inttimeout){ inti; WiFi_RxCounter=0;//WiFi接收數(shù)據(jù)量變量清零 memset(WiFi_RX_BUF,0,WiFi_RXBUFF_SIZE);//清空WiFi接收緩沖區(qū) WiFi_printf("AT+CIPSEND=%d,%d\r\n",id,data_len);//發(fā)送指令 while(timeout--){//等待超時(shí)與否 delay_ms(10);//延時(shí)10ms if(strstr(WiFi_RX_BUF,">"))//如果接收到>表示成功 break; //主動(dòng)跳出while循環(huán) u1_printf("%d",timeout);//串口輸出現(xiàn)在的超時(shí)時(shí)間 } if(timeout<=0)return1;//超時(shí)錯(cuò)誤,返回1 else{//沒(méi)超時(shí),正確 WiFi_RxCounter=0;//WiFi接收數(shù)據(jù)量變量清零 memset(WiFi_RX_BUF,0,WiFi_RXBUFF_SIZE);//清空WiFi接收緩沖區(qū) for(i=0;i<data_len;i++)WiFi_printf("%c",databuff[i]);//發(fā)送數(shù)據(jù) while(timeout--){//等待超時(shí)與否 delay_ms(10);//延時(shí)10ms if(strstr(WiFi_RX_BUF,"SENDOK")){//如果接受SENDOK,表示發(fā)送成功 WiFi_RxCounter=0;//WiFi接收數(shù)據(jù)量變量清零 memset(WiFi_RX_BUF,0,WiFi_RXBUFF_SIZE);//清空WiFi接收緩沖區(qū) break;//跳出while循環(huán) } if(strstr(WiFi_RX_BUF,"linkisnotvalid")){//如果接受linkisnotvalid,表示連接斷開(kāi) WiFi_RxCounter=0;//WiFi接收數(shù)據(jù)量變量清零 memset(WiFi_RX_BUF,0,WiFi_RXBUFF_SIZE);//清空WiFi接收緩沖區(qū) return2;//返回2 } } if(timeout<=0)return3;//超時(shí)錯(cuò)誤,返回3 elsereturn0; //正確,返回0 } }/*函數(shù)名:連接TCP服務(wù)器,并進(jìn)入透?jìng)髂J?//*參數(shù):timeout:超時(shí)時(shí)間(100ms的倍數(shù))*//*返回值:0:正確其他:錯(cuò)誤*/charWiFi_Connect_Server(inttimeout){ WiFi_RxCounter=0;//WiFi接收數(shù)據(jù)量變量清零 memset(WiFi_RX_BUF,0,WiFi_RXBUFF_SIZE);//清空WiFi接收緩沖區(qū) WiFi_printf("AT+CIPSTART=\"TCP\",\"%s\",%d\r\n",ServerIP,ServerPort);//發(fā)送連接服務(wù)器指令 while(timeout--){//等待超時(shí)與否 delay_ms(100);//延時(shí)100ms if(strstr(WiFi_RX_BUF,"CONNECT"))//如果接受到CONNECT表示連接成功 break;//跳出while循環(huán) if(strstr(WiFi_RX_BUF,"CLOSED"))//如果接受到CLOSED表示服務(wù)器未開(kāi)啟 return1;//服務(wù)器未開(kāi)啟返回1 if(strstr(WiFi_RX_BUF,"ALREADYCONNECTED"))//如果接受到ALREADYCONNECTED已經(jīng)建立連接 return2;//已經(jīng)建立連接返回2 u1_printf("%d",timeout);//串口輸出現(xiàn)在的超時(shí)時(shí)間 } u1_printf("\r\n");//串口輸出信息 if(timeout<=0)return3;//超時(shí)錯(cuò)誤,返回3 else//連接成功,準(zhǔn)備進(jìn)入透?jìng)?{ u1_printf("準(zhǔn)備進(jìn)入透?jìng)鱘r\n");//串口顯示信息 WiFi_RxCounter=0;//WiFi接收數(shù)據(jù)量變量清零 memset(WiFi_RX_BUF,0,WiFi_RXBUFF_SIZE);//清空WiFi接收緩沖區(qū) WiFi_printf("AT+CIPSEND\r\n");//發(fā)送進(jìn)入透?jìng)髦噶? while(timeout--){//等待超時(shí)與否 delay_ms(100);//延時(shí)100ms if(strstr(WiFi_RX_BUF,">"))//如果成立表示進(jìn)入透?jìng)鞒晒? break;//跳出while循環(huán) u1_printf("%d",timeout);//串口輸出現(xiàn)在的超時(shí)時(shí)間 } if(timeout<=0)return4;//透?jìng)鞒瑫r(shí)錯(cuò)誤,返回4 } return0; //成功返回0 }/*函數(shù)名:斷開(kāi)連接*//*參數(shù):timeout:超時(shí)時(shí)間(100ms的倍數(shù))*//*返回值:0:正確其他:錯(cuò)誤*/charWiFi_Close(inttimeout){ delay_ms(200);//延時(shí) WiFi_printf("+++");//發(fā)送退出透?jìng)?delay_ms(1500);//延時(shí) Connect_flag=0;//連接成功標(biāo)志置位清除 WiFi_RxCounter=0;//WiFi接收數(shù)據(jù)量變量清零 memset(WiFi_RX_BUF,0,WiFi_RXBUFF_SIZE);//清空WiFi接收緩沖區(qū) WiFi_printf("AT+CIPCLOSE\r\n");//發(fā)送指令 while(timeout--){//等待超時(shí)時(shí)間到0 delay_ms(100);//延時(shí)100ms if(strstr(WiFi_RX_BUF,"OK"))//如果接收到OK表示成功 break; //主動(dòng)跳出while循環(huán) u1_printf("%d",timeout);//串口輸出現(xiàn)在的超時(shí)時(shí)間 } u1_printf("\r\n");//串口輸出信息 if(timeout<=0)return1;//如果timeout<=0,說(shuō)明超時(shí)時(shí)間到了,返回

溫馨提示

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