《基于單片機的自習(xí)室監(jiān)控系統(tǒng)設(shè)計10000字(論文)》_第1頁
《基于單片機的自習(xí)室監(jiān)控系統(tǒng)設(shè)計10000字(論文)》_第2頁
《基于單片機的自習(xí)室監(jiān)控系統(tǒng)設(shè)計10000字(論文)》_第3頁
《基于單片機的自習(xí)室監(jiān)控系統(tǒng)設(shè)計10000字(論文)》_第4頁
《基于單片機的自習(xí)室監(jiān)控系統(tǒng)設(shè)計10000字(論文)》_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費閱讀

付費下載

下載本文檔

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

文檔簡介

基于單片機的自習(xí)室監(jiān)控系統(tǒng)設(shè)計摘要自習(xí)室監(jiān)控系統(tǒng)完成對自習(xí)室人員進出情況以及人數(shù)的統(tǒng)計,實現(xiàn)有人員在場時自動開關(guān)燈功能,同時對自習(xí)室溫度和濕度進行實時監(jiān)控。本系統(tǒng)以stm32單片機作為控制核心,采用DHT11溫濕度傳感器、GY-30光照傳感器采集數(shù)據(jù),顯示模塊采用OLED屏,連接到單片機最小系統(tǒng),采用C語言編程實現(xiàn)控制功能。目前有很多功能類型的智能自習(xí)室管理系統(tǒng),但本系統(tǒng)結(jié)合了溫濕度監(jiān)控與自動開關(guān)燈功能,系統(tǒng)功能穩(wěn)定,操作方便,具有較高的市場應(yīng)用前景。關(guān)鍵詞:STM32F103C8T6單片機自習(xí)室DHT11傳感器GY-30傳感器目錄TOC\o"1-3"\h\u248391緒論 676391.1研究背景 6102221.2研究目的與意義 6239411.3研究內(nèi)容 7166041.4研究現(xiàn)狀 7193171.5預(yù)期成果 828152系統(tǒng)設(shè)計方案 9304122.1單片機芯片選擇 968732.2溫濕度傳感器選擇 910992.3光采集傳感器選擇 10254332.4顯示模塊選擇 10244342.5硬件系統(tǒng)總結(jié) 1174363硬件電路設(shè)計 1255023.1STM32硬件介紹 129173.2DHT11硬件介紹

13126653.3GY-30硬件介紹 1410263.4OLED硬件介紹 14270683.5硬件原理 1527513.5.1設(shè)計原理圖 15129463.5.2溫濕度模塊 16220723.5.3光照采集模塊 1699463.5.4顯示模塊 1870124軟件設(shè)計 19324804.1軟件設(shè)計思路 19296504.2主程序化模塊 20201564.3溫濕度模塊 2322844.4光采集模塊 25207354.5顯示模塊 29201115系統(tǒng)調(diào)試 35264865.1總體實現(xiàn) 35284585.2顯示模塊調(diào)試 3628855.3溫濕度傳感器調(diào)試 36240615.4光采集模塊調(diào)試 37283365.5人數(shù)統(tǒng)計功能調(diào)試 39266746結(jié)語 4126183參考文獻 42

