九九热最新网址,777奇米四色米奇影院在线播放,国产精品18久久久久久久久久,中文有码视频,亚洲一区在线免费观看,国产91精品在线,婷婷丁香六月天

歡迎來到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁 裝配圖網(wǎng) > 資源分類 > DOCX文檔下載  

基于單片機(jī)的無線通信系統(tǒng)

  • 資源ID:116498528       資源大?。?span id="24d9guoke414" class="font-tahoma">2.03MB        全文頁數(shù):36頁
  • 資源格式: DOCX        下載積分:12積分
快捷下載 游客一鍵下載
會員登錄下載
微信登錄下載
三方登錄下載: 微信開放平臺登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要12積分
郵箱/手機(jī):
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機(jī)號,方便查詢和重復(fù)下載(系統(tǒng)自動生成)
支付方式: 支付寶    微信支付   
驗證碼:   換一換

 
賬號:
密碼:
驗證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會被瀏覽器默認(rèn)打開,此種情況可以點(diǎn)擊瀏覽器菜單,保存網(wǎng)頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預(yù)覽文檔經(jīng)過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標(biāo)題沒有明確說明有答案則都視為沒有答案,請知曉。

基于單片機(jī)的無線通信系統(tǒng)

本科畢業(yè)設(shè)計(論文)( 2018 屆 )題 目: 基于單片機(jī)的無線通信系統(tǒng) 學(xué) 院: 數(shù)理與信息工程學(xué)院 專 業(yè): 電子信息工程 學(xué)生姓名: 葛順杰 學(xué)號: 14610120 指導(dǎo)教師: 張浩然 職稱: 教授 合作導(dǎo)師: 職稱: 完成時間: 2018 年 4 月 15 日 成 績: 浙江師范大學(xué)本科畢業(yè)設(shè)計(論文)目錄一、誠信承諾書二、正文三、浙江師范大學(xué)本科畢業(yè)設(shè)計(論文)任務(wù)書四、浙江師范大學(xué)本科畢業(yè)設(shè)計(論文)文獻(xiàn)綜述五、浙江師范大學(xué)本科畢業(yè)設(shè)計(論文)開題報告六、浙江師范大學(xué)本科畢業(yè)設(shè)計(論文)外文翻譯七、浙江師范大學(xué)本科畢業(yè)設(shè)計(論文)指導(dǎo)記錄八、浙江師范大學(xué)本科畢業(yè)設(shè)計(論文)中期檢查表九、浙江師范大學(xué)本科畢業(yè)設(shè)計(論文)作品(實(shí)物)驗收單十、浙江師范大學(xué)本科畢業(yè)設(shè)計(論文)結(jié)題答辯資格審查表十一、浙江師范大學(xué)本科畢業(yè)設(shè)計(論文)結(jié)題答辯記錄十二、浙江師范大學(xué)本科畢業(yè)設(shè)計(論文)評審表浙江師范大學(xué)本科畢業(yè)設(shè)計(論文)誠信承諾書本人鄭重承諾:我承諾所呈交的畢業(yè)設(shè)計(論文)是本人在指導(dǎo)教師的指導(dǎo)下,按照學(xué)校和學(xué)院的有關(guān)規(guī)定,獨(dú)立研究完成的。本人在畢業(yè)設(shè)計(論文)寫作過程中恪守學(xué)術(shù)道德和學(xué)術(shù)規(guī)范,設(shè)計(論文)中凡引用他人已經(jīng)發(fā)表或未發(fā)表的成果、數(shù)據(jù)、觀點(diǎn)等,均已注明并列出了有關(guān)文獻(xiàn)的名稱、作者、年份、刊物名稱和出版文獻(xiàn)的出版機(jī)構(gòu)、出版地和版次等內(nèi)容,除此之外均為本人的觀點(diǎn)和研究成果。如有違反,本人愿接受處罰并承擔(dān)一切責(zé)任。承諾人簽名(手寫): 年 月 日浙江師范大學(xué)本科畢業(yè)設(shè)計(論文)正文目 錄摘要1Abstract11 引言21.1 研究的背景與意義21.2 國內(nèi)外發(fā)展與研究現(xiàn)狀21.3 主要研究內(nèi)容32 系統(tǒng)方案分析與選擇論證32.1 系統(tǒng)設(shè)計要求32.2 主控芯片方案32.3 無線通信模塊方案42.4 溫度傳感方案42.5 顯示模塊方案43 系統(tǒng)硬件電路設(shè)計53.1 主控芯片最小系統(tǒng)板設(shè)計53.2 無線收發(fā)模塊63.3 顯示模塊73.4 溫度采集模塊73.5 藍(lán)牙模塊83.6 報警模塊103.7 電源模塊104 軟件部分設(shè)計與實(shí)現(xiàn)114.1 Keil軟件介紹114.2 系統(tǒng)總體程序流程設(shè)計114.3 系統(tǒng)主機(jī)程序流程設(shè)計124.4 系統(tǒng)從機(jī)程序流程設(shè)計124.5 無線模塊軟件流程設(shè)計134.6 溫度檢測程序流程設(shè)計144.7 顯示模塊流程設(shè)計154.8 藍(lán)牙APP模塊設(shè)計155 系統(tǒng)調(diào)試與結(jié)果165.1 調(diào)試步驟165.2 測試環(huán)境165.3 測試設(shè)備165.4 測試目的175.5 測試結(jié)果176 結(jié)論18參考文獻(xiàn)19致謝20附錄2131基于單片機(jī)的無線通信系統(tǒng)數(shù)理與信息工程學(xué)院 電子信息工程 葛順杰(14610120)指導(dǎo)老師:張浩然(教授)摘要:隨著社會的進(jìn)步和生產(chǎn)的需要,無論是在工業(yè)上,農(nóng)業(yè)上,甚至是在日常中,無線通信得到了廣泛的應(yīng)用,可以說它已經(jīng)逐漸融入了我們的生活,并取得了相當(dāng)重要的地位。溫度是常見的和最基本的物理量之一,生產(chǎn)生活中都需要對其進(jìn)行調(diào)控來達(dá)到相應(yīng)的目的。本文設(shè)計則是取溫度這一物理量作為傳輸數(shù)據(jù),使用單片機(jī)作為系統(tǒng)整體控制器件,通過nRF24L01無線模塊進(jìn)行無線通信。另外,本系統(tǒng)還可以通過藍(lán)牙將數(shù)據(jù)發(fā)送到手機(jī)中,通過手機(jī)觀察數(shù)據(jù),免去了需要實(shí)時到現(xiàn)場收集的煩惱。關(guān)鍵詞:STM32F03ZET6;nRF24L01;溫度Wireless communication system based on single chip microcomputerTutor:Zhng Horn(College of Mathematics, 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 into 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 transmission 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 need to collect the data in real timeKeywords:STM32F03ZET;nRF24L01;Temperature1 引言隨著現(xiàn)代信息技術(shù)的不斷發(fā)展,人們已經(jīng)不再滿足于有線通信,發(fā)展無線通信成為必然趨勢。而同時無線通信技術(shù)也不斷滲透到各個領(lǐng)域中,在人們的生產(chǎn)生活中越來越占據(jù)巨大的比重,因此對于無線通信系統(tǒng)的設(shè)計就具有十分巨大的現(xiàn)實(shí)與研究意義。1.1 研究的背景與意義隨著社會的進(jìn)步和生產(chǎn)的需要,無線通信已經(jīng)逐漸融入了我們的生活,并逐漸取得了相當(dāng)重要的地位。在工業(yè)生產(chǎn)上,由于生產(chǎn)環(huán)境惡劣,工作人員長時間待在惡劣的環(huán)境之中會產(chǎn)生健康問題,只能將傳感器先安置在目標(biāo)點(diǎn)之后,讓機(jī)器先行采集數(shù)據(jù)后再傳輸數(shù)據(jù)到環(huán)境良好的室內(nèi),這樣就需要解決傳輸問題。一般廠房或是工作室都離數(shù)據(jù)點(diǎn)有較遠(yuǎn)的距離,此時就需要很長的數(shù)據(jù)線來有線傳輸數(shù)據(jù),但是這樣就會有另一個問題,那就是材料浪費(fèi),占用過多空間,這時就需要利用無線傳輸?shù)姆绞絹硎占瘮?shù)據(jù),也顯得十分便利與實(shí)用。在農(nóng)業(yè)生產(chǎn)上,溫室大棚進(jìn)行溫度檢測,糧倉管理,一般目標(biāo)分散,占地面積大,檢測目標(biāo)多,傳統(tǒng)方法復(fù)雜,這時無線通信就能夠解決很多問題,例如多點(diǎn)收集數(shù)據(jù),進(jìn)行溫度監(jiān)控并實(shí)時調(diào)控等。在日常生活中,用手機(jī)控制家里的電器,并用手機(jī)接收家中溫度濕度,然后通過遠(yuǎn)程遙控調(diào)整家里的溫度濕度,也是應(yīng)用無線通信系統(tǒng)才能實(shí)現(xiàn)。綜上所述,無論是生產(chǎn)勞動或者是日常生活中,無線通信都帶來了便利與實(shí)用。無論是數(shù)據(jù)的采集預(yù)警,并對相關(guān)溫度或是濕度進(jìn)行控制,抑或是生活中的網(wǎng)上沖浪,看新聞視頻,打電話與發(fā)短信,都是無線通信的功勞。因此,既然無線通信如此常見,對其進(jìn)行學(xué)習(xí)研究就顯得十分必要了。1.2 國內(nèi)外發(fā)展與研究現(xiàn)狀自從進(jìn)入無線通信時代以來,國內(nèi)外無不對無線通信研究投入巨大比重。從最早的1G,逐漸發(fā)展到現(xiàn)在的5G技術(shù),這離不開國內(nèi)外的共同研究。對于無線通信模塊來說,主要分為蜂窩類與非蜂窩類。蜂窩類就是平時生活中用到的3G、4G通信,適合長距離通信。而非蜂窩類則是wifi、藍(lán)牙、Zigbee等模塊。對于單片機(jī)來說,使用蜂窩類的模塊一般適用于現(xiàn)今比較火熱的物聯(lián)網(wǎng)等,而非蜂窩類已經(jīng)能夠滿足其對于數(shù)據(jù)傳輸?shù)囊?。而在上述的非蜂窩類模塊中,基本上是在2.4GHz非授權(quán)頻段上,在這個頻段上已經(jīng)云集了多個標(biāo)準(zhǔn)無線協(xié)議。自Nordic等公司推出NRF24L01芯片之后,許多公司相繼推出基于該芯片的無線模塊,直到現(xiàn)在,Nordic還是在繼續(xù)推出NRF系列的無線通信模塊。相比較國外的無線模塊,國內(nèi)對于芯片的研究確實(shí)落后了一截,但是還是有一些公司開發(fā)出了屬于自己的無線通信模塊,例如上海博通的BK2411,雖然早功耗與傳輸距離上相對差了一些。從另一方面來說,國內(nèi)的無線模塊的應(yīng)用確實(shí)得到了比較大的發(fā)展,無線通信與物聯(lián)網(wǎng)最近開始變得熱門起來,相應(yīng)的無線模塊的使用也必定會越來越多,對于無線模塊的研究肯定做得比較多,同時,這也一定會讓國內(nèi)廠商在自主研發(fā)的道路上走得越來越好。因此,綜上所述,本文采用了在2.4GHz頻段上的nRF24L01作為無線傳輸模塊,不僅具有豐富的學(xué)習(xí)與應(yīng)用資源,同時還方便獲得與使用。通過傳感器DS18B20將數(shù)據(jù)送到STM32單片機(jī)進(jìn)行處理后,通過nRF24L01模塊將數(shù)據(jù)傳輸?shù)浇邮斩孙@示,最終實(shí)現(xiàn)溫度的無線傳輸。1.3 主要研究內(nèi)容本系統(tǒng)的設(shè)計主要采用Nordic公司推出的工作于2.4GHz頻段的nRF24L01射頻芯片,由STM32F103ZET6單片機(jī)作為主控芯片來實(shí)現(xiàn)短距離的無線數(shù)據(jù)通信。整個系統(tǒng)主要分為接收端與發(fā)送端兩部分,在發(fā)送端主要以STM32F103ZET6單片機(jī)為核心,使用溫度轉(zhuǎn)換芯片DS18B20實(shí)時采集溫度并通過無線模塊nRF24L01將數(shù)據(jù)傳輸?shù)浇邮斩?,然后在接收端的單片機(jī)則將數(shù)據(jù)顯示在OLED上,并實(shí)現(xiàn)對溫度過高或過低進(jìn)行報警。另外,在接收端還通過HC05藍(lán)牙模塊將數(shù)據(jù)發(fā)送到手機(jī)APP中,方便瀏覽查閱。2 系統(tǒng)方案分析與選擇論證2.1 系統(tǒng)設(shè)計要求根據(jù)本系統(tǒng)的應(yīng)用環(huán)境,具體的技術(shù)要求如下:1.體積小巧。本系統(tǒng)主要是要用于短距離的無線數(shù)據(jù)通信,所以需要在盡可能的條件下控制大小,如果過大,會占據(jù)無謂的空間。同時,設(shè)計小巧可以在本系統(tǒng)的基礎(chǔ)上再加上其他更多的外設(shè),便于以后對于本系統(tǒng)的拓展與優(yōu)化。2.傳輸可靠。本系統(tǒng)的主要功能就是無線通信,有別于傳統(tǒng)的有線通信,將數(shù)據(jù)通過電磁波傳播,會產(chǎn)生一定的安全問題,那么為了安全可靠性,設(shè)計一個完善的系統(tǒng)就十分重要。另一方面,空氣之中存在許多電磁干擾,所以系統(tǒng)需要有一定的抗干擾能力。3.成本低。本系統(tǒng)的實(shí)現(xiàn)功能并不困難,并不需要使用昂貴的元器件與模塊,所以在滿足系統(tǒng)要求的條件下盡量節(jié)約成本,使其更加具有競爭性。2.2 主控芯片方案方案一:采用傳統(tǒng)的AT89C51系列單片機(jī)作為主控芯片,價格低廉,體積較小,操作簡單,功耗較低。方案二:采用ST公司生產(chǎn)的STM32F103ZET6單片機(jī)作為主控芯片,該芯片主頻達(dá)72MHz并有8個定時器、計數(shù)器可供選擇,功能強(qiáng)大、處理速度快、數(shù)據(jù)接口多、性價比高。在單片機(jī)開發(fā)中具有相當(dāng)重要的地位??紤]到本畢業(yè)設(shè)計的要求,可能會用到多個串口,同時需要對無線模塊進(jìn)行配置,方案一中的單片機(jī)功能比較簡單,并且容易出現(xiàn)差錯,相對來說方案二中的單片機(jī)更加穩(wěn)定與功能強(qiáng)大,另一方面,在大學(xué)課題設(shè)計中,使用后者頻率更高,對其更加熟悉,所以選擇方案二中的STM32系列單片機(jī)作為主控芯片,同時這樣也比較容易實(shí)現(xiàn)拓展與完善。2.3 無線通信模塊方案方案一:采用GSM模塊進(jìn)行通信,該模塊需要使用手機(jī)卡,是通過移動衛(wèi)星或是基站來傳遞信息,雖然每回傳輸?shù)臄?shù)據(jù)內(nèi)容較多,且傳輸距離十分遠(yuǎn),但是要內(nèi)置SIM卡,通信過程收費(fèi),不僅成本高,而且在硬件與軟件設(shè)計中也比較復(fù)雜。方案二:采用藍(lán)牙模塊進(jìn)行通信,藍(lán)牙模塊主要是使用串口方式來進(jìn)行數(shù)據(jù)傳輸,而串口方面是比較容易被其他設(shè)備連接的,容易對數(shù)據(jù)產(chǎn)生干擾。方案三:采用nRF24L01無線射頻模塊進(jìn)行通信,該模塊低功耗,價格便宜,同時采用SPI總線通信模式,操作簡單??紤]到本畢業(yè)設(shè)計的要求,同時考慮到總體設(shè)計的復(fù)雜程度與個人實(shí)際情況,我們采用方案三作為本系統(tǒng)的通信模塊。2.4 溫度傳感方案方案一:采用AD590單片集成兩端感溫電流源,該模塊廣泛應(yīng)用于不同的溫度控制場合,精度高、價格低、線性好。但是需要其他元器件進(jìn)行輔助測試,電路設(shè)計比較復(fù)雜。方案二:采用美國公司生產(chǎn)的DS18B20可組網(wǎng)數(shù)字溫度傳感器芯片,該模塊體積小巧、經(jīng)濟(jì)實(shí)惠,硬件連接簡單,具有高實(shí)用性,同時采用一線總線方式,傳輸數(shù)據(jù)簡單。在電路設(shè)計上,使用DS18B20的話,相關(guān)硬件電路設(shè)計簡單,編程容易,而AD590需要其他輔助電路,線路復(fù)雜,編程困難??紤]到本設(shè)計的溫度指標(biāo),DS18B20已經(jīng)可以基本滿足,所以選擇方案二。2.5 顯示模塊方案方案一:采用液晶LCD1602顯示信息,這是一款通過總線模式來傳輸數(shù)據(jù)的顯示模塊,容易控制但是顯示的內(nèi)容比較單一。方案二:采用LED7段數(shù)碼顯示管控制,單個數(shù)碼管顯示就需要連接需要較多引腳,同時占用總系統(tǒng)板的空間,顯示內(nèi)容也簡單。方案三:采用OLED來顯示,該顯示模塊體積小,價格便宜,顯示精度高,且可以翻頁,顯示內(nèi)容多??紤]到本畢業(yè)設(shè)計的要求,需要顯示的內(nèi)容比較多,且顯示速度與精度要求比較高,所以我們采用方案三。3 系統(tǒng)硬件電路設(shè)計具體系統(tǒng)框圖如下圖3-1、3-2所示。圖3-1 系統(tǒng)主機(jī)框圖圖3-2 系統(tǒng)從機(jī)框圖從框圖中可以看出,從機(jī)主要通過溫度采集模塊DS18B20來采集有關(guān)溫度的數(shù)據(jù),在OLED上顯示之后,通過nRF24L01無線傳輸模塊將數(shù)據(jù)發(fā)送出去,主機(jī)在接收到從機(jī)發(fā)送的數(shù)據(jù)之后,將溫度在OLED上顯示,同時判斷報警模塊是否工作。這樣一來,就達(dá)到了通過無線通信來監(jiān)控溫度的目的。接下來,將分別具體介紹系統(tǒng)的各個模塊。3.1 主控芯片最小系統(tǒng)板設(shè)計本系統(tǒng)主要使用ARM公司生產(chǎn)的基于Cortex-M3內(nèi)核的STM32F103系列單片機(jī)作為控制核心,它具有性價比高、功耗低、處理速度快、功能強(qiáng)大等優(yōu)點(diǎn),主頻達(dá)72MHz并有8個定時器、計數(shù)器可供選擇,在本系統(tǒng)中的應(yīng)用主要是對nRF24L01模塊進(jìn)行配置,選擇發(fā)送的數(shù)據(jù),對接收到的數(shù)據(jù)進(jìn)行校驗和解碼,并將發(fā)送或接收的數(shù)據(jù)和其他有效信息控制顯示在OLED顯示屏即本課題的人機(jī)交互界面上,另外還要與手機(jī)APP進(jìn)行通信。對于本系統(tǒng)來說,由于是直接使用系統(tǒng)板來操作,所以例如電源模塊、復(fù)位電路、晶振電路等相關(guān)外設(shè)都已經(jīng)集成在系統(tǒng)板上,對于設(shè)計來說更加方便了。最小系統(tǒng)板大小為5.2CM*6.2CM,共有四面排針引出的引腳,所以最小系統(tǒng)板引腳設(shè)計如下圖所示:圖3-1-1 單片機(jī)引腳圖3.2 無線收發(fā)模塊該模塊主要使用有Nordic公司生產(chǎn)的nRF24L01模塊構(gòu)成,它使用SPI通信,能實(shí)現(xiàn)點(diǎn)對點(diǎn)或是1對6的無線通信,無線通信速度最高可達(dá)到2Mbps。它與藍(lán)牙通信相比,優(yōu)點(diǎn)是低功耗,傳輸速率快,抗干擾能力強(qiáng),系統(tǒng)費(fèi)用(低速微處理器也能進(jìn)行高速射頻發(fā)射)低,更適合近距離通信。對于SPI,是英語Serial Peripheral interface的縮寫,顧名思義就是串行外圍設(shè)備接口。SPI接口主要應(yīng)用在EEPROM,F(xiàn)LASH,實(shí)時時鐘,A/D轉(zhuǎn)換器,還有數(shù)字信號處理器和數(shù)字信號解碼器之間。SPI是一種高速的,全雙工,同步的通信總線,并且在芯片的管腳上只占用四根線,節(jié)約了芯片的管腳,同時為PCB的布局上節(jié)省空間,提供方便,正是出于這種簡單易用的特性,現(xiàn)在越來越多的芯片集成了這種通信協(xié)議,STM32也有多個SPI接口。nRF24L01無線模塊工作于2.4GHz頻段,主要有4種工作方式,這樣在一定程度上更方便地進(jìn)行節(jié)能設(shè)計。而工作方式的選擇一般靠對幾個寄存器的改變來實(shí)現(xiàn)。在實(shí)際應(yīng)用中,需要對模塊內(nèi)部參數(shù)進(jìn)行配置后,才能正常工作,使其無線收發(fā)。nRF24L01的具體硬件連接圖如圖3-2-1所示。實(shí)物模塊如下圖3-2-2所示。對于nRF24L01模塊,其中2個引腳是電源輸入;3個引腳是為了模塊與單片機(jī)之間進(jìn)行SPI通信,而另外三個引腳則是對模塊進(jìn)行相關(guān)配置需要的輸入口。在軟件設(shè)計時,需要對這些引腳進(jìn)行初始化,使單片機(jī)使能引腳,再對相關(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由于同時具備自發(fā)光,不需背光源、對比度高、厚度薄、視角廣、反應(yīng)速度快、可用于撓曲性面板、使用溫度范圍廣、構(gòu)造及制程較簡單等優(yōu)異之特性,被認(rèn)為是下一代的平面顯示器新興應(yīng)用技術(shù)。LCD都需要背光,而OLED不需要,因為它是自發(fā)光的。這樣同樣的顯示,OLED效果要來得好一些。OLED具有多種尺寸大小,同時具有多種外接引腳方式,這樣一來,就存在多種數(shù)據(jù)傳輸方式,例如8080總線與4線SPI接口方式。另外,OLED并不需要高壓,直接接3.3V就可以工作了。OLED具體硬件連接如下圖所示:圖3-3-1 OLED模塊硬件連接圖3.4 溫度采集模塊該模塊采用美國DALLAS公司推出的數(shù)字測溫芯片DS18B20。它是一種“一線總線”接口的溫度傳感器,具有較強(qiáng)的抗干擾性。與傳統(tǒng)的熱敏電阻等測溫元件相比,它體積小巧、簡潔經(jīng)濟(jì),可以使用外接連接線使其在不同環(huán)境位置下工作,大大提高實(shí)用性。同時它還可以使用相當(dāng)寬的電壓范圍,只用一根總線進(jìn)行數(shù)據(jù)傳輸也使其與單片機(jī)之間的接口簡單,硬件設(shè)計方便。另外它測溫范圍廣,從零下55攝氏度到125攝氏度均可,精度可達(dá)到0.5,在組建數(shù)字溫度傳感器網(wǎng)絡(luò)方面具有十分重要的地位。與單片機(jī)連接組成系統(tǒng)時,它能直接讀出被測溫度,并且直接將數(shù)據(jù)傳輸給單片機(jī)處理。具體傳感器引腳如下圖所示:圖3-4-1 DS18B20引腳圖DS18B20具有多種封裝方式,在本系統(tǒng)電路設(shè)計中,使用的是上圖的左側(cè)封裝,因此只需要連接三個引腳即可。其中,GND引腳連接電源地,VDD引腳連接外接供電電源輸入端,DQ引腳則是溫度數(shù)據(jù)輸出口,連接到單片機(jī)I/O口,傳輸檢測到的原始溫度數(shù)據(jù)。通過該模塊測量目標(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)工作模式和自動連接工作模式,在自動連接工作模式下模塊又可分為主(Master)、從(Slave)和回環(huán)(Loopback)三種工作角色。當(dāng)模塊處于自動連接工作模式時,將自動根據(jù)事先設(shè)定的方式連接的數(shù)據(jù)傳輸;當(dāng)模塊處于命令響應(yīng)工作模式時能執(zhí)行下述所有AT命令,用戶可向模塊發(fā)送各種AT指令,為模塊設(shè)定控制參數(shù)或發(fā)布控制命令。通過控制模塊外部引腳輸入電平,可以實(shí)現(xiàn)模塊工作狀態(tài)的動態(tài)轉(zhuǎn)換。本系統(tǒng)藍(lán)牙功能主要使用HC05藍(lán)牙模塊來實(shí)現(xiàn)。模塊硬件連接如下圖所示:圖3-5-1 藍(lán)牙模塊硬件連接圖對于本系統(tǒng)使用的藍(lán)牙模塊,可首先將其設(shè)置為命令響應(yīng)模式,然后通過電腦上的軟件來具體配置參數(shù),之后直接連接到單片機(jī)時就能正常工作。具體操作位為當(dāng)模塊插入電腦時,緊緊按住模塊表面上的按鈕,當(dāng)指示燈慢閃時,說明已經(jīng)進(jìn)入相應(yīng)模式,此時松開按鈕,即可通過串口助手等進(jìn)行調(diào)試。這樣就能夠在串口助手等程序上使用AT指令來設(shè)置HC05藍(lán)牙模塊。藍(lán)牙模塊常用AT指令如下表所示:表3-5-1 常用AT指令指令功能響應(yīng)參數(shù)AT測試用OK無AT+RESET模塊復(fù)位或重啟OK無AT+ORGL恢復(fù)默認(rèn)狀態(tài)OK無AT+NAME=模塊命名OKParam:藍(lán)牙設(shè)備名稱AT+ROLE=設(shè)置模塊角色OKParam:主要有:0從角色;1主角色;2回環(huán)角色AT+UART?詢問串口參數(shù)例:9600,0,1三個數(shù)字分別對應(yīng)波特率,停止位與校驗位3.6 報警模塊為了保證該系統(tǒng)具有一定的警示功能,本設(shè)計采用了電式蜂鳴器作為聲音報警部分,體積小,方便安裝。當(dāng)檢測到溫度不在預(yù)定范圍內(nèi)時,蜂鳴器就會正常工作,發(fā)出聲音。蜂鳴器作為發(fā)聲元件,主要的類型可以分為有源蜂鳴器和無源蜂鳴器。無源蜂鳴器需要在兩端施加直流電壓就可以發(fā)出聲音,而有源蜂鳴器則需要在兩端施加具有一定周期的電壓,例如正弦波或方波才可發(fā)出聲音。根據(jù)不同的用戶需求,需要選擇不同的蜂鳴器種類,具體根據(jù)設(shè)計決定。本設(shè)計采用的是有源蜂鳴器,只需要通過一個三極管來驅(qū)動即可使蜂鳴器正產(chǎn)工作。具體硬件連接如下圖所示:圖3-6-1 報警模塊硬件連接圖3.7 電源模塊電源電路提供系統(tǒng)所需電壓如3.3V和5V。通過外接電源,接入大于5V的電壓,然后通過LM7805芯片將電壓穩(wěn)到5V,之后再使用LM1117芯片將電壓穩(wěn)到3.3V從而達(dá)到本設(shè)計的要求電源。對于本系統(tǒng)來說,復(fù)位、晶振和指示電路已集成在STM32F103ZET6開發(fā)板上,所以只要通過充電寶直接供給單片機(jī),就能得到相應(yīng)電壓。具體硬件連接如下圖所示:圖3-7-1 電源模塊硬件連接圖4 軟件部分設(shè)計與實(shí)現(xiàn)4.1 Keil軟件介紹本系統(tǒng)中的軟件設(shè)計基本上都是通過Keil Vision5來編程實(shí)現(xiàn)的。Keil是一款功能強(qiáng)大的C語言軟件開發(fā)系統(tǒng),同時Keil與多個單片機(jī)公司之間具有合作關(guān)系,所以可以直接通過軟件自帶的內(nèi)容來構(gòu)建相應(yīng)單片機(jī)的環(huán)境。與此同時,Keil在使用過程中簡單方便,多處具有人性化設(shè)計,可以適應(yīng)不同人的編程習(xí)慣。在軟件設(shè)計過程中,該軟件也可以自由導(dǎo)出導(dǎo)入相關(guān)的庫文件,運(yùn)行過程中也可以通過設(shè)計節(jié)點(diǎn)來探尋出現(xiàn)問題的地方。Keil還包含兩個ARM公司的C/C+編譯器、匯編器和連接器,同時高度優(yōu)化的運(yùn)行庫能優(yōu)化代碼大小和性能。軟件包能夠隨時被導(dǎo)入到MDK或DS-MDK中,使相關(guān)的設(shè)備能不需要通過工具鏈來獲得技術(shù)支持,它們包括設(shè)備支持、CMSIS庫、中間設(shè)備、板級支持、代碼模板和示例項目。4.2 系統(tǒng)總體程序流程設(shè)計對于系統(tǒng)的總體設(shè)計,是對于無線通信的一個簡要流程,主要是要做到主機(jī)與從機(jī)之間的有效連接以及對數(shù)據(jù)的處理與顯示。首先是從機(jī)部分的溫度采集,當(dāng)數(shù)據(jù)進(jìn)行處理后在OLED上顯示,再通過nRF24L01無線模塊傳輸?shù)街鳈C(jī)中,最后在主機(jī)當(dāng)接收到數(shù)據(jù)后,進(jìn)行處理后在OLED顯示屏中顯示溫度數(shù)據(jù)等內(nèi)容。其中,關(guān)鍵點(diǎn)在于數(shù)據(jù)傳輸過程中的誤碼亂碼以及編碼解碼,這就需要做好主從機(jī)之間的通信協(xié)議。具體流程圖如圖4-2-1所示。圖4-2-1 系統(tǒng)總體流程框圖4.3 系統(tǒng)主機(jī)程序流程設(shè)計對于系統(tǒng)的主機(jī)程序流程,主要是對于數(shù)據(jù)的接收與處理。首先是對單片機(jī)進(jìn)行初始化后,再對無線通信模塊與OLED顯示屏以及藍(lán)牙模塊初始化,然后設(shè)置無線模塊為接收模式,使主機(jī)能與從機(jī)配對,讓主機(jī)能夠接受到從機(jī)發(fā)送的數(shù)據(jù),最后將數(shù)據(jù)處理后顯示到OLED顯示屏上并判斷是否觸發(fā)報警模式,同時,將溫度數(shù)據(jù)通過藍(lán)牙串口發(fā)送到手機(jī)APP中。具體流程如下圖所示:圖4-3-1 系統(tǒng)主機(jī)流程框圖4.4 系統(tǒng)從機(jī)程序流程設(shè)計對于系統(tǒng)的從機(jī)程序設(shè)計,主要是對于溫度數(shù)據(jù)的處理與發(fā)送??傮w思路與主機(jī)程序類似,首先對于單片機(jī)與OLED顯示屏還有DS18B20溫度傳感器進(jìn)行初始化,將無線模塊設(shè)置為發(fā)送模式,之后由單片機(jī)讀取溫度數(shù)據(jù),經(jīng)過處理后顯示在OLED上并通過nRF24L01無線傳輸模塊發(fā)送出去。具體流程圖如下圖所示:圖4-4-1 系統(tǒng)從機(jī)流程框圖4.5 無線模塊軟件流程設(shè)計對于nRF24L01無線模塊,并不像串口那樣通信簡單,對于其內(nèi)部的寄存器需要配置好,才能實(shí)現(xiàn)具體的功能,不然只會出錯。當(dāng)發(fā)送數(shù)據(jù)時,首先需要將模塊設(shè)置為發(fā)送模式,即配置TX_Mode,然后將接收處的地址與需要發(fā)送的數(shù)據(jù)寫入緩沖區(qū),之后將CE置為高后,就將數(shù)據(jù)包發(fā)出,此時發(fā)送端會進(jìn)入接收模式,如果接收到應(yīng)答信號,則此次發(fā)送數(shù)據(jù)成功,同時模塊就會進(jìn)入空閑模式,直到下次需要發(fā)送數(shù)據(jù)。否則會自動進(jìn)行重發(fā),直至達(dá)到最大重發(fā)次數(shù),產(chǎn)生中斷,通知單片機(jī)。具體流程如下圖4-5-1所示。接收數(shù)據(jù)時,首先還是需要將模塊配置為接收模式,即配置RX_Mode,此時就設(shè)置好了接收端的地址。然后等待數(shù)據(jù)的到來,此時就是類似于空閑模式,而當(dāng)收到數(shù)據(jù)包后,首先會對相關(guān)的地址數(shù)據(jù)進(jìn)行解析,只有當(dāng)?shù)刂菲ヅ鋾r,才會將之后的數(shù)據(jù)包存入緩存區(qū)中,同時轉(zhuǎn)變?yōu)榘l(fā)送模式,回傳應(yīng)答信號。這樣就完成了一次數(shù)據(jù)包的正常通信。具體流程如下圖4-5-2所示。圖4-5-1 無線模塊發(fā)送流程圖 圖4-5-2 無線模塊接收流程圖4.6 溫度檢測程序流程設(shè)計溫度檢測模塊軟件設(shè)計DS18B20的測溫原理遵循嚴(yán)格的單總線協(xié)議,需要采用嚴(yán)格的信號時序,以保證數(shù)據(jù)的完整性。DS18B20一般有6種信號類型。單片機(jī)讀取模塊溫度的過程一般為:復(fù)位,發(fā)SKIP ROM信號,發(fā)開始轉(zhuǎn)換命令,延時,再復(fù)位,再發(fā)SKIP ROM信號,發(fā)讀存儲器命令,連續(xù)讀出兩個字節(jié)數(shù)據(jù),最后結(jié)束。如此反復(fù),完成所有操作,在實(shí)際程序設(shè)計中,一般先通過軟件來檢測溫度模塊是否存在,只有模塊存在的條件才能進(jìn)行下一步操作,之后就會上述步驟來讀取溫度數(shù)據(jù),而在主程序中只要將函數(shù)的返回值設(shè)定為溫度值就可以只用一個整合后的函數(shù)來讀取溫度。具體流程設(shè)計如圖4-6-1所示:圖4-6-1 溫度流程圖4.7 顯示模塊流程設(shè)計對于OLED顯示模塊,雖然采用是SPI接口方式,但是若想達(dá)到顯示正確數(shù)據(jù)的目標(biāo),需要的操作并不難。首先需要對其余單片機(jī)相連的I/O口進(jìn)行初始化,然后對模塊進(jìn)行初始化,最后只要通過函數(shù)將相關(guān)內(nèi)容顯示到模塊上即可。在顯示函數(shù)上,由于顯示屏主要是由一個個點(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ī)中使用了HC05藍(lán)牙模塊,因可以使用此模塊與手機(jī)APP進(jìn)行通信,這也是本系統(tǒng)題目設(shè)計內(nèi)容之一。藍(lán)牙之間的通信主要是串口通信,所以在主機(jī)上需要占用兩個串口I/O口,而手機(jī)APP的設(shè)計則借助于APPInventor。對于手機(jī)與模塊之間的藍(lán)牙通信,首先需要設(shè)置APP端為藍(lán)牙服務(wù)器或是服務(wù)端,但是串口通信一般為雙向的,只要串口連接上,之后就可以數(shù)據(jù)互傳,所以,在本設(shè)計中將APP端設(shè)置為客戶端,用來接收單片機(jī)發(fā)送的溫度數(shù)據(jù)。其次,需要使單片機(jī)上的藍(lán)牙模塊與手機(jī)藍(lán)牙連接,因為一旦連接上后,就能實(shí)現(xiàn)單片機(jī)與APP之間的串口通信,這樣就需要配置藍(lán)牙模塊的相關(guān)參數(shù),使其能夠完整正確的傳輸數(shù)據(jù)。最后需要實(shí)現(xiàn)的就是APP對溫度數(shù)據(jù)的顯示與更新。具體流程設(shè)計如下圖所示:圖4-7-1 APP流程設(shè)計5 系統(tǒng)調(diào)試與結(jié)果5.1 調(diào)試步驟步驟一 完成硬件電路連接。步驟二 將OLED顯示模塊程序?qū)懭腴_發(fā)板,看是否能夠正常顯示字符。步驟三 將DS18B20溫度傳感器與OLED一起接入開發(fā)板,寫入測溫程序,看顯示屏是否能夠正常顯示溫度。步驟四 將DS18B20溫度傳感器與OLED顯示模塊一起接入開發(fā)板,寫入測溫程序,測試能否在OLED上同時顯示。步驟五 將nRF24L01無線芯片分別與兩塊開發(fā)板連接,寫入收發(fā)程序,測試是否能夠正常收發(fā)。步驟八 將溫度檢測,報警模塊,無線收發(fā)與顯示,檢測系統(tǒng)能否將發(fā)送端采集的溫度時間數(shù)據(jù)測出并發(fā)送,在接收端的OLED顯示屏上顯示出來。5.2 測試環(huán)境基于單片機(jī)的無線通信系統(tǒng)的實(shí)物測試,在2018年3月20日在浙江師范大學(xué)數(shù)理與信息學(xué)院電子電工開放實(shí)驗室內(nèi)進(jìn)行5.3 測試設(shè)備測試用的無線通信系統(tǒng)實(shí)物圖如下圖所示,所用電源為充電寶。具體測試結(jié)果如下圖所示:圖5-2-1 從機(jī)實(shí)際測試圖圖5-2-2 主機(jī)實(shí)際測試圖從上述的實(shí)際測試圖可以看出,從機(jī)通過DS18B20檢測到室溫并通過nRF24L01模塊發(fā)送,主機(jī)接收到相關(guān)數(shù)據(jù)后顯示在OLED上。主機(jī)顯示屏上的溫度數(shù)據(jù)與從機(jī)上顯示的相同,可見,無線通信成功了。5.4 測試目的首先驗證在從機(jī)中是否能夠采集到當(dāng)前室溫,并且是否能在OLED顯示屏上顯示,其次,觀察從機(jī)是否能夠與主機(jī)進(jìn)行通信,將數(shù)據(jù)發(fā)送給主機(jī),最后觀察主機(jī)是否能將正確數(shù)據(jù)顯示在OLED顯示屏上,并且相應(yīng)的報警模式是否工作。另外,還有手機(jī)APP是否能接收到正確的溫度數(shù)據(jù)。5.5 測試結(jié)果基于單片機(jī)的無線通信系統(tǒng)在實(shí)驗室進(jìn)行實(shí)際測試,得到以下結(jié)果:(1) 當(dāng)接通電源后,單片機(jī)與其他模塊均進(jìn)行初始化,經(jīng)過在10s內(nèi)的一段時間后,在從機(jī)的顯示屏上顯示出當(dāng)前室溫。(2) 系統(tǒng)的主機(jī)在3s內(nèi)接收到了從機(jī)發(fā)送的數(shù)據(jù),并在顯示屏上顯示了與從機(jī)顯示屏上相同的數(shù)據(jù)。(3) 當(dāng)溫度數(shù)據(jù)不在預(yù)定的范圍內(nèi)時,蜂鳴器進(jìn)行警報。(4) 主機(jī)中藍(lán)牙模塊與手機(jī)進(jìn)行配對后,手機(jī)能夠收到主機(jī)發(fā)送的相關(guān)溫度數(shù)據(jù),并進(jìn)行顯示。6 結(jié)論對于本系統(tǒng)設(shè)計,我深深感到了自己的不足,也對于項目具有一定程度上的不自信,好在有指導(dǎo)老師張老師的幫助導(dǎo)下,經(jīng)過努力,本論文已經(jīng)基本完成了預(yù)期的目標(biāo),相關(guān)總結(jié)如下:無線通信一直是單片機(jī)甚至是日常生產(chǎn)生活中十分常見的領(lǐng)域,除了在生活中人們十分常用以外,生產(chǎn)中也是逐漸融入無線通信的內(nèi)容。本系統(tǒng)設(shè)計的基于單片機(jī)的無線通信系統(tǒng)就是一個典型例子。本系統(tǒng)主要是采用了溫度這一物理量來作為傳輸數(shù)據(jù),是因為溫度無處不在,無論是在日常生活或者是在工業(yè)生產(chǎn)上,都起著至關(guān)重要的作用,同時溫度也是比較容易獲取的物理量,而本系統(tǒng)的主要實(shí)現(xiàn)功能還是數(shù)據(jù)的無線通信。另外,還有對于藍(lán)牙APP的設(shè)計,由于本身接觸相關(guān)內(nèi)容并不多,使用了易于上手的APPInventor來設(shè)計軟件,由此也產(chǎn)生過許多問題,所幸在同學(xué)與老師幫助下成功達(dá)到了目標(biāo)。在本系統(tǒng)的設(shè)計過程中也遇到了一些問題,比如單片機(jī)的編程比較復(fù)雜,需要將多個功能實(shí)現(xiàn)程序整合在一起,這樣就得將整體程序進(jìn)行比較好的分類與時序排列,使整個系統(tǒng)不出現(xiàn)問題。還有對于溫度傳感器的速率不夠快與準(zhǔn)確,無線傳輸模塊的距離較短,傳輸數(shù)據(jù)具有誤碼亂碼的等問題需要解決。在藍(lán)牙程序設(shè)計方面,雖然是有易于上手的模塊設(shè)計,但是不熟練也發(fā)生過一些問題,例如藍(lán)牙客戶端設(shè)置不能,無法正確顯示數(shù)據(jù)等。另外,對nRF24L01無線傳輸模塊傳輸程序的編程也具有一定難度。能夠最終完成整個系統(tǒng),離不開多次努力與嘗試還有指導(dǎo)老師的幫助。通過這次的學(xué)習(xí)與設(shè)計,我學(xué)到了許多東西,例如對于溫度傳感器的應(yīng)用,無線傳輸模塊的使用以及無線傳輸數(shù)據(jù)出現(xiàn)問題時應(yīng)該如何解決等,這些對于理論知識來說是完全不夠的,是需要不斷具體的實(shí)踐與應(yīng)用的,再次印證了只有實(shí)踐才能出真理。與此同時,本系統(tǒng)設(shè)計也還具有一些不盡人意的地方,需要不斷改進(jìn)。參考文獻(xiàn)1冉偉剛.溫室大棚數(shù)據(jù)采集系統(tǒng)D.蘭州大學(xué),2010.2張家銘.基于手機(jī)藍(lán)牙控制的智能電風(fēng)扇J.通訊世界,2017(06):282-283.3孫永堅.基于無線傳感器網(wǎng)絡(luò)的智能家居遠(yuǎn)程監(jiān)控系統(tǒng)研究與設(shè)計D.吉林大學(xué),2014. 4鄭磊.基于GPS的精確農(nóng)業(yè)自動變量施肥控制系統(tǒng)的研究D.吉林大學(xué),2009. 5邢艷芳,張延冬.基于Zynq的OLED驅(qū)動設(shè)計J.液晶與顯示,2014,29(02):224-228. 6劉志平,趙國良.基于nRF24L01的近距離無線數(shù)據(jù)傳輸J.應(yīng)用科技,2008(03):55-58. 7戴鑫.網(wǎng)絡(luò)移動機(jī)器人遠(yuǎn)程監(jiān)控系統(tǒng)的研究與設(shè)計D.貴州大學(xué),2009. 8張杰.基于MC9328MXL處理器的CMMB移動電視信號接收系統(tǒng)的設(shè)計與實(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)的移動多媒體廣播接收與播放系統(tǒng)開發(fā)D.廈門大學(xué),2008. 11馬傳文.基于DSP的新一代漁業(yè)基站電臺的設(shè)計與實(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 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 Measurement & Instruments (ICEMI), Qingdao, 2015, pp. 1652-1657.致謝 從選題到完成畢業(yè)設(shè)計,總共經(jīng)過了大約五個月的時間,在此我要特別感謝我的指導(dǎo)老師張老師,感謝他的耐心指導(dǎo)與幫助。在整個畢業(yè)設(shè)計過程中,其實(shí)我是擠出時間來完成的,主要是要準(zhǔn)備考研內(nèi)容,這也給了我很大壓力,而在此過程中,張老師也是舵機(jī)鼓勵與幫助我,讓我不至于被多件事務(wù)弄得焦頭爛額。與此同時張老師也建議我早做準(zhǔn)備,虛心請教,多查閱資料與文獻(xiàn),并多動手實(shí)踐,我覺得這對我來說十分重要,因為我們本就是工科,實(shí)踐動手有時是比理論知識更加重要的。還有老師對于我查找資料的指導(dǎo)也讓我獲益匪淺,再次感謝張老師。 原本在開題時對本設(shè)計的題目已經(jīng)有了一定了解,而在具體實(shí)際過程中發(fā)現(xiàn)其實(shí)并不簡單。經(jīng)常會出現(xiàn)這樣那樣的問題,讓我一時之間解決不了,這里我就要感謝我們系的其他幾位老師對我的幫助了,不僅在材料上給予了我支持,同時還有軟件設(shè)計上的指導(dǎo)。另外,同學(xué)給我的幫助也是不可忽視的,有時當(dāng)我有了一些自己不明白的問題時,只要找了同學(xué)幫助,就會有種豁然開朗的感受。 最后還要感謝我的母校與曾經(jīng)給予我影響的老師們,我是在電子信息工程這個大家庭里成長起來的,無論以后我從事什么工作或是完成什么任務(wù),我覺得都離不開這大學(xué)四年里的經(jīng)歷與學(xué)習(xí)。謝謝你們!附錄1 系統(tǒng)設(shè)計總體電路圖圖1-1 系統(tǒng)設(shè)計電路圖2 系統(tǒng)設(shè)計PCB圖圖2-1 系統(tǒng)設(shè)計PCB圖3 實(shí)際測試圖與APP測試圖圖3-1 從機(jī)實(shí)際測試圖圖3-2 主機(jī)實(shí)際側(cè)視圖圖3-3 手機(jī)APP測試圖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; u8 tmp_buf33;delay_init(); /延時函數(shù)初始化 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); /設(shè)置NVIC中斷分組2:2位搶占優(yōu)先級,2位響應(yīng)優(yōu)先級 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();/更新顯示到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 delay_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= ; /檢測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=NRF24L01_RxPacket(tmp_buf);if(ii=0)/一旦接收到信息,則顯示出來.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ù)號 OLED_Refresh_Gram();/更新顯示到OLED else delay_us(100); t+;if(t=10000)/大約1s鐘改變一次狀態(tài)t=0;/LED0=!LED0; /通過藍(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=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ù)號/temperature=-temperature;/轉(zhuǎn)為正數(shù)/fuhao=-;/else OLED_ShowChar(30,52, ,12,1);/去掉負(fù)號/fuhao= ;/OLED_ShowNum(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;/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,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端口時鐘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);/

注意事項

本文(基于單片機(jī)的無線通信系統(tǒng))為本站會員(good****022)主動上傳,裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng)(點(diǎn)擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因為網(wǎng)速或其他原因下載失敗請重新下載,重復(fù)下載不扣分。




關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!