版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
基于stm32的智能家居系統(tǒng)設計與實現(xiàn)摘要:物聯(lián)網(wǎng)這個概念已經(jīng)提出有二十多個年頭了,當時由于受限于網(wǎng)絡不成熟、硬件和傳感器設備的發(fā)展沒有被重視。然而在網(wǎng)絡技術成熟、傳感器設備強大的今天,物聯(lián)網(wǎng)技術逐漸進入人們的眼簾,與物聯(lián)網(wǎng)相關的產(chǎn)業(yè)得到了國家的大力支持。智能家居在物聯(lián)網(wǎng)領域里扮演者重要的角色,家居發(fā)展正在逐步向智能化靠攏。 本文從歷次的工業(yè)革命分析得出,新技術能夠改變一個時代的發(fā)展,現(xiàn)在我們正處于第四次工業(yè)革命的浪潮中,出現(xiàn)了技術井噴的現(xiàn)象,如物聯(lián)網(wǎng)技術、新能源技術、3D打印、人工智能等。智能家居是物聯(lián)網(wǎng)技術在家居領域的體現(xiàn),將在這個時代大放光彩。 順應時代發(fā)展的浪潮,本人設計了一個以STM32F103VC8T6為主控的智能家居應用系統(tǒng)。此系統(tǒng)實現(xiàn)遠程控制家電,并將采集的溫濕度信息上傳云端,然后下發(fā)給APP。用戶能夠在APP上遠程改變家電的狀態(tài)。關鍵詞:STM32,智能家居,物聯(lián)網(wǎng)
Designandimplementationofsmarthomesystembasedonstm32Abstract:TheconceptoftheInternetofthingshasbeenaroundformorethantwodecades,whenthedevelopmentofhardwareandsensorequipmentwasnottakenseriouslyduetotheimmaturityofthenetwork.However,withthematurenetworktechnologyandpowerfulsensorequipment,theInternetofthingstechnologyhasgraduallycomeintopeople'seyes,andtheindustriesrelatedtotheInternetofthingshavebeenstronglysupportedbythestate.SmarthomeplaysanimportantroleinthefieldofInternetofthings.Fromtheanalysisofpreviousindustrialrevolutions,thispaperconcludesthatnewtechnologiescanchangethedevelopmentofanera.Nowweareinthewaveofthefourthindustrialrevolution,andtherehasbeenatechnologicalblowout,suchasInternetofthingstechnology,newenergytechnology,3Dprinting,artificialintelligenceandsoon.SmarthomeistheembodimentoftheInternetofthingstechnologyinthehomefield,thiserawillbebrilliant.WiththetideofthedevelopmentofTheTimes,IdesignedasmarthomeapplicationsystemwithSTM32F103VC8T6asthemaincontrol.Thissystemrealizesremotecontrolofhouseholdappliances,anduploadsthecollectedtemperatureandhumidityinformationtothecloud,andthensendsittotheAPP.UserscanremotelychangethestatusofappliancesontheAPP.Keywords:STM32,SmartHome,Internetofthings
目錄1 緒論 緒論研究背景和意義背景分析人類文明起源至今,共經(jīng)歷過三次加快社會工業(yè)化進程的工業(yè)革命,每一次工業(yè)革命都是人類發(fā)展史上濃重的一筆,深深影響著未來社會的發(fā)展和未來社會格局。第一次工業(yè)革命,蒸汽機被發(fā)明和使用大大的促進社會生產(chǎn)力的發(fā)展,并預示著傳統(tǒng)手工業(yè)、交通將會逐漸被蒸汽機取代。由于第一次工業(yè)革命促西歐國家的生產(chǎn)力,從而加快西歐國家的資本主義進程,經(jīng)濟得到快速發(fā)展,于是在此前提下掀起了第二次工業(yè)革命。第二次工業(yè)革命主要產(chǎn)物就是電力,在當今社會電力和石油是人類社會發(fā)展運作的主要能源,如果全球斷電社會將會出現(xiàn)不可預料的動蕩,電子設備停運社會治安不能得到保證,違法犯罪事件將會頻發(fā)。第三次科技革命是新技術發(fā)明與發(fā)展的大爆發(fā),出現(xiàn)這種現(xiàn)象的重要因素是當時世界處于相對和平的時代、工業(yè)化程度日漸加深,帶來了科技與經(jīng)濟的高速發(fā)展。第三次科技革命時期發(fā)明了原子能、電子計算機、空間技術和生物工程,這些技術的發(fā)明加深社會的工業(yè)程度。隨著科技的發(fā)展,我們迎來了第四次工業(yè)革命,從歷次的工業(yè)革命中可以得出一個結論:新型技術是未來社會發(fā)展的核心。在即將到來的第四次工業(yè)革命中,突破性技術熱點更是層出不窮:人工智能、生命科學、物聯(lián)網(wǎng)、機器人、新能源、新材料、3D打印等。孫麗娜孫麗娜.打開第四次工業(yè)革命的神奇鑰匙[N].中國證券報,2020-01-18(A06).物聯(lián)網(wǎng)技術是第四次工業(yè)革命的核心技術之一,近幾年物聯(lián)網(wǎng)熱度不斷上升,同樣智能家居作為物聯(lián)網(wǎng)技術的應用之一,同樣被社會關注。智能家居概念早就被提出,由于受限于當時的軟硬件技術和標準不統(tǒng)一沒有被重視。在如今網(wǎng)絡技術成熟,傳感器豐富且穩(wěn)定,智能家居再次被人們所重視。據(jù)調(diào)查歐美國家有一半的家庭已經(jīng)在使用智能家居了,但是在中國只有3%左右的家庭使用智能家居,對此我國一些大企業(yè)都致力于開發(fā)智能家居產(chǎn)品。如小米開發(fā)的智能家居產(chǎn)品,能夠通過小愛同學和手機APP控制家電;阿里巴巴開發(fā)的智能酒店,用戶可通過天貓精靈控制酒店環(huán)境。本課題的研究意義科技的進步、經(jīng)濟的發(fā)展使得社會高速發(fā)展,并且也在潛移默化的改變?nèi)藗兊纳盍晳T與生活方式。隨著人民生活質量的提高,人們對家居環(huán)境和家電得智能化程度要求越來越高,對于住所人們不再滿足于它是遮風擋雨的場所,人們希望能夠住所能夠更加舒適和溫馨,空調(diào)和冰箱的廣泛使用,充分證明此觀點。智能家居提供智能化管理,降低家電控制的繁瑣性,用戶可以充分地、高效地利用資源,減少家庭日常生活中的能耗。而且在當今社會環(huán)境下,人們更注重環(huán)保與養(yǎng)生,對此用戶可通過智能家居來監(jiān)控室內(nèi)溫度、濕度、PM2.5等,實時檢測家居空氣質量,提前采取相應的措施。通過智能家居設計可以了解智能家居的發(fā)展前景和方向,并且對大學四年所學知識的擴展與鞏固,做到學以致用,同時還能夠積累各種傳感器是使用經(jīng)驗,提升自身能力。課題研究方法和內(nèi)容研究方法本課題使用的研究方法如下: 調(diào)查法:調(diào)查智能家居的發(fā)展歷程與市場前景,并且調(diào)查智能家居的成功案例,了解成功案例的功能以及實現(xiàn)方法。 文獻研究法:通過網(wǎng)絡、書籍、論文、報刊等途徑,了解智能家居的市場前景、推廣程度、以及研發(fā)歷程。提前了解智能家居的市場需求和技術需求,為下一步程序設計、編寫、調(diào)試提供明確的方向。 實驗法:實驗能夠發(fā)現(xiàn)、確認事務之間聯(lián)系。通過調(diào)查和文獻研究可以了解到智能家居的基本功能,根據(jù)智能家居的基本功能,再結合自身能力動手設計智能家居系統(tǒng)應用,主要涉及系統(tǒng)邏輯設計、代碼編寫、接口設計、傳感器使用。研究內(nèi)容本論文一共分為五個部分,具體內(nèi)容安排如下:第1章:緒論。主要介紹論文的研究背景,從工業(yè)革命角度分析智能家居的歷史背景、發(fā)展前景。同時也分析智能家居在第四次工業(yè)革命中扮演的角色,得出智能家居的研究意義。第2章:系統(tǒng)分析。對智能家居課題的系統(tǒng)需求分析,通過調(diào)查研究,對智能家居系統(tǒng)的綜合描述、市場需求分析、功能需求分析、技術可行性。第3章:智能家居硬件設計。根據(jù)需求分析確認本課題研究內(nèi)容的主要功能及實現(xiàn)方法,進行總體功能設計。然后進行CPU選型,傳感器其等外設的選擇。根據(jù)外設選擇進行硬件設計,首先根據(jù)所選外設的通信方式來進行GPIO口的選擇。第4章:智能家居軟件設計。首先,先規(guī)劃系統(tǒng)流程。其次,編寫各個模塊的底層驅動。然后,STM32利用ESP8266接入機智云平臺。最后,根據(jù)系統(tǒng)流程圖編寫代碼。第5章:系統(tǒng)測試。配置好開發(fā)板串口1,方便用來打印調(diào)試信息。開始調(diào)試各個模塊,并用串口1打印調(diào)試信息。模塊調(diào)試通過后,編寫系統(tǒng)流程代碼并調(diào)試。第6章:結論??偨Y本次智能家居應用設計的收獲、困難和不足。系統(tǒng)分析需求分析市場需求由十九大的報告可以看出,人們的生活水平在上升,人們生活所需物質豐富。為此,人們將會有更多更好的物質需求。衣食住行與人們密切相關,智能家居就是“住”的表現(xiàn)之一。未來智能家居能夠普及到每一個家庭,到那時人們不會覺得智能家居是虛幻的、難以理解的,它是被人們理解和所需的。目前家居都在向智能靠攏,就拿洗衣機來說從當初的半自動升級為全自動,而現(xiàn)在正在向智能靠攏,用戶可用手機APP選擇洗衣機的洗衣、甩干、消毒等功能。隨著科技發(fā)展,智能家居將會進一步完善。智能家居的研發(fā)成本和生產(chǎn)成本將會越來越低,這也就預示著將來大部分家庭都會進入智能化時代。到那時,智能家居系統(tǒng)將會更加智能,它將會被植入AI技術實現(xiàn)人工智能,從而擺脫事事都需要人為操作的時代,如它可以根據(jù)大數(shù)據(jù)分析用戶每個時間段在家里某個房間停留的時間長度、時間段、頻率,并結合當前溫濕度,通風條件等因素來智能控制房間里的各種參數(shù),實現(xiàn)AI智能管理。在未來隨著智能家居的智能化程度提升,智能家居的市場需求將會越來越廣闊,智能家居技術相當于在家雇傭了一個電子保姆,全年無休為用戶提供最全面的服務。功能需求智能照明控制:燈光是一個家庭中最基礎的部分,生活中經(jīng)常會出現(xiàn)忘關燈現(xiàn)象,用戶就希望能夠實現(xiàn)遠程控制燈光的亮滅,減少能源損耗。智能門窗控制:每天手動開啟窗簾太過于繁瑣,并且用戶希望外出時可通過APP查看窗簾狀態(tài),根據(jù)用戶需求實現(xiàn)遠程控制,可以使用APP按照百分比來控制窗簾。進入家里需要用到鑰匙開啟,有時忘帶鑰匙鎖在門外,用戶希望通過密碼鎖、指紋鎖或手機APP控制門的開啟與關閉,能夠有效解決被鎖門外的情況。智能環(huán)境控制:家居環(huán)境是否舒適是判定智能家居系統(tǒng)好壞的重要指標之一。氣候隨著季節(jié)而變化,溫度濕度都會發(fā)生變化,用戶希望系統(tǒng)能夠實時采集室內(nèi)溫濕度,并將溫濕度顯示在屏幕上,用戶可根據(jù)自己需求控制室內(nèi)溫度和濕度。目前絕大部分家庭都在使用煤氣,室內(nèi)氣體環(huán)境監(jiān)控也被人們需求,人們希望能夠實時監(jiān)測室內(nèi)煤氣是否泄漏,是否失火。系統(tǒng)將警報實時上報,用戶可以第一時間知道警報信息??尚行苑治黾夹g可行性分析本次課題設計外設用到的GPIO口較多,STM32F103VC8T6有100引腳,其最高主頻能夠達到72MHz,具有處理能力強、處理效率高等特點。因此選擇STM32作為主控。本次課程設計運用到的外設都是市面上常見的模塊,能夠穩(wěn)定運行于STM32開發(fā)板。通過功能需求分析本次設計需要用到溫濕度測量技術、煙霧測量技術、指紋識別技術、遠程控制等技術,利用遠程技術將數(shù)據(jù)上傳云端,然后下發(fā)給APP,各外設與STM32使用SPI、UART通信,所用技術都是學校和公司實習所學。智能家居硬件設計通過技術可行性分析,確定本次課題設計的功能是STM32采集溫濕度數(shù)據(jù),并在LCD屏幕上顯示溫度和濕度;采集煙霧數(shù)據(jù)實現(xiàn)報警功能;采集指紋實現(xiàn)指紋開鎖功能;語音播報模塊在系統(tǒng)中充當提示工具;通信模塊實現(xiàn)用戶與單片機之間的遠程交互??傮w設計根據(jù)課題設計功能描述,設計智能家居系統(tǒng),此系統(tǒng)主要架構通過STM32采集溫濕度數(shù)據(jù)上報給機智云,并使用LCD顯示溫濕度;指紋模塊控制門的開、關;采集煙霧值監(jiān)控家居環(huán)境;APP端顯示溫濕度,可控制門、窗簾和LED燈。如圖3-1是智能家居系統(tǒng)架構圖。圖STYLEREF1\s3SEQ圖\*ARABIC\s11智能家居系統(tǒng)架構圖根據(jù)圖3-1,最終確定本次實驗用到的外設模塊分別為DHT11溫濕度模塊、MQ2煙霧模塊、AS608指紋模塊、LCD模塊(JXL12864)、語音播報模塊(JQ8900)、LED燈、ESP8266通信模塊以及步進電機。結合功能需求和系統(tǒng)架構圖,可將整個系統(tǒng)使用的硬件分為四個模塊,分別為燈光模塊、環(huán)境模塊、門控模塊、窗簾控制模塊。表3-1列舉出各模塊所需外設。模塊硬件設計通用模塊硬件設計根據(jù)表格3-1可得知,系統(tǒng)模塊所需外設中有兩個通用模塊,分別為通信模塊和語音播報模塊。語音模塊在系統(tǒng)中起輔助功能,通信模塊功能是與機智云通信的介質。表STYLEREF1\s3SEQ表\*ARABIC\s11系統(tǒng)模塊所需外設系統(tǒng)模塊涉及到的外設模塊燈光模塊LEDJQ8900語音播報ESP8266按鍵環(huán)境模塊DHT11溫濕度JQ8900語音播報ESP8266MQ2煙霧LCD門控模塊步進電機JQ8900語音播報ESP8266指紋模塊按鍵窗簾控制模塊步進電機JQ8900語音播報ESP8266JQ8900語音播報模塊支持MP3、WAV硬件解碼,支持FAT文件系統(tǒng)。JQ8900擁有24位DAC輸出,并且其內(nèi)部采用DSP硬件解碼。并且控制模式多樣,不僅支持按鍵控制,而且支持串口指令模式。程序員可以通過串口發(fā)送相關指令達到語音的多樣化控制,如順序播放、循環(huán)播放、指定播放等功能。圖3-2是JQ8900與STM32連接的原理圖。圖STYLEREF1\s3SEQ圖\*ARABIC\s12JQ8900應用原理圖在本系統(tǒng)中語音播報模塊使用串口與STM32通信,JQ8900與STM32的接口分別為PB10和PB11,它在系統(tǒng)中的作用是播報提示信息和警告信息,來輔助系統(tǒng)功能。ESP8266原理圖如圖3-3所示。通訊模塊是STM32與機智云之間通信的橋梁。在此系統(tǒng)中ESP8266負責數(shù)據(jù)的上傳和下發(fā),其功能類似于路由器。ESP8266不僅性價比高、適用范圍廣且性能穩(wěn)定,能夠適應各種操作環(huán)境,而且存儲速度快和處理能力強。ESP8266與STM32通過串口通信,它們之間的接口定義如表3-2所示。表STYLEREF1\s3SEQ表格\*ARABIC\s12ESP8266接口定義STM32接口ESP8266接口PA2(TX)RXPA3(RX)TX圖STYLEREF1\s3SEQ圖\*ARABIC\s13ESP8266原理圖燈光模塊硬件設計LED燈主要作為模擬燈光和提示燈來使用,對應接口為PA1、PC1、PC2、PC4、PC5。用LED燈來模擬家庭環(huán)境燈光、提示燈和警報燈。其中警報燈配合系統(tǒng)中的環(huán)境模塊使用,提示燈配合通信模塊使用。環(huán)境模塊硬件設計環(huán)境模塊分為溫濕度部分、煙霧部分、語音模塊和LCD點陣屏模塊。根據(jù)需求和性價比,溫濕度模塊選擇使DHT11,煙霧傳感器使用MQ2-135,LCD使用JLX12864。DHT11溫濕度傳感器有專用的采集技術,保證數(shù)據(jù)的可靠性。DHT11模塊具有長期穩(wěn)定性、封裝簡單、誤差率小、接線簡單、低功耗和響應速度快等優(yōu)點,并且它的應用領域非常廣,可用于家庭、教育、工業(yè)、玩具等領域。溫濕度模塊共有3個接口,其中兩個接口為模塊供電,還有一個接口(DATA)用來數(shù)據(jù)傳輸。STM32通過PA4與DHT11模塊的DO口連接,DHT11與STM32之間使用單總線進行通信,DO既是發(fā)送口,又是接收口。原理圖如圖3-4所示。圖STYLEREF1\s3SEQ圖\*ARABIC\s14DHT11原理圖MQ2靈敏度極高,使用時操作簡單,并且它檢測范圍廣能夠有效檢測煙霧、酒精、液化氣等有害氣體,所以MQ2被廣泛應用于家庭、工廠、酒店等場所。本次實驗中煙霧傳感器主要作用是檢測一氧化碳等有毒氣體是否超標,在此實驗中用到的是DO口,即空氣中的有害氣體達到一定值時DO口由高電平轉換為低電平。MQ2的DO口與STM32的PA0相接,只要檢測PA0口的狀態(tài)就能實現(xiàn)家庭環(huán)境報警功能。當環(huán)境中有害氣體超標時調(diào)用語音播報模塊和通信,并開啟警報燈將警報信息上傳APP,使用按鍵解除煙霧警報,解除警報的接口為PA5。MQ2與STM32的原理圖如圖3-5所示。圖STYLEREF1\s3SEQ圖\*ARABIC\s15MQ2原理圖LCD模塊選用JLX12864,JLX12864是黑白點陣屏,這款芯片功能并不算很強大,不帶字庫,并且最多只能顯示32個中文文字。但是芯片價格便宜,并且本次實驗只是用來顯示溫濕度數(shù)據(jù),不需要使用太多中文,完全可以不使用字庫,從而降低產(chǎn)品成本。JLX12864與STM32使用SPI串口通信,JLX12864與STM32之間的接口定義如表3-3所示,LCD模塊原理圖如圖3-6所示。表STYLEREF1\s3SEQ表格\*ARABIC\s13JLX12864接口定義STM32接口LCD模塊接口PB5CSPB6SIDPB7SCLKPB8RSBPB9PSB圖STYLEREF1\s3SEQ圖\*ARABIC\s16JLX12864與STM32的接口原理圖窗簾控制模塊硬件設計窗簾控制由步進電機、JQ8900語音播報、ESP8266共同完成開啟和關閉窗簾操作,APP通過ESP8226下發(fā)窗簾開啟程度百分比,控制窗簾狀態(tài)。窗簾控制DRV8833與STM32之間的接口定義如表3-6所示。表STYLEREF1\s3SEQ表\*ARABIC\s12窗簾控制DRV8833接口定義STM32接口DRV8833接口PD8INT1PD9INT2PD10INT3PD11INT4圖STYLEREF1\s3SEQ圖\*ARABIC\s17DRV8833電機驅動原理圖門控模塊硬件設計根據(jù)表3-1可知門控模塊需要用到的外設有步進電機、JQ8900語音播報、指紋模塊、ESP8266通信模塊和按鍵。門控模塊主要實現(xiàn)的功能:指紋、按鍵、APP控制門的開啟和關閉,JQ8900播報提示信息。指紋模塊選用的是AS608光學指紋識別模塊,這款新片擁有內(nèi)部存儲設備,斷電數(shù)據(jù)不丟失,并且最多能夠存取300個指紋。AS608能精準快速識別指紋,并且這款新片集成了指紋識別算法開發(fā)人員不用去研究指紋識別的復雜算法,通過串口發(fā)送指令完成指紋刪除、錄入和識別功能,此產(chǎn)品廣泛應用于家庭、企業(yè)、門禁等場所。AS608與STM32之間的接口定義如表3-4所示。表STYLEREF1\s3SEQ表格\*ARABIC\s14AS608接口定義STM32接口AS608接口PA6WAKPC10(TX)RXPC11(RX)TX步進電機選用5線4相步進電機,步進電機能夠對旋轉角度進行調(diào)控,并且它的力矩大能穩(wěn)定驅動門窗系統(tǒng)。步進電機需要用到驅動芯片驅動,本次實驗選用DRV8833作為驅動芯片,根據(jù)圖3-7可知DRV8833具備低功耗、短路保護、故障保護等功能,并且DRV8833提供較好的穩(wěn)定性,能夠穩(wěn)定驅動步進電機。門控DRV8833與STM32之間的接口定義如表3-5所示。表STYLEREF1\s3SEQ表格\*ARABIC\s15門控DRV8833接口定義STM32接口門控DRV8833接口PD4INT1PD5INT2PD6INT3PD7INT4智能家居軟件設計智能家居邏輯由以下幾點構成:燈光模塊設計:用LED燈模擬家庭燈光,用戶通過APP控制LED的亮滅,開或關燈操作完成后語音提示當前燈光狀態(tài)。環(huán)境模塊設計:MQ2煙霧傳感器檢測廚房CO是否泄漏,如果濃度超標開啟警報燈,將警報信息上傳機智云,并播報警報信息,當警報信息處理后用戶可通過按鍵關閉警報燈。利用定時器每小時采集一次溫濕度數(shù)據(jù),將溫濕度數(shù)據(jù)上報機智云并且顯示在LCD屏幕上,并且判斷溫度是否在10℃-29℃之間,如果不在此范圍則播報相應的提示信息,同樣判斷濕度是否在30%-70%之間,如果不在此范圍則播報相應的提示信息。門控模塊設計:通過按鍵、指紋、APP控制門的開/關。當使用按鍵開門時,程序首先判斷門的狀態(tài),實現(xiàn)開門或關門操作,并將門的狀態(tài)上報機智云;APP也能夠控制門的開啟和關閉;指紋識別只能實現(xiàn)開門功能,當指紋識別成功時,語音提示驗證成功,并且判斷門是否打開,如果門關閉則執(zhí)行開門操作;如果門已打開則語音提示門已打開;如果指紋識別失敗則提示驗證失敗,不進行開門操作。窗簾控制模塊設計:APP可以通過百分比來控制窗簾打開程度,操作完成后語音提示操作完成。APP:本次實驗中使用機智云官方提供的APP,通過為ESP8266配網(wǎng)后,APP能夠根據(jù)云端下發(fā)數(shù)據(jù)點創(chuàng)建視圖,視圖以云端的數(shù)據(jù)點為準。模塊軟件設計通用模塊軟件設計本次智能家居應用設計是基于機智云平臺開發(fā)的,如果要實現(xiàn)遠程控制,就必須要實現(xiàn)工程接上機智云平臺。實驗中用ESP8266模塊作為橋梁接入機智云,因此需要對ESP8266進行配網(wǎng),配網(wǎng)模式有多種。通信模塊與STM32使用串口通信,為保證能夠配網(wǎng)成功,就必須保證ESP8266與STM32之間的串口通訊是正常的,STM32與ESP8266之間的串口設置波特率為9600bps、無硬件流控制、無奇偶檢驗、1個停止位,數(shù)據(jù)發(fā)送格式為大端模式。通信數(shù)據(jù)包格式分為:包頭+包長度+命令+包序號+Flags+有效負載+校驗和。作為發(fā)送方除了包頭,如果其他數(shù)據(jù)出現(xiàn)0xFF,需在0xFF后添加0x55,作為接收方遇到0xFF后將0xFF后面的0x55移除。STM32每隔一段時間將會上報當前狀態(tài),其數(shù)據(jù)包格式為:包頭+包長度+命令+包序號+flags+校驗和。圖4-1是發(fā)送方的代碼實現(xiàn)。圖STYLEREF1\s4SEQ圖\*ARABIC\s11發(fā)送方代碼實現(xiàn)機智云官方提供兩種方式為ESP8266配網(wǎng),通過串口發(fā)送SoftAP(0x01)或AirLink(0x02)指令,讓ESP8266進入配網(wǎng)模式,配網(wǎng)成功后STM32可通過ESP8266對接機智云。語音播報模塊利用是利用串口發(fā)送指令控制指定語音播放,語音命名格式為四位數(shù),如“0001.mp3”。一個完整的數(shù)據(jù)包共5個或6個字節(jié)。4-2圖是播放特定語音的函數(shù)流程圖。圖STYLEREF1\s4SEQ圖\*ARABIC\s12語音播報流程圖燈光模塊軟件設計根據(jù)表3-1可以知道燈光模塊,由語音模塊、LED、通信模塊完成開/關燈操作,通過模塊功能設計了解關于燈光實現(xiàn)的功能。本小結將對LED燈的相關操作,封裝成函數(shù),方便系統(tǒng)功能調(diào)用。燈光函數(shù)由LED燈和JQ8900語音播報模塊協(xié)同實現(xiàn)功能,在LED燈操作完成后結合語音播報達到語音提示功能,同時語音播報能夠輔助系統(tǒng)功能調(diào)試。如圖4-3是開啟LED燈的函數(shù)流程圖,關LED燈的流程與圖4-3相似。圖STYLEREF1\s4SEQ圖\*ARABIC\s13開啟LED函數(shù)流程圖環(huán)境模塊軟件設計DHT11溫濕度模塊采用單數(shù)據(jù)總線實現(xiàn)數(shù)據(jù)傳輸,DHT11只有在接收到開始信號后才會開始采集數(shù)據(jù),不然它將處于睡眠狀態(tài)。根據(jù)圖4-4DHT11數(shù)據(jù)時序圖可知,主機信號拉低發(fā)送開始信號,接著將其拉高,一段時間后將總線設置為輸入模式等待DHT11的應答信號,并且等待DHT11傳輸采集的數(shù)據(jù),接收完成后將總線拉高發(fā)送結束信號,溫濕度數(shù)據(jù)占4個字節(jié)。溫度和濕度整數(shù)部分各占1個字節(jié)的數(shù)據(jù),同樣溫度和濕度小數(shù)部分也各占1個字節(jié)的數(shù)據(jù),由于小數(shù)部分是擴展部分初始值為0,所以系統(tǒng)中只使用整數(shù)部分。根據(jù)圖4-4和DHT11的數(shù)據(jù)手冊可以完成DHT11溫濕度讀取函數(shù),其函數(shù)流程圖如圖4-5所示。圖STYLEREF1\s4SEQ圖\*ARABIC\s14DHT11數(shù)據(jù)時序圖圖STYLEREF1\s4SEQ圖\*ARABIC\s15溫濕度讀取函數(shù)流程圖根據(jù)JLX12864的數(shù)據(jù)手冊,可以從中了解到LCD是按照頁地址和列地址來控制LCD的顯示。JLX12864采用共陰極方式,它將點陣屏分為64行128列,用戶可以根據(jù)產(chǎn)品需求設置顯示的對比度。圖4-6是LCD顯示數(shù)據(jù)的函數(shù)流程圖,該函數(shù)可傳入?yún)?shù)控制LCD顯示溫濕度。MQ2煙霧傳感器相關操作主要是開啟警報燈,并提示警報信息,該功能調(diào)用4.3.1編寫的開/關燈函數(shù)就能實現(xiàn),并且需要為其配置外部中斷,當環(huán)境有害氣體超標時觸發(fā)。一般MQ2報警都是在危機情況下觸發(fā),所以MQ2相關的外部中斷優(yōu)先級必須是系統(tǒng)中處于最高級別。圖STYLEREF1\s4SEQ圖\*ARABIC\s16LCD顯示函數(shù)窗簾模塊外設軟件設計窗簾模塊需要實現(xiàn)百分比開啟窗簾功能,本次實驗中設定步進電機的總步數(shù)為一定值,通過數(shù)學轉換將總計數(shù)值分為100份,實現(xiàn)百分比開啟窗簾。窗簾操作函數(shù)中,用全局變量存取當前窗簾開啟程度,執(zhí)行操作時判斷窗簾開啟程度與目標值的大小,選擇開窗簾或關窗簾操作。函數(shù)流程圖如圖4-7所示。圖STYLEREF1\s4SEQ圖\*ARABIC\s17開窗函數(shù)流程圖門控模塊軟件設計可以通過按鍵、指紋、APP來控制門的開啟和關閉,其中涉及的功能函數(shù)共五個,分別為開門函數(shù)、關門函數(shù)、指紋識別函數(shù)、錄入指紋函數(shù)、按鍵初始化函數(shù)。根據(jù)4.2的模塊功能介紹,來編寫相關應用程序。開門函數(shù):在門開啟狀態(tài),不執(zhí)行開門操作;在門關閉時,執(zhí)行開門操作。關門函數(shù):在門關閉狀態(tài),不執(zhí)行關閉操作;在門開啟時,執(zhí)行關閉操作。系統(tǒng)中有指紋開鎖功能,需要使用到AS608指紋識別功能,當檢測到有指紋時,STM32發(fā)送指令讓AS608獲取指紋,然后等待AS608生成指紋,搜索指紋庫并對比指紋,如果指紋一致執(zhí)行開門操作,指紋不一致則退出。如圖4-8是AS608指紋識別的函數(shù)流程圖。為了實現(xiàn)指紋識別必須錄入指紋,AS608錄入指紋的原理是發(fā)送兩次采集指紋的指令,采集到兩次指紋后,判斷兩次指紋是否一致,如果兩次指紋一樣則將指紋保存在指紋庫中。錄入指紋函數(shù)流程圖如圖4-9所示。圖STYLEREF1\s4SEQ圖\*ARABIC\s18錄入指紋函數(shù)流程圖圖STYLEREF1\s4SEQ圖\*ARABIC\s19錄入指紋函數(shù)流程圖系統(tǒng)功能設計智能家居系統(tǒng),各功能都是在有需求才調(diào)用,因此CPU不用每時每刻去檢測有沒有某項操作請求,故此此次課題采用中斷來實現(xiàn)燈光模塊、環(huán)境模塊、門控模塊和窗簾模塊的相關操作。表4-1描述了不同模塊使用的中斷類型以及中斷服務函數(shù)實現(xiàn)功能。表STYLEREF1\s4SEQ表格\*ARABIC\s11系統(tǒng)中斷類型和中斷功能模塊中斷類型實現(xiàn)功能環(huán)境模塊外部中斷0檢查煤氣是否泄漏外部中斷5關閉警示燈定時器中斷每小時更新溫濕度門控模塊外部中斷7按鍵開門或關門外部中斷6指紋開門串口2中斷下發(fā)錄入指紋指令窗簾控制模塊串口2中斷下發(fā)窗簾狀態(tài)燈光模塊串口2中斷下發(fā)燈光狀態(tài)燈光模塊系統(tǒng)功能設計根據(jù)4.2智能家居邏輯中描述燈光是通過APP端控制控制。此過程需要用到ESP8266下發(fā)云端的數(shù)據(jù),通過switch做分支選擇,實現(xiàn)對應功能。函數(shù)示例代碼如圖4-10所示。圖STYLEREF1\s4SEQ圖\*ARABIC\s110燈光操作函數(shù)示例環(huán)境模塊系統(tǒng)功能設計根據(jù)表4-1了解到環(huán)境模塊系統(tǒng)功能用到定時器中斷和外部中斷。當MQ2煙霧傳感器檢測空氣有害氣體濃度超標時觸發(fā)外部中斷0中斷,外部中斷0服務函數(shù)主要的工作是開啟警報燈、將警報信息上報機智云、語音播報警告信息。如圖4-11是外部中斷0服務函數(shù)的程序流程圖。圖STYLEREF1\s4SEQ圖\*ARABIC\s111外部中斷0函數(shù)流程圖當觸發(fā)煙霧警報時,警報燈開啟并等待工作人員處理,當問題處理完后需要關閉警報燈,并上報問題已解決。如圖4-12是外部中斷5服務函數(shù)流程圖。圖STYLEREF1\s4SEQ圖\*ARABIC\s112外部中斷5服務函數(shù)流程圖環(huán)境溫濕度數(shù)據(jù)往往指的是一段時間內(nèi)的溫濕度數(shù)據(jù),所以溫濕度數(shù)據(jù)不需要不間斷的采集。于是采用定時器實現(xiàn)每小時采集溫濕度數(shù)據(jù),并將溫濕度上報機智云,這樣既減少硬件能耗,又提高了硬件使用效率。DHT11、語音播報、LCD、定時器共同完成溫濕度模塊的系統(tǒng)功能,系統(tǒng)采集溫濕度失敗次數(shù)超過200,則舍棄本次操作;如果采集成功,將更新APP端和LCD端的溫濕度數(shù)據(jù)。如圖4-13是定時器函數(shù)流程圖。圖STYLEREF1\s4SEQ圖\*ARABIC\s113定時器函數(shù)流程圖門控模塊系統(tǒng)功能設計系統(tǒng)中用戶可通過3種方式控制門的開和關,分別為指紋開門、按鍵開/關門、APP開/關門,根據(jù)表4-1這3種方式都是利用中斷來實現(xiàn)。本次實驗使用到指紋識別模塊,其中自然少不了指紋錄入、刪除、識別等功能。實驗中利用外部中斷6實現(xiàn)指紋識別和對應的功能,當檢測到指紋時觸發(fā)外部中斷,獲取指紋并進行匹配。如果匹配成功則執(zhí)行開門操作,如果匹配不成功則語音播報驗證失敗。外部中斷6實現(xiàn)指紋開門功能,其函數(shù)流程圖如圖4-14所示。圖STYLEREF1\s4SEQ圖\*ARABIC\s114外部中斷6函數(shù)流程圖起初選擇使用按鍵實現(xiàn)指紋錄入功能,但是一個按鍵控制錄入多個指紋時,操作復雜容易出現(xiàn)問題,并且如果操作不當會出現(xiàn)混亂,降低用戶體驗感,于是選用APP控制多指紋錄入,增加用戶與系統(tǒng)的交互,提高用戶體驗感。如圖4-15是錄入指紋的程序流程圖。用戶在室內(nèi)時如果要開/關門要通過APP實現(xiàn),加大了操作繁瑣性,更加違背了智能家居應用設計的初衷,所以在室內(nèi)添加了一個外部中斷控制門的開/關。如圖4-16是外部中斷7服務函數(shù)流程圖。圖STYLEREF1\s4SEQ圖\*ARABIC\s115錄入指紋函數(shù)流程圖STYLEREF1\s4SEQ圖\*ARABIC\s116外部中斷7服務函數(shù)流程圖窗簾模塊系統(tǒng)功能設計窗簾模塊的控制方式和燈光模塊的控制相似,同樣是利用串口中斷2接收事件類型,通過switch函數(shù)實現(xiàn)開/關窗簾操作。圖4-17是窗簾操作函數(shù)的應用。圖STYLEREF1\s4SEQ圖\*ARABIC\s117窗簾操作函數(shù)應用 系統(tǒng)測試系統(tǒng)測試流程分為以下幾個步驟:(1)燈光模塊測試:用APP下發(fā)數(shù)據(jù)測試,控制燈光亮滅,同時聆聽語音播報內(nèi)容,檢測播報內(nèi)容是否正確。(2)環(huán)境模塊測試:DHT11溫濕度模塊,首先利用串口打印溫濕度數(shù)據(jù),確認DHT11溫濕度讀取函數(shù)是否編寫正確,然后下載系統(tǒng)程序,將溫濕度數(shù)據(jù)顯示在LCD上,并上報機智云。觀察LCD內(nèi)數(shù)據(jù)與APP端數(shù)據(jù)是否一致。(3)門控模塊測試:測試按鍵、指紋、APP同時對門進行操作,觀察是否出現(xiàn)沖突。(4)窗簾模塊測試:首先測試窗簾全部收攏時的計數(shù)值,然后測試APP能否實現(xiàn)百分比控制窗簾。燈光模塊測試圖5-1是APP端畫面,圖5-2是用APP點亮的客廳燈。測試過程中發(fā)現(xiàn),如果頻繁切換LED燈狀態(tài),LED和語音播報能夠快速響應,做到系統(tǒng)的實時性。在頻繁改變LED狀態(tài)的過程中語音播報會打斷上條正在播放的語音,做到實時播報。圖STYLEREF1\s5SEQ圖\*ARABIC\s11APP開啟LED燈圖STYLEREF1\s5SEQ圖\*ARABIC\s12客廳燈環(huán)境模塊測試MQ2煙霧傳感器測試:用香煙測試MQ2煙霧傳感器的溫濕度靈敏度,當遇到濃煙時觸發(fā)警報,此時語音播報警報信息,同時開啟警報燈,并將警報信息上傳機智云,APP端會彈出警報信息。如圖5-3是煙霧報警燈開啟狀態(tài),圖5-4APP彈窗顯示警報信息。圖STYLEREF1\s5SEQ圖\*ARABIC\s13煙霧報警燈圖STYLEREF1\s5SEQ圖\*ARABIC\s14APP彈窗顯示報警信息DHT11溫濕度測試:首先燒錄DHT11測試程序,利用串口調(diào)試工具測試打印溫濕度數(shù)據(jù),然后在燒錄系統(tǒng)程序觀察LCD內(nèi)顯示的數(shù)據(jù)是否與APP端一樣,最后手動傳傳入溫濕度上限和下限值,測試溫濕度上下限邏輯是否正確。如圖5-5是利用串口打印的溫濕度數(shù)據(jù)。圖STYLEREF1\s5SEQ圖\*ARABIC\s15串口打印溫濕度數(shù)據(jù)修改定時器的計數(shù)初值將定時其修改成10分鐘中斷一次,觀察LCD和APP內(nèi)的溫濕度數(shù)據(jù)是否一致,如圖5-6和圖5-7分別是LCD顯示的溫濕度數(shù)據(jù)和APP端溫濕度數(shù)據(jù)。根據(jù)圖5-6和5-7可知APP端和LCD端溫濕度一致,說明在LCD屏幕上顯示的數(shù)據(jù)和APP端顯示的數(shù)據(jù)是同一組數(shù)據(jù)。手動修改溫濕度數(shù)據(jù),修改溫度和濕度的值,使溫度和濕度低于下限值,語音播報溫度過低和濕度過低;然后修改溫度和濕度值,使溫度和濕度高于上限值,語音報溫度過高和濕度過高,驗證溫濕度上下限值的邏輯沒有錯誤。圖STYLEREF1\s5SEQ圖\*ARABIC\s16LCD顯示溫濕度圖STYLEREF1\s5SEQ圖\*ARABIC\s17APP端溫濕度數(shù)據(jù)門控模塊測試通過APP下發(fā)錄入指紋指令,此功能可以實現(xiàn)錄入多個指紋,APP端選擇錄入指紋的ID,AS608共支持存儲300個指紋,完全能夠滿足日常使用需求。當指紋錄入成功時,語音提示指紋錄入成功;當指紋錄入失敗時,語音提示指紋錄入失敗。APP端選擇錄入指紋的ID,選擇好后打開錄入指紋按鈕,錄入指紋。如圖5-8是APP端錄入指紋操作圖,如圖5-9是錄入指紋和指紋識別的串口打印圖。錄入指紋后,同時利用APP、按鍵、指紋控制門的狀態(tài),在門開啟或關閉期間其他開或關門操作不會影響本次。使用按鍵或指紋改變門狀態(tài)時,只有當本次操作完成后,按鍵、指紋和APP才能再次對門進行操作。當使用APP頻繁改變門的狀態(tài)時,只有在本次操作完成后才會開執(zhí)行下一次操作。當門在開啟或關閉期間,其他操作不能改變當前操作,這與系統(tǒng)設計時設想的一樣。如果門在開啟或關閉到一半時,執(zhí)行與此相反的操作會增加門控模塊的損耗。圖STYLEREF1\s5SEQ圖\*ARABIC\s18APP端錄入指紋操作圖圖STYLEREF1\s5SEQ圖\*ARABIC\s19指紋識別測試窗簾模塊測試首先測試窗簾全部收起來時的計數(shù)值,這個值為1024,然后APP端通過百分比控制窗簾的狀態(tài),每一次操作完成后語音提示操作完成。圖STYLEREF1\s5SEQ圖\*ARABIC\s110APP開啟窗簾圖STYLEREF1\s5SEQ圖\*ARABIC\s111按比例開啟窗簾測試結果燈光模塊、環(huán)境模塊、門控模塊和窗簾模塊的整體功能符合實驗設計要求,但是將各功能整合在一起時出現(xiàn)以下沖突:(1)STM32不能對接機智云,經(jīng)過排查發(fā)現(xiàn)串口1必須先初始化,不然初始化機智云相關配置時會一直卡在printf函數(shù)。(2)煙霧傳感器需要預熱2
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣東科技學院《材料生物學》2023-2024學年第一學期期末試卷
- 廣東金融學院《快題專題訓練》2023-2024學年第一學期期末試卷
- 廣東建設職業(yè)技術學院《日語翻譯實戰(zhàn)訓練》2023-2024學年第一學期期末試卷
- 廣東環(huán)境保護工程職業(yè)學院《英語聲樂》2023-2024學年第一學期期末試卷
- 廣東工程職業(yè)技術學院《展覽場館經(jīng)營與管理》2023-2024學年第一學期期末試卷
- 廣東東軟學院《媒介經(jīng)營與管理》2023-2024學年第一學期期末試卷
- 《定量分析實驗》課件
- 西點軍校培訓課件
- 小學生誠信的課件
- 廣東碧桂園職業(yè)學院《中國近現(xiàn)代政治制度》2023-2024學年第一學期期末試卷
- 風能發(fā)電對養(yǎng)殖場廢棄物處理的影響
- 初中英語聽課記錄全集
- 2024年海南省中考數(shù)學試題卷(含答案解析)
- 10MWP太陽能光伏并網(wǎng)發(fā)電電站項目電站的技術設計方案
- 孤殘兒童護理員技能鑒定考試題庫(含答案)
- 2024新冀教版英語初一上單詞默寫表
- ISO∕TR 56004-2019創(chuàng)新管理評估-指南(雷澤佳譯-2024)
- 2024年全國房地產(chǎn)估價師之估價原理與方法考試高頻題(附答案)
- 春節(jié)的習俗課件
- DL-T5142-2012火力發(fā)電廠除灰設計技術規(guī)程
- 2024年晉城職業(yè)技術學院單招職業(yè)傾向性測試題庫附答案
評論
0/150
提交評論