基于單片機(jī)的無(wú)線通信系統(tǒng)
《基于單片機(jī)的無(wú)線通信系統(tǒng)》由會(huì)員分享,可在線閱讀,更多相關(guān)《基于單片機(jī)的無(wú)線通信系統(tǒng)(36頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、 本科畢業(yè)設(shè)計(jì)(論文)( 2018 屆 )題 目: 基于單片機(jī)的無(wú)線通信系統(tǒng) 學(xué) 院: 數(shù)理與信息工程學(xué)院 專 業(yè): 電子信息工程 學(xué)生姓名: 葛順杰 學(xué)號(hào): 14610120 指導(dǎo)教師: 張浩然 職稱: 教授 合作導(dǎo)師: 職稱: 完成時(shí)間: 2018 年 4 月 15 日 成 績(jī): 浙江師范大學(xué)本科畢業(yè)設(shè)計(jì)(論文)目錄一、誠(chéng)信承諾書(shū)二、正文三、浙江師范大學(xué)本科畢業(yè)設(shè)計(jì)(論文)任務(wù)書(shū)四、浙江師范大學(xué)本科畢業(yè)設(shè)計(jì)(論文)文獻(xiàn)綜述五、浙江師范大學(xué)本科畢業(yè)設(shè)計(jì)(論文)開(kāi)題報(bào)告六、浙江師范大學(xué)本科畢業(yè)設(shè)計(jì)(論文)外文翻譯七、浙江師范大學(xué)本科畢業(yè)設(shè)計(jì)(論文)指導(dǎo)記錄八、浙江師范大學(xué)本科畢業(yè)設(shè)計(jì)(論文)中
2、期檢查表九、浙江師范大學(xué)本科畢業(yè)設(shè)計(jì)(論文)作品(實(shí)物)驗(yàn)收單十、浙江師范大學(xué)本科畢業(yè)設(shè)計(jì)(論文)結(jié)題答辯資格審查表十一、浙江師范大學(xué)本科畢業(yè)設(shè)計(jì)(論文)結(jié)題答辯記錄十二、浙江師范大學(xué)本科畢業(yè)設(shè)計(jì)(論文)評(píng)審表浙江師范大學(xué)本科畢業(yè)設(shè)計(jì)(論文)誠(chéng)信承諾書(shū)本人鄭重承諾:我承諾所呈交的畢業(yè)設(shè)計(jì)(論文)是本人在指導(dǎo)教師的指導(dǎo)下,按照學(xué)校和學(xué)院的有關(guān)規(guī)定,獨(dú)立研究完成的。本人在畢業(yè)設(shè)計(jì)(論文)寫作過(guò)程中恪守學(xué)術(shù)道德和學(xué)術(shù)規(guī)范,設(shè)計(jì)(論文)中凡引用他人已經(jīng)發(fā)表或未發(fā)表的成果、數(shù)據(jù)、觀點(diǎn)等,均已注明并列出了有關(guān)文獻(xiàn)的名稱、作者、年份、刊物名稱和出版文獻(xiàn)的出版機(jī)構(gòu)、出版地和版次等內(nèi)容,除此之外均為本人的觀點(diǎn)和
3、研究成果。如有違反,本人愿接受處罰并承擔(dān)一切責(zé)任。承諾人簽名(手寫): 年 月 日浙江師范大學(xué)本科畢業(yè)設(shè)計(jì)(論文)正文目 錄摘要1Abstract11 引言21.1 研究的背景與意義21.2 國(guó)內(nèi)外發(fā)展與研究現(xiàn)狀21.3 主要研究?jī)?nèi)容32 系統(tǒng)方案分析與選擇論證32.1 系統(tǒng)設(shè)計(jì)要求32.2 主控芯片方案32.3 無(wú)線通信模塊方案42.4 溫度傳感方案42.5 顯示模塊方案43 系統(tǒng)硬件電路設(shè)計(jì)53.1 主控芯片最小系統(tǒng)板設(shè)計(jì)53.2 無(wú)線收發(fā)模塊63.3 顯示模塊73.4 溫度采集模塊73.5 藍(lán)牙模塊83.6 報(bào)警模塊103.7 電源模塊104 軟件部分設(shè)計(jì)與實(shí)現(xiàn)114.1 Keil軟件介
4、紹114.2 系統(tǒng)總體程序流程設(shè)計(jì)114.3 系統(tǒng)主機(jī)程序流程設(shè)計(jì)124.4 系統(tǒng)從機(jī)程序流程設(shè)計(jì)124.5 無(wú)線模塊軟件流程設(shè)計(jì)134.6 溫度檢測(cè)程序流程設(shè)計(jì)144.7 顯示模塊流程設(shè)計(jì)154.8 藍(lán)牙APP模塊設(shè)計(jì)155 系統(tǒng)調(diào)試與結(jié)果165.1 調(diào)試步驟165.2 測(cè)試環(huán)境165.3 測(cè)試設(shè)備165.4 測(cè)試目的175.5 測(cè)試結(jié)果176 結(jié)論18參考文獻(xiàn)19致謝20附錄2131基于單片機(jī)的無(wú)線通信系統(tǒng)數(shù)理與信息工程學(xué)院 電子信息工程 葛順杰(14610120)指導(dǎo)老師:張浩然(教授)摘要:隨著社會(huì)的進(jìn)步和生產(chǎn)的需要,無(wú)論是在工業(yè)上,農(nóng)業(yè)上,甚至是在日常中,無(wú)線通信得到了廣泛的應(yīng)用,可
5、以說(shuō)它已經(jīng)逐漸融入了我們的生活,并取得了相當(dāng)重要的地位。溫度是常見(jiàn)的和最基本的物理量之一,生產(chǎn)生活中都需要對(duì)其進(jìn)行調(diào)控來(lái)達(dá)到相應(yīng)的目的。本文設(shè)計(jì)則是取溫度這一物理量作為傳輸數(shù)據(jù),使用單片機(jī)作為系統(tǒng)整體控制器件,通過(guò)nRF24L01無(wú)線模塊進(jìn)行無(wú)線通信。另外,本系統(tǒng)還可以通過(guò)藍(lán)牙將數(shù)據(jù)發(fā)送到手機(jī)中,通過(guò)手機(jī)觀察數(shù)據(jù),免去了需要實(shí)時(shí)到現(xiàn)場(chǎng)收集的煩惱。關(guān)鍵詞:STM32F03ZET6;nRF24L01;溫度Wireless communication system based on single chip microcomputerTutor:Zhng Horn(College of Mathema
6、tics, Physics and Information Engineering,Electronics and Information Engineering,G Shnji,14610120)Abstract: With the progress of the society and the needs of the production, whether in industry, agriculture, even in daily, wireless communication has been widely used, it has gradually integrated int
7、o our lives, and has obtained the quite important position. Temperature is one of the most common and basic physical quantities, and it needs to be regulated in production and life to achieve the corresponding goal.The design of this paper is to take the physical quantity of temperature as the trans
8、mission data, using the single chip as the whole control device of the system, and wireless communication through the nRF24L01 wireless module. In addition, the system can also send data to the mobile phone via bluetooth, and the data can be observed through the mobile phone, which eliminates the ne
9、ed to collect the data in real timeKeywords:STM32F03ZET;nRF24L01;Temperature1 引言隨著現(xiàn)代信息技術(shù)的不斷發(fā)展,人們已經(jīng)不再滿足于有線通信,發(fā)展無(wú)線通信成為必然趨勢(shì)。而同時(shí)無(wú)線通信技術(shù)也不斷滲透到各個(gè)領(lǐng)域中,在人們的生產(chǎn)生活中越來(lái)越占據(jù)巨大的比重,因此對(duì)于無(wú)線通信系統(tǒng)的設(shè)計(jì)就具有十分巨大的現(xiàn)實(shí)與研究意義。1.1 研究的背景與意義隨著社會(huì)的進(jìn)步和生產(chǎn)的需要,無(wú)線通信已經(jīng)逐漸融入了我們的生活,并逐漸取得了相當(dāng)重要的地位。在工業(yè)生產(chǎn)上,由于生產(chǎn)環(huán)境惡劣,工作人員長(zhǎng)時(shí)間待在惡劣的環(huán)境之中會(huì)產(chǎn)生健康問(wèn)題,只能將傳感器先安置在目標(biāo)
10、點(diǎn)之后,讓機(jī)器先行采集數(shù)據(jù)后再傳輸數(shù)據(jù)到環(huán)境良好的室內(nèi),這樣就需要解決傳輸問(wèn)題。一般廠房或是工作室都離數(shù)據(jù)點(diǎn)有較遠(yuǎn)的距離,此時(shí)就需要很長(zhǎng)的數(shù)據(jù)線來(lái)有線傳輸數(shù)據(jù),但是這樣就會(huì)有另一個(gè)問(wèn)題,那就是材料浪費(fèi),占用過(guò)多空間,這時(shí)就需要利用無(wú)線傳輸?shù)姆绞絹?lái)收集數(shù)據(jù),也顯得十分便利與實(shí)用。在農(nóng)業(yè)生產(chǎn)上,溫室大棚進(jìn)行溫度檢測(cè),糧倉(cāng)管理,一般目標(biāo)分散,占地面積大,檢測(cè)目標(biāo)多,傳統(tǒng)方法復(fù)雜,這時(shí)無(wú)線通信就能夠解決很多問(wèn)題,例如多點(diǎn)收集數(shù)據(jù),進(jìn)行溫度監(jiān)控并實(shí)時(shí)調(diào)控等。在日常生活中,用手機(jī)控制家里的電器,并用手機(jī)接收家中溫度濕度,然后通過(guò)遠(yuǎn)程遙控調(diào)整家里的溫度濕度,也是應(yīng)用無(wú)線通信系統(tǒng)才能實(shí)現(xiàn)。綜上所述,無(wú)論是生產(chǎn)
11、勞動(dòng)或者是日常生活中,無(wú)線通信都帶來(lái)了便利與實(shí)用。無(wú)論是數(shù)據(jù)的采集預(yù)警,并對(duì)相關(guān)溫度或是濕度進(jìn)行控制,抑或是生活中的網(wǎng)上沖浪,看新聞視頻,打電話與發(fā)短信,都是無(wú)線通信的功勞。因此,既然無(wú)線通信如此常見(jiàn),對(duì)其進(jìn)行學(xué)習(xí)研究就顯得十分必要了。1.2 國(guó)內(nèi)外發(fā)展與研究現(xiàn)狀自從進(jìn)入無(wú)線通信時(shí)代以來(lái),國(guó)內(nèi)外無(wú)不對(duì)無(wú)線通信研究投入巨大比重。從最早的1G,逐漸發(fā)展到現(xiàn)在的5G技術(shù),這離不開(kāi)國(guó)內(nèi)外的共同研究。對(duì)于無(wú)線通信模塊來(lái)說(shuō),主要分為蜂窩類與非蜂窩類。蜂窩類就是平時(shí)生活中用到的3G、4G通信,適合長(zhǎng)距離通信。而非蜂窩類則是wifi、藍(lán)牙、Zigbee等模塊。對(duì)于單片機(jī)來(lái)說(shuō),使用蜂窩類的模塊一般適用于現(xiàn)今比較
12、火熱的物聯(lián)網(wǎng)等,而非蜂窩類已經(jīng)能夠滿足其對(duì)于數(shù)據(jù)傳輸?shù)囊?。而在上述的非蜂窩類模塊中,基本上是在2.4GHz非授權(quán)頻段上,在這個(gè)頻段上已經(jīng)云集了多個(gè)標(biāo)準(zhǔn)無(wú)線協(xié)議。自Nordic等公司推出NRF24L01芯片之后,許多公司相繼推出基于該芯片的無(wú)線模塊,直到現(xiàn)在,Nordic還是在繼續(xù)推出NRF系列的無(wú)線通信模塊。相比較國(guó)外的無(wú)線模塊,國(guó)內(nèi)對(duì)于芯片的研究確實(shí)落后了一截,但是還是有一些公司開(kāi)發(fā)出了屬于自己的無(wú)線通信模塊,例如上海博通的BK2411,雖然早功耗與傳輸距離上相對(duì)差了一些。從另一方面來(lái)說(shuō),國(guó)內(nèi)的無(wú)線模塊的應(yīng)用確實(shí)得到了比較大的發(fā)展,無(wú)線通信與物聯(lián)網(wǎng)最近開(kāi)始變得熱門起來(lái),相應(yīng)的無(wú)線模塊的使用
13、也必定會(huì)越來(lái)越多,對(duì)于無(wú)線模塊的研究肯定做得比較多,同時(shí),這也一定會(huì)讓國(guó)內(nèi)廠商在自主研發(fā)的道路上走得越來(lái)越好。因此,綜上所述,本文采用了在2.4GHz頻段上的nRF24L01作為無(wú)線傳輸模塊,不僅具有豐富的學(xué)習(xí)與應(yīng)用資源,同時(shí)還方便獲得與使用。通過(guò)傳感器DS18B20將數(shù)據(jù)送到STM32單片機(jī)進(jìn)行處理后,通過(guò)nRF24L01模塊將數(shù)據(jù)傳輸?shù)浇邮斩孙@示,最終實(shí)現(xiàn)溫度的無(wú)線傳輸。1.3 主要研究?jī)?nèi)容本系統(tǒng)的設(shè)計(jì)主要采用Nordic公司推出的工作于2.4GHz頻段的nRF24L01射頻芯片,由STM32F103ZET6單片機(jī)作為主控芯片來(lái)實(shí)現(xiàn)短距離的無(wú)線數(shù)據(jù)通信。整個(gè)系統(tǒng)主要分為接收端與發(fā)送端兩部分
14、,在發(fā)送端主要以STM32F103ZET6單片機(jī)為核心,使用溫度轉(zhuǎn)換芯片DS18B20實(shí)時(shí)采集溫度并通過(guò)無(wú)線模塊nRF24L01將數(shù)據(jù)傳輸?shù)浇邮斩?,然后在接收端的單片機(jī)則將數(shù)據(jù)顯示在OLED上,并實(shí)現(xiàn)對(duì)溫度過(guò)高或過(guò)低進(jìn)行報(bào)警。另外,在接收端還通過(guò)HC05藍(lán)牙模塊將數(shù)據(jù)發(fā)送到手機(jī)APP中,方便瀏覽查閱。2 系統(tǒng)方案分析與選擇論證2.1 系統(tǒng)設(shè)計(jì)要求根據(jù)本系統(tǒng)的應(yīng)用環(huán)境,具體的技術(shù)要求如下:1.體積小巧。本系統(tǒng)主要是要用于短距離的無(wú)線數(shù)據(jù)通信,所以需要在盡可能的條件下控制大小,如果過(guò)大,會(huì)占據(jù)無(wú)謂的空間。同時(shí),設(shè)計(jì)小巧可以在本系統(tǒng)的基礎(chǔ)上再加上其他更多的外設(shè),便于以后對(duì)于本系統(tǒng)的拓展與優(yōu)化。2.傳
15、輸可靠。本系統(tǒng)的主要功能就是無(wú)線通信,有別于傳統(tǒng)的有線通信,將數(shù)據(jù)通過(guò)電磁波傳播,會(huì)產(chǎn)生一定的安全問(wèn)題,那么為了安全可靠性,設(shè)計(jì)一個(gè)完善的系統(tǒng)就十分重要。另一方面,空氣之中存在許多電磁干擾,所以系統(tǒng)需要有一定的抗干擾能力。3.成本低。本系統(tǒng)的實(shí)現(xiàn)功能并不困難,并不需要使用昂貴的元器件與模塊,所以在滿足系統(tǒng)要求的條件下盡量節(jié)約成本,使其更加具有競(jìng)爭(zhēng)性。2.2 主控芯片方案方案一:采用傳統(tǒng)的AT89C51系列單片機(jī)作為主控芯片,價(jià)格低廉,體積較小,操作簡(jiǎn)單,功耗較低。方案二:采用ST公司生產(chǎn)的STM32F103ZET6單片機(jī)作為主控芯片,該芯片主頻達(dá)72MHz并有8個(gè)定時(shí)器、計(jì)數(shù)器可供選擇,功能強(qiáng)
16、大、處理速度快、數(shù)據(jù)接口多、性價(jià)比高。在單片機(jī)開(kāi)發(fā)中具有相當(dāng)重要的地位??紤]到本畢業(yè)設(shè)計(jì)的要求,可能會(huì)用到多個(gè)串口,同時(shí)需要對(duì)無(wú)線模塊進(jìn)行配置,方案一中的單片機(jī)功能比較簡(jiǎn)單,并且容易出現(xiàn)差錯(cuò),相對(duì)來(lái)說(shuō)方案二中的單片機(jī)更加穩(wěn)定與功能強(qiáng)大,另一方面,在大學(xué)課題設(shè)計(jì)中,使用后者頻率更高,對(duì)其更加熟悉,所以選擇方案二中的STM32系列單片機(jī)作為主控芯片,同時(shí)這樣也比較容易實(shí)現(xiàn)拓展與完善。2.3 無(wú)線通信模塊方案方案一:采用GSM模塊進(jìn)行通信,該模塊需要使用手機(jī)卡,是通過(guò)移動(dòng)衛(wèi)星或是基站來(lái)傳遞信息,雖然每回傳輸?shù)臄?shù)據(jù)內(nèi)容較多,且傳輸距離十分遠(yuǎn),但是要內(nèi)置SIM卡,通信過(guò)程收費(fèi),不僅成本高,而且在硬件與軟
17、件設(shè)計(jì)中也比較復(fù)雜。方案二:采用藍(lán)牙模塊進(jìn)行通信,藍(lán)牙模塊主要是使用串口方式來(lái)進(jìn)行數(shù)據(jù)傳輸,而串口方面是比較容易被其他設(shè)備連接的,容易對(duì)數(shù)據(jù)產(chǎn)生干擾。方案三:采用nRF24L01無(wú)線射頻模塊進(jìn)行通信,該模塊低功耗,價(jià)格便宜,同時(shí)采用SPI總線通信模式,操作簡(jiǎn)單??紤]到本畢業(yè)設(shè)計(jì)的要求,同時(shí)考慮到總體設(shè)計(jì)的復(fù)雜程度與個(gè)人實(shí)際情況,我們采用方案三作為本系統(tǒng)的通信模塊。2.4 溫度傳感方案方案一:采用AD590單片集成兩端感溫電流源,該模塊廣泛應(yīng)用于不同的溫度控制場(chǎng)合,精度高、價(jià)格低、線性好。但是需要其他元器件進(jìn)行輔助測(cè)試,電路設(shè)計(jì)比較復(fù)雜。方案二:采用美國(guó)公司生產(chǎn)的DS18B20可組網(wǎng)數(shù)字溫度傳感
18、器芯片,該模塊體積小巧、經(jīng)濟(jì)實(shí)惠,硬件連接簡(jiǎn)單,具有高實(shí)用性,同時(shí)采用一線總線方式,傳輸數(shù)據(jù)簡(jiǎn)單。在電路設(shè)計(jì)上,使用DS18B20的話,相關(guān)硬件電路設(shè)計(jì)簡(jiǎn)單,編程容易,而AD590需要其他輔助電路,線路復(fù)雜,編程困難??紤]到本設(shè)計(jì)的溫度指標(biāo),DS18B20已經(jīng)可以基本滿足,所以選擇方案二。2.5 顯示模塊方案方案一:采用液晶LCD1602顯示信息,這是一款通過(guò)總線模式來(lái)傳輸數(shù)據(jù)的顯示模塊,容易控制但是顯示的內(nèi)容比較單一。方案二:采用LED7段數(shù)碼顯示管控制,單個(gè)數(shù)碼管顯示就需要連接需要較多引腳,同時(shí)占用總系統(tǒng)板的空間,顯示內(nèi)容也簡(jiǎn)單。方案三:采用OLED來(lái)顯示,該顯示模塊體積小,價(jià)格便宜,顯示
19、精度高,且可以翻頁(yè),顯示內(nèi)容多??紤]到本畢業(yè)設(shè)計(jì)的要求,需要顯示的內(nèi)容比較多,且顯示速度與精度要求比較高,所以我們采用方案三。3 系統(tǒng)硬件電路設(shè)計(jì)具體系統(tǒng)框圖如下圖3-1、3-2所示。圖3-1 系統(tǒng)主機(jī)框圖圖3-2 系統(tǒng)從機(jī)框圖從框圖中可以看出,從機(jī)主要通過(guò)溫度采集模塊DS18B20來(lái)采集有關(guān)溫度的數(shù)據(jù),在OLED上顯示之后,通過(guò)nRF24L01無(wú)線傳輸模塊將數(shù)據(jù)發(fā)送出去,主機(jī)在接收到從機(jī)發(fā)送的數(shù)據(jù)之后,將溫度在OLED上顯示,同時(shí)判斷報(bào)警模塊是否工作。這樣一來(lái),就達(dá)到了通過(guò)無(wú)線通信來(lái)監(jiān)控溫度的目的。接下來(lái),將分別具體介紹系統(tǒng)的各個(gè)模塊。3.1 主控芯片最小系統(tǒng)板設(shè)計(jì)本系統(tǒng)主要使用ARM公司生
20、產(chǎn)的基于Cortex-M3內(nèi)核的STM32F103系列單片機(jī)作為控制核心,它具有性價(jià)比高、功耗低、處理速度快、功能強(qiáng)大等優(yōu)點(diǎn),主頻達(dá)72MHz并有8個(gè)定時(shí)器、計(jì)數(shù)器可供選擇,在本系統(tǒng)中的應(yīng)用主要是對(duì)nRF24L01模塊進(jìn)行配置,選擇發(fā)送的數(shù)據(jù),對(duì)接收到的數(shù)據(jù)進(jìn)行校驗(yàn)和解碼,并將發(fā)送或接收的數(shù)據(jù)和其他有效信息控制顯示在OLED顯示屏即本課題的人機(jī)交互界面上,另外還要與手機(jī)APP進(jìn)行通信。對(duì)于本系統(tǒng)來(lái)說(shuō),由于是直接使用系統(tǒng)板來(lái)操作,所以例如電源模塊、復(fù)位電路、晶振電路等相關(guān)外設(shè)都已經(jīng)集成在系統(tǒng)板上,對(duì)于設(shè)計(jì)來(lái)說(shuō)更加方便了。最小系統(tǒng)板大小為5.2CM*6.2CM,共有四面排針引出的引腳,所以最小系統(tǒng)
21、板引腳設(shè)計(jì)如下圖所示:圖3-1-1 單片機(jī)引腳圖3.2 無(wú)線收發(fā)模塊該模塊主要使用有Nordic公司生產(chǎn)的nRF24L01模塊構(gòu)成,它使用SPI通信,能實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)或是1對(duì)6的無(wú)線通信,無(wú)線通信速度最高可達(dá)到2Mbps。它與藍(lán)牙通信相比,優(yōu)點(diǎn)是低功耗,傳輸速率快,抗干擾能力強(qiáng),系統(tǒng)費(fèi)用(低速微處理器也能進(jìn)行高速射頻發(fā)射)低,更適合近距離通信。對(duì)于SPI,是英語(yǔ)Serial Peripheral interface的縮寫,顧名思義就是串行外圍設(shè)備接口。SPI接口主要應(yīng)用在EEPROM,F(xiàn)LASH,實(shí)時(shí)時(shí)鐘,A/D轉(zhuǎn)換器,還有數(shù)字信號(hào)處理器和數(shù)字信號(hào)解碼器之間。SPI是一種高速的,全雙工,同步的通信
22、總線,并且在芯片的管腳上只占用四根線,節(jié)約了芯片的管腳,同時(shí)為PCB的布局上節(jié)省空間,提供方便,正是出于這種簡(jiǎn)單易用的特性,現(xiàn)在越來(lái)越多的芯片集成了這種通信協(xié)議,STM32也有多個(gè)SPI接口。nRF24L01無(wú)線模塊工作于2.4GHz頻段,主要有4種工作方式,這樣在一定程度上更方便地進(jìn)行節(jié)能設(shè)計(jì)。而工作方式的選擇一般靠對(duì)幾個(gè)寄存器的改變來(lái)實(shí)現(xiàn)。在實(shí)際應(yīng)用中,需要對(duì)模塊內(nèi)部參數(shù)進(jìn)行配置后,才能正常工作,使其無(wú)線收發(fā)。nRF24L01的具體硬件連接圖如圖3-2-1所示。實(shí)物模塊如下圖3-2-2所示。對(duì)于nRF24L01模塊,其中2個(gè)引腳是電源輸入;3個(gè)引腳是為了模塊與單片機(jī)之間進(jìn)行SPI通信,而另
23、外三個(gè)引腳則是對(duì)模塊進(jìn)行相關(guān)配置需要的輸入口。在軟件設(shè)計(jì)時(shí),需要對(duì)這些引腳進(jìn)行初始化,使單片機(jī)使能引腳,再對(duì)相關(guān)函數(shù)進(jìn)行初始化。圖3-2-1 nRF24L01引腳圖 圖3-2-2 nRF24L01實(shí)物圖3.3 顯示模塊OLED,即有機(jī)發(fā)光二極管(Organic Light-Emitting Diode),又稱為有機(jī)電激光顯示(Organic Electroluminesence Display,OELD)。OLED由于同時(shí)具備自發(fā)光,不需背光源、對(duì)比度高、厚度薄、視角廣、反應(yīng)速度快、可用于撓曲性面板、使用溫度范圍廣、構(gòu)造及制程較簡(jiǎn)單等優(yōu)異之特性,被認(rèn)為是下一代的平面顯示器新興應(yīng)用技術(shù)。LCD都
24、需要背光,而OLED不需要,因?yàn)樗亲园l(fā)光的。這樣同樣的顯示,OLED效果要來(lái)得好一些。OLED具有多種尺寸大小,同時(shí)具有多種外接引腳方式,這樣一來(lái),就存在多種數(shù)據(jù)傳輸方式,例如8080總線與4線SPI接口方式。另外,OLED并不需要高壓,直接接3.3V就可以工作了。OLED具體硬件連接如下圖所示:圖3-3-1 OLED模塊硬件連接圖3.4 溫度采集模塊該模塊采用美國(guó)DALLAS公司推出的數(shù)字測(cè)溫芯片DS18B20。它是一種“一線總線”接口的溫度傳感器,具有較強(qiáng)的抗干擾性。與傳統(tǒng)的熱敏電阻等測(cè)溫元件相比,它體積小巧、簡(jiǎn)潔經(jīng)濟(jì),可以使用外接連接線使其在不同環(huán)境位置下工作,大大提高實(shí)用性。同時(shí)它還
25、可以使用相當(dāng)寬的電壓范圍,只用一根總線進(jìn)行數(shù)據(jù)傳輸也使其與單片機(jī)之間的接口簡(jiǎn)單,硬件設(shè)計(jì)方便。另外它測(cè)溫范圍廣,從零下55攝氏度到125攝氏度均可,精度可達(dá)到0.5,在組建數(shù)字溫度傳感器網(wǎng)絡(luò)方面具有十分重要的地位。與單片機(jī)連接組成系統(tǒng)時(shí),它能直接讀出被測(cè)溫度,并且直接將數(shù)據(jù)傳輸給單片機(jī)處理。具體傳感器引腳如下圖所示:圖3-4-1 DS18B20引腳圖DS18B20具有多種封裝方式,在本系統(tǒng)電路設(shè)計(jì)中,使用的是上圖的左側(cè)封裝,因此只需要連接三個(gè)引腳即可。其中,GND引腳連接電源地,VDD引腳連接外接供電電源輸入端,DQ引腳則是溫度數(shù)據(jù)輸出口,連接到單片機(jī)I/O口,傳輸檢測(cè)到的原始溫度數(shù)據(jù)。通過(guò)該
26、模塊測(cè)量目標(biāo)地點(diǎn)的溫度后,將數(shù)據(jù)送到從機(jī)中,然后從機(jī)將數(shù)據(jù)處理后在OLED上顯示,并將數(shù)據(jù)發(fā)送到接收端。具體硬件連接如下圖所示:圖3-4-1 DS18B20硬件連接圖3.5 藍(lán)牙模塊嵌入式藍(lán)牙串口通訊模塊具有兩種工作模式:命令響應(yīng)工作模式和自動(dòng)連接工作模式,在自動(dòng)連接工作模式下模塊又可分為主(Master)、從(Slave)和回環(huán)(Loopback)三種工作角色。當(dāng)模塊處于自動(dòng)連接工作模式時(shí),將自動(dòng)根據(jù)事先設(shè)定的方式連接的數(shù)據(jù)傳輸;當(dāng)模塊處于命令響應(yīng)工作模式時(shí)能執(zhí)行下述所有AT命令,用戶可向模塊發(fā)送各種AT指令,為模塊設(shè)定控制參數(shù)或發(fā)布控制命令。通過(guò)控制模塊外部引腳輸入電平,可以實(shí)現(xiàn)模塊工作狀
27、態(tài)的動(dòng)態(tài)轉(zhuǎn)換。本系統(tǒng)藍(lán)牙功能主要使用HC05藍(lán)牙模塊來(lái)實(shí)現(xiàn)。模塊硬件連接如下圖所示:圖3-5-1 藍(lán)牙模塊硬件連接圖對(duì)于本系統(tǒng)使用的藍(lán)牙模塊,可首先將其設(shè)置為命令響應(yīng)模式,然后通過(guò)電腦上的軟件來(lái)具體配置參數(shù),之后直接連接到單片機(jī)時(shí)就能正常工作。具體操作位為當(dāng)模塊插入電腦時(shí),緊緊按住模塊表面上的按鈕,當(dāng)指示燈慢閃時(shí),說(shuō)明已經(jīng)進(jìn)入相應(yīng)模式,此時(shí)松開(kāi)按鈕,即可通過(guò)串口助手等進(jìn)行調(diào)試。這樣就能夠在串口助手等程序上使用AT指令來(lái)設(shè)置HC05藍(lán)牙模塊。藍(lán)牙模塊常用AT指令如下表所示:表3-5-1 常用AT指令指令功能響應(yīng)參數(shù)AT測(cè)試用OK無(wú)AT+RESET模塊復(fù)位或重啟OK無(wú)AT+ORGL恢復(fù)默認(rèn)狀態(tài)OK
28、無(wú)AT+NAME=模塊命名OKParam:藍(lán)牙設(shè)備名稱AT+ROLE=設(shè)置模塊角色OKParam:主要有:0從角色;1主角色;2回環(huán)角色AT+UART?詢問(wèn)串口參數(shù)例:9600,0,1三個(gè)數(shù)字分別對(duì)應(yīng)波特率,停止位與校驗(yàn)位3.6 報(bào)警模塊為了保證該系統(tǒng)具有一定的警示功能,本設(shè)計(jì)采用了電式蜂鳴器作為聲音報(bào)警部分,體積小,方便安裝。當(dāng)檢測(cè)到溫度不在預(yù)定范圍內(nèi)時(shí),蜂鳴器就會(huì)正常工作,發(fā)出聲音。蜂鳴器作為發(fā)聲元件,主要的類型可以分為有源蜂鳴器和無(wú)源蜂鳴器。無(wú)源蜂鳴器需要在兩端施加直流電壓就可以發(fā)出聲音,而有源蜂鳴器則需要在兩端施加具有一定周期的電壓,例如正弦波或方波才可發(fā)出聲音。根據(jù)不同的用戶需求,需
29、要選擇不同的蜂鳴器種類,具體根據(jù)設(shè)計(jì)決定。本設(shè)計(jì)采用的是有源蜂鳴器,只需要通過(guò)一個(gè)三極管來(lái)驅(qū)動(dòng)即可使蜂鳴器正產(chǎn)工作。具體硬件連接如下圖所示:圖3-6-1 報(bào)警模塊硬件連接圖3.7 電源模塊電源電路提供系統(tǒng)所需電壓如3.3V和5V。通過(guò)外接電源,接入大于5V的電壓,然后通過(guò)LM7805芯片將電壓穩(wěn)到5V,之后再使用LM1117芯片將電壓穩(wěn)到3.3V從而達(dá)到本設(shè)計(jì)的要求電源。對(duì)于本系統(tǒng)來(lái)說(shuō),復(fù)位、晶振和指示電路已集成在STM32F103ZET6開(kāi)發(fā)板上,所以只要通過(guò)充電寶直接供給單片機(jī),就能得到相應(yīng)電壓。具體硬件連接如下圖所示:圖3-7-1 電源模塊硬件連接圖4 軟件部分設(shè)計(jì)與實(shí)現(xiàn)4.1 Keil
30、軟件介紹本系統(tǒng)中的軟件設(shè)計(jì)基本上都是通過(guò)Keil Vision5來(lái)編程實(shí)現(xiàn)的。Keil是一款功能強(qiáng)大的C語(yǔ)言軟件開(kāi)發(fā)系統(tǒng),同時(shí)Keil與多個(gè)單片機(jī)公司之間具有合作關(guān)系,所以可以直接通過(guò)軟件自帶的內(nèi)容來(lái)構(gòu)建相應(yīng)單片機(jī)的環(huán)境。與此同時(shí),Keil在使用過(guò)程中簡(jiǎn)單方便,多處具有人性化設(shè)計(jì),可以適應(yīng)不同人的編程習(xí)慣。在軟件設(shè)計(jì)過(guò)程中,該軟件也可以自由導(dǎo)出導(dǎo)入相關(guān)的庫(kù)文件,運(yùn)行過(guò)程中也可以通過(guò)設(shè)計(jì)節(jié)點(diǎn)來(lái)探尋出現(xiàn)問(wèn)題的地方。Keil還包含兩個(gè)ARM公司的C/C+編譯器、匯編器和連接器,同時(shí)高度優(yōu)化的運(yùn)行庫(kù)能優(yōu)化代碼大小和性能。軟件包能夠隨時(shí)被導(dǎo)入到MDK或DS-MDK中,使相關(guān)的設(shè)備能不需要通過(guò)工具鏈來(lái)獲得
31、技術(shù)支持,它們包括設(shè)備支持、CMSIS庫(kù)、中間設(shè)備、板級(jí)支持、代碼模板和示例項(xiàng)目。4.2 系統(tǒng)總體程序流程設(shè)計(jì)對(duì)于系統(tǒng)的總體設(shè)計(jì),是對(duì)于無(wú)線通信的一個(gè)簡(jiǎn)要流程,主要是要做到主機(jī)與從機(jī)之間的有效連接以及對(duì)數(shù)據(jù)的處理與顯示。首先是從機(jī)部分的溫度采集,當(dāng)數(shù)據(jù)進(jìn)行處理后在OLED上顯示,再通過(guò)nRF24L01無(wú)線模塊傳輸?shù)街鳈C(jī)中,最后在主機(jī)當(dāng)接收到數(shù)據(jù)后,進(jìn)行處理后在OLED顯示屏中顯示溫度數(shù)據(jù)等內(nèi)容。其中,關(guān)鍵點(diǎn)在于數(shù)據(jù)傳輸過(guò)程中的誤碼亂碼以及編碼解碼,這就需要做好主從機(jī)之間的通信協(xié)議。具體流程圖如圖4-2-1所示。圖4-2-1 系統(tǒng)總體流程框圖4.3 系統(tǒng)主機(jī)程序流程設(shè)計(jì)對(duì)于系統(tǒng)的主機(jī)程序流程,主
32、要是對(duì)于數(shù)據(jù)的接收與處理。首先是對(duì)單片機(jī)進(jìn)行初始化后,再對(duì)無(wú)線通信模塊與OLED顯示屏以及藍(lán)牙模塊初始化,然后設(shè)置無(wú)線模塊為接收模式,使主機(jī)能與從機(jī)配對(duì),讓主機(jī)能夠接受到從機(jī)發(fā)送的數(shù)據(jù),最后將數(shù)據(jù)處理后顯示到OLED顯示屏上并判斷是否觸發(fā)報(bào)警模式,同時(shí),將溫度數(shù)據(jù)通過(guò)藍(lán)牙串口發(fā)送到手機(jī)APP中。具體流程如下圖所示:圖4-3-1 系統(tǒng)主機(jī)流程框圖4.4 系統(tǒng)從機(jī)程序流程設(shè)計(jì)對(duì)于系統(tǒng)的從機(jī)程序設(shè)計(jì),主要是對(duì)于溫度數(shù)據(jù)的處理與發(fā)送。總體思路與主機(jī)程序類似,首先對(duì)于單片機(jī)與OLED顯示屏還有DS18B20溫度傳感器進(jìn)行初始化,將無(wú)線模塊設(shè)置為發(fā)送模式,之后由單片機(jī)讀取溫度數(shù)據(jù),經(jīng)過(guò)處理后顯示在OLED
33、上并通過(guò)nRF24L01無(wú)線傳輸模塊發(fā)送出去。具體流程圖如下圖所示:圖4-4-1 系統(tǒng)從機(jī)流程框圖4.5 無(wú)線模塊軟件流程設(shè)計(jì)對(duì)于nRF24L01無(wú)線模塊,并不像串口那樣通信簡(jiǎn)單,對(duì)于其內(nèi)部的寄存器需要配置好,才能實(shí)現(xiàn)具體的功能,不然只會(huì)出錯(cuò)。當(dāng)發(fā)送數(shù)據(jù)時(shí),首先需要將模塊設(shè)置為發(fā)送模式,即配置TX_Mode,然后將接收處的地址與需要發(fā)送的數(shù)據(jù)寫入緩沖區(qū),之后將CE置為高后,就將數(shù)據(jù)包發(fā)出,此時(shí)發(fā)送端會(huì)進(jìn)入接收模式,如果接收到應(yīng)答信號(hào),則此次發(fā)送數(shù)據(jù)成功,同時(shí)模塊就會(huì)進(jìn)入空閑模式,直到下次需要發(fā)送數(shù)據(jù)。否則會(huì)自動(dòng)進(jìn)行重發(fā),直至達(dá)到最大重發(fā)次數(shù),產(chǎn)生中斷,通知單片機(jī)。具體流程如下圖4-5-1所示。
34、接收數(shù)據(jù)時(shí),首先還是需要將模塊配置為接收模式,即配置RX_Mode,此時(shí)就設(shè)置好了接收端的地址。然后等待數(shù)據(jù)的到來(lái),此時(shí)就是類似于空閑模式,而當(dāng)收到數(shù)據(jù)包后,首先會(huì)對(duì)相關(guān)的地址數(shù)據(jù)進(jìn)行解析,只有當(dāng)?shù)刂菲ヅ鋾r(shí),才會(huì)將之后的數(shù)據(jù)包存入緩存區(qū)中,同時(shí)轉(zhuǎn)變?yōu)榘l(fā)送模式,回傳應(yīng)答信號(hào)。這樣就完成了一次數(shù)據(jù)包的正常通信。具體流程如下圖4-5-2所示。圖4-5-1 無(wú)線模塊發(fā)送流程圖 圖4-5-2 無(wú)線模塊接收流程圖4.6 溫度檢測(cè)程序流程設(shè)計(jì)溫度檢測(cè)模塊軟件設(shè)計(jì)DS18B20的測(cè)溫原理遵循嚴(yán)格的單總線協(xié)議,需要采用嚴(yán)格的信號(hào)時(shí)序,以保證數(shù)據(jù)的完整性。DS18B20一般有6種信號(hào)類型。單片機(jī)讀取模塊溫度的過(guò)程
35、一般為:復(fù)位,發(fā)SKIP ROM信號(hào),發(fā)開(kāi)始轉(zhuǎn)換命令,延時(shí),再?gòu)?fù)位,再發(fā)SKIP ROM信號(hào),發(fā)讀存儲(chǔ)器命令,連續(xù)讀出兩個(gè)字節(jié)數(shù)據(jù),最后結(jié)束。如此反復(fù),完成所有操作,在實(shí)際程序設(shè)計(jì)中,一般先通過(guò)軟件來(lái)檢測(cè)溫度模塊是否存在,只有模塊存在的條件才能進(jìn)行下一步操作,之后就會(huì)上述步驟來(lái)讀取溫度數(shù)據(jù),而在主程序中只要將函數(shù)的返回值設(shè)定為溫度值就可以只用一個(gè)整合后的函數(shù)來(lái)讀取溫度。具體流程設(shè)計(jì)如圖4-6-1所示:圖4-6-1 溫度流程圖4.7 顯示模塊流程設(shè)計(jì)對(duì)于OLED顯示模塊,雖然采用是SPI接口方式,但是若想達(dá)到顯示正確數(shù)據(jù)的目標(biāo),需要的操作并不難。首先需要對(duì)其余單片機(jī)相連的I/O口進(jìn)行初始化,然后
36、對(duì)模塊進(jìn)行初始化,最后只要通過(guò)函數(shù)將相關(guān)內(nèi)容顯示到模塊上即可。在顯示函數(shù)上,由于顯示屏主要是由一個(gè)個(gè)點(diǎn)陣構(gòu)成的,所以想要顯示的內(nèi)容都是由點(diǎn)亮相關(guān)點(diǎn)實(shí)現(xiàn)的。具體流程如下圖所示:圖4-6-1 OLED顯示流程圖4.8 藍(lán)牙APP模塊設(shè)計(jì)在主機(jī)中使用了HC05藍(lán)牙模塊,因可以使用此模塊與手機(jī)APP進(jìn)行通信,這也是本系統(tǒng)題目設(shè)計(jì)內(nèi)容之一。藍(lán)牙之間的通信主要是串口通信,所以在主機(jī)上需要占用兩個(gè)串口I/O口,而手機(jī)APP的設(shè)計(jì)則借助于APPInventor。對(duì)于手機(jī)與模塊之間的藍(lán)牙通信,首先需要設(shè)置APP端為藍(lán)牙服務(wù)器或是服務(wù)端,但是串口通信一般為雙向的,只要串口連接上,之后就可以數(shù)據(jù)互傳,所以,在本設(shè)計(jì)
37、中將APP端設(shè)置為客戶端,用來(lái)接收單片機(jī)發(fā)送的溫度數(shù)據(jù)。其次,需要使單片機(jī)上的藍(lán)牙模塊與手機(jī)藍(lán)牙連接,因?yàn)橐坏┻B接上后,就能實(shí)現(xiàn)單片機(jī)與APP之間的串口通信,這樣就需要配置藍(lán)牙模塊的相關(guān)參數(shù),使其能夠完整正確的傳輸數(shù)據(jù)。最后需要實(shí)現(xiàn)的就是APP對(duì)溫度數(shù)據(jù)的顯示與更新。具體流程設(shè)計(jì)如下圖所示:圖4-7-1 APP流程設(shè)計(jì)5 系統(tǒng)調(diào)試與結(jié)果5.1 調(diào)試步驟步驟一 完成硬件電路連接。步驟二 將OLED顯示模塊程序?qū)懭腴_(kāi)發(fā)板,看是否能夠正常顯示字符。步驟三 將DS18B20溫度傳感器與OLED一起接入開(kāi)發(fā)板,寫入測(cè)溫程序,看顯示屏是否能夠正常顯示溫度。步驟四 將DS18B20溫度傳感器與OLED顯示模
38、塊一起接入開(kāi)發(fā)板,寫入測(cè)溫程序,測(cè)試能否在OLED上同時(shí)顯示。步驟五 將nRF24L01無(wú)線芯片分別與兩塊開(kāi)發(fā)板連接,寫入收發(fā)程序,測(cè)試是否能夠正常收發(fā)。步驟八 將溫度檢測(cè),報(bào)警模塊,無(wú)線收發(fā)與顯示,檢測(cè)系統(tǒng)能否將發(fā)送端采集的溫度時(shí)間數(shù)據(jù)測(cè)出并發(fā)送,在接收端的OLED顯示屏上顯示出來(lái)。5.2 測(cè)試環(huán)境基于單片機(jī)的無(wú)線通信系統(tǒng)的實(shí)物測(cè)試,在2018年3月20日在浙江師范大學(xué)數(shù)理與信息學(xué)院電子電工開(kāi)放實(shí)驗(yàn)室內(nèi)進(jìn)行5.3 測(cè)試設(shè)備測(cè)試用的無(wú)線通信系統(tǒng)實(shí)物圖如下圖所示,所用電源為充電寶。具體測(cè)試結(jié)果如下圖所示:圖5-2-1 從機(jī)實(shí)際測(cè)試圖圖5-2-2 主機(jī)實(shí)際測(cè)試圖從上述的實(shí)際測(cè)試圖可以看出,從機(jī)通過(guò)
39、DS18B20檢測(cè)到室溫并通過(guò)nRF24L01模塊發(fā)送,主機(jī)接收到相關(guān)數(shù)據(jù)后顯示在OLED上。主機(jī)顯示屏上的溫度數(shù)據(jù)與從機(jī)上顯示的相同,可見(jiàn),無(wú)線通信成功了。5.4 測(cè)試目的首先驗(yàn)證在從機(jī)中是否能夠采集到當(dāng)前室溫,并且是否能在OLED顯示屏上顯示,其次,觀察從機(jī)是否能夠與主機(jī)進(jìn)行通信,將數(shù)據(jù)發(fā)送給主機(jī),最后觀察主機(jī)是否能將正確數(shù)據(jù)顯示在OLED顯示屏上,并且相應(yīng)的報(bào)警模式是否工作。另外,還有手機(jī)APP是否能接收到正確的溫度數(shù)據(jù)。5.5 測(cè)試結(jié)果基于單片機(jī)的無(wú)線通信系統(tǒng)在實(shí)驗(yàn)室進(jìn)行實(shí)際測(cè)試,得到以下結(jié)果:(1) 當(dāng)接通電源后,單片機(jī)與其他模塊均進(jìn)行初始化,經(jīng)過(guò)在10s內(nèi)的一段時(shí)間后,在從機(jī)的顯示
40、屏上顯示出當(dāng)前室溫。(2) 系統(tǒng)的主機(jī)在3s內(nèi)接收到了從機(jī)發(fā)送的數(shù)據(jù),并在顯示屏上顯示了與從機(jī)顯示屏上相同的數(shù)據(jù)。(3) 當(dāng)溫度數(shù)據(jù)不在預(yù)定的范圍內(nèi)時(shí),蜂鳴器進(jìn)行警報(bào)。(4) 主機(jī)中藍(lán)牙模塊與手機(jī)進(jìn)行配對(duì)后,手機(jī)能夠收到主機(jī)發(fā)送的相關(guān)溫度數(shù)據(jù),并進(jìn)行顯示。6 結(jié)論對(duì)于本系統(tǒng)設(shè)計(jì),我深深感到了自己的不足,也對(duì)于項(xiàng)目具有一定程度上的不自信,好在有指導(dǎo)老師張老師的幫助導(dǎo)下,經(jīng)過(guò)努力,本論文已經(jīng)基本完成了預(yù)期的目標(biāo),相關(guān)總結(jié)如下:無(wú)線通信一直是單片機(jī)甚至是日常生產(chǎn)生活中十分常見(jiàn)的領(lǐng)域,除了在生活中人們十分常用以外,生產(chǎn)中也是逐漸融入無(wú)線通信的內(nèi)容。本系統(tǒng)設(shè)計(jì)的基于單片機(jī)的無(wú)線通信系統(tǒng)就是一個(gè)典型例子。
41、本系統(tǒng)主要是采用了溫度這一物理量來(lái)作為傳輸數(shù)據(jù),是因?yàn)闇囟葻o(wú)處不在,無(wú)論是在日常生活或者是在工業(yè)生產(chǎn)上,都起著至關(guān)重要的作用,同時(shí)溫度也是比較容易獲取的物理量,而本系統(tǒng)的主要實(shí)現(xiàn)功能還是數(shù)據(jù)的無(wú)線通信。另外,還有對(duì)于藍(lán)牙APP的設(shè)計(jì),由于本身接觸相關(guān)內(nèi)容并不多,使用了易于上手的APPInventor來(lái)設(shè)計(jì)軟件,由此也產(chǎn)生過(guò)許多問(wèn)題,所幸在同學(xué)與老師幫助下成功達(dá)到了目標(biāo)。在本系統(tǒng)的設(shè)計(jì)過(guò)程中也遇到了一些問(wèn)題,比如單片機(jī)的編程比較復(fù)雜,需要將多個(gè)功能實(shí)現(xiàn)程序整合在一起,這樣就得將整體程序進(jìn)行比較好的分類與時(shí)序排列,使整個(gè)系統(tǒng)不出現(xiàn)問(wèn)題。還有對(duì)于溫度傳感器的速率不夠快與準(zhǔn)確,無(wú)線傳輸模塊的距離較短,
42、傳輸數(shù)據(jù)具有誤碼亂碼的等問(wèn)題需要解決。在藍(lán)牙程序設(shè)計(jì)方面,雖然是有易于上手的模塊設(shè)計(jì),但是不熟練也發(fā)生過(guò)一些問(wèn)題,例如藍(lán)牙客戶端設(shè)置不能,無(wú)法正確顯示數(shù)據(jù)等。另外,對(duì)nRF24L01無(wú)線傳輸模塊傳輸程序的編程也具有一定難度。能夠最終完成整個(gè)系統(tǒng),離不開(kāi)多次努力與嘗試還有指導(dǎo)老師的幫助。通過(guò)這次的學(xué)習(xí)與設(shè)計(jì),我學(xué)到了許多東西,例如對(duì)于溫度傳感器的應(yīng)用,無(wú)線傳輸模塊的使用以及無(wú)線傳輸數(shù)據(jù)出現(xiàn)問(wèn)題時(shí)應(yīng)該如何解決等,這些對(duì)于理論知識(shí)來(lái)說(shuō)是完全不夠的,是需要不斷具體的實(shí)踐與應(yīng)用的,再次印證了只有實(shí)踐才能出真理。與此同時(shí),本系統(tǒng)設(shè)計(jì)也還具有一些不盡人意的地方,需要不斷改進(jìn)。參考文獻(xiàn)1冉偉剛.溫室大棚數(shù)據(jù)采
43、集系統(tǒng)D.蘭州大學(xué),2010.2張家銘.基于手機(jī)藍(lán)牙控制的智能電風(fēng)扇J.通訊世界,2017(06):282-283.3孫永堅(jiān).基于無(wú)線傳感器網(wǎng)絡(luò)的智能家居遠(yuǎn)程監(jiān)控系統(tǒng)研究與設(shè)計(jì)D.吉林大學(xué),2014. 4鄭磊.基于GPS的精確農(nóng)業(yè)自動(dòng)變量施肥控制系統(tǒng)的研究D.吉林大學(xué),2009. 5邢艷芳,張延冬.基于Zynq的OLED驅(qū)動(dòng)設(shè)計(jì)J.液晶與顯示,2014,29(02):224-228. 6劉志平,趙國(guó)良.基于nRF24L01的近距離無(wú)線數(shù)據(jù)傳輸J.應(yīng)用科技,2008(03):55-58. 7戴鑫.網(wǎng)絡(luò)移動(dòng)機(jī)器人遠(yuǎn)程監(jiān)控系統(tǒng)的研究與設(shè)計(jì)D.貴州大學(xué),2009. 8張杰.基于MC9328MXL處理器
44、的CMMB移動(dòng)電視信號(hào)接收系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)D.東北大學(xué),2009. 9薛丹,王天成,丑遠(yuǎn)婷,曹蓓.基于STM32的激光位置提取及控制裝置研究J.工業(yè)技術(shù)創(chuàng)新,2015,02(01):43-46.10陳智.基于CMMB標(biāo)準(zhǔn)的移動(dòng)多媒體廣播接收與播放系統(tǒng)開(kāi)發(fā)D.廈門大學(xué),2008. 11馬傳文.基于DSP的新一代漁業(yè)基站電臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)D.西安電子科技大學(xué),2011.12Y. Wang and Z. Chi,System of Wireless Temperature and Humidity Monitoring Based on Arduino Uno Platform, 2016 Sixth
45、 International Conference on Instrumentation & Measurement, Computer, Communication and Control (IMCCC), Harbin, 2016, pp. 770-773.13Sun Hao and Chi Zongtao,Design of the environmental temperature and humidity wireless monitoring system, 2015 12th IEEE International Conference on Electronic Measurem
46、ent & Instruments (ICEMI), Qingdao, 2015, pp. 1652-1657.致謝 從選題到完成畢業(yè)設(shè)計(jì),總共經(jīng)過(guò)了大約五個(gè)月的時(shí)間,在此我要特別感謝我的指導(dǎo)老師張老師,感謝他的耐心指導(dǎo)與幫助。在整個(gè)畢業(yè)設(shè)計(jì)過(guò)程中,其實(shí)我是擠出時(shí)間來(lái)完成的,主要是要準(zhǔn)備考研內(nèi)容,這也給了我很大壓力,而在此過(guò)程中,張老師也是舵機(jī)鼓勵(lì)與幫助我,讓我不至于被多件事務(wù)弄得焦頭爛額。與此同時(shí)張老師也建議我早做準(zhǔn)備,虛心請(qǐng)教,多查閱資料與文獻(xiàn),并多動(dòng)手實(shí)踐,我覺(jué)得這對(duì)我來(lái)說(shuō)十分重要,因?yàn)槲覀儽揪褪枪た?,?shí)踐動(dòng)手有時(shí)是比理論知識(shí)更加重要的。還有老師對(duì)于我查找資料的指導(dǎo)也讓我獲益匪淺,再次感
47、謝張老師。 原本在開(kāi)題時(shí)對(duì)本設(shè)計(jì)的題目已經(jīng)有了一定了解,而在具體實(shí)際過(guò)程中發(fā)現(xiàn)其實(shí)并不簡(jiǎn)單。經(jīng)常會(huì)出現(xiàn)這樣那樣的問(wèn)題,讓我一時(shí)之間解決不了,這里我就要感謝我們系的其他幾位老師對(duì)我的幫助了,不僅在材料上給予了我支持,同時(shí)還有軟件設(shè)計(jì)上的指導(dǎo)。另外,同學(xué)給我的幫助也是不可忽視的,有時(shí)當(dāng)我有了一些自己不明白的問(wèn)題時(shí),只要找了同學(xué)幫助,就會(huì)有種豁然開(kāi)朗的感受。 最后還要感謝我的母校與曾經(jīng)給予我影響的老師們,我是在電子信息工程這個(gè)大家庭里成長(zhǎng)起來(lái)的,無(wú)論以后我從事什么工作或是完成什么任務(wù),我覺(jué)得都離不開(kāi)這大學(xué)四年里的經(jīng)歷與學(xué)習(xí)。謝謝你們!附錄1 系統(tǒng)設(shè)計(jì)總體電路圖圖1-1 系統(tǒng)設(shè)計(jì)電路圖2 系統(tǒng)設(shè)計(jì)PC
48、B圖圖2-1 系統(tǒng)設(shè)計(jì)PCB圖3 實(shí)際測(cè)試圖與APP測(cè)試圖圖3-1 從機(jī)實(shí)際測(cè)試圖圖3-2 主機(jī)實(shí)際側(cè)視圖圖3-3 手機(jī)APP測(cè)試圖1. 主要程序1.1 主程序部分#include led.h#include delay.h#include key.h#include sys.h#include oled.h#include ds18b20.h #include 24l01.h #include usart.h u8 ii=6; int main(void) u8 t; u8 fuhao; u8 ceshi2;u8 xiaoshu;u8 fuhao2; short temperature; u
49、8 tmp_buf33;delay_init(); /延時(shí)函數(shù)初始化 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); /設(shè)置NVIC中斷分組2:2位搶占優(yōu)先級(jí),2位響應(yīng)優(yōu)先級(jí) LED_Init(); /LED端口初始化OLED_Init();/初始化OLED NRF24L01_Init(); /初始化NRF24L01 usart3_init(9600); OLED_ShowString(0,0,ALIENTEK,24); OLED_ShowString(0,24, 0.96 OLED TEST,16); OLED_Refresh_Gram();/
50、更新顯示到OLED / while(DS18B20_Init()/DS18B20初始化/OLED_ShowString(0,40,DS18B20 Error,12);/OLED_Refresh_Gram();/delay_ms(200);/LCD_Fill(30,130,239,130+16,WHITE);/ delay_ms(200);/OLED_ShowString(0,40,18B20 OK,12);while(NRF24L01_Check() OLED_ShowString(54,40,24L01 Error,12); OLED_Refresh_Gram();/更新顯示到OLED de
51、lay_ms(200);/OLED_Clear();/LCD_ShowString(30,130,200,16,16,NRF24L01 Error);/delay_ms(200);/LCD_Fill(30,130,239,130+16,WHITE); OLED_ShowString(66,40,24L01 OK ,12); /OLED_Refresh_Gram();/更新顯示到OLED OLED_ShowString(0,52,Temp: . C,12); OLED_Refresh_Gram();/NRF24L01_TX_Mode();NRF24L01_RX_Mode(); /t= ; /檢測(cè)
52、DS18B20/ii=DS18B20_Init();/ while(ii=1)/DS18B20初始化/OLED_ShowString(0,40,18B20 Error,12);/OLED_Refresh_Gram();/更新顯示到OLED /delay_ms(200);/ /OLED_ShowString(0,40,18B20 OK ,12);/ OLED_Refresh_Gram();/更新顯示到OLED while(1) /下面為接收部分程序 OLED_ShowString(0,40,RX_Mode,12); OLED_Refresh_Gram();/更新顯示到OLED ii=NRF24L
53、01_RxPacket(tmp_buf);if(ii=0)/一旦接收到信息,則顯示出來(lái).tmp_buf32=0;/加入字符串結(jié)束符OLED_ShowNum(30+6,52,tmp_buf0+0 x32,1,12);/顯示正數(shù)部分OLED_ShowNum(30+6+6,52,tmp_buf1+0 x32,1,12);/顯示正數(shù)部分OLED_ShowNum(30+6+6+6+6,52,tmp_buf2+0 x32,1,12);/顯示正數(shù)部分 OLED_ShowChar(30,52,tmp_buf3,12,1);/顯示負(fù)號(hào) OLED_Refresh_Gram();/更新顯示到OLED else de
54、lay_us(100); t+;if(t=10000)/大約1s鐘改變一次狀態(tài)t=0;/LED0=!LED0; /通過(guò)藍(lán)牙發(fā)送/USART_SendData(USART2, 0 x7e); delay_ms(5); / USART_SendData(USART2, 0 xff); delay_ms(5); / USART_SendData(USART2, 0 x35); delay_ms(5);/ USART_SendData(USART2, 0 x36); delay_ms(5);ceshi0=tmp_buf0;ceshi1=tmp_buf1;xiaoshu=tmp_buf2;fuhao2=
55、tmp_buf3;u3_printf(%c%d%d.%d,fuhao2,ceshi0,ceshi1,xiaoshu);delay_ms(5);/下面為讀取模式程序/ if(t%10=0)/每100ms讀取一次/temperature=-670;/temperature=DS18B20_Get_Temp();/if(temperature0)/OLED_ShowChar(30,52,-,12,1);/顯示負(fù)號(hào)/temperature=-temperature;/轉(zhuǎn)為正數(shù)/fuhao=-;/else OLED_ShowChar(30,52, ,12,1);/去掉負(fù)號(hào)/fuhao= ;/OLED_S
56、howNum(30+6,52,temperature/10,2,12);/顯示正數(shù)部分 / OLED_ShowNum(30+6+6+6+6,52,temperature%10,1,12);/顯示小數(shù)部分 / /OLED_Refresh_Gram();/ delay_ms(10);/t+;/if(t=20)/t=0;/LED0=!LED0;/ii=NRF24L01_TxPacket(tmp_buf);/if(NRF24L01_TxPacket(tmp_buf)=TX_OK)/tmp_buf0=temperature/100;/tmp_buf1=temperature/10-tmp_buf0*10
57、;/tmp_buf2=temperature%10;/tmp_buf3=fuhao;/tmp_buf32=0;/加入結(jié)束符 / OLED_ShowString(30+6+6+6+6+20,52,OK,12); /OLED_Refresh_Gram();/ /else/ /;/LED0=!LED0;/delay_ms(700);/ /1.2 nRF24L01部分程序#include 24l01.h#include delay.h#include spi.h#include usart.hconst u8 TX_ADDRESSTX_ADR_WIDTH=0 x34,0 x43,0 x10,0 x10
58、,0 x01; /發(fā)送地址const u8 RX_ADDRESSRX_ADR_WIDTH=0 x34,0 x43,0 x10,0 x10,0 x01;/初始化24L01的IO口void NRF24L01_Init(void) GPIO_InitTypeDef GPIO_InitStructure; SPI_InitTypeDef SPI_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOG, ENABLE); /使能PB,G端口時(shí)鐘GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;/PB12上拉 防止W25X的干擾 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; /推挽輸出 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOB, &GPIO_InitStructure);/
- 溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 孫君軍-急腹癥-河南科技大學(xué)第一附屬醫(yī)院課件
- 大力發(fā)展生產(chǎn)力課件
- 骨質(zhì)疏松病人的護(hù)理課件
- 人教版六年級(jí)下冊(cè)語(yǔ)文ppt課件5-手指
- 幼兒文學(xué)教程ppt課件第9-10章
- 北師大版高中語(yǔ)文念奴嬌-赤壁懷古說(shuō)課課件-
- 初中作文指導(dǎo)-搭好骨架妙點(diǎn)題——作文評(píng)改課件
- 物業(yè)設(shè)備設(shè)施管理第九講-課件
- 消防安全宣傳知識(shí)ppt課件
- 鋅冶煉新工藝培訓(xùn)教材ppt課件
- 細(xì)胞器-系統(tǒng)內(nèi)的分工合作(第二課時(shí))課件
- 園林苗圃學(xué)苗木的播種繁殖課件
- 2016公益行動(dòng)午餐宣導(dǎo)
- 成長(zhǎng)的味道作文講評(píng)_2課件
- 部編最新人教版七年級(jí)上冊(cè)第七課愛(ài)在家人間課件