




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
PAGEPAGE37畢業(yè)設(shè)計(jì)畢業(yè)設(shè)計(jì)題智能家居(小型公寓)畢業(yè)設(shè)計(jì)類型產(chǎn)品設(shè)計(jì)□工藝設(shè)計(jì)□方案設(shè)計(jì)姓名班級(jí)所屬系部物流工程系專業(yè)電子信息工程技術(shù)指導(dǎo)教師職稱完成時(shí)間摘要為了使家居生活變得更加方便和輕松,也為了滿足現(xiàn)代智能家居對(duì)控制設(shè)備集成化、小型化的要求,智能家居是利用綜合布線、安全防范等技術(shù)將與家居生活有關(guān)的系統(tǒng)有機(jī)地結(jié)合在一起,該系統(tǒng)用來(lái)提升家居的便利性、舒適性和安全性。日常的室內(nèi)起居在人們的生活中扮演著重要的角色,那么如何將智能家居先進(jìn)的科學(xué)技術(shù)應(yīng)用到人們的正常生活中去,從而改善和提高人們的生活質(zhì)量,成為人們關(guān)注的問(wèn)題之一。本次設(shè)計(jì)旨在設(shè)計(jì)一款性價(jià)比高,實(shí)用性廣,功能多樣,操作簡(jiǎn)易,易于被用戶接受的智能家居系統(tǒng)。通過(guò)對(duì)智能家居系統(tǒng)的功能分析,可將該系統(tǒng)劃分為四個(gè)模塊:智能主控制模塊,通訊模塊,家電模塊,電源模塊、傳感器模塊。智能主控制模塊,作為整個(gè)系統(tǒng)的核心,響應(yīng)并智能處理其他模塊的消息;通訊模塊,作為智能家居中提供無(wú)線通訊的模塊,為用戶與智能家居系統(tǒng)之間搭建了信息傳遞平臺(tái),智能主控制模塊通過(guò)串口與該模塊進(jìn)行通訊,及時(shí)將信息傳遞至用戶,用戶也是通過(guò)該模塊對(duì)整個(gè)智能家居系統(tǒng)進(jìn)行實(shí)時(shí)控制。本系統(tǒng)采用STM32系列新一代嵌入式處理器為核心,配合外圍的硬件設(shè)備和軟件的驅(qū)動(dòng),實(shí)現(xiàn)了對(duì)家居家電的遠(yuǎn)程控制、室內(nèi)監(jiān)控、安防報(bào)警、室內(nèi)數(shù)據(jù)信息保存等功能。利用相關(guān)的傳感器采集室內(nèi)的數(shù)據(jù)信息。關(guān)鍵詞:智能家居STM32目錄1.緒論 21.1設(shè)計(jì)概述 21.2設(shè)計(jì)研究的意義 31.3設(shè)計(jì)的主要工作 42.總體設(shè)計(jì)方案 42.1系統(tǒng)需求分析 42.2系統(tǒng)設(shè)計(jì)目標(biāo)和原則 52.3嵌入式操作系統(tǒng)簡(jiǎn)介 6(1)嵌入式操作系統(tǒng)的定義 6(2)嵌入式操作系統(tǒng)特性 72.4總體設(shè)計(jì) 92.5Cortex-M3和STM32介紹 10(1)Cortex-M3介紹 10(2)STM32簡(jiǎn)介 122.6傳感器介紹 14(1)上位機(jī) 15(2)溫度傳感器 16(3)濕度傳感器 17(4)可燃?xì)怏w探測(cè)器 17(5)雙光束對(duì)射紅外探測(cè)器 17(6)紅外探測(cè)器 18(7)智能插座 18(8)多功能面板 18(9)風(fēng)雨探測(cè)器 183.硬件設(shè)計(jì) 193.1系統(tǒng)硬件選型 193.2主機(jī)控制板設(shè)計(jì) 193.3智能家居系統(tǒng)模塊功能設(shè)計(jì)方案 203.3.1硬件平臺(tái)的主要電路介紹: 20(1)智能主控制模塊電源電路主控制模塊設(shè)計(jì) 20(2)主控制器的外圍電路設(shè)計(jì) 21(3)RS485通信模塊設(shè)計(jì) 22(4)家居燈光控制模塊設(shè)計(jì) 224.軟件設(shè)計(jì) 234.1智能家居應(yīng)用軟件實(shí)現(xiàn) 25總結(jié) 36參考文獻(xiàn) 37致謝 381.緒論1.1設(shè)計(jì)概述伴隨著經(jīng)濟(jì)迅速發(fā)展和社會(huì)整體的進(jìn)步,特別是電腦信息控制技術(shù)、自動(dòng)化技術(shù)和移動(dòng)通訊技術(shù)的日漸成熟,逐漸幵始改變?nèi)粘I畹墓ぷ髁?xí)慣。傳統(tǒng)家用電器并沒(méi)有因信息時(shí)代的到來(lái)而產(chǎn)生革命性的變化。在這樣的背景下,人們對(duì)現(xiàn)有生活條件提出了更高的要求。特別是在家居環(huán)境方面,高效、快捷、舒適、智能化和低碳等漸漸成為高品質(zhì)生活的新要求。如何簡(jiǎn)便的在居家環(huán)境中配置適合家庭用的小型網(wǎng)絡(luò),將各類生活電器組成一個(gè)整體,并通過(guò)設(shè)備或者個(gè)人電腦對(duì)家庭各個(gè)家電進(jìn)行方便的管理使用和遠(yuǎn)程監(jiān)控,使住戶對(duì)整個(gè)家庭環(huán)境更為有效的了解和控制。并且隨著大規(guī)模集成電路技術(shù)、電子通訊技術(shù)、電腦控制技術(shù)的不斷進(jìn)步,提供給了智能家居技術(shù)基礎(chǔ)。本設(shè)計(jì)以應(yīng)用為目的,將智能家居與遙控相結(jié)合,不僅實(shí)現(xiàn)通過(guò)傳感器監(jiān)視環(huán)境,遠(yuǎn)程報(bào)警,遠(yuǎn)程控制等,而且通過(guò)分析傳感器信息,控制遙控自動(dòng)調(diào)節(jié)室內(nèi)環(huán)境的目的。對(duì)于該系統(tǒng)的設(shè)計(jì),緊密圍繞智能家居系統(tǒng)的設(shè)計(jì)基本要求,以系統(tǒng)的安全可靠為第一設(shè)計(jì)要求;系統(tǒng)中加入了大量的安全和保護(hù)措施,確保系統(tǒng)的安全性,同時(shí)加入備用電源提高了系統(tǒng)的應(yīng)用領(lǐng)域。1.2設(shè)計(jì)研究的意義智能家居系統(tǒng)具有廣泛的市場(chǎng)前景,不過(guò)由于很多現(xiàn)實(shí)方面的原因,沒(méi)有得到快速的發(fā)展。這個(gè)方面的原因有很多,最重要的原因還是由于這方面的產(chǎn)品價(jià)格比較昂貴,以裝修戶型為3室2廳房子為例(配置家庭網(wǎng)關(guān)):國(guó)外公司產(chǎn)品需要4-7萬(wàn)元左右不等,國(guó)內(nèi)主流產(chǎn)品則稍微便宜也需要2-3萬(wàn)元左右。高昂的價(jià)格對(duì)普通消費(fèi)者而言是筆巨大的幵支,令普通消費(fèi)者望而卻步。因此開發(fā)低端的市場(chǎng)產(chǎn)品顯的尤為重要。本設(shè)計(jì)的研究目標(biāo)是通過(guò)以STM32為基礎(chǔ)完成一套小型公寓的智能家居控制系統(tǒng)。主要為了實(shí)現(xiàn)價(jià)格便宜、簡(jiǎn)單實(shí)用等特性,以此來(lái)滿足社會(huì)對(duì)于低端智能家居產(chǎn)品方面的需求。同時(shí)在研究設(shè)計(jì)過(guò)程中提高自己嵌入式系統(tǒng)開發(fā)的能力,和培養(yǎng)自己發(fā)現(xiàn)實(shí)際問(wèn)題,解決問(wèn)題的能力。完成這樣一個(gè)低端的智能家居系統(tǒng),能夠改變普通的消費(fèi)者的生活體驗(yàn),滿足他們對(duì)家居智能化的要求,同樣也能夠推動(dòng)發(fā)展智能家居產(chǎn)業(yè)。智能家居,旨在為用戶居住環(huán)境提供溫馨、愜意、安全的嵌入式系統(tǒng)。它通過(guò)在用戶的家庭住宅中,采用多種功能的設(shè)計(jì)方案,部署智能家居系統(tǒng),并利用適宜的通訊技術(shù)將系統(tǒng)功能模塊銜接起來(lái),為家庭住宅組建一套管理家居設(shè)施的系統(tǒng)。常見的智能家居系統(tǒng)如:住宅安防系統(tǒng)(防火、防盜、防煤氣泄漏等)、家電控制系統(tǒng)、網(wǎng)絡(luò)通訊系統(tǒng)等等。1.3設(shè)計(jì)的主要工作本設(shè)計(jì)構(gòu)建了一個(gè)智能家居控制系統(tǒng)的軟硬件平臺(tái),考慮到整個(gè)系統(tǒng)的通用性和可擴(kuò)展性,采用嵌入式STM32相結(jié)合的方案,配合各種家居子系統(tǒng),實(shí)現(xiàn)了智能家居的各種功能。主要研究?jī)?nèi)容概括如下:(1)基于智能家居對(duì)控制系統(tǒng)軟硬件的基本要求,設(shè)計(jì)嵌入式系統(tǒng)的總體方案。(2)實(shí)現(xiàn)智能家居的核心控制器和各子系統(tǒng)包括門禁、煙霧報(bào)警的硬件電路的設(shè)計(jì)。(3)實(shí)現(xiàn)以嵌入式為主控制器的家居子系統(tǒng)地軟件設(shè)計(jì)。(4)剖析嵌入式操作系統(tǒng)STM32的內(nèi)核結(jié)構(gòu),并在核心控制器中構(gòu)建STM32嵌入式操作系統(tǒng)平臺(tái)。(5)在軟硬件平臺(tái)上開發(fā)各種嵌入式應(yīng)用程序,實(shí)現(xiàn)智能家居的基本功能。2.總體設(shè)計(jì)方案2.1系統(tǒng)需求分析智能家居通常以基于Cortex-M3構(gòu)架的STM32系列芯片為核心,采用標(biāo)準(zhǔn)進(jìn)行模塊化設(shè)計(jì),以智能家居為載體,為用戶提供微型化、智能化和網(wǎng)絡(luò)化的控制模塊及產(chǎn)品。適用于智能電子產(chǎn)品系統(tǒng)、智能家居等眾多領(lǐng)域。2.2系統(tǒng)設(shè)計(jì)目標(biāo)和原則設(shè)計(jì)系統(tǒng)之前,需要對(duì)整個(gè)系統(tǒng)進(jìn)行很好的規(guī)劃,統(tǒng)籌安排開發(fā)進(jìn)度,為項(xiàng)目的順利完成打下良好基礎(chǔ)。本課題的設(shè)計(jì)目的是實(shí)現(xiàn)一個(gè)簡(jiǎn)單的智能家居系統(tǒng),能夠在普通家庭中得到應(yīng)用,因此在設(shè)計(jì)的時(shí)候遵循以下原則:(1)簡(jiǎn)單實(shí)用對(duì)于大多數(shù)家庭的日常生活而言,智能家居功能的簡(jiǎn)單實(shí)用性是具有重要意義的。目前市面上的一些看似較為先進(jìn)的智能家居系統(tǒng),得不到有效推廣的一個(gè)重要原因就在于很多功能看似花哨卻不實(shí)用,有時(shí)會(huì)使簡(jiǎn)單的事情變得更加麻煩,同時(shí)復(fù)雜的操作界面和功能設(shè)置也讓人頭疼,因此簡(jiǎn)單實(shí)用是該系統(tǒng)設(shè)計(jì)的原則。(2)價(jià)格低廉智能家居要在國(guó)內(nèi)得到普及,一個(gè)重要的門檻就是價(jià)格,這也是制約智能家居現(xiàn)階段發(fā)展的一個(gè)重要因素。要做到價(jià)格低廉,首先需要成本低廉。要滿足性能的同時(shí)降低成本,就必須在器件選擇上多下功夫。選擇高性價(jià)比的芯片和外圍器件以及開源的軟件。(3)穩(wěn)定耐用好的系統(tǒng)必然是一個(gè)穩(wěn)定的系統(tǒng),智能家居系統(tǒng)也不例外。要做到性能穩(wěn)定,就必須保證系統(tǒng)架構(gòu)的合理性,以及軟硬件設(shè)計(jì)的一協(xié)調(diào)性。(4)可擴(kuò)展性可擴(kuò)展性是判斷一個(gè)系統(tǒng)好壞的重要因素,在設(shè)計(jì)各個(gè)模塊功能時(shí)要考慮使系統(tǒng)具備一定的可擴(kuò)展性,方便日后的優(yōu)化和升級(jí)。2.3嵌入式操作系統(tǒng)簡(jiǎn)介(1)嵌入式操作系統(tǒng)的定義為了和一般使用的計(jì)算機(jī)系統(tǒng)進(jìn)行區(qū)分,把系統(tǒng)包含到對(duì)象體系中,以此來(lái)完成控制的智能化的系統(tǒng)稱為嵌入式系統(tǒng)。此類系統(tǒng)己經(jīng)普遍在移動(dòng)通訊、數(shù)碼產(chǎn)品、工控設(shè)備、手持終端和醫(yī)療設(shè)備等各個(gè)領(lǐng)域得到應(yīng)用。由于現(xiàn)代電腦信息技術(shù)的快速發(fā)展,進(jìn)行嵌入式系統(tǒng)的應(yīng)用方面的研究比以往有了更多的實(shí)際應(yīng)用價(jià)值。家庭用的個(gè)人電腦或者功能強(qiáng)大的MCU都可以成為智能家居系統(tǒng)的控制設(shè)備。近年來(lái),由于科技的發(fā)展,運(yùn)用單片機(jī)所設(shè)計(jì)的系統(tǒng)其硬件電路規(guī)模變的很大,所具備的功能也變的更多,因此為嵌入式的操作系統(tǒng)開發(fā)提供了硬件保證,從而產(chǎn)生了很多具備各種使用優(yōu)點(diǎn)的系統(tǒng)。所以嵌入式操作系統(tǒng)是指那些能夠在嵌入式的平臺(tái)上開發(fā)運(yùn)行,對(duì)全部系統(tǒng)和其所控制作用的裝置、部件等其它資源能夠一起調(diào)用、指揮和控制的軟件。(2)嵌入式操作系統(tǒng)特性由于嵌入式操作系統(tǒng)的硬件資源有限、多樣化的應(yīng)用環(huán)境和特殊的開發(fā)手段,使它和普通應(yīng)用的操作系統(tǒng)有著很多的不同,其主要特點(diǎn)如下:微型化;嵌入式系統(tǒng)的芯片內(nèi)部存儲(chǔ)的資源空間比較有限,電池的容量比較小以及復(fù)雜多變的外部連接設(shè)備,這部分客觀的條件就決定了嵌入式操作系統(tǒng)允許使用的資源有限,所以在保證所必要使用功能條件下,嵌入式操作系統(tǒng)的所占空間的大小越少越好。可靠性強(qiáng);嵌入式系統(tǒng)普遍在航空航天、交通工具、武器裝備、重要的生產(chǎn)裝備領(lǐng)域場(chǎng)合得到使用,這些都要求嵌入式操作系統(tǒng)在可靠性上有非常好的展示,在保障性要求高的地方還必須提供必要的防錯(cuò)和容錯(cuò)方法,以此來(lái)提高系統(tǒng)的穩(wěn)定可靠性。實(shí)時(shí)性強(qiáng);現(xiàn)在嵌入式系統(tǒng)在工業(yè)現(xiàn)場(chǎng)環(huán)境監(jiān)測(cè)、移動(dòng)通信、生產(chǎn)控制等行業(yè)場(chǎng)合被普遍地應(yīng)用,以上這些領(lǐng)域都需要系統(tǒng)能夠及時(shí)對(duì)事件判斷產(chǎn)生反應(yīng)。所以嵌入式操作系統(tǒng)必須要有比較強(qiáng)的實(shí)時(shí)性。裁剪性好;采用嵌入式操作系統(tǒng)平臺(tái)類別非常之多,所以要求該系統(tǒng)中可以提供各種功能組件能夠讓開發(fā)者依照自己的要求選擇使用,既要求它具有較好的裁剪性。易移值性;為了適合各種各樣的硬件資源平臺(tái),嵌入式操作系統(tǒng)應(yīng)該能在做較少更改的情況下可以平穩(wěn)可靠的運(yùn)行在不同處理器芯片的硬件平臺(tái)上。這就要求嵌入式操作系統(tǒng)應(yīng)該具有易移植性。國(guó)際上各家大型軟件公司、還有個(gè)人在面對(duì)嵌入式系統(tǒng)的廣闊的使用領(lǐng)域和誘人的錢景下,都陸續(xù)開發(fā)研究出具有自身優(yōu)勢(shì)的嵌入式操作系統(tǒng)。目前,在各個(gè)領(lǐng)域被應(yīng)用開發(fā)較多的嵌入式操作系統(tǒng)有WindRiver公司的pSOS、VxWorks,Micosoft公司的WindowsCE,QNX公司的QNXOS,還有在手機(jī)等移動(dòng)手持設(shè)備中廣泛被使用的WinCE、安卓Android、蘋果OS、WP等,但是使用這些大企業(yè)開發(fā)的操作系統(tǒng)一般需要支付比較昂貴的授權(quán)使用的費(fèi)用。正是由于這些情況,一些個(gè)人和組織也開發(fā)了一些免費(fèi)的、開源的操作系統(tǒng)在互聯(lián)網(wǎng)上發(fā)布,在這中間比較有名的是tiC/OS-n和iCLinux。通過(guò)選擇比較,本論文選用了基于Cortex-M3內(nèi)核的STM32系列的微處理器和c/os-n作為本論文所設(shè)計(jì)開發(fā)的智能家居控制系統(tǒng)的軟硬件基礎(chǔ)。此外,由于個(gè)人電腦操作方便,可以很便捷的開發(fā)設(shè)計(jì)項(xiàng)目,重要的是處理運(yùn)算的能力比較強(qiáng)大,所以本論文個(gè)人電腦作為智能家居控制系統(tǒng)軟件設(shè)計(jì)調(diào)試和異常環(huán)境監(jiān)測(cè)方法的驗(yàn)證平臺(tái),但是整個(gè)實(shí)際的系統(tǒng)還是以開發(fā)板載上的嵌入式操作系統(tǒng)為控制系統(tǒng)的核心。2.4總體設(shè)計(jì)本系統(tǒng)是以基于Cortex-M3為內(nèi)核的STM32微處理器為嵌入式控制器的核心CPU,選擇tiC/OS-II為智能家居系統(tǒng)的操作系統(tǒng),以iC/GUI為系統(tǒng)人機(jī)界面的軟件平臺(tái),以此組建本論文家居控制系統(tǒng)的控制中心,向外部的設(shè)備模塊收發(fā)信號(hào)來(lái)控制實(shí)際的外圍設(shè)備,從而實(shí)現(xiàn)家電控制和對(duì)室內(nèi)環(huán)境的監(jiān)測(cè)。由智能家居系統(tǒng)流程圖,圖.1所示。家用電器控制家用電器控制電燈窗簾空調(diào)……………家電控制模塊STM32控制器家居傳感器煤氣傳感器光電煙霧傳感器熱紅外傳感器……………本地用戶控制觸摸屏通信模塊遠(yuǎn)程控制模塊/PD用戶遠(yuǎn)程監(jiān)控室內(nèi)環(huán)境異常入侵安防監(jiān)控異常檢測(cè)模塊室內(nèi)環(huán)境數(shù)據(jù)監(jiān)控RS485RS232ZigbeeZigbeeGPRS圖2.1智能家居系統(tǒng)流程圖2.5Cortex-M3和STM32介紹(1)Cortex-M3介紹Cortex-M3是第一款根據(jù)ARMv7-M架構(gòu)所設(shè)計(jì)的32位微處理器,具備能耗低、調(diào)試花費(fèi)少等很多特點(diǎn)。在機(jī)械控制系統(tǒng)、乘用車內(nèi)部電子控制系統(tǒng)、移動(dòng)通訊網(wǎng)絡(luò)和工控領(lǐng)域等對(duì)能耗和價(jià)格低廉的領(lǐng)域廣泛的使用該類芯片,該類芯片幵發(fā)編程比較簡(jiǎn)單,具有出色的運(yùn)算處理性能強(qiáng)、能耗低、開發(fā)花費(fèi)少等特點(diǎn)。該架構(gòu)的MCU—般有內(nèi)核、總線接口部分、控制嵌套中斷使用情況的NVIC、調(diào)試跟蹤單元和保護(hù)存儲(chǔ)器單元MCU等幾部分組成,它們有以下競(jìng)爭(zhēng)優(yōu)勢(shì):采用了哈佛架構(gòu)的3級(jí)流水線處理工藝內(nèi)核,將硬件乘除法等很多功能集于一體,運(yùn)算性能快,能耗低特點(diǎn)。由于該類芯片運(yùn)用Thumb-2命令集,具有性能更加卓越和指令執(zhí)行的效率更高,Thumb-2命令集綜合了16位和32位指令的各自性能特點(diǎn),而且C語(yǔ)言由于底層芯片架構(gòu)的特點(diǎn)運(yùn)行得更快,降低了系統(tǒng)軟件以后維護(hù)升級(jí)的難度。該系列處理器運(yùn)用了ARMCoreSight的調(diào)試方式,該方式有兩種接口:訪問(wèn)端口DAP和追蹤端口TP。DAP端口可以用作串行JTAG調(diào)試口或者串行調(diào)試口SW-DPo而SW-DP調(diào)試更為簡(jiǎn)單方便只要數(shù)據(jù)和時(shí)鐘兩根線就能夠調(diào)試,調(diào)試具有和JTAG同樣的效果。MCU能夠保護(hù)存儲(chǔ)的數(shù)據(jù),在該類處理器中是可以選擇使用或者不使用的。NVIC是該系類芯片中斷管理部分,能夠管理多達(dá)240個(gè)中斷以及對(duì)其配置256個(gè)中斷優(yōu)先級(jí)。使用各中中斷管理技術(shù),使得CPU響應(yīng)中斷處理的速度比以前更加快速,喚醒從低功耗模式時(shí)間、背對(duì)背中斷之間的延時(shí)都只要六個(gè)CPU周期時(shí)間。處理器的總線矩陣BusMatrix將核和外面的總線和調(diào)試用的接口進(jìn)行連接,此外還采用位段處理技術(shù)和不對(duì)稱數(shù)據(jù)訪問(wèn)機(jī)制,大大加快了處理器訪問(wèn)外部設(shè)備的速率。由于這些特點(diǎn),該系列處理器比ARM7TDMI的運(yùn)行的速率能夠快35%而編程的代碼能夠減少45%。(2)STM32簡(jiǎn)介意法公司開發(fā)的STM32系列處理器采用了Cortex-M3的內(nèi)核架構(gòu)。該系列芯片專用于為了滿足能耗使用低、處理性能強(qiáng)、芯片的實(shí)時(shí)性效果好、價(jià)格低廉的嵌入式場(chǎng)合要求。STM32系列給微處理器使用者帶來(lái)了廣闊的開發(fā)空間,提供全新的32位產(chǎn)品供用戶選擇使用,結(jié)合了產(chǎn)品性能高、能耗低、實(shí)時(shí)性強(qiáng)、電壓要求低等特點(diǎn),而且還具備芯片的集中程度高和方便開發(fā)的優(yōu)點(diǎn)。STM32系列處理器目前主要有三個(gè)大的類別。STM32F101是基礎(chǔ)產(chǎn)品系列,其處理運(yùn)算速率可以達(dá)到36MHz。STM32F103是加強(qiáng)型產(chǎn)品系列,其處理運(yùn)算速率可以達(dá)到72MHz,該系列芯片本身集成很多內(nèi)部的RAM和外圍設(shè)備。STM32系列的F105和F107是該公司最先進(jìn)應(yīng)用于網(wǎng)絡(luò)通信的芯片產(chǎn)品,和其它系列的芯片相比,增加了以太網(wǎng)接口和USB接口。意法半導(dǎo)體公司的STM32系列MCU芯片具備很多特點(diǎn),如下:運(yùn)用了ARM公司最新的、最先進(jìn)的Cortex-M3內(nèi)核。突出的能耗控制。STM32經(jīng)過(guò)特別設(shè)計(jì),將動(dòng)態(tài)耗電機(jī)制、電池供電方式下低電壓工作性能和等待運(yùn)行狀態(tài)下的低功耗進(jìn)行最優(yōu)化處理控制。創(chuàng)新出眾的外設(shè)。提供各種開發(fā)資源和固件庫(kù)便于用戶開發(fā),促使新研發(fā)的產(chǎn)品很快上市。STM32F10X系列MCU的內(nèi)部結(jié)構(gòu)參考如下圖所示,該系列芯片內(nèi)部結(jié)構(gòu)隨著其型號(hào)不同,具體的結(jié)構(gòu)也略有不同。智能家居控制器以基于Cortex-M3構(gòu)架的STM32系列芯片為核心的標(biāo)準(zhǔn)模塊式產(chǎn)品,預(yù)留標(biāo)準(zhǔn)的以太網(wǎng)接口、4路RS485接口、I\O、AD、DA接口。圖2.2STM32引腳圖2.6傳感器介紹系統(tǒng)采用的傳感器主要包括上位機(jī)和主控制器兩類。上位機(jī)包括:主控制器。主控制器包括:溫度傳感器、濕度傳感器、光照傳感器、可燃?xì)怏w探測(cè)器、煙火探測(cè)器、紅外探測(cè)器、智能插座、多功能面板、雙光束探測(cè)器、風(fēng)雨探測(cè)器等等。由于兩類主控制器返回的信號(hào)不同,所以系統(tǒng)分別對(duì)他們進(jìn)行主控制器以后上位機(jī),如圖.3所示:上位機(jī)上位機(jī)主控制器濕度傳感器溫度傳感器光照傳感器可燃?xì)怏w探測(cè)器煙火探測(cè)器紅外探測(cè)器智能插座多功能面板雙光束探測(cè)器風(fēng)雨探測(cè)器圖2.3主要傳感器介紹:(1)上位機(jī)是指人可以直接發(fā)出操控命令的計(jì)算機(jī),一般是PC,屏幕上顯示各種信號(hào)變化(液壓,水位,溫度等)。下位機(jī)是直接控制設(shè)備獲取設(shè)備狀況的的計(jì)算機(jī),一般是PLC/單片機(jī)之類的。上位機(jī)發(fā)出的命令首先給下位機(jī),下位機(jī)再根據(jù)此命令解釋成相應(yīng)時(shí)序信號(hào)直接控制相應(yīng)設(shè)備。下位機(jī)不時(shí)讀取設(shè)備狀態(tài)數(shù)據(jù)(一般模擬量),轉(zhuǎn)化成數(shù)字信號(hào)反饋給上位機(jī)。簡(jiǎn)言之如此,真實(shí)情況千差萬(wàn)別不離其宗。上下位機(jī)都需要編程,都有專門的開發(fā)系統(tǒng)。
在概念上
:控制者和提供服務(wù)者是上位機(jī)
,被控制者和被服務(wù)者是下位機(jī)
也可以理解為主機(jī)和從機(jī)的關(guān)系
,但上位機(jī)和下位機(jī)是可以轉(zhuǎn)換的。兩機(jī)如何通訊,一般取決于下位機(jī)。TCP/IP一般是支持的。但是下位機(jī)一般具有更可靠的獨(dú)有通訊協(xié)議,購(gòu)買下位機(jī)時(shí),會(huì)帶一大堆手冊(cè)光盤,告訴你如何使用特有協(xié)議通訊。里面會(huì)舉大量例子。一般對(duì)編程人員而言一看也就那么回事,使用一些新的API罷了。多語(yǔ)言支持功能模塊,一般同時(shí)支持?jǐn)?shù)種高級(jí)語(yǔ)言為上位機(jī)編程。(2)溫度傳感器是應(yīng)用最廣的一類傳感器。溫度傳感器的市場(chǎng)份額大大超過(guò)了其他的傳感器。從17世紀(jì)初人們開始利用溫度進(jìn)行測(cè)量。在半導(dǎo)體技術(shù)的支持下,本世紀(jì)相繼開發(fā)了半導(dǎo)體熱電偶傳感器、PN結(jié)溫度傳感器和集成溫度傳感器。與之相應(yīng),根據(jù)波與物質(zhì)的相互作用規(guī)律,相繼開發(fā)了聲學(xué)溫度傳感器、紅外傳感器和微波傳感器。溫度傳感器是指能感受溫度并轉(zhuǎn)換成可用輸出信號(hào)的傳感器。溫度傳感器是溫度測(cè)量?jī)x表的核心部分,品種繁多。按測(cè)量方式可分為接觸式和非接觸式兩大類,按照傳感器材料及電子元件特性分為熱電阻和熱電偶兩類。(3)濕度傳感器濕敏元件是最簡(jiǎn)單的濕度傳感器。濕敏元件主要有電阻式、電容式類。濕敏電阻的特點(diǎn)是在基片上覆蓋一層用感濕材料制成的膜,當(dāng)空中的水蒸氣吸附在感濕膜上時(shí),元件的電阻率和電阻值都發(fā)生變化,利用這一特性即可測(cè)量濕度。(4)可燃?xì)怏w探測(cè)器是對(duì)單一或多種可燃?xì)怏w濃度響應(yīng)的探測(cè)器??扇?xì)怏w探測(cè)器有催化型、紅外光學(xué)型兩種類型。催化型可燃?xì)怏w探測(cè)器是利用難熔金屬鉑絲加熱后的電阻變化來(lái)測(cè)定可燃?xì)怏w濃度。當(dāng)可燃?xì)怏w進(jìn)入探測(cè)器時(shí),在鉑絲表面引起氧化反應(yīng)(無(wú)焰燃燒),其產(chǎn)生的熱量使鉑絲的溫度升高,而鉑絲的電阻率便發(fā)生變化。紅外光學(xué)型是利用紅外傳感器通過(guò)紅外線光源的吸收原理來(lái)檢測(cè)現(xiàn)場(chǎng)環(huán)境的烷烴類可燃?xì)怏w。(5)雙光束對(duì)射紅外探測(cè)器其基本的構(gòu)造包括瞄準(zhǔn)孔、光束強(qiáng)度指示燈、球面鏡片、LED指示燈等。其偵測(cè)原理乃是利用紅外線經(jīng)LED紅外光發(fā)射二極體,再經(jīng)光學(xué)鏡面做聚焦處理使光線傳至很遠(yuǎn)距離,由受光器接受。當(dāng)光線被遮斷時(shí)就會(huì)發(fā)出警報(bào)。報(bào)警信號(hào)采集到智能家居控制器中,配合組成安防系統(tǒng)。(6)紅外探測(cè)器是一種當(dāng)入侵者接近它時(shí)能觸發(fā)報(bào)警的探測(cè)裝置。報(bào)警信號(hào)采集到智能家居控制器中,配合組成安防系統(tǒng)。(7)智能插座以基于Cortex-M3構(gòu)架的STM32系列芯片為核心的智能產(chǎn)品,內(nèi)含ADE7753電能芯片、液晶屏、繼電器等,可計(jì)量顯示對(duì)應(yīng)家用電器的電量參數(shù),并可設(shè)置何時(shí)啟動(dòng)該家用電器的電源,可合理分配家中用電負(fù)荷,實(shí)現(xiàn)智能電網(wǎng)功能。可通過(guò)485總線與家庭控制中心通訊。也可獨(dú)立工作。(8)多功能面板以基于Cortex-M3構(gòu)架的STM32系列芯片為核心的智能產(chǎn)品,包含4路繼電器輸出,可同時(shí)控制4路負(fù)載(燈、排氣扇等),可通過(guò)485總線與家庭控制中心通訊。也可獨(dú)立工作。(9)風(fēng)雨探測(cè)器風(fēng)感器:脈沖發(fā)生器,頻率/電壓轉(zhuǎn)換器;雨感器:鍍金電極間水阻傳導(dǎo)。用風(fēng)葉轉(zhuǎn)動(dòng)和雨滴接收器感應(yīng)并發(fā)出信號(hào),敏感度高,并且風(fēng)向可從1-6級(jí)風(fēng)自已設(shè)定,一般出廠設(shè)定為3級(jí)風(fēng),雨量也可從霧、微雨、小雨、中雨、大雨、暴雨調(diào)節(jié),一般出廠設(shè)定為小雨,調(diào)節(jié)辦法,在風(fēng)雨感應(yīng)器背部用一字型螺絲刀逆時(shí)針轉(zhuǎn)動(dòng),即靈敏度越來(lái)越高。配合電動(dòng)窗簾、電動(dòng)窗戶、智能家居控制器組成情景模式設(shè)定的舒適系統(tǒng)。3.硬件設(shè)計(jì)一個(gè)穩(wěn)定可靠的系統(tǒng)硬件平臺(tái)是系統(tǒng)幵發(fā)成功與否的關(guān)鍵。本章主要介紹系統(tǒng)的硬件平臺(tái),對(duì)整體框架、系統(tǒng)主機(jī)板、RS484通訊模塊、基于傳感器模塊、家居燈光控制模塊等進(jìn)行設(shè)計(jì)介紹和說(shuō)明。3.1系統(tǒng)硬件選型只有穩(wěn)定可靠的硬件平臺(tái)才能確保智能家居控制系統(tǒng)的正常平穩(wěn)地運(yùn)行。一個(gè)良好的硬件平臺(tái)設(shè)計(jì),既能實(shí)現(xiàn)系統(tǒng)運(yùn)行所要求的目標(biāo)功能,還能為后續(xù)的系統(tǒng)升級(jí)、功能擴(kuò)展提供后續(xù)開發(fā)的空間和豐富的接口。同時(shí)根據(jù)系統(tǒng)自身設(shè)計(jì)定位,結(jié)合綜合的成本考慮,設(shè)計(jì)符合實(shí)際需要的硬件系統(tǒng),根據(jù)需求進(jìn)行最后的硬件選型。本次所設(shè)計(jì)的智能家居控制系統(tǒng)是為填補(bǔ)目前市場(chǎng)中低端廉價(jià)產(chǎn)品的市場(chǎng)空白,設(shè)計(jì)一套廉價(jià)好用的智能家居系統(tǒng)。所以本系統(tǒng)硬件主要包括STM32主機(jī)控制模塊、RS485通訊模塊、基于傳感器模塊、以及家居燈光的控制模塊等。3.2主機(jī)控制板設(shè)計(jì)本論文選用主控制板的MOT為一款基于ST(意法半導(dǎo)體)公司STM32系列處理器(ARMCortex-M3內(nèi)核)STM32F103ZET6(LQFP144),片內(nèi)集成512KBFlash、64KBRAM、1個(gè)USB、1個(gè)CAN、1個(gè)SDIO、8個(gè)定時(shí)器、112個(gè)GPIO輸入輸出端口、5個(gè)USART、3個(gè)ADC、3個(gè)SPI、2個(gè)I2C、2個(gè)DAC、2個(gè)I2S、FSMC總線。CPU主頻為72MHz,其具有豐富的硬件資源、很低的能耗、開發(fā)過(guò)程簡(jiǎn)單、成本低廉,廣泛適用于各種應(yīng)用領(lǐng)域??紤]到開發(fā)的周期和成本,主機(jī)控制板的穩(wěn)定性等因素,選用冰凌科技開發(fā)的STM32幵發(fā)板作為硬件平臺(tái)。主機(jī)控制板上的硬件資源如下:(1)、3種啟動(dòng)方式:用戶Flash、系統(tǒng)存儲(chǔ)器、SRAM;(2)、8M晶振作為MCU的時(shí)鐘,32768KHZ晶振用于RTC;(3)、256KBSRAM,16MBNORFlash,128MBNANDFlash;(4)、2MB串行Hash,1KB串行EEPROM;(5)、1個(gè)CAN2.0A/B接口,2個(gè)IIS232串口;(6)、2個(gè)DAC引出端子,2個(gè)PWM引出端子。3.3智能家居系統(tǒng)模塊功能設(shè)計(jì)方案3.3.1硬件平臺(tái)的主要電路介紹:(1)智能主控制模塊電源電路主控制模塊設(shè)計(jì)因?yàn)镾TM32F103自身芯片上就配置了很多內(nèi)部資源,給主機(jī)控制板的電路設(shè)計(jì)帶來(lái)了很多便利,降低外部設(shè)備設(shè)計(jì)的難度,使設(shè)計(jì)更加穩(wěn)定,也減少了幵發(fā)費(fèi)用。系統(tǒng)的電源負(fù)責(zé)給整個(gè)控制平臺(tái)提供電能,它設(shè)計(jì)是否穩(wěn)定,決定了整個(gè)系統(tǒng)是否能夠正常地運(yùn)行。在設(shè)計(jì)系統(tǒng)輸入電源時(shí),需要給整個(gè)系統(tǒng)供電的電壓為12V髙質(zhì)量穩(wěn)壓直流電源,而且為了降低電源電路設(shè)計(jì)的難度,在設(shè)計(jì)時(shí)采用ST公司的L7805CV線性電源芯片,電源的電壓不得高于18V,否則L7805CV芯片發(fā)熱嚴(yán)重。選擇的電壓調(diào)節(jié)器為SPX1117-3.3,將5V的直流電轉(zhuǎn)換成3.3V,在電源轉(zhuǎn)換芯片前后加上合適的電容起到濾除相應(yīng)的高頻低頻信號(hào)干擾。圖3.1電源電路部分(2)主控制器的外圍電路設(shè)計(jì)圖3.2外圍電路設(shè)計(jì)(3)RS485通信模塊設(shè)計(jì)智能家居控制器及RS485擴(kuò)展模塊均為標(biāo)準(zhǔn)模塊式產(chǎn)品,預(yù)留標(biāo)準(zhǔn)的以太網(wǎng)接口、RS485接口、I\O、AD、DA接口??蓪⒓揖幽P腿我飧淖儭⑴渲孟嚓P(guān)智能產(chǎn)品、亦可增加第三方產(chǎn)品。5路RS485通信口,每路帶ESD保護(hù),其中(USART1~UART4)外界各個(gè)485通信智能電子產(chǎn)品,另一路為RS485擴(kuò)展模塊,擴(kuò)展接口支持RS485擴(kuò)展模塊級(jí)聯(lián)和ADC轉(zhuǎn)換模塊擴(kuò)展。各個(gè)485接口的通信協(xié)議為ModbusRTU,每路僅支持半雙工通信,最高通信速度:250kbps,本系統(tǒng)通信波特率設(shè)置值:19200。(4)家居燈光控制模塊設(shè)計(jì)智能家居系統(tǒng)除了具備最基礎(chǔ)的保證住宅的安全功能,對(duì)家電的自動(dòng)控制是體現(xiàn)其智能化的一面。用戶可以通過(guò)智能主控制模塊,對(duì)家里的各種家電進(jìn)行開關(guān)操作。試想,當(dāng)用戶外出時(shí),只需要通過(guò)手機(jī)來(lái)檢測(cè)家里燈具,電視,空調(diào)等電器的使用情況,可見該系統(tǒng)實(shí)用性很高。在當(dāng)代智能家居系統(tǒng)中,加入了更多智能的元素,例如:在室內(nèi)安裝了,溫濕度傳感器,煙霧傳感器,煤氣傳感器等,一旦溫濕度,煙霧濃度,新鮮空氣濃度與標(biāo)準(zhǔn)水平相差較大時(shí),智能主控制模塊就會(huì)對(duì)家電模塊進(jìn)行相應(yīng)的操作。由于本次智能家居系統(tǒng)設(shè)備的局限性,并沒(méi)有將這些家電加入到設(shè)計(jì)中,通過(guò)了3盞LED燈進(jìn)行替代,模擬控制家電的效果。不可調(diào)光部分,采用的是繼電器控制電路,可以允許通過(guò)的是大電流燈具,用二極管反接保護(hù)繼電器的線圈不被瞬間大電流燒毀。可調(diào)光部分,采用的是可控桂元件進(jìn)行控制,對(duì)外部信號(hào)隔離,增強(qiáng)抵抗干擾的能力。4.軟件設(shè)計(jì)系統(tǒng)的軟件設(shè)計(jì)在整個(gè)系統(tǒng)開發(fā)中占用了大量的時(shí)間,是系統(tǒng)正常運(yùn)行的大腦。軟件設(shè)計(jì)在完成整個(gè)智能家居控制系統(tǒng)設(shè)計(jì)中占有極其重要的地位。本章主要闡述了系統(tǒng)整體的軟件設(shè)計(jì)及各子功能模塊的軟件設(shè)計(jì),以及各個(gè)模塊的程序?qū)崿F(xiàn)方法,并進(jìn)行實(shí)驗(yàn)調(diào)試測(cè)試。圖4.14.1智能家居應(yīng)用軟件實(shí)現(xiàn)(1)控制程序intmain(void){ MOT_Init(); Delay_Init();// AT24CXX_Init();// IR_ReceiveInit(); RS485_Init();/*雙色LED初始狀態(tài),低電平點(diǎn)亮,全都亮紅色*/ LED1ON_RED(); LED2ON_RED(); LED3ON_RED(); LED4ON_RED(); BUZZER_Off();//蜂鳴器初始關(guān)閉/*繼電器初始狀態(tài)設(shè)置*/ Relay_CloseState();// while(AT24CXX_Check())//檢測(cè)不到24c02// {// GPIO_SetBits(BUZZ_PORT,BUZZ);// } while(1) {// if(RcvShakeHand_flag==0)// {// Send_ShakeHands();// }// else// {// function_MODBUS();// } Send_ShakeHands(); function_MODBUS(); Button_key1_Func(); Button_key2_Func(); Button_key3_Func(); Button_key4_Func(); REED_Switch(); Location_SizeData=(Window_SizeData|Curtain_SizeData); }}(2)RS485通訊程序voidRS485_SendString(char*str){ u16i=0; /*讓收發(fā)器進(jìn)入發(fā)送模式*/ RS485_EnterSend(); /*延遲一小段時(shí)間,讓收發(fā)器響應(yīng)過(guò)來(lái)進(jìn)入發(fā)送模式。這個(gè)時(shí)間應(yīng)該根據(jù)具體型號(hào)的 485收發(fā)器來(lái)決定,可以從它的Datasheet中獲得這個(gè)參數(shù)*/ DelayN100nop(2); while(str[i]!='\0') { RS485_SendByte(str[i]);i++; } /*發(fā)送最后一個(gè)字符串結(jié)束符*/ RS485_SendByte('\0'); /*延遲一小段時(shí)間,讓收發(fā)器把數(shù)據(jù)全部送出到485總線上*/ DelayN100nop(2); /*讓收發(fā)器恢復(fù)接收模式*/ RS485_EnterReceive();}(3)電機(jī)驅(qū)動(dòng)程序#include"home_mot.h"#include"delay.h"uint8_tkey1_state=0; //按鍵狀態(tài)值uint8_tkey2_state=0;uint8_tkey3_state=0;uint8_tkey4_state=0;uint8_tFlag_REED5;uint16_tTime_Cnt=0; //時(shí)間計(jì)數(shù)uint8_tfall_state=0;//下降沿標(biāo)志位uint16_tTime_CountData[10]; //時(shí)間累計(jì)值uint8_tcnt;externuint8_topenflag;externuint8_tcloseflag;voidMOT_Init(void){ GPIO_InitTypeDefGPIO_InitStructure;// NVIC_InitTypeDefNVIC_InitStructure;// EXTI_InitTypeDefEXTI_InitStructure; /*EnabletheClock*/ RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOC| RCC_APB2Periph_GPIOD|RCC_APB2Periph_GPIOE|RCC_APB2Periph_AFIO,ENABLE); //使能PB,PE端口時(shí)鐘 /*ConfigureButtonpinasinputfloating*/ GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3; //PC.0PC.1PC.2PC.3端口配置 GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU; //上拉輸入 GPIO_Init(GPIOC,&GPIO_InitStructure); //根據(jù)設(shè)定參數(shù)初始化GPIOC.5/*ConfigureButtonpinasinputfloating*/ GPIO_InitStructure.GPIO_Pin=GPIO_Pin_14; //TEST-->PC.14端口配置 GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING; //浮空輸入 GPIO_Init(GPIOB,&GPIO_InitStructure); //根據(jù)設(shè)定參數(shù)初始化GPIOB.14 /*ConfiguretheGPIO_LEDpin*/ GPIO_InitStructure.GPIO_Pin=GPIO_Pin_5; //LED1-->PC.5端口配置 GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP; //推挽輸出 GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; //IO口速度為50MHz GPIO_Init(GPIOC,&GPIO_InitStructure); //根據(jù)設(shè)定參數(shù)初始化GPIOC.5 GPIO_SetBits(GPIOC,GPIO_Pin_5); //PC.5初始輸出高,燈滅 /*ConfiguretheGPIO_LEDpinPORTA.1\2LED5PORTA.11\12LED4PORTA.4\5RelaysK3,K4PORTA.6\7RelaysK1,K2*/ GPIO_InitStructure.GPIO_Pin=GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_11|GPIO_Pin_12;//LED引腳配置 GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; GPIO_Init(GPIOA,&GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin=GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_15;//LED6引腳配置,蜂鳴器 GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; GPIO_Init(GPIOB,&GPIO_InitStructure); GPIO_ResetBits(BUZZ_PORT,BUZZ);//蜂鳴器初始狀態(tài)設(shè)置 GPIO_InitStructure.GPIO_Pin=GPIO_Pin_2|GPIO_Pin_3;//LED3引腳配置 GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; GPIO_Init(GPIOE,&GPIO_InitStructure); /*ConfigurethereedswitchPORTD.8~12*/ GPIO_InitStructure.GPIO_Pin=GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10| GPIO_Pin_11|GPIO_Pin_12|GPIO_Pin_13;//REED引腳配置 GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU; GPIO_Init(GPIOD,&GPIO_InitStructure); // /*ConnectEXTI8LinetoPG.08pin*///GPIO_EXTILineConfig(GPIO_PortSourceGPIOD,GPIO_PinSource8);//REED5//// /*ConfigureEXTI8line*///EXTI_InitStructure.EXTI_Line=EXTI_Line8;//EXTI_InitStructure.EXTI_Mode=EXTI_Mode_Interrupt;//EXTI_InitStructure.EXTI_Trigger=EXTI_Trigger_Falling;//EXTI_InitStructure.EXTI_LineCmd=ENABLE;//EXTI_Init(&EXTI_InitStructure);//// NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);///*EnableandsetEXTI9_5Interrupttothelowestpriority*///NVIC_InitStructure.NVIC_IRQChannel=EXTI9_5_IRQn;//NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0x01;//NVIC_InitStructure.NVIC_IRQChannelSubPriority=0x01;//NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;//NVIC_Init(&NVIC_InitStructure);} /*按鍵1功能程序,按鍵按下釋放后,LED1亮藍(lán)色,窗簾打開,第二次按下,LED1亮紅色,窗簾停止運(yùn)行*/voidButton_key1_Func(void) { if((0==BUTTON_Key1_GetState())&&(key1_state==0)) { while(!BUTTON_Key1_GetState()); //等待按鍵釋放 key2_state=0; //互鎖按鍵2狀態(tài) LED2ON_RED(); key1_state=1; //按鍵1狀態(tài)置1 LED1ON_BLUE(); Curtain_Open(); } if((0==BUTTON_Key1_GetState())&&(key1_state==1)) { while(!BUTTON_Key1_GetState()); //等待按鍵釋放 key1_state=0; //按鍵1狀態(tài)復(fù)位 LED1ON_RED(); Relay_CloseState(); }}/*按鍵2功能程序,按鍵按下釋放后,LED2亮藍(lán)色,窗簾閉合,第二次按下,LED2亮紅色,窗簾停止運(yùn)行*/voidButton_key2_Func(void) { if((0==BUTTON_Key2_GetState())&&(key2_state==0)) { while(!BUTTON_Key2_GetState()); //等待按鍵釋放 key1_state=0; //互鎖按鍵1狀態(tài) LED1ON_RED(); key2_state=1; //按鍵2狀態(tài)置1 LED2ON_BLUE(); Curtain_Close(); } if((0==BUTTON_Key2_GetState())&&(key2_state==1)) { while(!BUTTON_Key2_GetState()); //等待按鍵釋放 key2_state=0; //按鍵2狀態(tài)復(fù)位 LED2ON_RED(); Relay_CloseState(); }}/*按鍵3功能程序,按鍵按下釋放后,LED3亮藍(lán)色,窗戶打開,第二次按下,LED3亮紅色,窗戶停止運(yùn)行*/voidButton_key3_Func(void) { if((0==BUTTON_Key3_GetState())&&(key3_state==0)) { while(!BUTTON_Key3_GetState()); //等待按鍵釋放 key4_state=0; //互鎖按鍵4狀態(tài) LED4ON_RED(); key3_state=1; //按鍵3狀態(tài)置1 LED3ON_BLUE(); Window_Open(); } if((0==BUTTON_Key3_GetState())&&(key3_state==1)) { while(!BUTTON_Key3_GetState()); //等待按鍵釋放 key3_state=0; //按鍵3狀態(tài)復(fù)位 LED3ON_RED(); Relay_CloseState(); }}/*按鍵4功能程序,按鍵按下釋放后,LED4亮藍(lán)色,窗戶閉合,第二次按下,LED4亮紅色,窗戶停止運(yùn)行*/voidButton_key4_Func(void) { if((0==BUTTON_Key4_GetState())&&(key4_state==0)) { while(!BUTTON_Key4_GetState()); //等待按鍵釋放 key3_state=0; //互鎖按鍵3狀態(tài) LED3ON_RED(); key4_state=1; LED4ON_BLUE(); Window_Close(); } if((0==BUTTON_Key4_GetState())&&(key4_state==1)) { while(!BUTTON_Key4_GetState()); //等待按鍵釋放 key4_state=0; LED4ON_RED(); Relay_CloseState(); }}voidRelay_CloseState(void) //繼電器全部關(guān)閉{ GPIO_ResetBits(RELAY1_PORT,RELAY1); GPIO_ResetBits(RELAY2_PORT,RELAY2); GPIO_ResetBits(RELAY3_PORT,RELAY3); GPIO_ResetBits(RELAY4_PORT,RELAY4);}voidCurtain_Open(void) //打開窗簾{ GPIO_ResetBits(RELAY2_PORT,RELAY2); DelayMs(15); GPIO_SetBits(RELAY1_PORT,RELAY1); //繼電器1上電 }voidCurtain_Close(void) //關(guān)閉窗簾{ GPIO_ResetBits(RELAY1_PORT,RELAY1); DelayMs(15); GPIO_SetBits(RELAY2_PORT,RELAY2); //繼電器2上電}voidWindow_Open(void) //打開窗戶{ closeflag=0; GPIO_ResetBits(RELAY4_PORT,RELAY4); DelayMs(15); GPIO_SetBits(RELAY3_PORT,RELAY3); //繼電器3上電 openflag=1;}voidWindow_Close(void) //關(guān)閉窗戶{ openflag=0; GPIO_ResetBits(RELAY3_PORT,RELAY3); DelayMs(15); GPIO_SetBits(RELAY4_PORT,RELAY4); closeflag=1;}voidLED1ON_RED(void) //LED1亮紅色{ GPIO_ResetBits(LED1_PORT,LED1_Red); //低電平點(diǎn)亮 GPIO_SetBits(LED1_PORT,LED1_Blue);}voidLED1ON_BLUE(void) //LED1亮藍(lán)色{ GPIO_SetBits(LED1_PORT,LED1_Red); GPIO_ResetBits(LED1_PORT,LED1_Blue); //低電平點(diǎn)亮}voidLED2ON_RED(void) //LED2亮紅色{ GPIO_ResetBits(LED2_PORT,LED2_Red); //低電平點(diǎn)亮 GPIO_SetBits(LED2_PORT,LED2_Blue);}voidLED2ON_BLUE(void) //LED2亮藍(lán)色{ GPIO_SetBits(LED2_PORT,LED2_Red); GPIO_ResetBits(LED2_PORT,LED2_Blue); //低電平點(diǎn)亮}voidLED3ON_RED(void) //LED3亮紅色{ GPIO_ResetBits(LED3_PORT,LED3_Red); //低電平點(diǎn)亮 GPIO_SetBits(LED3_PORT,LED3_Blue);}voidLED3ON_BLUE(void) //LED3亮藍(lán)色{ GPIO_SetBits(LED3_PORT,LED3_Red); GPIO_ResetBits(LED3_PORT,LED3_Blue); //低電平點(diǎn)亮}voidLED4ON_RED(void) //LED4亮紅色{ GPIO_ResetBits(LED4_PORT,LED4_Red); //低電平點(diǎn)亮 GPIO_SetBits(LED4_PORT,LED4_Blue);}voidLED4ON_BLUE(void) //LED4亮藍(lán)色{ GPIO_SetBits(LED4_PORT,LED4_Red); GPIO_ResetBits(LED4_PORT,LED4_Blue); //低電平點(diǎn)亮}/**獲得按鍵值*/uint8_tBUTTON_Key1_GetState(void)
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 餐廳壁畫施工方案
- 水網(wǎng)地段管道施工方案
- 壁畫終端箱施工方案
- 2025年SYB創(chuàng)業(yè)培訓(xùn)后的試題及答案
- 6年級(jí)上冊(cè)語(yǔ)文第十八課筆記
- 某航天機(jī)械能源公司投標(biāo)書
- 2025年醫(yī)學(xué)經(jīng)典考試題及答案
- 地災(zāi)隱患點(diǎn)搬遷實(shí)施方案
- 2025年中山火炬職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)傾向性測(cè)試題庫(kù)附答案
- 2025年甘肅省慶陽(yáng)地區(qū)單招職業(yè)適應(yīng)性測(cè)試題庫(kù)一套
- 《小學(xué)信息技術(shù)》完整版教學(xué)課件PPT
- 市政基礎(chǔ)設(shè)施綠化工程移交書
- GB/T 30133-2022一次性衛(wèi)生用品用面層
- GB/T 20878-2007不銹鋼和耐熱鋼牌號(hào)及化學(xué)成分
- 部編版小學(xué)語(yǔ)文三年級(jí)下冊(cè)書法教案設(shè)計(jì)(全冊(cè))
- 胎動(dòng)不安課件
- 雙重預(yù)防體系建設(shè)全套文件非煤礦山
- 文件袋、檔案袋密封條模板
- 皮內(nèi)注射技術(shù)操作考核評(píng)分標(biāo)準(zhǔn)
- 加油站重大風(fēng)險(xiǎn)清單
- 大唐大慈恩寺三藏法師傳白話本(整理壓縮版)
評(píng)論
0/150
提交評(píng)論