智能家居控制系統(tǒng)畢業(yè)設(shè)計_第1頁
智能家居控制系統(tǒng)畢業(yè)設(shè)計_第2頁
智能家居控制系統(tǒng)畢業(yè)設(shè)計_第3頁
智能家居控制系統(tǒng)畢業(yè)設(shè)計_第4頁
智能家居控制系統(tǒng)畢業(yè)設(shè)計_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、摘 要目前國內(nèi)外都在發(fā)展智能化的物聯(lián)網(wǎng)結(jié)構(gòu)體系,越來越多的公司加入了物聯(lián)網(wǎng)陣營,研究的方向中有一部分就是智能家居的研究發(fā)展。所謂智能家居,就是通過一些技術(shù)手段和網(wǎng)絡(luò)知識,使我們能夠見到的、觸摸到,或者實際存在的任何物體進(jìn)行一些操作使得這些物體在實際存在中變得智能化,方便人們使用,對人類社會的現(xiàn)代化發(fā)展起促進(jìn)作用的一種家居生活方式。我本次設(shè)計的智能家居控制系統(tǒng)是基于智能電源的設(shè)計,通過本次設(shè)計的智能電源模塊,我們可以方便地將所有的非相關(guān)的用電器進(jìn)行組網(wǎng)控制,而不需要針對每一個用電器進(jìn)行改造,我們可以使用一套相同的設(shè)備,完成對整個智能家居系統(tǒng)的組合。所以本次的畢業(yè)設(shè)計主要是以智能家居為背景,以智能

2、電源為研發(fā)方向,設(shè)計出智能家居的系統(tǒng)架構(gòu)方式。關(guān)鍵詞: stm32;智能家居;智能電源;openwrt;路由;網(wǎng)絡(luò)abstractat present, both at home and abroad in the development of intelligent network structure system, more and more companies to join the internet camp, a study on the development of a part is intelligent home furnishing research direction.

3、the so-called intelligent home furnishing, is through some technical means and network knowledge, so that we can see, touch, or any object exists to perform some operation makes these objects in actual existence becomes more intelligent, convenient for people to use, the development of human society

4、 to promote the role of a home furnishing lifestyle.the control system of intelligent home furnishing i this design is the design of intelligent power supply based on intelligent power module, through this design, we will be able to easily all non related electrical network control, without the need

5、 for each electric transformation, we can use a set of the same equipment, complete combination the intelligent home furnishing system. so this graduation design is mainly based on intelligent home furnishing as background, the intelligent power supply for the direction of research and development,

6、design the system architecture of the intelligent home furnishing.key words : stm32; intelligent home furnishing;intelligent power supply; openwrt; routing; network目 錄第一章 引 言41.1 研究背景及意義41.2 研究現(xiàn)狀綜述41.3本課題的研究內(nèi)容41.4 本研究的主要系統(tǒng)構(gòu)成5第二章 系統(tǒng)方案的設(shè)計62.1 方案的論證62.2 系統(tǒng)構(gòu)成6第三章 系統(tǒng)硬件電路的設(shè)計83.1 供電電路的設(shè)計83.2 單片機電路的設(shè)計83.2.1

7、 單片機時鐘電路的設(shè)計83.2.2 復(fù)位電路的設(shè)計93.2 溫濕度檢測電路的設(shè)計93.3 電參數(shù)檢測電路93.4 控制電路的設(shè)計103.5 基于openwrt的路由中繼系統(tǒng)的設(shè)計10第四章 系統(tǒng)軟件的設(shè)計134.1 keil開發(fā)環(huán)境134.2 通訊協(xié)議134.3 下位機程序設(shè)計144.4 上位機程序設(shè)計14第五章 系統(tǒng)調(diào)試165.1 系統(tǒng)調(diào)試的硬件問題16致 謝18參考文獻(xiàn)17附 錄19第一章 引 言隨著物聯(lián)網(wǎng)的深入發(fā)展,智能化的設(shè)備出現(xiàn)在我們生活的各個方面,我們都開始看到了智能化的身影,這使我們的生活方式產(chǎn)生了巨大的變化。人們?nèi)找嬖鲩L的物質(zhì)需求強制推動著智能家居的發(fā)展,我們需要將我們的整個居