1緒論隨著時代的進步,人們的生活已經(jīng)逐漸走向了智能化,各種智能化的產(chǎn)品也得到了人們極大的關(guān)注和認(rèn)可。同時,在我們學(xué)生時代之中,智能化也在一直進行的。研究背景近年來,各個普通高等院校在不斷地招校擴招,學(xué)生群體規(guī)模急劇發(fā)展壯大,自習(xí)班一個教室也就這樣變成了目前我們學(xué)校所有最需要緊缺的教育資源之一,導(dǎo)致了許多自習(xí)班的教室坐位緊張,常常我們都會親眼見到在自習(xí)班下的某個時候,學(xué)生只是為了隨便尋找個合適的時間自習(xí)班一個教室或者找個坐位而到處漫步地隨便穿梭于各個教學(xué)樓層,甚至還可以去各個新的教學(xué)大樓里到處去隨便進行坐位尋找。雖然學(xué)生自習(xí)室的學(xué)生使用也不均衡,有的高等學(xué)校學(xué)生自習(xí)室人滿為患,但是有的高等學(xué)校學(xué)生自習(xí)室卻很少有也就是空無一人。學(xué)生們對于租用教室的實際出租使用時間情況也不明確,經(jīng)常都會在不斷尋找租用教室上需要花費很多的精力時間。針對此類特殊現(xiàn)象,設(shè)計一套特別適合學(xué)生自習(xí)班針對教室學(xué)生進行實時自動預(yù)測的針對學(xué)生家長群體的大數(shù)量的預(yù)測系統(tǒng)也無疑是非常重要的。根據(jù)以上上述幾點分析影響技術(shù)因素,本文聯(lián)合研究人員設(shè)計了基于激光單片式微機和激光傳感器的多功能、實時自動監(jiān)控高中自習(xí)室內(nèi)在校學(xué)生時間總體學(xué)習(xí)人數(shù)的自動電腦式激光人數(shù)顯示監(jiān)控系統(tǒng)。在主體教學(xué)樓內(nèi)的一樓和在主體教學(xué)大廳各層及每個自習(xí)教室內(nèi)對當(dāng)前就業(yè)和讀者就業(yè)人數(shù)情況進行了實時動態(tài)顯示,為廣大高校學(xué)生們學(xué)習(xí)提供了一個更加健康人性化、更加方便的求學(xué)就業(yè)以及自習(xí)教學(xué)環(huán)境。1.2研究目的與意義當(dāng)我們在宿舍無心學(xué)習(xí)之時,自習(xí)室的存在就顯得尤為重要。自習(xí)室是當(dāng)代社會人類學(xué)習(xí)進步中的墊腳石,是我們學(xué)生時代不可缺少的重要組成部分之一,但一般的監(jiān)控室通常無人看管,這時我們就需要為無人監(jiān)管的監(jiān)控是配備上監(jiān)控裝置。監(jiān)控系統(tǒng)是生活中一種必不可少的工具,可應(yīng)用于多種場合中,主要由攝像頭和多種傳感器組成。攝像頭可留下動態(tài)的影像,傳感器可更方便的感應(yīng)。常用于安防系統(tǒng)之中。自習(xí)室的監(jiān)控系統(tǒng),可以記錄自習(xí)室內(nèi)的人數(shù),以便同學(xué)們快速找到自習(xí)室;又可以留下自習(xí)室內(nèi)的影像,以便查找東西的丟失與遺落。1.3研究內(nèi)容本機在設(shè)計中就具備了這個功能,它可以使用戶隨時可以通過進行實時地遠(yuǎn)程監(jiān)控和自動計算一個自習(xí)室里面的所有工作人員和學(xué)生數(shù)量。是通過兩個紅外反射式兩的避障時該光電物理傳感器是用來對兩個紅外線回路進行自動監(jiān)測和實時檢查的一種裝置,實現(xiàn)的基本原理:比如當(dāng)一個紅外線回路遇到一個小的障礙物時,反射式兩個避障時該光電物理傳感器就可能會向回路輸出一個較小的功率低電平,未來線遇到一個障礙物則它就會向回路輸出一個大的高電平,通過兩個紅外線進行檢測一個反射式的兩個避障時該光電物理傳感器會使輸出的回路電壓和信號頻率發(fā)生變化,判斷目前紅外線上的信號回路是否被他人打斷,即使也可以直接判定目前是否已經(jīng)有任何其他人從這個路徑中打斷通過。并將自習(xí)房門上的各項檢查和進行測試后的數(shù)據(jù)發(fā)送到了oled的大屏幕上面并進行實時顯示,來實時展現(xiàn)每個自習(xí)教室當(dāng)前內(nèi)部已有的每個學(xué)生測試人數(shù),可以借此使得每個學(xué)生更加方便地快速找到自己真正想要走進去的那個地方一并進入每個自習(xí)室的課堂。關(guān)鍵問題:①合適的傳感器的選擇;②自動化設(shè)計和制造基于單片機的工作人員進出計數(shù)控制系統(tǒng);1.4研究現(xiàn)狀近年來隨著我國市場經(jīng)濟的進步和發(fā)展,人流量統(tǒng)計信息對于大型商場、車站、地鐵等各種公共場所,都已經(jīng)變成了一個極其重要的信息,利用這些數(shù)據(jù)統(tǒng)計出來的客流量和人群,管理者就能夠合理地調(diào)度自己的人力,熱力,合理地配置自己的資源,從而達到最佳運營和管理效果。盡管其技術(shù)發(fā)展很快,但是對于一些技術(shù)的要求并不是非常高的場合,視頻測量計數(shù)器系統(tǒng)也就會顯得有些不太具體和經(jīng)濟實惠,畢竟一套系統(tǒng)的性能和價格仍然是比較昂貴的。對于一些僅僅按照要求來記錄資料,而不按照成像要求進行圖象的地方,這顯然還是有些人為了大材小用,造成了不必要的資源浪費。目前大多數(shù)科學(xué)研究仍然還停留在紅外線光傳感器的信號感應(yīng)和數(shù)量計數(shù)工作階段,利用光敏反射式近紅外線光傳感器開發(fā)無線電信號接收/遙控發(fā)射器模塊等相關(guān)器件,當(dāng)已經(jīng)發(fā)現(xiàn)有了被測產(chǎn)品直接通過產(chǎn)品紅外線進行檢測的主要區(qū)域時,就很有可能會準(zhǔn)確看到已經(jīng)有一部分產(chǎn)品紅外光線電信號經(jīng)被測產(chǎn)品的光敏反射電路返回,被與產(chǎn)品紅外線光敏發(fā)射接收管采用同排天線設(shè)置的紅外光敏發(fā)射接收管直接進行采集接收到并經(jīng)過轉(zhuǎn)換而成為相同發(fā)射頻率的紅外無線電信號,再經(jīng)紅外線光傳感器和發(fā)模塊內(nèi)部射頻控制電路對被測產(chǎn)品內(nèi)部進行了信號放大、比較和射頻濾波進行處理,輸出一個新的高電平射頻信號,啟動光敏發(fā)射機開始運行.光敏接收器在進行采樣時在接收到了由發(fā)射機直接送去的無線電和遙控信號編碼脈沖信號后,再經(jīng)過信號解調(diào)、釋放和射頻譯碼進行電路的濾波處理,輸出一個遙控編碼信號脈沖,對此一個編碼信號脈沖中的信號依次進行計數(shù),就已經(jīng)可以直接實現(xiàn)了對被測產(chǎn)品的數(shù)量統(tǒng)計,但很少器件能夠準(zhǔn)確做到這更適合用于自習(xí)室中機器人數(shù)量的監(jiān)視和產(chǎn)品檢測。1.5預(yù)期成果能夠進行實時檢測得到一個教室內(nèi)工作人員的量,并且還可以使用一個位于教室門口外的oled顯示器來進行實時檢測得到一個教室內(nèi)工作人員的數(shù)量和溫濕度,方便內(nèi)部的其他同學(xué)們也可以不需要關(guān)門,及時了解得到一個教室內(nèi)其他工作人員的狀態(tài),避免干擾內(nèi)部其他同學(xué)的日常生活和學(xué)習(xí)。完成實物制作,并進行演示。2系統(tǒng)設(shè)計方案對于一個自習(xí)室的監(jiān)控系統(tǒng),需要實現(xiàn)和滿足的基本功能是人數(shù)的統(tǒng)計,這個監(jiān)控功能主要需求光采集模塊和顯示器兩個模塊,在此基礎(chǔ)之上,再加上了溫濕度模塊、光采集器模塊、顯示器模塊2.1單片機芯片選擇方案一:此次系統(tǒng)性能測試檢測主要目的是通過選擇51系列16位的性能單片機。本產(chǎn)品公司的系列產(chǎn)品主要用途是用于采用80c51系列新型數(shù)控視頻單片機,具有了公司產(chǎn)品的硬件整體結(jié)構(gòu)設(shè)計和軟件結(jié)構(gòu)簡單、使用方便、可靠性好等幾大優(yōu)勢。不過它還是需要具備一個帶有外部語音的通話和集成電路、其與外圍設(shè)備之間的外部接口集成電路比較復(fù)雜、帶有外部負(fù)載的處理和存儲能力比較薄弱、處理外部硬件和延遲的速度也很慢、外部硬件延時也比較復(fù)雜且8位驅(qū)動的單片機在正常工作和運行時相對比較緩慢,功耗也相對較大。方案二:本系統(tǒng)設(shè)計方案采用stm32系列數(shù)控單片機。它主要采用了stm32f103系列數(shù)位單片機,具有一個使用和應(yīng)用非常廣泛的arm內(nèi)核。它已經(jīng)集成了很多十分豐富的接口,通訊模塊和其他各類功能模塊。所有的軟件開發(fā)工具都是相對完備,而且所有的開發(fā)材料都比較多。在對功耗的控制方面比較準(zhǔn)確,同時實現(xiàn)的可靠度比較高。2.2溫濕度傳感器選擇方案一:可以采用數(shù)字熱電偶技術(shù)進行電能測溫;如果我們需要再額外添加一個電能補償測溫電路而且其中的材料需要單價,還必須經(jīng)過專門的電接口來對電路進行轉(zhuǎn)化后成為一個數(shù)字信號,這樣我們才能通過采用微處理器技術(shù)來對其材料進行測溫處理。而且技術(shù)成本相對比較高,不利于技術(shù)研究和產(chǎn)品開發(fā)。方案二:本系統(tǒng)設(shè)計方案選擇的是dht11傳感器,此系列傳感器的信號品質(zhì)優(yōu)良、超快高速響應(yīng)、抵抗電磁干擾能力強、性價比極高。同時由于是4針的單排引腳采用密閉式接口封裝,連接方便。2.3光采集傳感器選擇方案一:電路采用光敏振蕩電阻、二極管和555定時器電路組合起來構(gòu)成一個多諧振蕩電路,利用多諧振蕩電路將其中的兩個臨時暫停器穩(wěn)態(tài)信號輸出由此電路來驅(qū)動產(chǎn)生不同矩形和角波形的脈沖振蕩信號。而光敏振蕩電阻的磁場阻抗數(shù)值則常常會隨著磁場光照強度的巨大增加而不斷發(fā)生巨大變動,進而直接導(dǎo)致各種多諧振蕩電路在各種不同工作條件環(huán)境中周期性地阻值發(fā)生巨大變動,其所直接帶來的電路輸出信號波形和輸入頻率隨之隨而發(fā)生巨大改變。方案二:采用GY-30。它同時擁有先進的高頻a/d信號轉(zhuǎn)換控制技術(shù)和多種智能化的濾波控制算法,在儀器滿量程時仍然使用可以有效確保儀器輸出輸入代碼的穩(wěn)定??尚械膽?yīng)用數(shù)據(jù)庫自動存儲技術(shù),保證各個存儲模塊的所有參數(shù)都不會被惡意遺漏。良好的絕緣電磁性和相容。數(shù)字故障傳感器主要功用是能夠自動地實時采集相關(guān)數(shù)據(jù)并且用戶可以對其進行實時預(yù)處理、儲存和實時回憶,具有唯一的故障標(biāo)記,便于用戶發(fā)生機械故障時快速做出準(zhǔn)確判別。該傳感器是一種標(biāo)準(zhǔn)數(shù)字通信接口,它既能直接將電腦或移動設(shè)備相連,又能同標(biāo)準(zhǔn)的工業(yè)自動化控制總線相互連接,方便靈活。2.4顯示模塊選擇方案一:該顯示系統(tǒng)主要采用a和led兩種數(shù)碼管理器進行數(shù)字顯示。數(shù)碼管理器可以實時地準(zhǔn)確顯示繁體數(shù)字和英文符號,編程容易,硬件集成電路的設(shè)計調(diào)試簡單,但是不能實時地準(zhǔn)確顯示簡繁中文和簡體漢字,無法完全同時達到系統(tǒng)設(shè)計的性能要求。方案二:使用oled顯示器。而且重量也比較輕。這種固態(tài)的機構(gòu),沒有任何液體或者其他物質(zhì),抗震性能強,不害怕打擊或者跌落。幾乎無法解決可視角度的問題。而相應(yīng)的時間較短。具有良好的低溫性能。而且工藝是制作簡單,成本也比較低。發(fā)光效率高,功耗低。2.5硬件系統(tǒng)總結(jié)綜合實驗分析以及比較后,本實驗系統(tǒng)將主要選擇了dstm32的空氣主控控制單元;dht11的空氣溫濕度測量模塊;gy-30的光信號采集模塊和ololed1的顯示模塊。3硬件電路設(shè)計上個部分已經(jīng)介紹了每個模塊的選擇,這個部分要介紹硬件電路的硬件,即每個硬件的信息介紹,以及參數(shù)。3.1STM32硬件介紹STM32F103x8和STM32F103xB增強型系列使用高性能的ARM?Cortex?-M332位的RISC內(nèi)核,工作頻率為72MHz,內(nèi)置高速存儲器(高達128K字節(jié)的閃存和20K字節(jié)的SRAM),豐富的增強I/O端口和聯(lián)接到兩條APB總線的外設(shè)。所有型號的器件都包含2個12位的ADC、3個通用16位定時器和1個PWM定時器,還包含標(biāo)準(zhǔn)和先進的通信接口:多達2個I2C接口和SPI接口、3個USART接口、一個USB接口和一個CAN接口。stm32f103xx中等功率容量直流變壓器節(jié)能增強型220##v系列產(chǎn)品的直流供電溫度電壓控制范圍一般為2.0v至3.6v,包括-40°c至+85°c的最低溫度控制范圍和-40°c至+105°c的溫度可持續(xù)擴展性和溫度控制范圍。一系列智能省電解決方案都希望能夠為您確保在低能耗功率電源應(yīng)用下能夠滿足所有必需的省電性能。STM32F103xx中等容量增強型系列產(chǎn)品提供包括從36腳至100腳的6種不同封裝形式;根據(jù)不同的封裝形式,器件中的外設(shè)配置不盡相同。下面給出了該系列產(chǎn)品中所有外設(shè)的基本介紹。這些豐富的外部設(shè)備和優(yōu)化的內(nèi)部控制功能,使stm32f103xx產(chǎn)品高質(zhì)量增強型一系列小規(guī)模微控制器可以廣泛地應(yīng)用在多種不同的應(yīng)用場所:●電機驅(qū)動和應(yīng)用控制●醫(yī)療和手持設(shè)備●PC游戲外設(shè)和GPS平臺●其他工業(yè)電子應(yīng)用:包括可編程式微控制器(plc)、變頻器、打印機及圖像掃描儀●警戒系統(tǒng)、錄像帶對講器、及暖氣透風(fēng)空調(diào)系統(tǒng)等圖3.1STM32實物圖3.2DHT11硬件介紹

