《基于單片機(jī)的居室內(nèi)的環(huán)境監(jiān)測(cè)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)》9300字_第1頁(yè)
《基于單片機(jī)的居室內(nèi)的環(huán)境監(jiān)測(cè)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)》9300字_第2頁(yè)
《基于單片機(jī)的居室內(nèi)的環(huán)境監(jiān)測(cè)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)》9300字_第3頁(yè)
《基于單片機(jī)的居室內(nèi)的環(huán)境監(jiān)測(cè)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)》9300字_第4頁(yè)
《基于單片機(jī)的居室內(nèi)的環(huán)境監(jiān)測(cè)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)》9300字_第5頁(yè)
已閱讀5頁(yè),還剩20頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

基于單片機(jī)的居室內(nèi)的環(huán)境監(jiān)測(cè)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)摘要在科技發(fā)展迅速的今天,周?chē)纳瞽h(huán)境難免會(huì)遭受到一些污染,所以對(duì)室內(nèi)環(huán)境的的監(jiān)控,營(yíng)造出舒適的室內(nèi)環(huán)境具有廣闊的市場(chǎng)和社會(huì)需求。本文基于STM32設(shè)計(jì)了一款的居室內(nèi)的環(huán)境監(jiān)測(cè)系統(tǒng),使用STM32作為主控制器來(lái)控制溫濕度傳感器以及光敏傳感器來(lái)監(jiān)測(cè)居室的環(huán)境。為了將數(shù)據(jù)更直觀的顯示,使用了0.96寸的OLED顯示屏用于展示監(jiān)測(cè)到的數(shù)據(jù)。為了實(shí)現(xiàn)遠(yuǎn)程間的通信,使用了ESP8266無(wú)線(xiàn)傳輸模塊發(fā)送和接受數(shù)據(jù),將數(shù)據(jù)發(fā)送到阿里云ECS云服務(wù)器,在微信小程序端可以請(qǐng)求到阿里云服務(wù)器的數(shù)據(jù)并展示。該環(huán)境監(jiān)測(cè)系統(tǒng)可以將監(jiān)測(cè)到的室內(nèi)環(huán)境數(shù)據(jù)發(fā)送到遠(yuǎn)程服務(wù)器,然后通過(guò)微信小程序接受,通過(guò)觀察數(shù)據(jù)能夠?qū)崟r(shí)了解到室內(nèi)環(huán)境的狀況,當(dāng)室內(nèi)的環(huán)境發(fā)生異常時(shí),蜂鳴器會(huì)發(fā)出間隔報(bào)警聲,提示人們當(dāng)前的室內(nèi)環(huán)境處于異常狀態(tài)。關(guān)鍵詞:STM32;居室環(huán)境;物聯(lián)網(wǎng);小程序;TOC\o"1-2"\h\u19645摘要 緒論1.1研究背景和意義生活在當(dāng)前時(shí)代的人們,越來(lái)越追求居室環(huán)境的舒適。因?yàn)槲覀兇蟛糠值臅r(shí)間都呆在一個(gè)封閉的環(huán)境,由于我們有時(shí)忙于工作或者其他的事情,而疏忽了周?chē)h(huán)境給身體來(lái)帶的影響。長(zhǎng)時(shí)間呆在一個(gè)不舒適的環(huán)境可能會(huì)對(duì)人體帶來(lái)一些傷害。如果我們長(zhǎng)時(shí)間處于一個(gè)潮濕的環(huán)境,可能會(huì)給我們帶來(lái)風(fēng)濕的危害。有一些年輕人卻得了風(fēng)濕類(lèi)的病,大部分原因是因?yàn)殚L(zhǎng)時(shí)間呆在潮濕的環(huán)境中,這個(gè)系統(tǒng)能夠監(jiān)測(cè)到室內(nèi)的環(huán)境濕度,當(dāng)濕度超過(guò)一定值時(shí),蜂鳴器會(huì)報(bào)警提醒人們采取一些措施來(lái)應(yīng)對(duì),例如開(kāi)窗透風(fēng)來(lái)降低房間的濕度。不僅如此,室內(nèi)的溫度和光照強(qiáng)度也會(huì)影響人們的健康,當(dāng)室內(nèi)的溫度持續(xù)過(guò)高時(shí),會(huì)給人體帶來(lái)一定的危害,當(dāng)這個(gè)時(shí)候就需要進(jìn)行將降溫并且多喝水。室內(nèi)環(huán)境的狀況與我們的健康密切相關(guān),我們需要及時(shí)調(diào)整室內(nèi)的環(huán)境情況,讓自己的身體處于一個(gè)舒適的環(huán)境?;赟TM32的室內(nèi)環(huán)境監(jiān)測(cè)系統(tǒng)可以對(duì)室內(nèi)環(huán)境進(jìn)行實(shí)時(shí)監(jiān)測(cè),并且實(shí)現(xiàn)了遠(yuǎn)程監(jiān)測(cè),該系統(tǒng)能夠?yàn)槿藗儗?shí)時(shí)觀察到自己所處的環(huán)境并做出調(diào)整。1.2國(guó)內(nèi)外發(fā)展現(xiàn)狀1.2.1國(guó)外發(fā)展現(xiàn)狀國(guó)外工業(yè)革命的發(fā)展比較早,工業(yè)革命之后留下的環(huán)境問(wèn)題比較嚴(yán)重,在環(huán)境方面國(guó)外比我國(guó)更早的重視,所以在環(huán)境監(jiān)測(cè)技術(shù)上面,國(guó)外發(fā)展得更早一些。物聯(lián)網(wǎng)在九十年代被國(guó)外重視,并且大力研究物聯(lián)網(wǎng)技術(shù),在物聯(lián)網(wǎng)技術(shù)上得到了巨大提升并應(yīng)用在環(huán)境監(jiān)測(cè)方面,使環(huán)境監(jiān)測(cè)的時(shí)效性和實(shí)時(shí)性大大提高。由于物聯(lián)網(wǎng)技術(shù)國(guó)外發(fā)展的比較早,所以技術(shù)比較成熟一點(diǎn)。在國(guó)外生產(chǎn)環(huán)境監(jiān)測(cè)儀器的公司中,比較有名氣有布朗盧比、美國(guó)哈希、法國(guó)AWA、日本島津等等,這些公司生產(chǎn)的監(jiān)測(cè)儀器具有較高的準(zhǔn)確性與穩(wěn)定性。1.2.2國(guó)內(nèi)發(fā)展現(xiàn)狀雖然我國(guó)在物聯(lián)網(wǎng)起步方面落后于其他國(guó)家,其實(shí)早在九九年,我國(guó)也開(kāi)始了互聯(lián)網(wǎng)的研究,并且取得了可觀的成就。在高校里也在努力培養(yǎng)互聯(lián)網(wǎng)人才,在高校中開(kāi)設(shè)物聯(lián)網(wǎng)課程,培養(yǎng)了一批優(yōu)秀的物聯(lián)網(wǎng)人才?,F(xiàn)在我國(guó)發(fā)展比較好的物聯(lián)網(wǎng)公司有小米、華為等等。在智能家居方面做的比較好的有小米公司,小米的智能家居產(chǎn)品包括米家熱水壺、藍(lán)牙音箱、智能窗簾等等,智能家居能夠通過(guò)語(yǔ)音進(jìn)行控制,并且這些產(chǎn)品價(jià)格符合大眾。雖然國(guó)內(nèi)現(xiàn)在環(huán)境監(jiān)測(cè)儀器在銷(xiāo)售方面不如國(guó)外,一部分原因是因?yàn)閲?guó)內(nèi)消費(fèi)者對(duì)國(guó)內(nèi)環(huán)境監(jiān)測(cè)技術(shù)的認(rèn)識(shí)還停留在十幾年前,還有對(duì)國(guó)外產(chǎn)品的依賴(lài)。國(guó)內(nèi)的環(huán)境監(jiān)測(cè)儀器雖然起步較晚,但是經(jīng)過(guò)這些年的發(fā)展,已經(jīng)取得了巨大的進(jìn)步。國(guó)內(nèi)在室內(nèi)環(huán)境監(jiān)測(cè)方面擁有巨大的潛力。1.3研究?jī)?nèi)容本文研究的主要內(nèi)容是利用STM32最小核心板,通過(guò)Keil5編寫(xiě)程序,再通過(guò)STLink下載器將程序下載到STM32主控芯片,然后通過(guò)編寫(xiě)的驅(qū)動(dòng)程序來(lái)驅(qū)動(dòng)溫濕度傳感器和光敏傳感器監(jiān)測(cè)居室環(huán)境。將監(jiān)測(cè)到的居室環(huán)境數(shù)據(jù)通過(guò)ESP8266發(fā)送到阿里云服務(wù)器,最后通過(guò)微信開(kāi)發(fā)者工具制作一款微信小程序,通過(guò)小程序請(qǐng)求到數(shù)據(jù)并展示并且能夠遠(yuǎn)程操控。2方案設(shè)計(jì)2.1設(shè)計(jì)要求(1)實(shí)現(xiàn)居室環(huán)境的監(jiān)測(cè),監(jiān)測(cè)到室內(nèi)環(huán)境的異常自動(dòng)報(bào)警。(2)實(shí)現(xiàn)微信小程序遠(yuǎn)程監(jiān)測(cè)數(shù)據(jù),并控制LED燈和蜂鳴器。2.2總體設(shè)計(jì)方案本文設(shè)計(jì)的基于STM32的居室環(huán)境監(jiān)測(cè)系統(tǒng)主控芯片使用的是STM32F103C8T6,測(cè)量溫濕度使用的傳感器為DHT11,測(cè)量光照強(qiáng)度使用的傳感器為BH1750。分析收集的數(shù)據(jù)。將收集到的數(shù)據(jù)進(jìn)行分析,實(shí)際監(jiān)測(cè)到的數(shù)據(jù)會(huì)和我們程序中設(shè)定的值進(jìn)行對(duì)比,假如超過(guò)了蜂鳴器將報(bào)警提醒人們。在此系統(tǒng)中不僅使用了溫濕度傳感器監(jiān)測(cè)室內(nèi)的溫度和濕度,還使用了光照強(qiáng)度傳感器監(jiān)測(cè)光照強(qiáng)度,除了傳感器部分還使用了LED燈和蜂鳴器,LED燈和蜂鳴器不僅可以手動(dòng)控制,也可以通過(guò)微信小程序進(jìn)行遠(yuǎn)程控制,除此之外,當(dāng)室內(nèi)的環(huán)境出現(xiàn)異常時(shí)蜂鳴器將會(huì)自動(dòng)報(bào)警。將監(jiān)測(cè)到的數(shù)據(jù)通過(guò)STM32單片機(jī)進(jìn)行數(shù)模轉(zhuǎn)換,為了便于觀察數(shù)據(jù),將監(jiān)測(cè)到的數(shù)據(jù)顯示在0.96寸OLED屏上。為了能夠與小程序進(jìn)行遠(yuǎn)程通信,采用了ESP8266無(wú)線(xiàn)傳輸模塊,將溫濕度和光照強(qiáng)度的數(shù)據(jù)發(fā)送到阿里云ECS云服務(wù)器。微信小程序依賴(lài)與微信這個(gè)龐大的用戶(hù)基數(shù),使用起來(lái)方便容易被別人接受,除此之外,微信小程序具有開(kāi)發(fā)方便、快捷的優(yōu)點(diǎn),在微信的官方開(kāi)發(fā)者文檔上,提供了多種API和詳細(xì)的介紹,可以快速的開(kāi)發(fā)一款小程序。所以在該系統(tǒng)的設(shè)計(jì)上就分為了硬件部分和軟件部分兩大塊。2.2.1硬件設(shè)計(jì)方案基于STM32的居室環(huán)境檢測(cè)系統(tǒng),使用傳感器監(jiān)測(cè)居室環(huán)境的數(shù)據(jù),并將檢測(cè)到的數(shù)據(jù)傳輸?shù)角度胧娇刂葡到y(tǒng)中,對(duì)數(shù)據(jù)進(jìn)行分析,當(dāng)發(fā)生情況時(shí),智能控制系統(tǒng)可以檢測(cè)到屋內(nèi)的情況,而控制過(guò)程中會(huì)及時(shí)產(chǎn)生相應(yīng)的方法并發(fā)出報(bào)警聲,傳感器被用于主機(jī)檢測(cè)居室內(nèi)的環(huán)境溫度、濕度、光照強(qiáng)度。并將數(shù)據(jù)傳輸至STM32主控芯片,STM32主控芯片會(huì)將數(shù)據(jù)進(jìn)行分析和處理,然后將數(shù)據(jù)傳輸?shù)接?jì)算機(jī)設(shè)備上,通過(guò)顯示屏顯示。一些達(dá)到設(shè)定報(bào)警值的數(shù)據(jù),中央控制系統(tǒng)將發(fā)出報(bào)警信號(hào),提醒用戶(hù)避免危險(xiǎn)。WiFi無(wú)線(xiàn)傳輸模塊,連接計(jì)算機(jī)中心和STM32主控芯片,向控制中心提供數(shù)據(jù),并將遙控面板發(fā)送給STM32芯片,計(jì)算機(jī)單元負(fù)責(zé)傳感器的所有數(shù)據(jù)。硬件的系統(tǒng)流程圖如圖2.1所示。圖2.1硬件流程圖2.2.2軟件設(shè)計(jì)方案系統(tǒng)的軟件部分,有在STM32上對(duì)傳感器的驅(qū)動(dòng)程序,也有在微信小程序端的程序。STM32程序開(kāi)發(fā)所使用的軟件為keil5,程序開(kāi)發(fā)的模塊主要有控制LED驅(qū)動(dòng)的開(kāi)發(fā),蜂鳴器驅(qū)動(dòng)的開(kāi)發(fā),溫濕度驅(qū)動(dòng)程序的開(kāi)發(fā)和光照強(qiáng)度驅(qū)動(dòng)的開(kāi)發(fā)。在微信小程序端,所采用的開(kāi)發(fā)方式是基于mpvue框架開(kāi)發(fā)的,主要的程序包括數(shù)據(jù)展示頁(yè)面的開(kāi)發(fā)和登錄注冊(cè)界面的開(kāi)發(fā),數(shù)據(jù)的請(qǐng)求。STM32和微信小程序之間消息的互相傳遞是通過(guò)ESP8266無(wú)線(xiàn)傳輸模塊,通過(guò)ESP8266連上我們的WIFI或者蜂窩網(wǎng)絡(luò),并且配置好我們遠(yuǎn)程服務(wù)器的IP地址,就可以向我們的阿里云服務(wù)器發(fā)送數(shù)據(jù),然后在微信小程序中通過(guò)導(dǎo)入mqtt模塊。導(dǎo)入后并命名為connect,通過(guò)connect(mqttUrl)連接到遠(yuǎn)程服務(wù)器,連接mqtt服務(wù)器之后訂閱設(shè)備上行數(shù)據(jù)。軟件流程圖如圖2.2所示。圖2.2軟件流程圖2.3主控制器方案方案一:C51,C51的運(yùn)算能力相對(duì)于ARM和FPGA顯得有些不夠,在這個(gè)設(shè)計(jì)中,使用了多個(gè)傳感器,溫濕度傳感器及光敏傳感器,數(shù)據(jù)會(huì)比較多,所以不使用該單片機(jī)。方案二:STM32,ARM能夠滿(mǎn)足本次系統(tǒng)設(shè)計(jì)的需求,ARM作為主控芯片,能夠?qū)邮艿降臄?shù)據(jù)進(jìn)行有效的處理,并且在近些年,嵌入式開(kāi)發(fā)中使用ARM用的越來(lái)越多。所以在這個(gè)系統(tǒng)中,我們選擇使用STM32。2.4通信方案方案一:藍(lán)牙,藍(lán)牙是一種新型的無(wú)線(xiàn)通信技術(shù),它能夠?qū)崿F(xiàn)在個(gè)人的局域網(wǎng)和移動(dòng)設(shè)備之間所需要的近距離數(shù)據(jù)交換。藍(lán)牙無(wú)線(xiàn)通信打破了使用有線(xiàn)電纜方式來(lái)直接連接各類(lèi)數(shù)字設(shè)備的傳統(tǒng)局限,它主要是工作在2.4hz的全球普遍通用IS頻段,這也正是藍(lán)牙為何被認(rèn)為是目前世界上最廣泛通用的一種無(wú)線(xiàn)通信技術(shù)。方案二:WiFi,WiFi也被認(rèn)為是一種重要的無(wú)線(xiàn)網(wǎng)絡(luò)通信技術(shù),這是由電氣與電子工程師學(xué)會(huì)定義的無(wú)線(xiàn)網(wǎng)絡(luò)通信行業(yè)標(biāo)準(zhǔn)。其最主要的優(yōu)點(diǎn)之一便是能夠允許計(jì)算機(jī)將電子器件和設(shè)備與局域網(wǎng)之間進(jìn)行連接,從而達(dá)到高的傳輸率。同一特征點(diǎn)屬于無(wú)線(xiàn)通信網(wǎng)絡(luò)標(biāo)準(zhǔn)。藍(lán)牙傳輸?shù)木嚯x范圍較小同時(shí)耗電量也低。藍(lán)牙的通信距離一般在10~15米左右,主要用于連接一些外部設(shè)備或短距離傳輸數(shù)據(jù)。目前,藍(lán)牙功能普遍集成在手機(jī)、耳機(jī)、鍵盤(pán)、鼠標(biāo)、打印機(jī)等數(shù)碼產(chǎn)品中。它們廣泛應(yīng)用于這些方面,適合戶(hù)外場(chǎng)景。WiFi具有開(kāi)放速度快、范圍廣、但耗電量高的特點(diǎn)。WiFi主要用于提供無(wú)線(xiàn)互聯(lián)網(wǎng)服務(wù),因此,WiFi經(jīng)常出現(xiàn)在需要連接的智能設(shè)備上,如手機(jī)、筆記本電腦、平板電腦等,WiFi可以直接將各種電子設(shè)備連接到網(wǎng)絡(luò)上進(jìn)行各種交互,適用于室內(nèi)場(chǎng)景,特別是公司和家庭環(huán)境。由于系統(tǒng)需要遠(yuǎn)距離傳輸和控制,所以選擇WiFi進(jìn)行通信。3電路設(shè)計(jì)3.1主控制器電路3.1.1STM32芯片介紹STM32是意法半導(dǎo)體公司的一款產(chǎn)品,STM32中的ST代表的是公司名即意法半導(dǎo)體公司,M是代表的是微控制器,32表示的是這是一款32bit的微控制器。本此設(shè)計(jì)使用的STM32型號(hào)為STM32F103C8T6,表示的含義為該產(chǎn)品引腳為48腳,F(xiàn)LASH為64K字節(jié),LQFP封裝、工作溫度范圍為-40℃~+85℃。3.1.2調(diào)試接口電路將程序下載到STM32當(dāng)中的方式有:(1)使用串口下載,但是串口不能進(jìn)行仿真,調(diào)試起來(lái)比較困難。使用串口下載需要一個(gè)USB轉(zhuǎn)TTL的模塊,因?yàn)殡娔X的接口為USB接口,單片機(jī)的接口為T(mén)TL,兩者之間需要轉(zhuǎn)換。還需要安裝CH340驅(qū)動(dòng),最后安裝MCUISP軟件將keil中編譯的hex文件進(jìn)行下載。(2)JTAG/SWD下載,本次設(shè)計(jì)使用了SWD下載程序,SWD下載只需要四個(gè)引腳,從網(wǎng)上購(gòu)買(mǎi)的ST-Link價(jià)格便宜,使用方便,把ST-Link和單片機(jī)上的SWCLK和SWIO相連,再接電源即可一鍵下載。為了方便調(diào)試和開(kāi)發(fā),該系統(tǒng)選擇的是使用ST-Link仿真器進(jìn)行下載程序。通訊下載模塊的電路原理圖如圖3.1所示。圖3.1調(diào)試接口電路圖3.1.3電源電路本設(shè)計(jì)使用的STM32F103C8T6需要使用3.3V的電壓進(jìn)行供電,但是電腦的輸出電壓為5V,需要使用穩(wěn)壓器進(jìn)行穩(wěn)壓,這個(gè)單片機(jī)使用穩(wěn)壓器為ME6211,電源轉(zhuǎn)換電路的電路原理圖如圖3.2所示。圖3.2電源轉(zhuǎn)換電路圖ME611穩(wěn)壓器引腳說(shuō)明:VIN電壓輸入端VSS接地引腳CE開(kāi)關(guān)引腳NC空腳VOUT電壓輸出端3.1.4晶振電路STM32F103C8T6中有兩個(gè)晶振,一個(gè)是8MHz的晶振,為高速晶振用來(lái)給單片機(jī)提供主時(shí)鐘。另一個(gè)是32.768KHz的晶振,為低速晶振,用來(lái)給RTC提供時(shí)鐘。32.768K一般用來(lái)提供精準(zhǔn)計(jì)數(shù),因?yàn)?的15次方等于32768,經(jīng)過(guò)15次的分頻之后就可以得到1秒的時(shí)鐘頻率,我們?nèi)粘I钪杏泻芏嚯娮赢a(chǎn)品用到了,比如手機(jī)、電腦甚至手表中的鐘也是這樣制作而成的。晶振電路原理圖如下圖3.3所示。圖3.3晶振電路圖3.1.5啟動(dòng)電路基于Cortex-M3內(nèi)核的器件有3種啟動(dòng)方式??梢酝ㄟ^(guò)板子上的BOOT0和BOOT1的電平進(jìn)行選擇哪種啟動(dòng)方式。開(kāi)發(fā)板上的BOOT0、BOOT1跳線(xiàn)選擇CPU的啟動(dòng)方式,如下表3.4所示。BOOT0BOOT1啟動(dòng)模式0無(wú)關(guān)用戶(hù)閃存存儲(chǔ)器啟動(dòng)10從系統(tǒng)存儲(chǔ)器啟動(dòng)11內(nèi)置SRAM啟動(dòng)表3.4BOOT啟動(dòng)模式表本設(shè)計(jì)的BOOT0和BOOT1均設(shè)置為0,從閃存存儲(chǔ)器啟動(dòng)。電路圖如圖3.5所示。圖3.5BOOT啟動(dòng)電路圖3.1.6復(fù)位電路主控芯片可以通過(guò)NEST引腳輸出低電平達(dá)到復(fù)位,復(fù)位方法有很多種,包括軟件復(fù)位、硬件復(fù)位和看門(mén)狗復(fù)。本系統(tǒng)主要是通過(guò)硬件按鍵進(jìn)行復(fù)位。在電阻和GND之間連接了一個(gè)C2的電容,這個(gè)電容的設(shè)計(jì)目的主要是為了消除按鍵的振蕩和抖動(dòng),在按鍵剛剛被按下或者是松開(kāi)時(shí)候就會(huì)出現(xiàn)一個(gè)高頻的電平抖動(dòng)過(guò)程,震蕩的速度大概可以控制為10ms,但相對(duì)主控芯片I/O的控制速度來(lái)說(shuō),時(shí)間已經(jīng)夠長(zhǎng)了,可以同時(shí)進(jìn)行多次重新復(fù)位操作。電容具備電壓穩(wěn)定性不會(huì)產(chǎn)生突變的優(yōu)點(diǎn),使用電容濾波器可以防止抖動(dòng)而重新復(fù)位,電路圖如下表3.6所示。圖3.6復(fù)位電路圖3.2無(wú)線(xiàn)傳輸電路在本系統(tǒng)中使用的WiFi模塊為ESP8266,ESP82266是安信可的一款產(chǎn)品,因?yàn)樵撔酒哂袃r(jià)格便宜和穩(wěn)定性高的特點(diǎn),所以我們選擇使用ESP8266這款產(chǎn)品。從宏觀上來(lái)看,ESP8266也是屬于單片機(jī)一種類(lèi)型的,平時(shí)我們使用單片機(jī),一般都是先在keil中編寫(xiě)程序,然后在keil中編譯程序,最后燒寫(xiě)程序,而在ESP8266中出廠的時(shí)候就已經(jīng)給我們燒寫(xiě)好了程序,上電就可以開(kāi)始運(yùn)行,只需要我們給單片機(jī)發(fā)送指令。ESP8266的產(chǎn)品種類(lèi)如下圖3.7所示。圖3.7ESP8266產(chǎn)品圖綜合基于STM32的居室環(huán)境檢測(cè)系統(tǒng)的需求,在考慮成本和使用上選擇了ESP-01S作為本系統(tǒng)的無(wú)線(xiàn)傳輸模塊,因?yàn)樗哂幸幌聝?yōu)勢(shì):價(jià)格低,ESP8266開(kāi)發(fā)板只需要十幾塊錢(qián)。(2)功能強(qiáng)大內(nèi)部跑LWIP協(xié)議(3)支持三種模式:AP,STA,AP+STA共存模式(4)完善簡(jiǎn)潔高效的AT指令,讓開(kāi)發(fā)更簡(jiǎn)單。ESP8266-01S的電路原理圖如圖3.8所示:圖3.8ESP8266-01S電路原理圖ESP8266-01S引腳說(shuō)明:VCC電源電壓(+3.3V到3.6V)GND接地(0V)RX數(shù)據(jù)接受機(jī)引出線(xiàn)TX數(shù)據(jù)傳輸?shù)囊_在這個(gè)模塊中,只使用了VCC,GND,TX,RX引腳,其他的引腳懸空。VCC引腳連接到3.3v-3.6v電壓,GND引腳接地。RX引腳連接MCU的PA2引腳,TX引腳連接MCU的PA3引腳。3.3溫濕度檢測(cè)電路因?yàn)镈HT11具有較高的穩(wěn)定性且價(jià)格便宜,在本設(shè)計(jì)中我們使用DHT11作為溫濕度傳感器。DHT11接了一個(gè)LED指示燈,當(dāng)指示燈亮?xí)r提醒我們已經(jīng)接通了電源,起到一個(gè)提示的作用。DHT11上電后,需要等待1s,通過(guò)不穩(wěn)定狀態(tài)后才能發(fā)出命令。可以在電源引腳之間添加一個(gè)100nF電容器,以實(shí)現(xiàn)解耦和濾波。當(dāng)布線(xiàn)長(zhǎng)度超過(guò)20m時(shí),應(yīng)連接5K上拉電阻器。在這里,我們布線(xiàn)小于20米,所以只需要4.7K上拉電阻。DHT11于MCU之間是單線(xiàn)雙向結(jié)構(gòu),也就是可以接收數(shù)據(jù)也能發(fā)送數(shù)據(jù)。一次的數(shù)據(jù)傳輸為40個(gè)bit,也就是5個(gè)字節(jié)。電路原理圖如圖3.9所示:圖3.9DHT11電路原理圖DHT11引腳說(shuō)明:VCC供電3.3-5.5VDATA串行數(shù)據(jù),單總線(xiàn)NC空腳GND接地,電源負(fù)極DHT11模塊的GND和VCC分別與MCU的電源和接地引腳相連。數(shù)據(jù)引腳DATA用來(lái)與MCU之間進(jìn)行通訊和同步。一次可傳輸40位數(shù)據(jù),濕度的8位整數(shù)數(shù)據(jù)和8位小數(shù)數(shù)據(jù),但濕度的小數(shù)部分為0。溫度為8位整數(shù)數(shù)據(jù)和8位小數(shù)數(shù)據(jù)。還有8個(gè)數(shù)據(jù)校驗(yàn)位。3.4光照檢測(cè)電路本次系統(tǒng)使用的光照傳感器為BH1750。它也有另外一個(gè)名稱(chēng)叫做GY30模塊,其實(shí)GY30模塊也是使用的是BH1750FVI芯片,區(qū)別在于BH1750FVI芯片以及外圍的一些電路集成到了一起。BH1750是一個(gè)IIC通信協(xié)議的傳感器,IIC是數(shù)據(jù)線(xiàn)SDA和時(shí)鐘線(xiàn)SCL構(gòu)成的串行總線(xiàn),既可以向MCU發(fā)送數(shù)據(jù)也可以接受數(shù)據(jù)。在通信的過(guò)程中,時(shí)鐘線(xiàn)發(fā)揮控制的作用。數(shù)據(jù)線(xiàn)起到傳送數(shù)據(jù)的作用,IIC通信過(guò)程如下:開(kāi)始信號(hào),當(dāng)SCL為高電平的時(shí)候,SDA由高跳變?yōu)榈汀0l(fā)送數(shù)據(jù),在IIC總線(xiàn)上通信的過(guò)程中,每一個(gè)時(shí)鐘脈沖就會(huì)傳輸一位數(shù)據(jù)。時(shí)鐘線(xiàn)SCL控制SDA一位一位的串行傳輸數(shù)據(jù),數(shù)據(jù)的傳輸為邊緣觸發(fā)。響應(yīng),數(shù)據(jù)傳輸?shù)倪^(guò)程中會(huì)產(chǎn)生時(shí)鐘,在第九個(gè)時(shí)鐘的時(shí)候,數(shù)據(jù)接收端返回一個(gè)信號(hào),若為高電平,表示數(shù)據(jù)接受失敗,為低電平,數(shù)據(jù)接受成功。接受數(shù)據(jù),因?yàn)榘l(fā)送數(shù)據(jù)的時(shí)候是一位一位發(fā)送的,接受數(shù)據(jù)的時(shí)候也是一位一位接受的。停止信號(hào),當(dāng)SCL為高電平的時(shí)候,SDA由低躍變?yōu)楦?。BH1750通訊過(guò)程:第1步:發(fā)送上電命令。第2步:發(fā)送測(cè)量命令。第3步:等待測(cè)量結(jié)束。第4步:讀取數(shù)據(jù)。第5步:計(jì)算結(jié)果。BH1750的電路原理圖如圖3.10所示。圖3.10BH1750電路原理圖BH1750引腳說(shuō)明:(1)VCC供電電壓源正極(2)SCLIIC時(shí)鐘線(xiàn),時(shí)鐘輸入引腳,由MCU輸出時(shí)鐘(3)SDAIIC數(shù)據(jù)線(xiàn),雙向IO口,用來(lái)傳輸數(shù)據(jù)(4)ADDRIIC地址線(xiàn),接GND時(shí)器件地址為0100011,接VCC時(shí)器件地址為1011100(5)GND供電電壓源負(fù)極在BH1750這個(gè)模塊中第一個(gè)和第二個(gè)引腳分別接VCC和GND,SCL時(shí)鐘線(xiàn)引腳與MCU的PB6引腳相連,SDA數(shù)據(jù)線(xiàn)引腳與MCU的PB7引腳相連,ADDR引腳懸空。3.5顯示屏電路OLED是一種新型顯示技術(shù),能夠?qū)崿F(xiàn)自發(fā)光,不要背光源,可彎曲等特性,LCD屏需要背光而且色彩顯示沒(méi)有OLED鮮艷,OLED被認(rèn)為是下一代新興顯示屏技術(shù),現(xiàn)在手機(jī)上有較多的手機(jī)使用就是OLED屏。本系統(tǒng)使用的是0.96寸OLED屏,分辨率為128*64,通信協(xié)議為IIC通信,IIC通信的過(guò)程在上文中已詳細(xì)介紹,OLED的電路圖如圖3.11所示。圖3.11OLED電路原理圖OLED顯示屏引腳定義為:(1)GND供電電壓源負(fù)極(2)VCC供電電壓源(3)SCLIIC時(shí)鐘線(xiàn)(4)SDAIIC數(shù)據(jù)線(xiàn)本系統(tǒng)使用的0.96寸OLED屏的驅(qū)動(dòng)器為SSD1306,SSD1306支持SPI以及IIC多種總線(xiàn)驅(qū)動(dòng)方式。該芯片可以通過(guò)IO口相應(yīng)的高低電平選擇哪種驅(qū)動(dòng)方式,但是在本系統(tǒng)中已經(jīng)通過(guò)電阻固化了相應(yīng)IO口配置,使用了IIC接口方式。OLED的GND和VCC引腳分別與MCU的GND和VCC引腳連接,時(shí)鐘線(xiàn)的SCL引腳與MCU的PA5引腳連接,SDA引腳與MCU的PA6引腳連接。3.6報(bào)警提示電路本系統(tǒng)的蜂鳴器為低電平觸發(fā)有源蜂鳴器,這里的源指的是震蕩源而不是電源。無(wú)源蜂鳴器和有源蜂鳴器的區(qū)別主要在于驅(qū)動(dòng)的方式不同。無(wú)源蜂鳴器指的是蜂鳴器內(nèi)部沒(méi)有震蕩源,需要一個(gè)特定頻率的信號(hào)1.5K~2.5KHZ的震蕩信號(hào)才能驅(qū)動(dòng)。有源蜂鳴器內(nèi)部自帶震蕩源,所以只需要一個(gè)直流電壓就能驅(qū)動(dòng),單片機(jī)的PA0引腳輸出低電平就可以讓有源蜂鳴器發(fā)出響聲,而無(wú)源蜂鳴器做不到。這里的震蕩源指的是一種元件能夠?qū)⒅绷餍盘?hào)轉(zhuǎn)換為交流信號(hào)。該有源蜂鳴器的參數(shù)為:(1)模塊采用9012三極管驅(qū)動(dòng)(2)工作電壓3.3V-5V(3)設(shè)有固定螺栓孔,方便安裝(4)PCB尺寸:21.5mm*20mm本系統(tǒng)的有源蜂鳴器的電路原理圖如圖3.12所示。圖3.12蜂鳴器電路圖該有源蜂鳴器的引腳為:(1)VCC:外接3.3V-5V電壓(可以直接與5V單片機(jī)和3.3V單片機(jī)相連)(2)GND:外接GND(3)外接單片機(jī)I/O口4軟件設(shè)計(jì)4.1keil開(kāi)發(fā)環(huán)境在Keil中使用C語(yǔ)言開(kāi)發(fā)單片機(jī)驅(qū)動(dòng),與匯編語(yǔ)言相比學(xué)習(xí)難度較低,而且C語(yǔ)言開(kāi)發(fā)程序具有靈活性高、代碼易于維護(hù)、結(jié)構(gòu)清晰等優(yōu)點(diǎn)。Keil中提供了豐富的庫(kù)函數(shù)供我們使用,不僅如此Keil集編輯、編譯、調(diào)試、程序下載于一體,便于開(kāi)發(fā)人員進(jìn)行開(kāi)發(fā)。4.2創(chuàng)建工程模板(1)創(chuàng)建新的工程。(2)選擇自己需要開(kāi)發(fā)的開(kāi)發(fā)板目標(biāo)型號(hào)。(3)選擇OptionsforTarget進(jìn)行相關(guān)配置。在Target中的晶振頻率我們選擇12.0MHz,在Output中我們勾選CreatHEXFile可以生成相應(yīng)的可執(zhí)行文件。Debug中我們選擇STLink-Debugger。4.3溫濕度采集軟件設(shè)計(jì)溫濕度的驅(qū)動(dòng)程序設(shè)計(jì),首先要將DHT11進(jìn)行復(fù)位,等待DHT11的回應(yīng),如果返回的是1,就是沒(méi)有檢測(cè)到DHT11的存在。返回0,檢測(cè)到DHT11的存在。從DHT11讀取一個(gè)字節(jié),返回值是讀取到的數(shù)據(jù),如果返回值是0,讀取是正常的。如果返回值是1,則讀取數(shù)據(jù)失敗,溫濕度的驅(qū)動(dòng)程序流程圖如圖4.3所示。圖4.3溫濕度驅(qū)動(dòng)設(shè)計(jì)圖4.4光照度采集軟件設(shè)計(jì)在訪(fǎng)問(wèn)I2C設(shè)備前,請(qǐng)先調(diào)用i2c_checkDevice()檢測(cè)i2c設(shè)備是否正常,該函數(shù)會(huì)配置GPIO,先發(fā)送啟動(dòng)信號(hào),再發(fā)送設(shè)備地址和讀寫(xiě)控制bit,檢測(cè)設(shè)備的ACK答應(yīng),發(fā)送停止信號(hào),函數(shù)返回ACK。接下來(lái)BH1750寫(xiě)一個(gè)字節(jié),成功返回0,失敗返回非0,最后返回光照強(qiáng)度。光照度的驅(qū)動(dòng)程序設(shè)計(jì)如圖4.4所示。圖4.4BH1750驅(qū)動(dòng)程序圖5系統(tǒng)調(diào)試5.1小程序設(shè)計(jì)5.5.1登錄注冊(cè)頁(yè)面設(shè)計(jì)微信小程序首先進(jìn)入登錄頁(yè)面,首次登錄的用戶(hù)需要注冊(cè)一個(gè)賬號(hào),假如沒(méi)有注冊(cè)會(huì)提示用戶(hù)名或密碼錯(cuò)誤,注冊(cè)用戶(hù)名之后就可以進(jìn)行登錄。當(dāng)忘記密碼之后,可以通過(guò)注冊(cè)的手機(jī)號(hào)碼進(jìn)行密碼的修改。修改密碼之后即可正常登錄。首先要?jiǎng)?chuàng)建三個(gè)input輸入框,并且綁定相應(yīng)的事件,用戶(hù)名輸入框綁定onUserNameChange事件,密碼輸入框綁定onPassWordChange事件,電話(huà)輸入框綁定onContectChange事件。當(dāng)用戶(hù)名輸入框中的數(shù)據(jù)發(fā)生變化時(shí)觸發(fā)回調(diào)函數(shù)onUserNameChange,當(dāng)密碼輸入框中的數(shù)據(jù)發(fā)生變化時(shí)觸發(fā)回調(diào)函數(shù)onPassWordChange,當(dāng)找回密碼聯(lián)系電話(huà)輸入框中的數(shù)據(jù)發(fā)生變化時(shí)觸發(fā)回調(diào)函數(shù)onContectChange,當(dāng)我們點(diǎn)擊登錄、注冊(cè)按鈕時(shí)會(huì)觸發(fā)回調(diào)函數(shù)onClick,當(dāng)我們第一次注冊(cè)時(shí),會(huì)將注冊(cè)時(shí)輸入的賬號(hào)和密碼存入setStorage中,當(dāng)我們登錄時(shí),會(huì)先判斷我們這個(gè)賬號(hào)注冊(cè)了沒(méi)有,如果注冊(cè)了就會(huì)比對(duì)我們storage中的賬號(hào)和密碼,對(duì)比成功就可以成功登錄。假如我們忘記了密碼,點(diǎn)擊忘記密碼,就會(huì)跳出找回密碼校正的彈窗,如圖5.2所示。圖5.1找回密碼彈窗圖登錄注冊(cè)的邏輯如下圖5.2流程圖所示圖5.2登陸注冊(cè)流程圖登錄注冊(cè)頁(yè)面的效果圖如圖5.3所示圖5.3登錄注冊(cè)頁(yè)面效果圖5.5.2主頁(yè)面設(shè)計(jì)主頁(yè)面的header部分展示的是當(dāng)?shù)靥鞖獾那闆r,主要包括了空氣質(zhì)量、所在地區(qū)、天氣狀況還有當(dāng)天衣著推薦。該部分的天氣數(shù)據(jù)獲取,是使用的是和風(fēng)天氣免費(fèi)的API,使用wx.request函數(shù)調(diào)用和風(fēng)天氣得API,將獲取得數(shù)據(jù)存貯到data中,然后使用mustach語(yǔ)法將數(shù)據(jù)渲染到頁(yè)面中。主頁(yè)面的數(shù)據(jù)展示程序流程圖如圖5.4所示圖5.4主頁(yè)面流程圖頁(yè)面效果圖如圖5.5所示圖5.5主頁(yè)面效果圖5.2設(shè)備與小程序聯(lián)調(diào)當(dāng)硬件電路和軟件都制作完畢后,開(kāi)始聯(lián)調(diào),聯(lián)調(diào)的主要作用是使硬件和上位機(jī)之間能夠正常的收發(fā)數(shù)據(jù)。在硬件上按下控制led燈的開(kāi)關(guān),能在上位機(jī)上顯示led是打開(kāi)還是關(guān)閉,同時(shí)在上位機(jī)上也能控制led燈的亮滅。蜂鳴器也是如此,在硬件上按下開(kāi)關(guān),在上位機(jī)上能觀測(cè)到蜂鳴器是否開(kāi)啟,也能通過(guò)上位機(jī)控制蜂鳴器。點(diǎn)擊客廳燈按鈕,觸發(fā)onLedChange事件,通過(guò)以下代碼向服務(wù)器發(fā)送開(kāi)燈的信息。that.client.publish("/mysmarthome/sub",'{"target":"LED","value":1}')假如為關(guān)燈執(zhí)行以下代碼向服務(wù)器發(fā)送關(guān)燈的信息。that.client.publish("/mysmarthome/sub",'{"target":"LED","value":0}')點(diǎn)擊報(bào)警器按鈕執(zhí)行以下代碼向服務(wù)器發(fā)送報(bào)警的信息。that.client.publish("/mysmarthome/sub",'{"target":"BEEP","value":1}'硬件實(shí)物圖如圖5.6所示圖5.6硬件實(shí)物圖與之對(duì)應(yīng)的數(shù)據(jù)展示圖如圖5.7所示圖5.7數(shù)據(jù)展示圖6總結(jié)與展望6.1總結(jié)經(jīng)過(guò)四個(gè)月的努力,我完成了我的畢業(yè)設(shè)計(jì)基于STM32的居室環(huán)境監(jiān)測(cè)系統(tǒng),這套系統(tǒng)已經(jīng)達(dá)到了預(yù)期的要求,能夠?qū)崿F(xiàn)溫濕度以及光照強(qiáng)度的監(jiān)測(cè),能夠在OLED屏上顯示監(jiān)測(cè)到的溫濕度和光照強(qiáng)度,并且能夠自動(dòng)報(bào)警。通過(guò)WIFI模塊能夠?qū)⒈O(jiān)測(cè)到的數(shù)據(jù)發(fā)送到阿里云ESC云服務(wù)器,并能通過(guò)微信小程序進(jìn)行遠(yuǎn)程控制。能夠?qū)崿F(xiàn)按鍵和小程序都能控制蜂鳴器和LED燈。在制作的過(guò)程中也碰到過(guò)許多的難題,在大學(xué)期間只學(xué)過(guò)基礎(chǔ)的STM32,對(duì)于搭建服務(wù)器,遠(yuǎn)程傳輸數(shù)據(jù),小程序之類(lèi)的根本不懂,只能一點(diǎn)一滴去學(xué)。在搭建服務(wù)器的時(shí)候碰見(jiàn)過(guò)許多問(wèn)題,在此之前都沒(méi)有接觸過(guò),搭建的服務(wù)器接受不到數(shù)據(jù)或者無(wú)法從服務(wù)器請(qǐng)求數(shù)據(jù),域名的配置,SSL證書(shū)的申請(qǐng),小程序如何制作,等等許多的問(wèn)題都要自己慢慢解決?;剡^(guò)頭來(lái),發(fā)現(xiàn)自己已經(jīng)能夠做出這么多東西了,當(dāng)初在選題的時(shí)候,不太相信自己能夠制作出來(lái),在經(jīng)過(guò)不斷的查閱資料,不斷的研究之后,自己的能力也得到了提升,鍛煉了自己解決問(wèn)題的能力。在大學(xué)期間,我沒(méi)有參加實(shí)驗(yàn)室,只是按照學(xué)校要求完成規(guī)定的任務(wù),

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論