8、住水平提高到物物聯(lián)網(wǎng)的狀態(tài),并能夠通過集中控制方案對被控設(shè)備進(jìn)行遠(yuǎn)程或者近距離控制。1.1 研究背景及意義目前國家對于在物聯(lián)網(wǎng)發(fā)展方向發(fā)展的企業(yè)都提供了各種各樣的支持和幫助。而趨于炙熱化的物聯(lián)網(wǎng)行業(yè)發(fā)展前景勢不可擋,帶動了全球的經(jīng)濟(jì)發(fā)展。智能家居屬于物聯(lián)網(wǎng)發(fā)展的一個范疇,可是目前的一些關(guān)于智能家居的技術(shù)都被壟斷在一些大型的企業(yè),縱然我們有能力設(shè)計,也無法快速占領(lǐng)整個市場。市場中關(guān)于智能家居的適用于普通家庭的智能安防及控制裝置基本上是很少見的,而且這些智能家居產(chǎn)品的價格都比較昂貴,不是一般的家庭所能接受的。所以本次的畢業(yè)設(shè)計宗旨是設(shè)計出一款適用于普通大眾的,能夠?qū)崿F(xiàn)智能家居功能的,并且可以進(jìn)行后

9、期升級改造的智能家居控制系統(tǒng)。這對于改善普通家庭的居住水平有著決定性地幫助作用,能夠在這個貧富差距越來越大的時代讓普通家庭也能享受到高科技帶來的便利。1.2 研究現(xiàn)狀綜述國外,1948年開始產(chǎn)生了第一種智能家居的設(shè)想,從此,智能家居的想法開始被各大發(fā)達(dá)國家作為主要的產(chǎn)品研發(fā)方向,并于1997年提出了一個第一個有關(guān)智能家居的標(biāo)準(zhǔn),該標(biāo)準(zhǔn)中指出了智能家居是住宅智能化的核心,智能家居和智能大廈的概念開始形成一個書面的規(guī)定。該理論主要講智能家居的各項參數(shù)應(yīng)該滿足我們生活的安全性需求,不能只追求智能化,同時,智能家居同時需要滿足生活環(huán)境的舒適度,使通訊方式變得簡單,能夠?qū)⒏黜椃?wù)綜合到一起,通過一個平臺

10、就可以控制,最主要的功能是實現(xiàn)家庭操作的各項關(guān)系的智能化。國內(nèi),我國目前主要講智能家居或者智能小區(qū)等定義分為四個部分,通過計算機、網(wǎng)絡(luò)通訊、自動化控制、非接觸ic卡等技術(shù),通過網(wǎng)絡(luò)傳播途徑,聯(lián)系內(nèi)網(wǎng)和外網(wǎng),將各項多元化的服務(wù)信息通過先進(jìn)的技術(shù)手段將住宅信息或小區(qū)信息與物業(yè)及安防信息聯(lián)系起來,將該系統(tǒng)集成大哦哦住宅智能化系統(tǒng)中去,為我們的住宅環(huán)境提供有效的提示信息和裁決手段,從而實現(xiàn)高效的服務(wù)和管理水平,提供我們舒適的家居環(huán)境。1.3本課題的研究內(nèi)容本次的畢業(yè)設(shè)計中,我的主要研究方向是物聯(lián)網(wǎng)和智能家居方向,而這是個比較大的概念范疇,所以本次細(xì)致下來的研究目標(biāo)就是基于stm32的智能電源的設(shè)計。本

11、次設(shè)計的智能電源可以拓展到行業(yè)里的其余部分,通過產(chǎn)品后期的移植,可以拓展許多其余功能。本次的畢業(yè)設(shè)計,主要用來采集現(xiàn)場環(huán)境的一些電力參數(shù)及環(huán)境參數(shù),傳輸給上位機。同時上位機能夠?qū)υO(shè)備狀態(tài)進(jìn)行控制,以此形成一組相對獨立的一對一網(wǎng)絡(luò),最后通過該設(shè)備的組網(wǎng)操作,在網(wǎng)絡(luò)上能夠級聯(lián)n+個設(shè)備。習(xí)慣成一個廠區(qū)或者一套住宅的智能化控制。通過升級硬件配置和軟件程序,能夠?qū)崿F(xiàn)產(chǎn)品功能的拓展延生。1.4 本研究的主要系統(tǒng)構(gòu)成(1)基于stm32的下位機控制系統(tǒng)(2)基于vc的上位機控制軟件(3)基于openwrt的linux路由管理系統(tǒng)(4)基于c/s的web操控界面第二章 系統(tǒng)方案的設(shè)計2.1 方案的論證方案一

12、:采用計算機作為控制中心,采用串行接口,連接若干個傳感器模塊,實時將數(shù)據(jù)傳送到計算機,在計算機上運行數(shù)據(jù)庫,將數(shù)據(jù)及時更新,最終通過數(shù)據(jù)端的程序判斷采用bs的模式,來對設(shè)備進(jìn)行訪問控制。在本方案中需要用到的一些專業(yè)知識包括:計算機編程java、數(shù)據(jù)庫編程、php網(wǎng)站編程、底層的硬件設(shè)計、嵌入式編程、aos平臺編程、ios平臺編程。該方案下系統(tǒng)的整體運行比較穩(wěn)定,但是需要的知識比較多,對編程人員的要求比較高,同時成本也比較昂貴。方案二:全部采用嵌入式設(shè)備作為底層和上層操作終端,通過嵌入式編程,實現(xiàn)系統(tǒng)功能。底層使用基于51單片機的數(shù)據(jù)采集單元,數(shù)據(jù)通信方式采用串行協(xié)議,上層設(shè)備使用高級單片機作為

