




已閱讀5頁,還剩37頁未讀, 繼續免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
河南科技學院2015屆本科畢業論文(設計)論文題目:基于單片機的智能家居控制系統設計學生姓名:所在院系:機電學院所學專業:電氣工程及其自動化導師姓名:完成時間:20015年5月13日摘要隨著物聯網時代的到來,人們對生活的質量、效率的要求圖越來越高。本設計將自動控制及技術用于日常生活,來提高生活質量,使人們擁有一個舒適,安全,方便的生活環境。智能家居,就是利用網絡技術,自動控制技術,軟件技術來實現一個家居設施的自動控制系統,從而減少人對設備的控制,使人們的家居生活更加的舒適快捷。本次設計的智能家居控制系統,目標群體定位在普通人群,產品功能以實用為主,結合日常生活中人們的作息習慣,行為習慣,為人們提供一個靈活的、使用的、低成本的控制系統。關鍵詞:智能家居,自動化,控制AbstractWith the advent of the Internet of things era, peoples quality of life and the efficiency of the figure higher and higher.This design of automatic control and technology used in everyday life, to improve the quality of life, so that people have a comfortable, safe and convenient living environment. Smart home is the use of network technology, automatic control technology, software technology to achieve a home facility of the automatic control system, thus reducing human control of the device, making peoples home life more comfortable and efficient. The design of intelligent home control system, the target group positioning in the general population, product features mainly practical, combined with the routine of daily life, people, behavior, providing people with a flexible, use, low-cost control system.Key words: Smart home 、automatic、 control目錄第一章 緒論11.1 智能家居的發展背景11.2 國外發展狀況11. 國內發展狀況11. 智能家居的發展展望21. 課題的研究內容及安排2第三章智能家居控制系統的硬件設計3.智能家居控制系統的主控芯片3.串行通訊電路設計:5.溫度濕度傳感器的硬件設計5.光照強度傳感器的設計6.火險預警模塊7.入侵警告模塊8.GSM模塊設計與應用10.2.4G無線通訊模塊10第四章 軟件開發124.1 LabVIEW上位機軟件設計124.1.1 LabVIEW基本控件介紹124.1.2 LabVIEW的基本函數介紹134.1.2 LabVIEW程序設計164.1.3 前面板美設計204.1.5 WEB發布設置214.2 嵌入式系統開軟件開發214.2.1 STM32CubeMX開發環境介紹214.2.2 MDK軟件開發環境224.2.3 光照強度傳感器BHV1750程序設計234.2.4 DHT11溫度濕度傳感器程序設計234.2.5 NRF24L01無線發射模塊程序設計244.2.6 TFTLCD程序設計25第五章 硬件測試265.1 手持設備信息顯示測試275.2 上位機軟件測試275.3 WEB控制系統測試28結束語28致謝28參考文獻29附錄30附錄1 智能家居控制系統原理圖:30附錄2 智能家居控制系統PCB圖:314第一章 緒論家庭居住是人們最基本的生活條件,一個舒適、高效、安全的居住環境會極大的提高人們的生活質量。一般家庭條件下,家用電器雖然使用方便,但是要控制起來卻比較繁瑣,缺乏集中管理,也缺乏智能控制。最近幾年物聯網的發展,可穿帶設備的流行,使人們的生活方式、居家思維發生了一些轉變,人們對家居生活的質量要求越來越高。最近市場上也出現了一些智能化的家用設備,如智能電視、無線溫度檢測等。將智能化這個概念引入到家庭生活,不僅是要使家居生活智能化,網絡化,自動化,還要,達到節約資源,提高生活效率的目標。本著這樣的思想,智能家居控制系統開始一點點的形成了。智能家居控制系統的基本功能如下:家電統一管理:通過一個控制平臺,如手持設備,電腦等可以對所有的家用電器進行控制;環境監測:通過傳感器實時監測環境的溫度、濕度、光照強度等信息;自動控制:檢測到周圍光照強度變化是能自動調節燈光,根據溫度、濕度信息自動控制空調的開關,達到節能的目的;報警:當檢測到可燃氣體濃度達到可引起危害的濃度時,家中無人值守又檢測到有外來人員入侵時發出警報,并以短信形式通知戶主;遠程控制:可以通過網絡對該系統進行控制;1.1 智能家居的發展背景世界上第一座智能建筑是位于美國康涅狄格州哈特佛市的CityBuilding,是美國聯合科技公司1984年的作品。該建筑體現了建筑設備信息化,整合化概念。從此以后便拉開了全世界爭相建造智能家居的序幕。1.2 國外發展狀況首棟智能建筑出現后,智能家居的方案在西方多了起來,智能家居開始在經濟發達的地區廣發應用。1998年5月,新加坡發布了新加坡模式的家庭智能化系統。這套系統功能完善,具有抄表、安防、對講、監控、智能控制等功能。國外電子技術較為發達,智能家居控制系統產品也較為成熟,主要產品有美國的X-10系統、德國的EBI系統、西家破的X8系統,但是由于國外的生活環境和生活理念與國內人民不同,并且其靈活性和可選擇性有局限,不適合我國應用。1. 國內發展狀況智能家居在中國發展較晚,主要經歷了四個階段:萌芽期(1994年-1999年):概念熟悉,但沒有專業的智能家居的生產廠商,主要代理國外的產品從事零售業務。開創期(2000年-2005年):國內智能家居企業逐漸發展、完善,國內企業逐漸占據國內市場。徘徊期(2006年-2010年):由于市場的不良生長和惡性競爭導致智能家居行業造成了很多的負面影響,一些廠家夸大產品點的功能、廠商只顧營銷而忽略了技術培訓和研發,導致產品不穩定,用戶投訴率過高,用戶和媒體開始對該行業持懷疑態度。大約有20多家企業退出智能家居行業。融合演變期(2011年-2020年):由于房地產受調控,智能家居行業有增長的勢頭。隨著物聯網的額發展,可穿戴設備的流行,智能家居行業的技術性難題也隨之攻克。就目前市場來看,大多數企業提供的是整棟樓房的智能家居解決方案,而面向個人家庭的智能家居解決方案也開始展露頭腳。1. 智能家居的發展展望結合現在非常成熟的互聯網技術,物聯網技術,智能家居的發展方向將會由以下幾點:網絡化?,F在人們的生活已經與網絡密不可分,人們通過智能手機鏈接到互聯網獲取信息。無論是短距離無線,還是移動網絡、互聯網等傳輸方式,智能家居的網絡化是必然的。模塊化。模塊化設計師智能家居控制系統變得更加靈活,方便日后的維護。標準化。當市場智能家居控制系統標準統一后,不同廠家的產品兼容性可以大大增強,豐富系統功能。人性化。智能家居控制系統的目的就是讓人們的日常生活更加的方便、舒適、快捷、高效。綠色化。智能家居控制系統原則上應當做到節能、環保。 1. 課題的研究內容及安排本課題設計的智能家居控制系統主要面向一般家庭用戶,使用戶對設備的控制精良的簡單,靈活,同時達到節能的效果,為用戶創造一個安全舒適,高效的生活環境。本文第一章緒論主要介紹智能家居行業的發展背景和情況;第二章主要介紹系統的總體設計方案,各種技術及其原理;第三章對硬件設計進行分析,第四章介紹軟件的開發環境及各種軟件的開發流程;第五章進行系統的測試;第六章進行總結。第二章 智能家居控制系統的總體設計2.1 系統總體描述控制系統以意法半導體公司的32位的嵌入式控制芯片作為主控芯片,外接溫度/濕度傳感器、紅外熱釋電傳感器、煙霧傳感器來對家居環境進行檢測,主控芯片接收數據并進行分析處理,若有警報事件發生,主控芯片便通過GSM模塊TC35發送相關信息到用戶手機上,通知用戶。數據通過2.4G方式發射,接收端接收到數據后傳輸給STM8單片機,單片機處理數據后通過串口傳給上位機。Labview開發的上位機收到數據后進行處理、顯示。利用Labview的WEB發布功能,用戶可以通過互聯網對該系統進行控制。用戶也可以通過上位機對該系統進行控制。本系統模塊圖如圖 1所示。圖 1智能家居控制系統模塊圖 上位機USB轉串口STM8微控制器NRF24L01NRF24L01紅外傳感器煙霧傳感器光強傳感器濕度傳感器溫度傳感器RS232STM32微控制器家電控制模塊電燈空調洗衣機加濕器電視GSM圖智能家居控制系統模塊圖2.2系統的結構體系本智能家居控制系統的結構體系有下位機、上位機和通訊模塊三部分組成。上位機運行于用戶計算機上,基于Labview開發,需要NI-VISA驅動支持。本上位機軟件通過串口與用戶設備進行通訊,將采集到的數據實時顯示到軟件界面上,并提供數據警報和一些簡單的控制功能。 下位機是用戶設備,負責信息的采集、設備的控制、信息的收發等。該部分是本設計最為核心的部分,采用了32位單片機作為主控芯片,并配合各種傳感器進行協同工作。通訊部分包括2.4GHz無線通訊,GSM無線通訊、WEB遠程控制三個部分。其中2.4GHz模塊使用NRF24L01,主要用于單片機和上位機接收端單片機進行通訊;GSM模塊使用TC35,用與單片機和用戶手機之間進行通訊;WEB端基于Labview,用于實現用戶的遠程控制。2.3 系統的主要功能本智能家居控制系統設計主要對家庭的信息進行采集,然后以無線形式傳送數據到PC端控制器,PC端控制器通過串口將采集的信息發送給上位機。系統的主要功能如下:(1)溫度和濕度的檢測功能:檢測室內溫濕度信息,當溫度或適度不合適時自動打開空調或加濕器。(2)煙霧報警功能:利用煙霧傳感器檢測室內可燃氣體濃度,當濃度超過警報值時發出報警。(3)入侵檢測功能:當無人看守且發現指定區域有可疑紅外光時發出警報。(4)光照強度檢測:根據光照強度自動調節燈光亮度。(5)遠程控制功能:通過GSM實現發送室內狀態到用戶手機,用戶也可以通過手機對室內硬件進行控制。(6)WEB遠程控制:通過網絡瀏覽器對家居信息進行監控。第三章智能家居控制系統的硬件設計.智能家居控制系統的主控芯片 8位單片機價格便宜,供貨穩定,不同廠家的產品兼容性較好,但是8位單片機功能單一,功耗較大,速度越來越不適應現在的各種信號處理;32位單片機功能強大,功耗低,相關的數據資料也非常豐富,對于開發和后期的維護都非常的方便?,F在的一部分中高端32位單片機已經具備了基本的數字信號處理的功能,所以本次設計選擇使用32位單片機作為主控芯片。本智能家居控制系統的主控芯片為基于ARM CROTEX-M3架構的32位單片機STM32F103ZET6。該芯片具有以下特點:基于ARM32位的CROTEX-M3 CPU;最高72MHz的工作頻率;單周期乘法和硬件除法;512KROM,64KRAM,可驅動SRAM、NAND FLASH、NOR FLASH,并行LCD接口。有睡眠、停機、待機模式,有高速內部晶振和低俗內部晶振。本設計采用220V交流電進行供電。由于主控芯片和一些傳感器的標準工作電壓在5V和3.3V左右,所以需要對220V電源進行轉換。本設計使用一個變壓器完成降壓工作,將220V交流電降為12V交流電,然后經過橋式整流電路進行整流,用一個50uf的電容進行濾波,使用1N4733穩壓得到5V電壓。本設計使用ASM1117-3.3來完成5V轉3.3V電壓的工作。ASM1117-3.3輸入電壓5V,輸出電壓3.3V,可驅動低于1A的負載,足以驅動本設計的各種電子器件。該芯片穩定工作溫度在-65-150,所以無需散熱即可滿足設計要求。本設計供電電路如圖 2所示。圖 2智能家居控制系統的供電電路電子產品工作是容易受周圍環境的干擾,在出現受到干擾工作不穩定的情況的時候,需要通過復位來實現系統的重新運行。通過參考ST公司的官方數據手冊,采用按鍵的方式進行系統的復位設計。通過對RESET引腳輸入一個足夠寬的下降沿脈沖,系統將重新開始運行。本系統復位電路如圖 3所示。圖 3 主控單片機的復位電路IO口資源的分配:STM32F103ZET6共有144個引腳,7組通用輸入輸出端口,出去一些用作特殊功能的IO口外,有70多個引腳可以供我們自由使用。為了軟件上設計的方便,可以將使用各種通訊協議的傳感器與單片機對應的引腳相聯。NRF24L01使用SPI協議進行數據傳輸,可以將其連接到單片機的SPI2口上;BH1750使用IIC總線協議進行數據傳輸,可以將其連接到單片機的IIC接口上。但是由于ST公司設計的IIC接口控制過于復雜,低速率、中斷低優先級情況下Bug較多,所以現使用軟件模擬IIC與BH1750進行通訊;紅外熱釋電傳感器與煙霧報警器以高低電平來指示工作的狀態,所以可以使用普通IO口與其直接相連。LCD接口使用8086通訊的標準,與FMSC控制SRAM的方式非常類似,所以可以LCD的16位數據線連接到FMSC相應的接口上。.串行通訊電路設計: 串行通訊是應用的比較廣泛的一種通訊協議,不管是8位的單片機還是32位的單片機,或者是DSP都有串行通訊接口。串行通訊具有接線少,協議簡單,使用廣泛的特點。由于現在的計算機大多數都已取消串口,而以USB2.0接口替代,所以本設計用USB轉串口TTL電路使單片機與計算機之間進行通訊。 CH340一款USB轉串口芯片,電腦上安裝好驅動后,計算機便可以識別出該芯片并分配一個串口。 CH340外圍器件只需要晶體和電容,支持本設計采用的3.3V電壓源,成本低,兼容性強。該芯片可以工作在全雙工模式下,也可工作與異步模式下,而且內部具有數據存儲器作為緩沖區,可以用常用的波特率與單片機通訊。;支持多種類型的數據位,支持奇偶校驗位,空白、標志、以及無校驗位。圖 4 轉串口電路當我們使用CH340T與單片機進行通訊時,我們只需要提供芯片的工作電源,晶振和一些電容即可。芯片內部已經接有USB上拉電阻,無需外接。參考官方的數據手冊,芯片所需外部晶振為12MHz,兩個對地小電容的容量應為20p。在電源線和地線之間應連接一個0.1uf的電容來抵抗電源波動,提高芯片的穩定性。CH340T的串口數據輸入端、串口數據輸出端應直接連到單片機的串口的發送與接收端。該芯片外圍電路如圖 4所示。.溫度濕度傳感器的硬件設計溫度與濕度的采集有多種方式,根據其信號的輸出方式可分為模擬類和數字累兩塊。模擬類的采集原件常見的有電阻式溫濕度傳感器,這類的傳感器原件一般用于工業設備的自動控制,通過配合一些模擬電路來實現自動控制的效果,易受周圍的環境干擾,不適合用來做顯示方面;而數字式傳感器將要采集的信息直接轉換為數字信號,通過特定的協議與單片機或數字信號處理器進行通訊,處理器可以非常方便的使用這些信號進行處理、顯示。對于家庭溫度和濕度的采集,精度要求不高,實時性要求也不強,所以可以選取一般的、性價比較高的原件來進行溫度和濕度的測量。DHT11數字溫度濕度傳感器是一款復合溫度和濕度的傳感器原件,每個DHT11出廠前都在極為精確的溫濕度校驗室中進行校準,校準參數保存在芯片內部的存儲芯片上,傳感器在檢測信號時會調用這些參數,以確保傳感器的高度可靠性和長期穩定性。該芯片測量濕度范圍在20%-90%,溫度范圍0-50,足以滿足家庭測溫的需要。該器件單價4.5人民幣,性價比非常高,所以本次設計采用DHT11來采集溫度與濕度信息。DHT11只需要一根數據線便可以和單片機進行通訊。一次通訊獲得5字節的數據,2字節的溫度數據2字節的適度數據。若前4字節的和的最后8位與校驗和相等,則數據正確;若不相等,則應舍棄本次讀數。DHT11與單片機的連接如圖 5所示。圖 5 DHT11與單片機接口.光照強度傳感器的設計本次設計使用BH1750來檢測室內的光照強度,單片機獲取到光照強度數據后進行處理,通過PWM波驅動可控硅來控制LED燈的發光強度。BH1750FVI是光照強度傳感器的集成電路,使用IIC協議與單片機進行通訊,可探測的光照強度的范圍為1lx-65535lx。無需其他外部器件,它可與單片機直接拿進行連接。該芯片對光源的依賴性弱,可檢測白熾燈、熒光燈、白光LED和日光燈等。該芯片工作于2.4V-3.6V電源電壓下,工作溫度-40-80,受紅外光影響較小,適合家庭環境下光照強度的采集。BH1750FVI進行光照轉化的框圖如圖 6所示:圖 6 BH1750內部結構圖當外界的光照強度改變時,接近人眼反應的光敏二極管PD的電流也隨之改變,運算放大器AMP將流經光敏二極管的電流轉換為電壓,然后將該電壓進行模數轉換并獲取16位數字數據,通過IIC接口電路將這16位數據發送出去。BH1750HVI的測量方式分為單次測量和連續測量兩種,可以通過寫入相應的控制命令來進行控制。本設計使用的是單次測量的模式。該芯片還可以設置不同的測量分辨率,但是需要注意的是,不同分辨率下芯片的測量時間又有所不同,在測量的時候一定要等待足夠的時間,以免讀出錯誤數據。單片機讀取到光照強度據后進行處理,然后設置不同的PWM波的占空比,來讓燈光穩定在一定能的范圍內。.火險預警模塊現在家庭中廣泛使用液化石油氣和天然氣,這些氣體發生泄露時往往不宜被人覺察,碰到明火或靜電引起的火花時便容易引起爆炸,發生火災;即使沒有發生火災,這些氣體也容易使人中毒,陷入昏迷狀態。MQ-2氣體傳感器可以對家庭生活中的多種可燃氣體進行檢測,其原理是根據其氣敏材料的導電率在不同濃度的可燃氣體下變化。通過模數轉化,可以得到可燃氣體濃度。表1 標準工作條件符號參數名稱技術條件 Vc 回路電壓24V VH加熱電壓5.0V0.2V RL負載電阻可調 RH加熱電阻313 PH加熱功耗900mW敏感體功耗(Ps)的計算: Ps=Vc2Rs/(Rs+RL)2傳感器電阻(Rs)的計算:Rs=(Vc/VRL-1)RL本次設計主要注重于報警功能,當室內可燃氣體濃度達到一定值時,直接發出警報即可,可用以下電路實現。如圖 7所示,MQ-2的第4引腳輸出模擬信號到運算放大器的反相輸入端,通過調節RP的阻值可以調節運算放大器同相輸入端的電壓,當MQ-2輸出的模擬信號電壓大于運算放大器的同相端輸出電壓時,該模塊便輸出低電平,LED燈亮,MCU檢測到低電平后向上位機發出報警信號。圖 7 煙霧傳感器報警電路.入侵警告模塊當無人在家而又有其他人員進入房間時,系統需要能發出警報,并以短信形式通知戶主。本次設計選用對人體紅外光較為敏感的紅外熱釋電傳感器進行信息采集,在系統開啟入侵檢測的情況下,當傳感器感應到有人時,向主控單片機發出信號,單片機收到信號以后驅動蜂鳴器報警,并通過GSM模塊發送報警短信到指定的手機號碼。本設計采用BIS0001這款專門處理傳感器信號的集成電路芯片來處理紅外熱釋電傳感器信號。BIS0001內部框圖如圖 8所示:圖 8 BIS0001內部框圖從芯片的內部框圖可以看到,BIS0001是有比較器,運放,狀態控制器和封鎖定時器,定時器構成的數?;旌系募呻娐?。VC的值決定了芯片是否進入延時周期 。A端為可重復觸發和不可重復觸發的選擇端。本次設計的入侵警報系統使用的是該芯片的可重復觸發方式,所以將A端接高電平即可。電路原理圖如圖11所示。紅外熱釋電傳感器的信號經過運放放大和再經過鑒幅器處理,當檢測到有效觸發信號是,Vs啟動延時時間定時器,由第二引腳輸出有效信號。JP1與1端聯通時工作于可重復觸發狀態。電位器RL2可以用來調節運算放大器的增益,電位器RT1用來調節觸發封鎖時間,值為:Ti=24*RT1*CY1;輸出延遲時間有R33和CY2共同決定,值為:Tx=24576*R33*CY2;本紅外熱釋電報警電路如圖 9所示。當有人在紅外熱釋電傳感器模塊的檢測范圍時,立刻觸發該模塊持續輸出高電平,當紅外信號消失后,該高電平持續一段時間后變為低電平。該電路設計使BIS0001工作在可重復觸發的模式下。圖 9 紅外熱釋電電路.GSM模塊設計與應用現在GSM技術已經非常成熟,在遠程監控、移動電話、POS機等移動領域都能見到它的應用。TC35是西門子公司的一款GSM模塊,支持短信的收發,語音和傳真的發送和收受。具有音頻接口,并通過RS232接口提供控制功能。GSM模塊與單片機接口電路如圖 10所示。單片機只需用一組串口與之相連,通過發送簡單的AT指令便可以實現短信的收發。圖 10 GSM與單片機接口對于AT指令,現對本設計中使用到的幾條作簡單介紹(1)AT:用于檢測TC35模塊是否就緒。若該模塊就緒,則該模塊收到指令后應答“OK”;(2)AT+ISP=XXXX:設置單片機與該模塊通訊的波特率,默認是9600;(3)AT+CMGF=1:設置GSM模塊的短信模塊為TEXT模式,在該模式下只可發送英文,但是無需編碼;(4)AT+CMGS=:設置短信接收號碼若GSM模塊工作正常,則該模塊應答“”;確認模塊得到應答之后,則可輸入短信內容。(5)1A:短信結束符,必須以十六進制方式發送。模塊接收到結束符后,把短信發送到指定號碼。.2.4G無線通訊模塊為了使智能家居控制系統布線方便,現使用NRF24L01模塊進行下位機和上位機之間的數據傳輸。NRF24L01是挪威設計的一款工作于2.4GHz頻段下的短距離無線收發芯片。該芯片有五個通道,支持一對多通訊,具有自動應答功能。該芯片一次可以發送最大32個字節的數據。該芯片使用SPI通訊協議與單片機進行通訊,只需通過單片機配置該芯片的相關寄存器,便能實現無線發送與接收。該芯片與單片機的接口電路如圖 11。圖 11 NRF24L01與單片機接口使用該芯片進行數據發送時,需要按一下步驟對芯片進行初始化:(1)寫發送的節點地址;(2)寫發送端的節點地址;(3)使能芯片的自動應答功能;(4)配置芯片的自動重發次數;(5)設置芯片的通信頻率;(6)配置發射參數;(7)配置接收通道0有效數據寬度;(8)切換芯片的工作模式;圖 12 NRF24L01模塊原理圖初始化完成之后,將制定數據寫入到發送緩沖器中,拉高CE,芯片將進行數據的發送。將該模塊配置為接受模式的初始化過程:(1)寫接收端的節點地址;(2)寫發送端的節點地址;(3)使能芯片的自動應答功能;(4)配置芯片的自動重發次數;(5)設置芯片的通信頻率;(6)配置發射參數;(7)配置接收通道0有效數據寬度;(8)切換芯片的工作模式;配置完成后,芯片將工作在接受模式下。一旦捕獲到有效的數據包,芯片的中斷輸出引腳輸出低電平,單片機檢測到低電平后讀狀態寄存器的值,判斷是否接收到有效數據,若接收到數據,則讀出接收到的數據。第四章 軟件開發4.1 LabVIEW上位機軟件設計LabVIEW是美國國家儀器公司開發一款圖形化編程軟件。LabVIEW容易上手,有C基礎的人員只需學習幾個相關的例程,便可以快速的進行簡單的軟件開發。軟件內置豐富的圖形控件,包括多種多樣的數學函數,并且支持多種操作系統,實時操作系統和嵌入式設備。串口是現在大部分MCU都具有的硬件功能,串行口的使用也比較方便,只需要設置好數據長度,波特率,等相關參數兩個硬件設備便能進行通訊。在此設計中使用串行口將數據發送到上位機,LabVIEW接收到串口發來的數據后進行分析處理,顯示。4.1.1 LabVIEW基本控件介紹LabVIWE有豐富的圖形控件和函數,可以滿足程序開發人員的基本需要。下面對本設計所用到的部分控件作簡要介紹。LabVIWE布爾控件主要用來輸出和顯示布爾值??丶庑我妶D 13。按鈕、開關類控件只有在外形上有所不同,功能上都是一致的,用于輸出“T(1)”或“F(0)”,該類控件在程序圖中只有一個輸出端;指示燈類控件用于指示所連接數據的布爾值,該類控件在程序圖中只有一個輸入端。圖 13 布爾控件LabVIWE的數值輸入控件用來輸入指定精度的數值。該類控件在前面板上有一個輸入框或滑塊,用來調整數值大小,在程序框圖里面只有一個輸出端,由于輸出指定的數值,如圖 14所示。圖 14 數值控件LabVIEW的字符串控件包括字符串顯示控件、字符串輸入控件、文件路徑控件等,如圖 15所示。本設計主要用了字符串輸出與顯示兩類控件。字符串輸入控件用于用戶輸如字符串,字符串顯示控件則用于顯示指定的字符串。圖 15 字符串控件LabVIEW的數組、矩陣和簇控件用于創建新的數組、矩陣、簇,如圖 16所示。本設計中主要使用了數組控件。使用數組控件可以方便的創建某一數據類型的一維或多維數組,配合程序上提供的多種數據處理函數,以及豐富多彩的顯示控件,可以方便的開發出功能強大的應用程序。 圖 16 數組控件4.1.2 LabVIEW的基本函數介紹LabVIEW雖然編程上沒有像使用高級語言那么靈活,但是其豐富的函數足以滿足自動控制需要。更重要的是,LabVIEW提供了多種硬件的驅動程序,比如GPIB、以太網、串口等,有了這些驅動程序,我們便可以通過圖形化程序控制這些硬件。但是無論是圖形化編程還是高級語言編程,都必須了解硬件的參數。下面對本設計中使用的函數作簡要介紹。編程結構函數:和C語言一樣,LabVIEW中也有循環結構、條件結構、順序結構等、甚至還有延時函數如圖 17所示。其用法和C語言基本上保持一致,For循環框內有兩個重要參數i和n,當i等于0事終止循環,n為循環計數;While循環中有一個重要參數,即While循環框內的紅點。通過控制與該點相連的值的真假來決定循環是否進行。圖 17 編程結構函數數組函數:數組函數用于處理數組和矩陣數據,功能包括數組的拆分、替換、索引、大小等,以及矩陣的轉制、矩陣與數組之間的轉化、數組與簇之間的轉化等,如圖 18所示。本設計中使用了多個數組函數,用于處理傳感器的數據以及上位機發送控制數據。圖 18 數組函數數值函數:數值函數用于數據的處理,功能包括基本的加、減、乘、除,編程常用的自加、自減運算,還有一些去整、平方函數,數據轉換和數據操作函數,如圖 19所示。圖 19 數值函數布爾函數:布爾類型的數據在編程中有著重要的地位,它經常被用來指示一個狀態或用來控制開關量。本設計中大量的使用了布爾控件,也用到了一些布爾函數。對于不同功能的函數其輸入端的個數也不同。編程時只需要將需要處理的數據連接至相應的輸入端,輸出端便會輸出指定類型的結果。利用輸出端輸出的結VISA串口函數:VISA串口函數用于控制串口。本設計使用了串口作為單片機與上位機的通訊接口,所以該串口函數在本次上位機程序中有著重要的作用。串口函數主要有以下幾個,如圖 20所示:圖 20 VISA函數VISA配置串口:用于配置串口的波特率、數據長度、停止位、奇偶校驗、流控制等。該部分設置需要與單片機的串口設置保持一致。VISA寫入串口緩沖區:將制定的數據寫入串口緩沖區。寫入完成后,串口將發送寫入的數據。VISA讀取串口緩沖區:讀取串口接收到的數據。VISA關閉串口:釋放串口資源。當應用程序結束時需要調用這個函數,否則會造成計算機串口工作不正常。4.1.2 LabVIEW程序設計本上位機程序設計依托于串口通信,上位機驗證口令后監視串口緩沖區數據,接收到數據后按照流程對數據進行處理、顯示。當上位機發送控制命令時,開始運行登陸?等待輸入用戶口令口令正確?收到數據?等待處理顯示發送命令?寫串口數據關閉串口初始化串口是否是否否是是否否是程序便向串口緩沖區寫入指定的數據發給單片機。程序工作流程如圖 21所示:圖 21 上位機工作流程圖(1)登陸系統:利用輸入控件,比較控件與顯示對話框控件來實現用戶輸入的用戶名和密碼的驗證,若輸入錯誤則不可以獲取家居信息并進行控制,并在屏幕上顯示;若正確則可以獲取家居信息并進行控制;點擊“退出”按鈕則退出智能家居控制系統,程序圖如圖 22所示。圖 22 登陸系統程序圖(2)初始化串口::利用labview控件選項卡中的VISA資源名控件來制定進行通訊的串口號,利用函數選項卡中的儀器IO/VISA配置串口函數來設置串口的波特率、數據比特、奇偶校驗、停止位和流控制。這些數據需要和發送數據的硬件設置保持一致。程序圖如圖 23所示。圖 23 初始化串口和彈出式對話框圖 24 判斷是否收到數據程序圖(3)接收數據:判斷串口緩沖區數據是否為零,若不為零則表示接收到數據。程序圖如圖 24所示。圖 25 數據處理(4)數據處理:對串口緩沖區的數據進行判斷,分析,得到各個傳感器的數據,然后進行數據轉換,顯示到前面板上;若數值超過報警值則顯示報警信息。程序圖如圖 25所示。(5)串口關閉:數據處理完成,關閉串口,減少資源的占用;(6)控制系統:點擊布爾型控件按鈕,寫入指定數據到串口緩沖區,串口發送數據;程序圖如圖 26所示。4.1.3 前面板設計利用labview自定義控件的功能可以制作出很多漂亮的控件。同時,該軟件還內置了多種前面板修飾工具,我們可以很方便的在前面板上設置背景,放置字體。以美化一個按鈕為例:右鍵單擊前面板空白區域,選擇:新式-布爾-按鈕開關,將此按鈕放置到前面板;圖 26 寫控制命令到串口右鍵單擊該按鈕,選擇“制作自定義類型”,再次右鍵單擊該按鈕,選擇“制作自定義類型”,彈出一個單獨的編輯窗口;單擊“切換至自定義模式”,將按鈕的各狀態的圖標用自己制作好的圖標替換,保存;這樣,一個自定義的按鈕便完成了。如圖 27所示。圖 27 自定義的布爾開關和布爾指示燈前面板設計完成后的界面如圖 28所示。圖 28 軟件完成界面4.1.5 WEB發布設置Labview中已經集成了一個連接好的web服務器,利用這個功能,我們可以快速的時已經完成的項目鏈接到互聯網上。利用Labview的web發布工具生成的網頁視圖與前面板樣式保持一致,控制方式也與軟件的控制方式相同。利用Labview發布web服務需要以下幾個步驟:()單擊工具web發布工具,打開相關設置的對話框;()選擇已經編寫好的VI項目,設置web查看方式,單擊“下一步”;()輸入網頁標題,單擊“完成”,軟件將生成一個用于內網的網址;這樣,我們就可以通過web方式來控制這個系統了。4.2 嵌入式系統開軟件開發4.2.1 STM32CubeMX開發環境介紹STM32CubeMX是意法半導體公司開發的一款可視化編程軟件,該軟件提供了非常直接的硬件配置方式,使使用者只通過鼠標的操作即可完成芯片的所有的硬件初始化設置。該軟件支持意法半導體公司的所有基于ARM的32位處理器。該軟件主要包括四個部分,如圖 29所示。圖 29 STM32CubeMX的四部分配置GPIO功能的配置:單擊相應的芯片的管腳,在彈出的下拉菜單里選擇對應的模式,如圖 30所示。圖 30 STM32CubeMX的GPIO配置時鐘配置:選擇系統的時鐘源,配置系統各個硬件模塊的時鐘來源,選擇倍頻器和分頻器的分頻系數,可以直接的觀測到各個硬件模塊的工作頻率,如圖 31所示。系統配置:配置芯片的各種硬件功能如IIC、SPI、TIM等功能是否開啟;配置系統中斷及硬件功能寄存器相關參數;電源設置:配置單片機的電源模式;選擇單片機外置電源的類型;設置單片機在不同模式下時鐘的頻率、喚醒方式。在所有的外設配置完成后,點擊“生成用戶指定的程序按鈕”,便可以在指定目錄生成MDK或IAR的工程文件。要注意的一點是,生成的工程文件所依賴的庫文件是意法半導體公司提供的HAL(硬件抽象層)庫,該庫文件與以往的標準庫文件有較大不同,而且意法半導體公司也已經停止了標準庫的更新。圖 31 利用STM32CubeMX配置時鐘4.2.2 MDK軟件開發環境目前支持ARM CORTEX芯片的開發環境較多,其中MDK-ARM和IAR FOR ARM使用的人群較為廣泛。MDK-ARM是國內開發ARM芯片的主流軟件,而IAR FOR ARM是瑞典的一家公司開發,被國外的廣大工程師廣泛使用。本設計使用MDK-ARM作為嵌入式系統的開發環境。MDK可以編譯、軟硬件仿真工程,支持眾多的ARM器件。系統上電或復位后,嵌入式控制器首先進行初始化工作:初始化系統時鐘、設置堆棧地址、初始化中斷向量表、初始化GPIO管腳等,然后根據主程序對一些外設進行初始化操作,如串口、SPI、定時器、IIC等。初始化工作完成以后,微控制器便據主程序去驅動外設進行工作。為了使單片機能夠穩定、搞笑的運行,程序設計本著一下的原則:可讀性:函數名稱、數組名稱、各個文件名稱要與實際功能相對應,按照統一規則進行命名;便于調試:程序中在容易出錯的地方加入有提示功能的代碼,如利用串口輸出數據、設置指示變量等;可維護性:程序中有詳細的注釋說明程序的功能,所占用的資源;模塊化:用來驅動不同硬件的函數進行獨立封裝成一個文件,這樣也提高的程序的可移植性;4.2.3 光照強度傳感器BHV1750程序設計BH1750使用IIC總線協議進行通訊。IIC協議的通訊過程為主機先發送啟動信號,然后緊跟著發送地址信號+讀寫控制位信號,然后從機應答,主機和從機開始進行數據通訊。數據通訊完成后,主機發送停止信號停止通訊。BH1750程序設計流程圖如圖 32所示:圖 32 光強檢測流程圖開始BH1750上電BH1750復位設置工作模式讀取數值數據轉換結束4.2.4 DHT11溫度濕度傳感器程序設計DHT11通過單總線協議與單片機進行通訊,單總線協議只需要一根數據線便可以實現數據的發送與接收。單總線協議開始時主機先輸出一個一個低電平并保持480us以上,作為復位脈沖;緊接著主機釋放總線,延時40us,進入接收模式,從器件拉低總線100us,作為應答信號,數據傳輸開始。數據傳輸時,主機要發送“1”時,主機拉低總線并延時2us釋放,在延時60us;主機要發送“0”時,主機輸出低電平延時60us釋放總線,延時2us。當主機需要讀取器件的數據的時候,需要進入讀時序:主機首先拉低單總線1us以上后釋放總線,延時12us后讀取到的狀態值,就是元件輸出的信號。;然后延時50us,準備下一次的讀取。DHT11程序設計流程圖如圖 33所示。4.2.5 NRF24L01無線發射模塊程序設計NRF24L01是一款工作于2.4GHz頻段下的無線收發芯片,該芯片通過SPI協議與單片機進行通訊。單片機通過六根線與該芯片相連其中三根是用于SPI通訊的數據總線,一根片選信號線,一根使能信號線,一根狀態信號線。SPI通訊中SCK信號線用于傳輸時鐘信號,MOSI信號線是主機發送數據,從機接收數據;MISO信號線是主機接收數據從機發送數據。單片機通過對NRF24L01寄存器的寫操作來控制NRF24L01的工作模式,通過對NRF24L01的讀操作來獲取模塊的狀態和收到的數據。與本設計相關的該芯片的主要指令和寄存器如下:開始單片機發送起始信號DHT11應答DHT11輸出數據單片機讀取數據達到5字節單片機校驗并處理數據結束是否圖 33 溫濕度采集流程圖指令1:000AAAAA:讀取AAAAA寄存器的值;指令2:001AAAAA:對AAAAA寄存器進行寫操作;指令3:01100001:讀取接收道德有效數據 ;指令4:10100000:寫要發射的數據;指令5:11100001:清除發射緩沖寄存器數據;指令6:11100010:清除接受緩沖寄存器數據;指令7:11111111:空操作,用于讀取狀態寄存器;寄存器CONFIG:地址0x00,用于配置該芯片的工作模式;寄存器EN_RXADDR:地址0x02,用于開關接收數據通道;寄存器RF_CH,地址0x05,用于設置芯片的工作頻率;寄存器STATUS:地址0x07,用于讀取和控制模塊狀態;該模塊初始化時設置基本參數,包括功率、信道、自動應答、重發次數、數據發射速率、接收通道地址、發射通道地址等,然后設置芯片工作模式為接收模式。當單片機采集一次數據后,便驅動該芯片進入發射模式,數據發射完成后繼續停留在接受模式等待接受數據。無線信息傳輸流程圖如圖 34所示。圖 34 無線信息傳輸流程圖上電初始化芯片收到數據?發射采集到的數據進入接收模式讀取數據進入發射模式是否4.2.6 TFTLCD程序設計單片機通過16位數據接口與主控為ILI9325的TFTLCD相連,另外接其他5跟信號線:CS:顯示屏的片選信號線;WR:向顯示屏寫入數據;RD:向顯示屏讀取數據;RST:復位信號線;RS:命令/數據標志;ILI9325控制器自帶顯存,當我們把要顯示的數據寫入到顯存里面時,屏幕上便顯示出相應的內容。ILI9326控制器的顯存大小為320*240*18/8,即該控制器驅動的TFT像素為240*320,每個像素的顏色用十八位表示,紅色R占8位,綠色G占8位,藍色B占8位,也就是十八位模式。但是我們十六跟數據線DB1-DB8,DB10-DB17進行驅動,即565模式。ILI9325的操作時序與SRAM的操作時序十分類似,所以本設計使用STM32的FMSC來驅動TFTLCD。FMSC是STM32F103ZET6上的片上外設,用來驅動SRAM,NAND FLASH,NOR FLAS等硬件。控制FMSC工作的參數和步驟較多,下面只介紹本設計重點使用的內容。本設計實用FMSC的異步突發訪問模式A,即SRAM的選通時序控制TFT。本設計把TFT的RS信號線接FMSC的A10,當FMSC寫不同的地址控制A10的電平的高低,對于TFT來說就是不同的讀、寫命令。要使用FMSC控制TFT,需要根據TFT的相關參數計算得到FMSC的初始化參數。本設計中將FMSC初始化為配置存儲器類型為SRAM、用存儲塊1區4號、16位數據寬度、寫使能、讀寫不同時序使能等。配置完成FMSC后,就需要對TFT的各種參
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 工業自動化控制技術及其應用
- 工業自動化技術及其實踐
- 工作中的團隊協作能力提升
- 工業設計與產品外觀美學
- 工作壓力管理與員工滿意度提升
- 工業風格的商業地產裝修設計風格探索
- 工程招投標與合同管理解析
- 工作流程優化與時間利用率的提升
- 工程教育中的數據可視化教學
- 工廠安全風險評估與管理體系建設
- 行政案例分析-終結性考核-國開(SC)-參考資料
- 【MOOC】人工智能導論-西安電子科技大學 中國大學慕課MOOC答案
- 《配電自動化系統》課件
- 反恐防暴器械與戰術應用講解
- 創業基礎理論與實務(寧波財經學院)知到智慧樹章節答案
- 《燃氣分布式能源站調試及驗收規程》
- 土地租賃協議書樣本
- 《某飛機場物業管理服務方案》
- 移動OA系統建設方案
- 2024年重慶高考化學試題卷(含答案解析)
- 人體器官講解課件
評論
0/150
提交評論