dht11數(shù)字模擬溫濕度復(fù)合傳感器:它主要指的是一種由其中所包含未經(jīng)特殊校準(zhǔn)的模擬數(shù)字信號所需要進行的輸入而所構(gòu)成的數(shù)字溫濕度傳感復(fù)合型數(shù)字傳感器。它主要設(shè)計應(yīng)用了專門的各種自動化數(shù)字采樣模塊及其自動采樣處理技術(shù)和各種溫濕度自動傳感采樣處理技術(shù),確保每個產(chǎn)品必須同時擁有極高的質(zhì)量、可靠性以及卓越的長期穩(wěn)定。該傳感器由一個小型電阻式感濕控制元件互聯(lián)連接組成,一個s-ntc模式測溫控制元件互聯(lián)連接組成,并與一臺全新的采用先進高性能8位元設(shè)計的單片式主機之間進行了互聯(lián)、通訊。所以本次評估產(chǎn)品特別需要充分體現(xiàn)其硬件產(chǎn)品品質(zhì)優(yōu)良、超快速的現(xiàn)場響應(yīng)、抵御外界干擾的能力好、性價比很高等四大特征。每臺一臺msdht11傳感器都是在極為精確的空氣溫濕度標(biāo)準(zhǔn)校驗室里進行精確的校準(zhǔn)。校準(zhǔn)后的系數(shù)信息作為一種應(yīng)用程序的數(shù)據(jù)形式被自動地儲存和傳到iotpi的內(nèi)存中,傳感器內(nèi)部在對信號檢測器接收到的這些信號和信息進行數(shù)據(jù)處理時候還需要手動調(diào)用這些數(shù)據(jù)校準(zhǔn)后的系數(shù)。單線制式和串行接口,使系統(tǒng)集成變得簡易快捷。超小的體積、極低的功耗,信號傳輸距離可達20米以上,使其成為各類應(yīng)用甚至最為苛刻的應(yīng)用場合的最佳選則。產(chǎn)品為4針單排引腳封裝。連接方便,特殊封裝形式可根據(jù)用戶需求而提供。圖3.2DHT11實物圖3.3GY-30硬件介紹光傳感器分為gy-30模塊,其運動主控控制芯片型號為f-gy30fvi,是一種運動集成電路,具有較高的工作精度和運動靈敏率,能夠準(zhǔn)確地自動檢測到并得到大角度范圍的紫外光照度(1lx~65535lx)的波動變化,電路設(shè)計框圖硬件結(jié)構(gòu)設(shè)計如下圖圖表3所示。傳感器一般都都有5個引腳,導(dǎo)線各自都有5個引腳,導(dǎo)線各自都有3個單位時鐘引腳(scl),i2c定義總線的兩個數(shù)據(jù)引腳(sda),參考器的輸出輸入電壓(dvl),供電器的電源輸出端口(vcc),公共地址接地端(gnd),定義總線網(wǎng)絡(luò)的公共地址輸入端口(ADDR)。高精度的新型硅晶體光電處理二極管內(nèi)部pd的集成式數(shù)位光電高強度放大傳感器通過一種新型集成式激光檢測器接收到外部入射光后,通過一種新型的集成式數(shù)位運算信號放大器將整個新型硅晶體光電處理二極管內(nèi)部pd的6位電流信號進行高強度放大并轉(zhuǎn)換為8位的電壓高強度放大信號,再由16位的模數(shù)轉(zhuǎn)換器進行高強度變化。我們只是僅需要直接通過一個系統(tǒng)相應(yīng)的數(shù)據(jù)指令集來執(zhí)行這個操作就可以能夠便捷地直接讀取內(nèi)部所有系統(tǒng)存儲的相關(guān)光照信息數(shù)據(jù),按一定順序地可以使用一種國際標(biāo)準(zhǔn)的在i2c中的總線和在通訊中的接口方式使用來直接進行光照數(shù)據(jù)的總線傳輸。但是當(dāng)多臺xxgy30fvi光強度測試傳感器同時使用進行強度測試時,就可能會根據(jù)對aaddr引腳的要求設(shè)置,接電源或者中斷連接電源地點就這樣決定了各種被測設(shè)備的連接地址。圖3.3GY-30實物圖3.4OLED硬件介紹oled,即有機電極發(fā)光光電二極管(organiclight-emittingdiode),又被我們通常稱之為激光有機電極或激光極管顯示(organicelectroluminesencedisplay,oeld)。因為它們都特別具備輕薄、省電等主要特點,因此自2003年9月起,這種面向數(shù)字化的視頻顯示控制設(shè)備就已在新型mp3放器上逐步發(fā)展得到了普遍的廣泛應(yīng)用,而對于其他同屬數(shù)字類產(chǎn)品的dc與智能手機,此前僅僅在一些博覽會上就曾經(jīng)展示過采用oled觸摸屏屏幕的各種工程圖像。自2007年后,壽命得到了很大的提高,并且已經(jīng)具有了許多l(xiāng)cd無法比擬的功能。圖3.4OLED實物圖3.5硬件原理3.5.1設(shè)計原理圖圖3.5.1設(shè)計原理圖3.5.2溫濕度模塊圖3.5.2DHT11原理圖一DHT11模塊參數(shù)如下:1可以檢測周圍環(huán)境的濕度和溫度2傳感器采用DHT113濕度測量范圍:20%-95%(0度-50度范圍)濕度測量誤差:+-5%4溫度計的主要測量誤差區(qū)域:0度-50度小時溫度計的測量誤差:+-2度4工作電壓3.3V-5V5輸出形式數(shù)字輸出6設(shè)有固定螺栓孔,方便安裝7小板PCB尺寸:3.2cm*1.4cm8電源指示燈(紅色)二DHT11模塊接線說明1VCC外接3.3V-5V2GND外接GND3DATA小板開關(guān)數(shù)字量輸出接口接單片機IO口3.5.3光照采集模塊圖3.5.3GY-30原理圖一、特點1)I2C總線接口(f/s模式支持)2)光譜的范圍是人眼相近3)照度數(shù)字轉(zhuǎn)換器4)精度高的范圍和其他高精度的分解.(1-65535勒克斯)5)低穩(wěn)壓電流下的開關(guān)控制功能<br>6)50hz/60hz的開關(guān)光照和噪聲<breject-function6)50Hz/60Hz光噪聲7)1.8V邏輯輸入接口8)無需任何外部零件9)對光源依賴度并不高.(如白熾燈.熒光照明燈.水鹵素照明燈.水龍亮led.孫光)10)為了明確有可能可以選擇2種不同類型的詞aicslave-address.11)可調(diào)的光學(xué)窗口測量結(jié)果的影響(它可以探測分鐘.使用本功能0.11勒克斯,最大.100000勒克斯).12)小測變異(+/-20%)13)的紅外線的影響很小二、應(yīng)用手機,LCDTV,注意PC,便攜式游戲機,數(shù)碼相機,數(shù)碼攝像機,車載導(dǎo)航,PDA,LCD顯示表3.5.3Pin功能描述Pin引腳名稱描述1VCC供給電壓3-5v2SCLIIC總線時鐘線3SDAIIC總線數(shù)據(jù)線4ADDRIIC地址引腳5GND電源地3.5.4顯示模塊圖3.5.4OLED原理圖GND:電源地VCC:2.2V~5.5VSCL(D0):CLK時鐘(高電平2.2V~5.5V)SDA(D1):MOSI數(shù)據(jù)(高電平2.2V~5.5V)RST:復(fù)位(高電平2.2V~5.5V)D/C:數(shù)據(jù)/命令(高電平2.2V~5.5V)4軟件設(shè)計硬件設(shè)備主要為提供各電路模塊,而軟件部分主要是軟件程序設(shè)計。4.1軟件設(shè)計思路通過模塊化的編程,獨立編程各功能模塊,最終整和成系統(tǒng)的整體功能:(1)初始化程序。(2)溫濕度程序。(3)光照采集程序。(4)人數(shù)監(jiān)測程序。(5)顯示程序。圖4.1設(shè)計框圖4.2主程序化模塊軟件模塊是整個設(shè)計中最最重要的部分,這一部分的好壞直接影響到系統(tǒng)的可用性、精準(zhǔn)度、便捷性和智能程度。在對一些配置進行初始化后進入循環(huán)體,此時開啟紅外檢測,顯示屏上顯示基本信息,在傳感器未檢測到信號時可以隨時通過按鍵對系統(tǒng)進行設(shè)置。當(dāng)傳感器檢測到信號時,系統(tǒng)對比值并進行相關(guān)操作,如給蜂鳴器、LED、顯示屏等。4.2主程序流程圖其程序為:inttemp=0;//溫度inthumid=0;//濕度intlight=0;//光照u8people=0;//人數(shù)intdis_data;//臨時變量charbuf_temp[128]; voidHardware_Init(void){ SystemInit();//配置系統(tǒng)時鐘為72M NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //中斷控制器分組設(shè)置 Delay_Init(); //初始化 Usart1_Init(115200); //串口1,打印信息用 Led_Init(); //LED初始化 DHT11_Init(); //溫濕度傳感器初始化 Gpio_Init(); //IO口初始化 Init_GY30(); //光照強度初始化 I2C_Configuration(); //初始化I2C OLED_Init(); //初始化OLED屏幕 OLED_Fill(0xFF,0,8); //全屏點亮 DelayMs(800); OLED_Fill(0x00,0,8); //全屏滅 DelayMs(800); UsartPrintf(USART_DEBUG,"HardwareinitOK\r\n"); Light_Start();}intmain(void){ unsignedshorttimeCount=0; //發(fā)送間隔變量 unsignedchar*dataPtr=NULL; Hardware_Init(); //初始化外圍硬件 while(1) { if((GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_6)==0)&&(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_5)==1))//判斷動作,取出還是放入 { //等待抬起 while(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_6)==0); if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_5)==0) { UsartPrintf(USART_DEBUG,"OUT\r\n"); if(people>0) people--; GPIO_ResetBits(GPIOA,GPIO_Pin_3); DelayMs(40); GPIO_SetBits(GPIOA,GPIO_Pin_3);//關(guān)蜂鳴器 } } if((GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_5)==0)&&(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_6)==1)) { //等待抬起 while(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_5)==0); UsartPrintf(USART_DEBUG,"In\r\n"); if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_6)==0) { people++; GPIO_ResetBits(GPIOA,GPIO_Pin_3); DelayMs(40); GPIO_SetBits(GPIOA,GPIO_Pin_3);//關(guān)蜂鳴器 } } if(++timeCount>=10) //發(fā)送間0.4s {/**************開始數(shù)據(jù)采集********************************************/ DHT11_Read_Data(&temp,&humid);//采集室外溫濕度 light=read_GY30();//獲取光照強度/***************數(shù)據(jù)采集結(jié)束,開始進行自動控制***************************/ //1.燈光不足開燈光 if((light<=20)&&(people>0)) { GPIO_ResetBits(GPIOA,GPIO_Pin_4);//開燈光 } else { GPIO_SetBits(GPIOA,GPIO_Pin_4);//關(guān)燈光 }/*********************自動控制結(jié)束**************************************/ memset(buf_temp,0,sizeof(buf_temp)); sprintf(buf_temp,"Temp:%d",temp); OLED_ShowStr(10,0,(unsignedchar*)buf_temp,1); UsartPrintf(USART_DEBUG,"溫度:%d\r\n",temp); memset(buf_temp,0,sizeof(buf_temp)); sprintf(buf_temp,"Humid:%d",humid); OLED_ShowStr(10,2,(unsignedchar*)buf_temp,1); UsartPrintf(USART_DEBUG,"濕度:%d\r\n",humid); memset(buf_temp,0,sizeof(buf_temp)); sprintf(buf_temp,"Light:%d",light); OLED_ShowStr(10,4,(unsignedchar*)buf_temp,1); UsartPrintf(USART_DEBUG,"光照:%d\r\n",light); memset(buf_temp,0,sizeof(buf_temp)); sprintf(buf_temp,"People:%d",people); OLED_ShowStr(10,6,(unsignedchar*)buf_temp,1); UsartPrintf(USART_DEBUG,"人數(shù):%d\r\n",people); timeCount=0; Led_test(LED_ON);//亮燈提醒 } DelayXms(40); Led_test(LED_OFF); }}4.3溫濕度模塊其程序為:#include"dht11.h"#include"delay.h"#defineDTGPIO_Pin_11//復(fù)位DHT11voidDHT11_Rst(void) { DHT11_IO_OUT(); //SETOUTPUT DHT11_DQ_OUT=0; //拉低DQ DelayMs(20); //拉低至少18ms DHT11_DQ_OUT=1; //DQ=1 DelayUs(30); //主機拉高20~40us}u8DHT11_Check(void) { u8retry=0; DHT11_IO_IN();//SETINPUT while(DHT11_DQ_IN&&retry<100)//DHT11會拉低40~80us { retry++; DelayUs(1); }; if(retry>=100)return1; elseretry=0;while(!DHT11_DQ_IN&&retry<100)//DHT11拉低后會再次拉高40~80us { retry++; DelayUs(1); }; if(retry>=100)return1; return0;}u8DHT11_Read_Bit(void) { u8retry=0; while(DHT11_DQ_IN&&retry<100)//等待變?yōu)榈碗娖?{ retry++; DelayUs(1); } retry=0; while(!DHT11_DQ_IN&&retry<100)//等待變高電平 { retry++; DelayUs(1); } DelayUs(40);//等待40us if(DHT11_DQ_IN)return1; elsereturn0; }u8DHT11_Read_Byte(void){ u8i,dat; dat=0; for(i=0;i<8;i++) { dat<<=1; dat|=DHT11_Read_Bit(); } returndat;}u8DHT11_Read_Data(int*temp,int*humi){ u8buf[5]; u8i; DHT11_Rst(); if(DHT11_Check()==0) { for(i=0;i<5;i++)//讀取40位數(shù)據(jù) { buf[i]=DHT11_Read_Byte(); } if((buf[0]+buf[1]+buf[2]+buf[3])==buf[4]) { *humi=buf[0]; *temp=buf[2]; } } elsereturn1; return0; }//初始化DHT11的IO口DQ同時檢測DHT11的存在//返回1:不存在//返回0:存在 u8DHT11_Init(void){ GPIO_InitTypeDefGPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//使能PG端口時鐘 GPIO_InitStructure.GPIO_Pin=DT; //PG11端口配置 GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP; //推挽輸出 GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; GPIO_Init(GPIOA,&GPIO_InitStructure); //初始化IO口 GPIO_SetBits(GPIOA,DT); //PG11輸出高 DHT11_Rst();//復(fù)位DHT11 returnDHT11_Check();//等待DHT11的回應(yīng)}4.4光采集模塊其程序為:#include"delay.h"#include"light.h"unsignedcharBUF[8];//接受數(shù)據(jù)緩存區(qū)域intmcy;//進位/***起始信號***/voidGY30_Start(){SDA=1;//拉高數(shù)據(jù)線SCL=1;//拉高時鐘線DelayUs(5);//延時GPIO_ResetBits(GY30_PORT,sda);//產(chǎn)生下降沿DelayUs(5);//延時GPIO_ResetBits(GY30_PORT,scl);//拉低時鐘線}/*****停止信號******/voidGY30_Stop(){SDA=0;//拉低數(shù)據(jù)線SCL=1;//拉高時鐘線DelayUs(5);//延時GPIO_SetBits(GY30_PORT,sda);//產(chǎn)生上升沿DelayUs(5);//延時}/************發(fā)送應(yīng)答信號入口參數(shù):ack(0:ACK1:NAK)*****************/voidGY30_SendACK(intack){GPIO_InitTypeDefGPIO_InitStruct;GPIO_InitStruct.GPIO_Mode=GPIO_Mode_Out_PP;GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;GPIO_InitStruct.GPIO_Pin=sda;GPIO_Init(GY30_PORT,&GPIO_InitStruct); if(ack==1)//寫應(yīng)答信號 SDA=1; elseif(ack==0) SDA=0; else return; SCL=1;//拉高時鐘線DelayUs(5);//延時SCL=0;//拉低時鐘線DelayUs(5);//延時}/*****************************接收應(yīng)答信號*****************************/intGY30_RecvACK(){GPIO_InitTypeDefGPIO_InitStruct;GPIO_InitStruct.GPIO_Mode=GPIO_Mode_IPU;/*這里一定要設(shè)成輸入上拉,否則不能讀出數(shù)據(jù)*/GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;GPIO_InitStruct.GPIO_Pin=sda;GPIO_Init(GY30_PORT,&GPIO_InitStruct);SCL=1;//拉高時鐘線DelayUs(5);//延時 if(GPIO_ReadInputDataBit(GPIOA,sda)==1)//讀應(yīng)答信號mcy=1;elsemcy=0; SCL=0;//拉低時鐘線DelayUs(5);//延時GPIO_InitStruct.GPIO_Mode=GPIO_Mode_Out_PP;GPIO_Init(GY30_PORT,&GPIO_InitStruct);returnmcy;}/*******************向IIC總線發(fā)送一個字節(jié)數(shù)據(jù)*****************/voidGY30_SendByte(uchardat)//dat是要發(fā)送的一個字節(jié)的數(shù)據(jù){uchari;for(i=0;i<8;i++)//8位計數(shù)器{ if(0X80&dat) //如果要發(fā)送的是1GPIO_SetBits(GY30_PORT,sda);else//如果要發(fā)送的是0GPIO_ResetBits(GY30_PORT,sda); dat<<=1;//for循環(huán)每執(zhí)行一次,要發(fā)送的數(shù)據(jù)左移1位,循環(huán)8次就把一個字節(jié)的數(shù)據(jù)發(fā)送出去了SCL=1;//拉高時鐘線DelayUs(5);//延時SCL=0;//拉低時鐘線DelayUs(5);//延時}GY30_RecvACK();}/**********************在IIC總線接收一個字節(jié)數(shù)據(jù)*******************/ucharGY30_RecvByte(){uchari;uchardat=0;//dat是存放接收到的一個字節(jié)的數(shù)據(jù)ucharbit;GPIO_InitTypeDefGPIO_InitStruct;GPIO_InitStruct.GPIO_Mode=GPIO_Mode_IPU;/*這里一定要設(shè)成輸入上拉,否則不能讀出數(shù)據(jù)*/GPIO_InitStruct.GPIO_Pin=sda;GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GY30_PORT,&GPIO_InitStruct);GPIO_SetBits(GY30_PORT,sda);//使能內(nèi)部上拉,準(zhǔn)備讀取數(shù)據(jù),for(i=0;i<8;i++)//8位計數(shù)器{dat<<=1;//循環(huán)8次,每次接收一個位,8次之后完成一個字節(jié)數(shù)據(jù)的接收SCL=1;//拉高時鐘線DelayUs(5);//延時 if(SET==GPIO_ReadInputDataBit(GY30_PORT,sda))//讀取SDA引腳的電平,如果是高電平,就是傳輸“1”bit=0X01;else//電平傳輸?shù)氖恰?”bit=0x00; dat|=bit;//讀數(shù)據(jù) SCL=0;//拉低時鐘線DelayUs(5);//延時} GPIO_InitStruct.GPIO_Mode=GPIO_Mode_Out_PP;GPIO_Init(GY30_PORT,&GPIO_InitStruct);Returndat;}//寫入指令voidSingle_Write_GY30(ucharREG_Address)//REG_Address是要寫入的指令{GY30_Start();//起始信號GY30_SendByte(SlaveAddress);//發(fā)送設(shè)備地址+寫信號GY30_SendByte(REG_Address);//寫入指令GY30_Stop();//發(fā)送停止信號}//讀取指令voidmread(void){uchari; GY30_Start();//起始信號GY30_SendByte(SlaveAddress+1);//發(fā)送設(shè)備地址+讀信號for(i=0;i<2;i++)//連續(xù)讀取2個數(shù)據(jù),存儲到BUF里面{BUF[i]=GY30_RecvByte();//BUF[0]存儲高8位,BUF[1]存儲低8位if(i==2){GY30_SendACK(1);//最后一個數(shù)據(jù)需要回NOACK}else{ GY30_SendACK(0);//回應(yīng)ACK}}GY30_Stop();//停止信號DelayMs(5);}//初始化GY30voidInit_GY30(){GPIO_InitTypeDefGPIO_InitStruct;/*開啟GPIOB的外設(shè)時鐘*/RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);GPIO_InitStruct.GPIO_Mode=GPIO_Mode_Out_PP;GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;GPIO_InitStruct.GPIO_Pin=sda|scl;GPIO_Init(GY30_PORT,&GPIO_InitStruct);Single_Write_GY30(0x01);DelayMs(180);//延時180ms}floatread_GY30(void){intdis_data;//變量 floattemp1;floattemp2;Single_Write_GY30(0x01);//發(fā)送上電命令(0x01)Single_Write_GY30(0x10);//發(fā)送高分辨率連續(xù)測量命令(0x10)DelayMs(200);mread();//連續(xù)讀出數(shù)據(jù),存儲在BUF中dis_data=BUF[0];dis_data=(dis_data<<8)+BUF[1];//2個字節(jié)合成數(shù)據(jù)temp1=dis_data/1.2;//計算光照度temp2=10*dis_data/1.2;//把光照度放大10倍,目的是把小數(shù)點后一位數(shù)據(jù)也提取出來 temp2=(int)temp2%10;//求余得到小數(shù)點后一位returntemp1;//返回整數(shù)部分}4.5顯示模塊其程序為:#include"OLED_I2C.h"#include"delay.h"#include"codetab.h"voidI2C_Configuration(void){ I2C_InitTypeDefI2C_InitStructure; GPIO_InitTypeDefGPIO_InitStructure; RCC_APB1PeriphClockCmd(RCC_APB1Periph_I2C2,ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE); GPIO_InitStructure.GPIO_Pin=GPIO_Pin_10|GPIO_Pin_11; GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_OD;//I2C必須開漏輸出 GPIO_Init(GPIOB,&GPIO_InitStructure); I2C_DeInit(I2C2);//使用I2C2 I2C_InitStructure.I2C_Mode=I2C_Mode_I2C; I2C_InitStructure.I2C_DutyCycle=I2C_DutyCycle_2; I2C_InitStructure.I2C_OwnAddress1=0x30;//主機的I2C地址 I2C_InitStructure.I2C_Ack=I2C_Ack_Enable; I2C_InitStructure.I2C_AcknowledgedAddress=I2C_AcknowledgedAddress_7bit; I2C_InitStructure.I2C_ClockSpeed=400000;//400K I2C_Cmd(I2C2,ENABLE); I2C_Init(I2C2,&I2C_InitStructure);}voidI2C_WriteByte(uint8_taddr,uint8_tdata){while(I2C_GetFlagStatus(I2C2,I2C_FLAG_BUSY)); I2C_GenerateSTART(I2C2,ENABLE);//開啟I2C2 while(!I2C_CheckEvent(I2C2,I2C_EVENT_MASTER_MODE_SELECT)); I2C_Send7bitAddress(I2C2,OLED_ADDRESS,I2C_Direction_Transmitter); while(!I2C_CheckEvent(I2C2,I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED)); I2C_SendData(I2C2,addr);//寄存器地址 while(!I2C_CheckEvent(I2C2,I2C_EVENT_MASTER_BYTE_TRANSMITTED)); I2C_SendData(I2C2,data);//發(fā)送數(shù)據(jù) while(!I2C_CheckEvent(I2C2,I2C_EVENT_MASTER_BYTE_TRANSMITTED)); I2C_GenerateSTOP(I2C2,ENABLE);//關(guān)閉I2C2總線}voidWriteCmd(unsignedcharI2C_Command)//寫命令{ I2C_WriteByte(0x00,I2C_Command);}voidWriteDat(unsignedcharI2C_Data)//寫數(shù)據(jù){ I2C_WriteByte(0x40,I2C_Data);}voidOLED_Init(void){ DelayMs(100); WriteCmd(0xAE); WriteCmd(0x20); WriteCmd(0x10); WriteCmd(0xb0); WriteCmd(0xc8); WriteCmd(0x00); WriteCmd(0x10); WriteCmd(0x40); WriteCmd(0x81); WriteCmd(0xff);//亮度調(diào)節(jié)0x00~0xff WriteCmd(0xa1); WriteCmd(0xa6); WriteCmd(0xa8); WriteCmd(0x3F); WriteCmd(0xa4); WriteCmd(0xd3); WriteCmd(0x00); WriteCmd(0xd5); WriteCmd(0xf0); WriteCmd(0xd9); WriteCmd(0x22); WriteCmd(0xda); WriteCmd(0x12); WriteCmd(0xdb); WriteCmd(0x20); WriteCmd(0x8d); WriteCmd(0x14); WriteCmd(0xaf);//--turnonoledpanel}voidOLED_SetPos(unsignedcharx,unsignedchary)//設(shè)置起始點坐標(biāo){ WriteCmd(0xb0+y); WriteCmd(((x&0xf0)>>4)|0x10); WriteCmd((x&0x0f)|0x01);}voidOLED_Fill(unsignedcharfill_Data,u8start,u8final)//全屏填充{ unsignedcharm,n; for(m=start;m<final;m++) { WriteCmd(0xb0+m); WriteCmd(0x00); WriteCmd(0x10); for(n=0;n<128;n++) { WriteDat(fill_Data); } }}voidOLED_Clear_Pag(unsignedcharfill_Data)//全屏填充{ unsignedcharn; WriteCmd(0xb0+4); WriteCmd(0x00); WriteCmd(0x10); for(n=0;n<128;n++) { WriteDat(fill_Data); }}voidOLED_CLS(void)//清屏{ OLED_Fill(0x00,0,8);}voidOLED_ON(void){ WriteCmd(0X8D);//設(shè)置電荷泵 WriteCmd(0X14);//開啟電荷泵 WriteCmd(0XAF);//OLED喚醒}voidOLED_OFF(void){ WriteCmd(0X8D);//設(shè)置電荷泵 WriteCmd(0X10);//關(guān)閉電荷泵 WriteCmd(0XAE);//OLED休眠}voidOLED_ShowStr(unsignedcharx,unsignedchary,unsignedcharch[],unsignedcharTextSize){ unsignedcharc=0,i=0,j=0; switch(TextSize) { case1: { while(ch[j]!='\0') { c=ch[j]-32; if(x>126) { x=0; y++; } OLED_SetPos(x,y); for(i=0;i<6;i++) WriteDat(F6x8[c][i]); x+=6; j++; } }break; case2: { while(ch[j]!='\0') { c=ch[j]-32; if(x>120) { x=0; y++; } OLED_SetPos(x,y); for(i=0;i<8;i++) WriteDat(F8X16[c*16+i]); OLED_SetPos(x,y+1); for(i=0;i<8;i++) WriteDat(F8X16[c*16+i+8]); x+=8; j++; } }break; }}voidOLED_ShowCN(unsignedcharx,unsignedchary,unsignedcharN){ unsignedcharwm=0; unsignedintadder=32*N; OLED_SetPos(x,y); for(wm=0;wm<16;wm++) { WriteDat(F16x16[adder]); adder+=1; } OLED_SetPos(x,y+1); for(wm=0;wm<16;wm++) { WriteDat(F16x16[adder]); adder+=1; }}voidOLED_DrawBMP(unsignedcharx0,unsignedchary0,unsignedcharx1,unsignedchary1,unsignedcharBMP[]){ unsignedintj=0; unsignedcharx,y;if(y1%8==0) y=y1/8;else y=y1/8+1; for(y=y0;y<y1;y++) { OLED_SetPos(x0,y);for(x=x0;x<x1;x++) { WriteDat(BMP[j++]); } }}5系統(tǒng)調(diào)試本節(jié)介紹了該自習(xí)室監(jiān)控系統(tǒng)的功能并對實物調(diào)試,對調(diào)試的結(jié)果進行展示。最后對該系統(tǒng)進行總體評估。5.1總體實現(xiàn)本文設(shè)計是自習(xí)室監(jiān)控系統(tǒng),可在自習(xí)室監(jiān)控人數(shù)的變化,以及溫濕度的變化,同時具有自動開關(guān)燈的功能。。本系統(tǒng)在通電后,初始化顯示屏,軟件程序燒錄后,屏幕上會顯示溫度、濕度、光照強度、人數(shù)。當(dāng)有障礙物自上而下通過時,即進入自習(xí)室,蜂鳴器會滴一聲,同時顯示屏上人數(shù)會增加1;當(dāng)有障礙物自下而上通過時,即走出自習(xí)室,顯示屏上人數(shù)會減少1。如圖5.1(a)所示,為系統(tǒng)的實物圖未接通電源時,接通電源后,如圖5.1(b)所示。圖5.1(a)圖5.1(b)5.2顯示模塊調(diào)試如下圖5.2(a)所示,通電之后,在顯示屏從上到下依次顯示溫度、濕度、光強度、人數(shù)。圖5.2(a)顯示模塊如下圖5.2(b)所示,此時顯示屏處于初始化階段。等待一段時間后,它又會恢復(fù)到圖5.2(a)的情況。調(diào)試結(jié)果顯示顯示模塊工作正常。圖5.2(b)屏幕初始化5.3溫濕度傳感器調(diào)試如圖5.3(a)所示,此時溫度為23,濕度為43。通過調(diào)節(jié)室內(nèi)空調(diào),來改變室內(nèi)的溫濕度。在經(jīng)過若干時間后,如圖5.3(b)所示,此時溫度為24,濕度為45.調(diào)試結(jié)果顯示溫濕度傳感器工作正常。圖5.3(a)開始的溫濕度圖5.3(b)改變后的溫濕度5.4光采集模塊調(diào)試如圖5.4(a)和5.4(b)所示,當(dāng)人數(shù)為0,,即無人在自習(xí)室內(nèi),光

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論