13、控制中心,驅(qū)動7寸串口觸摸屏,在該串口屏上實現(xiàn)數(shù)據(jù)的顯示和數(shù)據(jù)的輸入功能,整個系統(tǒng)主要需要學(xué)習(xí)嵌入式編程,并驗證通信協(xié)議的穩(wěn)定性,對之進(jìn)行分析。使用該方案設(shè)計的電路,采集端的設(shè)備非常簡單,主要做局域的數(shù)據(jù)采集,遠(yuǎn)端的控制中心功能也比較簡單,主要驅(qū)動串口屏,并實現(xiàn)串口屏的數(shù)據(jù)輸入功能,主要做串行數(shù)據(jù)解析和發(fā)送,同時還需要和其余串行設(shè)備進(jìn)行組網(wǎng),所以該控制中心需要至少兩個串行口,才能完成數(shù)據(jù)的分析及顯示。整體系統(tǒng)的設(shè)計成本比較低廉,但是穩(wěn)定性無法確保,使用單片機作為數(shù)據(jù)控制中心時候我們無法確保其長時間不死機,數(shù)據(jù)不出錯。方案三:該方案是簡歷在方案一和方案二的實踐的基礎(chǔ)上的。該方案中使用單片機作為子

14、采集系統(tǒng),子系統(tǒng)本省對數(shù)據(jù)進(jìn)行采集計算,然后通過總線協(xié)議,發(fā)送給上位機,在上位機上建立數(shù)據(jù)庫,通過接受數(shù)據(jù),分析數(shù)據(jù),將數(shù)據(jù)劃分為不同的單元,通過數(shù)據(jù),判斷出數(shù)據(jù)所屬的群組,設(shè)備的運維狀態(tài),數(shù)據(jù)來源的設(shè)備的mac地址,記錄并報訊,作為后期查詢使用。最后,我們可以使用各種平臺的智能終端,通過瀏覽器登陸我們的服務(wù)器系統(tǒng),所有的操作項目都會在系統(tǒng)的網(wǎng)頁界面上顯示出來,并可以進(jìn)行查詢和操作。該方案中需要使用到計算機作為服務(wù)器,主要運行數(shù)據(jù)庫文件,同時我們通過java編寫一個網(wǎng)頁文件,通過進(jìn)行數(shù)據(jù)庫的分析訪問,并對設(shè)備進(jìn)行組網(wǎng)操作,實現(xiàn)互聯(lián)網(wǎng)控制的功能,在本系統(tǒng)中使用搭載linux系統(tǒng)的路由器作為轉(zhuǎn)發(fā)工

15、具,最終實現(xiàn)全網(wǎng)的數(shù)據(jù)控制數(shù)據(jù)采集及控制。綜上所述,方案三正是從各個方面都符合我們的設(shè)計需求。所以選用方案三。2.2 系統(tǒng)構(gòu)成該系統(tǒng)有手機終端、計算機終端、嵌入式網(wǎng)絡(luò)控制器、空調(diào)等設(shè)備組成。實現(xiàn)遠(yuǎn)程的網(wǎng)絡(luò)控制功能。網(wǎng)絡(luò)服務(wù)器負(fù)責(zé)數(shù)據(jù)的運算,主要運行數(shù)據(jù)庫及訪問程序終端,嵌入式服務(wù)器主要實現(xiàn)網(wǎng)絡(luò)的分配,數(shù)據(jù)的集中處理,端口的分配,mac地址的識別。通過本系統(tǒng)可以有效地將家庭的局域網(wǎng)和互聯(lián)網(wǎng)公網(wǎng)相連,在公網(wǎng)及局域網(wǎng)都能夠計時有效地進(jìn)行系統(tǒng)的控制。智能電源底層1控制嵌入式服務(wù)器1家庭無線網(wǎng)絡(luò)嵌入式服務(wù)器nninternet通過服務(wù)器internet智能電源底層n圖1 系統(tǒng)框圖第三章 系統(tǒng)硬件電路的設(shè)

16、計在硬件電路的設(shè)計中,我主要設(shè)計了底層的硬件及其外設(shè)電路,本電路中包含供電電路、單片機電路、溫濕度檢測電路、電參數(shù)測量電路及控制輸出電路。嵌入式硬件方向直接使用了代加工的主板進(jìn)行系統(tǒng)移植。3.1 供電電路的設(shè)計本次系統(tǒng)主要是用來作為電源檢測系統(tǒng)的,所以在本次設(shè)計中使用的是現(xiàn)有的集成的5v1a電源,通過電源穩(wěn)壓模塊將電源電壓整流到3.3v,供給單片機使用。這樣我們就可以通過最簡單的電路設(shè)計得到我們單片機的供電電源的設(shè)計了。該部分的電路如下圖:圖2 電源設(shè)計5v轉(zhuǎn)3.3v電源3.2單片機電路的設(shè)計3.2.1 單片機時鐘電路的設(shè)計和普通單片機一樣,stm32單片機的正常工作也需要時鐘電路的驅(qū)動,沒有

17、時鐘,單片機就無法正常運行,當(dāng)然,這款單片機內(nèi)部自帶了時鐘方案,我們可以在不接外部時鐘的情況下就可以使用該芯片了,但是本次設(shè)計的系統(tǒng)中需要使用到串行口,我們在需要產(chǎn)生波特率的時候就最好不要使用內(nèi)部rc震蕩電路的方案,因為這樣容易導(dǎo)致串行數(shù)據(jù)的波特率不穩(wěn)定,造成系統(tǒng)數(shù)據(jù)傳輸過程中的數(shù)據(jù)紊亂,影響系統(tǒng)的功能。其晶振電路如圖:圖3 晶振電路3.2.2 復(fù)位電路的設(shè)計單片機的首次運行必須對單片機進(jìn)行初始化動作,防止程序跑飛,本次設(shè)計中單片機上電的瞬間我們必須將單片機進(jìn)行復(fù)位,讓單片機內(nèi)部指針恢復(fù)初始化狀態(tài),所以我們根據(jù)慣例,設(shè)計了上電復(fù)位電路,在上電瞬間能夠給復(fù)位引腳產(chǎn)生一個高電平的延時動作,完成對單

18、片機的復(fù)位。同時,由于是測試電路,所以我們給電路增加了物理按鍵,通過物理按鍵對高電平的短路形成單片機的手動復(fù)位操作。其復(fù)位電路的結(jié)構(gòu)圖如下:圖4 復(fù)位電路3.2 溫濕度檢測電路的設(shè)計本次畢業(yè)設(shè)計中使用的溫濕度傳感器是dht11,該器件是一款已校準(zhǔn)的輸出數(shù)字信號的溫濕度復(fù)合傳感器,通過對該傳感器的訪問控制,我們可以準(zhǔn)確地獲取當(dāng)前的溫度和濕度。從而控制設(shè)備的動作。單總線,串行接口是其獨特的地方,使得我們的控制及該傳感器的設(shè)計變得非常簡單。該傳感器的外形模擬圖及接線圖大致如下圖所示:圖5 溫濕度采集傳感器3.3 電參數(shù)檢測電路該部分電路的設(shè)計目標(biāo)是實現(xiàn)電路電流的檢測,因為是交流電,所電壓無需檢測,在

19、實際的應(yīng)用中,我們使用了電流互感器來實現(xiàn)電路電流的檢測功能。其原理基本為變壓器的原理,其功能圖如下圖:電路中的一些參數(shù):ip 一次回路電流is 二次回路電流 zct 二次繞組阻抗zb 負(fù)荷阻抗圖6 電流互感器3.4 控制電路的設(shè)計本次設(shè)計的電路中,主要使用單片機本身驅(qū)動繼電器來完成對用電器的控制功能,通過光電耦合器將單片機的弱電信號與強電信號隔離,再通過三極管對繼電器進(jìn)行控制,從而一些稍大功率的用電器就可以得到控制了。圖7 繼電器控制模塊3.5 基于openwrt的路由中繼系統(tǒng)的設(shè)計作為智能家居控制系統(tǒng)的核心功能,就是通過網(wǎng)絡(luò)來傳輸信息,那么我們怎么使用網(wǎng)絡(luò)來傳輸消息呢。因為我們的設(shè)備不可能單

20、獨占用一個ip地址,我們僅僅將設(shè)備賦予了一個mac地址,我們僅僅可以將設(shè)備公開在內(nèi)網(wǎng)中。所以我們需要使用一款路由器來進(jìn)行nat穿越功能,而市場上普通的路由器系統(tǒng)都無法完成批量產(chǎn)品的網(wǎng)絡(luò)穿越功能,而且設(shè)置犯錯,功能不穩(wěn)定,因此本次設(shè)計一款基于openwrt系統(tǒng)的路由器linux系統(tǒng),在系統(tǒng)架構(gòu)中我們可以精簡固件,通過添加固件程序來完成網(wǎng)絡(luò)的轉(zhuǎn)播功能,同時將其設(shè)置為小型服務(wù)器,添加許多其余可控功能。針對智能電源網(wǎng)絡(luò)控制系統(tǒng)技術(shù)方案對本路由系統(tǒng)進(jìn)行深度定制,定制方向包括功能實現(xiàn)、控制界面優(yōu)化、登陸方式優(yōu)化。功能:滿足50米范圍內(nèi)3-4面墻壁的信號穿越,在信號保證的前提下,能夠?qū)崿F(xiàn)網(wǎng)絡(luò)數(shù)據(jù)的分析轉(zhuǎn)發(fā),

21、并控制下一級安裝有本系統(tǒng)的兼容設(shè)備。基于php的可視化界面的開發(fā),突出登陸界面,界面內(nèi)簡約實現(xiàn)功能,大圖標(biāo)實現(xiàn)系統(tǒng)所需要的各項性能?;诰W(wǎng)絡(luò)的遠(yuǎn)程登陸管理界面,基于ssh登陸的scp命令,scp(具有security的文件copy),在本登陸方式下,可以看到本系統(tǒng)的運行內(nèi)核文件目錄。本次編寫的linux系統(tǒng)的版本號可以在程序界面看到,openwrt_linux_qw,定制版本為春蘭空調(diào)界面,這里就沒有專門為本次畢業(yè)設(shè)計修改操作界面。硬件的實物圖:圖8 路由系統(tǒng)硬件實物圖對于本次設(shè)計的路由系統(tǒng),我們提供了一個可視化的操作界面取代了使用復(fù)雜的命令行界面,下面簡單介紹一下這個系統(tǒng)內(nèi)部頁面的設(shè)置功能,

22、系統(tǒng)web端的設(shè)置和控制:1、計算機通過有線或者無線方式連接到本路由系統(tǒng),2、打開瀏覽器,輸入管理地址192.168.8.1(可更改)圖9 路由系統(tǒng)管理地址3、等待系統(tǒng)管理界面初始化后進(jìn)入系統(tǒng)歡迎界面圖10 路由系統(tǒng)歡迎界面點擊logo圖標(biāo)或管理界面文字,進(jìn)行登錄,輸入用戶名及密碼。圖11 路由系統(tǒng)登錄界面點擊登錄,進(jìn)入到路由管理界面圖12 路由系統(tǒng)菜單界面第四章 系統(tǒng)軟件的設(shè)計軟件的設(shè)計是該系統(tǒng)的一個重要組成,該系統(tǒng)不單純是模擬電路或者數(shù)字電路,直接就能通過電路就能工作,單片機需要編程才能按照我們的意愿進(jìn)行工作。因此系統(tǒng)軟件的設(shè)計在本次的畢業(yè)設(shè)計中是必不可少的部分。4.1 keil開發(fā)環(huán)境本

23、次使用的是51單片機,所以我選擇可keil 4 (arm版)作為單片機程序的開發(fā)環(huán)境。keil c51集成開發(fā)工具是高度集成的,功能強大的,具有c編譯器、宏匯編、連接器、庫管理等各種我們需要用到的工具,我們可以使用c語言或者匯編語言對單片機進(jìn)行編程。而keil對c語言的支持使得我們的編程變得非常簡單。并且具有方便移植和可閱讀性,性能完美。4.2 通訊協(xié)議本次的畢業(yè)設(shè)計中,我們主要設(shè)計的產(chǎn)品是面向工業(yè)控制和智能家居控制的,所以產(chǎn)品的穩(wěn)定性和復(fù)雜環(huán)境對產(chǎn)品的外界影響力決定了產(chǎn)品的性能,所以,本次的系統(tǒng)的傳輸過程中,我們使用的通訊協(xié)議要適合于各種場合使用,同時我們的產(chǎn)品是面向大眾的,所以最好能夠兼容

24、市場上原有的通訊協(xié)議,我們自定義了一款數(shù)據(jù)通信協(xié)議,在本協(xié)議中我們定義了一個不等長度的數(shù)據(jù)區(qū),哦你過來移植目前現(xiàn)有的通訊協(xié)議,通過測試,兼容了目前基本上所有的通訊協(xié)議格式。本次使用的通訊協(xié)議中,我們使用了引導(dǎo)字節(jié)、起始字節(jié)、設(shè)備識別碼、數(shù)據(jù)長度字節(jié)、數(shù)據(jù)區(qū)(原有通訊協(xié)議全部字節(jié))、校驗碼、結(jié)束符。經(jīng)過多次的測試我們在實踐中得到了一個相對比較穩(wěn)定的引導(dǎo)字節(jié)和起始字節(jié),在這樣的引導(dǎo)下,我們能夠放方便的判斷協(xié)議的準(zhǔn)確性,在嚴(yán)重干擾的情況下,我們可以通過這個協(xié)議盡可能減少通訊過程中的誤碼率。該協(xié)議的另一個特點是在我們繼承的協(xié)議中添加了設(shè)備的識別碼,該識別碼可以作為以后產(chǎn)品的拓展功能,比如說我的系統(tǒng)中有

25、n+個設(shè)備在使用這個通訊協(xié)議的時候,我們可以通過修改識別碼來將不同的產(chǎn)品進(jìn)行分類處理。這樣我們的軟件在統(tǒng)計每一個型號產(chǎn)品的時候就可以直接進(jìn)行單獨的同型號設(shè)備的訪問了。該通信協(xié)議的協(xié)議內(nèi)容如下:表 1 通信協(xié)議的定義引導(dǎo)字節(jié)0xfe 0xfe 十六進(jìn)制 任意多個字節(jié)起始字節(jié) 0x68 十六進(jìn)制 1個字節(jié) 固定為0x68識別碼用于區(qū)分詢問地址幀、返回地址幀、設(shè)備控制幀、設(shè)備返回幀。1個字節(jié)數(shù)據(jù)長度數(shù)據(jù)區(qū)的字節(jié)個數(shù) 1個字節(jié),十六進(jìn)制格式數(shù)據(jù)區(qū)下面“遠(yuǎn)程控制通訊協(xié)議”的整個數(shù)據(jù)幀,參看下面通訊協(xié)議,“數(shù)據(jù)長度”個字節(jié)校驗碼從68開始到“數(shù)據(jù)區(qū)”最后一個字節(jié)的加和,取低八位,1個字節(jié)結(jié)束符0x16 1

26、個字節(jié),固定為0x164.3 下位機程序設(shè)計在下位機中,我們使用了一個溫濕度傳感器,通過移植該芯片的驅(qū)動程序到程序中,我們可以通過串行命令來測試當(dāng)前的溫濕度值,在下位機中我們需要進(jìn)行單片機驅(qū)動的移植,調(diào)用stm32的庫文件到系統(tǒng)中去,并進(jìn)行繼電器輸出的定義,將端口進(jìn)行漏極輸出。下位機中主要包含一些文件:主函數(shù)、溫濕度傳感器(dht11)、stm32的庫驅(qū)動、繼電器的驅(qū)動、通訊協(xié)議的移植、時鐘的初始化。通過編譯并下載該程序到stm32中,通過串口來測試我們的命令是否有效,通過外界信號的干擾來測試我們通訊協(xié)議的完整性和抗干擾性。4.4 上位機程序設(shè)計在上位機的設(shè)計中,我們使用了vc語言來進(jìn)行程序的

27、編寫,在程序的設(shè)計界面中,我們設(shè)置了幾個功能區(qū)域:環(huán)境參數(shù)的采集、串行口的選擇連接、開關(guān)的集中控制、電源信息的讀取、集體設(shè)置定時參數(shù)、集體設(shè)置電流參數(shù)、每一路電控參數(shù)、每一路電流及定時參數(shù)設(shè)置、提示消息界面。首次使用,軟件會掃描計算機當(dāng)前的串口,并全部枚舉在串口下拉菜單中,選中我們當(dāng)前調(diào)試串口,點擊連接,就會自動連接到我們的單片機主控板,同時返回第一次測試的環(huán)境量(溫濕度、電控參數(shù)),通過設(shè)置按鈕,我們可以分別設(shè)置每一路的電控參數(shù),也可以集體進(jìn)行統(tǒng)一設(shè)置。軟件的信息如圖所示:圖13 關(guān)于智能電源軟件的操作圖如圖所示:圖14 軟件主界面第五章 系統(tǒng)調(diào)試5.1 系統(tǒng)調(diào)試的硬件問題在本次的畢業(yè)設(shè)計中

28、,我們需要對單片機進(jìn)行編程,需要移植stm32的庫文件,然后去配置stm32的內(nèi)存單元,在調(diào)試這部分的時候,由于長時間沒有使用該型號的單片機,所以又一步一步閱讀了該芯片的芯片手冊,一步一步配置了該芯片的引導(dǎo)函數(shù),配置了具體的型號配置。很重要的一點是,在不斷的調(diào)試過程中提高了我們發(fā)現(xiàn)問題和運用理論知識解決問題的能力。通過軟件的不斷調(diào)試和硬件電路的不斷調(diào)試修改,修正所有發(fā)現(xiàn)的錯誤,并通過各種方式來排除這些故障。通過本次的畢業(yè)設(shè)計和不斷的調(diào)試處理,自己總結(jié)了一些調(diào)試方法:我們不管在做硬件的調(diào)試還是做軟件的調(diào)試的時候,我們都應(yīng)該分模塊進(jìn)行調(diào)試,程序編寫的時候就分模塊進(jìn)行調(diào)試這樣更能方便我們的整個系統(tǒng)的

29、運行。系統(tǒng)實物圖:圖15 硬件實物圖參考文獻(xiàn)1 徐惠民,安德寧.單片微型計算機原理、接口及應(yīng)用.第二版m.北京:北京郵電大學(xué)出版社.2000.2 李建忠.單片機原理及應(yīng)用m.西安:西安電子科技大學(xué)出版社.2007.3 胡漢才.單片機原理及其接口技術(shù)學(xué)習(xí)輔導(dǎo)與實踐教程m .北京:清華大學(xué)出版社.2003.4 夏路易,石宗義.電路原理圖與電路板設(shè)計教程m.北京:北京希望電子出版社.2002.5 譚浩強編著.c程序設(shè)計.北京:清華大學(xué)出版社1999年6 美 berger,a.著呂駿譯嵌入式系統(tǒng)設(shè)計電子工業(yè)出版社,2002.97 嵌入式系統(tǒng)設(shè)計教程,馬洪連等,電子工業(yè)出版社,2006.68 周立功著.

30、arm嵌入式系統(tǒng)基礎(chǔ)教程m.北京:北京航空航天大學(xué)出版社,2005.59 楊剛主編,32位嵌入式系統(tǒng)與soc設(shè)計導(dǎo)論(第2版),電子工業(yè)出版社,2011.110李寧.基于mdk的stm32處理器開發(fā)應(yīng)用北京航空航天大學(xué)出版社. 2008年11duckmyung, yuseong, daejeon. modified multilevel inverter employing half- and full-bridge cells with cascade transformer and its extension to photovoltaic power generation. 2010:3

31、05-71912konstantin turitsyn ;petr sulc ;scott backhaus ;michael chertkov. options for control of reactive power by distributed photovoltaic generators.2011, 99(6)13h. el fadil ;f. giri. climatic sensorless maximum power point tracking in pv generation systems.control engineering practice :2011, 1914

32、 omar m.k., hasegawa-johnson m., levinson s., gaussian mixture models of phonetic boundaries for speech recognition, automatic speech recognition and understanding, 2001. asru 01. ieee workshop on,9-13 dec. 2001致 謝通過本次的畢業(yè)設(shè)計,我基本完成了設(shè)計之初的設(shè)計思路,在設(shè)計電路的時候遇到了多個問題,通過查閱資料和咨詢同學(xué),基本上解決了所有遇到的問題,并把這些問題一一搞清楚了,因此這次的

33、畢業(yè)設(shè)計是對我自己的學(xué)習(xí)能力的一種衡量。這次畢業(yè)設(shè)計中我的專業(yè)技術(shù)知識得到了提高,以前的知識僅僅是一些皮毛和基礎(chǔ)知識,我們需要通過實踐來拓展我們的個人綜合實力,只有通過了這次畢業(yè)設(shè)計,我才對我自己的單片機編程和基本的硬件設(shè)計有了一個簡單的認(rèn)識。不再害怕遇到這些問題,不再是那種比較盲目的狀態(tài)。因此,要在這里感謝所有在我的畢業(yè)設(shè)計中給我提供幫助的老師和同學(xué),沒有你們的幫助,我就可能無法快速準(zhǔn)確的完成我的畢業(yè)設(shè)計,正是因為你們的幫助,我才一點點的學(xué)到了越來越多的專業(yè)知識。同時,再次要感謝本次畢業(yè)設(shè)計中參考的所有的專業(yè)技術(shù)文檔,沒有你們的研究,我也無法在這么短的時間內(nèi)的到靈感,在本次論文中部分引用了你

34、們的一些專業(yè)知識,所以再次向你們提出真摯的感謝!在本次畢業(yè)設(shè)計的過程中,我的一些同學(xué)及老師也為我論文的寫作提供了幫助,他們?yōu)槲腋冻隽苏嫘暮团?,所以在此向幫助過我的人表示謝意! 感謝導(dǎo)師給我的幫助,在畢設(shè)的實施過程中給予我一些教導(dǎo)和幫助,使我懂得了很多以前沒注意的細(xì)節(jié)問題,對我本身的綜合能力的提高起到了幫助作用。感謝老師們的尊尊教誨,感謝老師的無私奉獻(xiàn),感謝所有在畢設(shè)過程中幫助過我的老師!附 錄原理圖pcb圖主函數(shù)程序:#include includes.h void rcc_configuration(void); int main(void) rcc_configuration(); in

35、itdht11(); initrelay(); initcomunication(); initcurrent();initwifi(); initrtctime(); while(1) processuart2data(); procurrentvalue(); sendmessagetopc(); void rcc_configuration(void)typedef enum failed = 0, passed = !failed teststatus; errorstatus hsestartupstatus; rcc_deinit(); rcc_hseconfig(rcc_hse_

36、on); hsestartupstatus = rcc_waitforhsestartup(); if(hsestartupstatus = success) rcc_hclkconfig(rcc_sysclk_div1); rcc_pclk2config(rcc_hclk_div1); rcc_pclk1config(rcc_hclk_div2); flash_setlatency(flash_latency_2); flash_prefetchbuffercmd(flash_prefetchbuffer_enable); rcc_pllconfig(rcc_pllsource_hse_di

37、v1, rcc_pllmul_9); rcc_pllcmd(enable);while(rcc_getflagstatus(rcc_flag_pllrdy) = reset) rcc_sysclkconfig(rcc_sysclksource_pllclk); while(rcc_getsysclksource() != 0x08) 通信協(xié)議程序:#include includes.hu8 uart2state=0;u8 uart2cs=0;u8 uart2len=0;u8 uart2flag=0;extern u8 dht11datas5;uart2buf_typedef getuart2d

38、atabuf;uart2send_typedef uart2senddata;extern settimeflag_typedef settimedoornums;extern settimeflag_typedef allset;extern current_typedef doorcurrentdoornums;void initcomunication(void)gpio_inittypedef gpio_initstructure; usart_inittypedef usart_initstructure; nvic_inittypedef nvic_initstructure; r

39、cc_apb2periphclockcmd(rcc_apb2periph_gpioa , enable); rcc_apb2periphclockcmd(rcc_apb2periph_usart2, enable); gpio_initstructure.gpio_pin = gpio_pin_2; gpio_initstructure.gpio_speed = gpio_speed_50mhz; gpio_initstructure.gpio_mode = gpio_mode_af_pp; gpio_init(gpioa, &gpio_initstructure); gpio_initstr

40、ucture.gpio_pin = gpio_pin_3; gpio_initstructure.gpio_mode = gpio_mode_in_floating; gpio_init(gpioa, &gpio_initstructure); usart_initstructure.usart_baudrate = 9600; usart_initstructure.usart_wordlength = usart_wordlength_8b; usart_initstructure.usart_stopbits = usart_stopbits_1; usart_initstructure

41、.usart_parity = usart_parity_no; usart_initstructure.usart_hardwareflowcontrol = usart_hardwareflowcontrol_none; usart_initstructure.usart_mode = usart_mode_rx | usart_mode_tx; usart_init(usart2, &usart_initstructure); usart_itconfig(usart2, usart_it_rxne, enable); usart_cmd(usart2, enable); nvic_se

42、tvectortable(nvic_vecttab_flash, 0x0); nvic_initstructure.nvic_irqchannel = usart1_irqn; nvic_initstructure.nvic_irqchannelpreemptionpriority = 0; nvic_initstructure.nvic_irqchannelsubpriority = 0; nvic_initstructure.nvic_irqchannelcmd = enable; nvic_init(&nvic_initstructure); void getcmddata(void)

43、u8 rxbuffer; if(usart_getitstatus(usart2, usart_it_rxne) != reset) usart_clearitpendingbit(usart2, usart_it_rxne); rxbuffer = usart_receivedata(usart2); switch(uart2state) case lead_state: if(rxbuffer=0xfe) uart2state=start_state; break;case start_state: if(rxbuffer=0x68) uart2state=type_state; uart

44、2cs=0x68; else if(rxbuffer != 0xfe) uart2state=lead_state; break;case type_state: getuart2databuf.type=rxbuffer; uart2cs+=rxbuffer; uart2state=addr1_state;break;case addr1_state: getuart2databuf.macaddr0=rxbuffer; uart2cs+=rxbuffer; uart2state=addr2_state;break;case addr2_state: getuart2databuf.maca

45、ddr1=rxbuffer; uart2cs+=rxbuffer; uart2state=addr3_state;break;case addr3_state: getuart2databuf.macaddr2=rxbuffer; uart2cs+=rxbuffer; uart2state=addr4_state;break;case addr4_state: getuart2databuf.macaddr3=rxbuffer; uart2cs+=rxbuffer; uart2state=addr5_state;break;case addr5_state: getuart2databuf.m

46、acaddr4=rxbuffer; uart2cs+=rxbuffer; uart2state=addr6_state;break;case addr6_state: getuart2databuf.macaddr5=rxbuffer; uart2cs+=rxbuffer; uart2state=cmd_state;break;case cmd_state: getuart2databuf.cmd=rxbuffer; uart2cs+=rxbuffer; uart2state=len_state;break;case len_state: getuart2databuf.len=rxbuffe

47、r; uart2cs+=rxbuffer; if(getuart2databuf.len) uart2len=0; uart2state=data_state;else uart2state=check_state; break;case data_state: getuart2databuf.datauart2len=rxbuffer; uart2cs+=rxbuffer; uart2len+; if(getuart2databuf.len 24;uart2senddata.state1=cnt16;uart2senddata.state2=cnt8;uart2senddata.state3=cnt; lastcnt1=rtc_getcounter(); if(!allset.action) for(i=0;idoornums;i+) uart2senddata.settimestatei=settimei.action; if(settimei.action) lastcnt2=settimei.settime-lastcnt1; uart2senddata.settimei0=la

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論