基于nRF24L01的無線溫濕度檢測系統(tǒng)設(shè)計
引言
在當(dāng)今的工農(nóng)業(yè)生產(chǎn)中,需要進行溫濕度采集的場合越來越多,準(zhǔn)確方便地測量溫度變得至關(guān)重要。傳統(tǒng)的有線測溫方式存在著布線復(fù)雜,線路容易老化,線路故障難以排查,設(shè)備重新布局要重新布線等問題。特別是在有線網(wǎng)絡(luò)不通暢或由于現(xiàn)場環(huán)境因素的限制而不便架設(shè)線路的情況下,給溫濕度的數(shù)據(jù)釆集帶來了很大的麻煩。要想監(jiān)測到實時的溫濕度數(shù)據(jù),就必須采用無線傳輸?shù)姆绞綄?shù)據(jù)進行采集、發(fā)送、接收并對無線采集來的數(shù)據(jù)通過上位機進行處理,以控制并監(jiān)測設(shè)備的運行情況,減少不必要的線路設(shè)備開支。
1 系統(tǒng)組成框圖
本文設(shè)計的多路無線溫濕度檢測系統(tǒng)將單片機檢測控制系統(tǒng)和射頻通信系統(tǒng)相結(jié)合,系統(tǒng)由主機和從機兩部分構(gòu)成,從機負責(zé)檢測溫濕度,并將釆集到的數(shù)據(jù)通過射頻系統(tǒng)發(fā)送給主機,主機接收從機發(fā)送過來的信號,并通過串口和PC機進行通信,記錄數(shù)據(jù),同時可通過PC機設(shè)定報警數(shù)據(jù)上下限。其系統(tǒng)組成框圖如圖1所示。
2 系統(tǒng)硬件電路
系統(tǒng)的溫濕度數(shù)據(jù)采用數(shù)字式溫濕度傳感器DHT11進行數(shù)據(jù)釆集,以51系列增強型單片機STC12C5A08S2為核心和無線射頻nRF24L01構(gòu)成收發(fā)電路,從機使用液晶LCD1602顯示,主機顯示則使用LCD12864,整個顯示系統(tǒng)可與PC上位機相連接。
2.1 溫濕度采集電路設(shè)計
DHT11是一款含有已校準(zhǔn)數(shù)字信號輸出的溫濕度復(fù)合傳感器。該傳感器應(yīng)用專用的數(shù)字模塊采集技術(shù)和溫濕度傳感技術(shù),具有極高的可靠性與卓越的長期穩(wěn)定性。圖2所示為其溫度采集電路。DHT11傳感器包括一個電阻式感濕元件和一個NTC測溫元件,可與高性能8位單片機相連接。校準(zhǔn)系數(shù)以程序的形式儲存在OTP內(nèi)存中,傳感器內(nèi)部在檢測信號的過程中可調(diào)用這些校準(zhǔn)系數(shù)。單線制串行接口可使系統(tǒng)集成變得簡易而快捷,而且信號傳輸距離可達20m以上。當(dāng)連接線長度短于20m時,應(yīng)使用5kΩ上拉電阻,大于20m時,應(yīng)根據(jù)情況使用合適的上拉電阻。
2.2 無線發(fā)射、接收電路設(shè)計
nRF24L01是NORDIC公司生產(chǎn)的一款無線通信芯片,采用FSK調(diào)制方式,內(nèi)部集成有NORDIC自己的EnhancedShortBurst協(xié)議。可以實現(xiàn)點對點或是1對6的無線通信。無線通信速度可以達到2Mb/s。NORDIC無線發(fā)射、接收芯片nRF24L01的電路原理圖如圖3所示。
nRF24L01是單片射頻收發(fā)芯片,工作于2.4?2.5GHz的ISM頻段,芯片內(nèi)置頻率合成器、功率放大器、晶體振蕩器和調(diào)制器等功能模塊,輸出功率和通信頻道可通過程序進行配置。nRF24L01芯片的能耗非常低,以一5dBm的功率發(fā)射時,工作電流只有10.5mA,接收時的工作電流只有18mA,它具有多種低功率工作模式,節(jié)能環(huán)保,設(shè)計方便。
nRF24L01無線收發(fā)模塊的各管腳功能如表1所列,圖4所示是nRF24L01與單片機連接時的電路圖。
本無線發(fā)射接收模塊需要的電源為1.9?3.6V,本系統(tǒng)中采用3.3V直流電源來直接對無線發(fā)射接收模塊供電,5V電源經(jīng)ASM1U7-3.3芯片轉(zhuǎn)換后可得到穩(wěn)定的直流電源,其電源轉(zhuǎn)換電路如圖5所示。
2.3 串行通信模塊
主機單片機接收到nRF24L01的數(shù)據(jù)后,經(jīng)MAX232電平轉(zhuǎn)換可實現(xiàn)單片機程序下載與升級,同時可實現(xiàn)單片機與PC機(上位機)的通信,以便將顯示數(shù)據(jù)信息通過此電路傳送到PC機,并在PC機上顯示,其串行通信電路如圖6所示。
3 軟件設(shè)計
3.1 下位機軟件
本系統(tǒng)使用C語言編程,應(yīng)根據(jù)設(shè)計任務(wù)的要求確定系統(tǒng)程序的完整結(jié)構(gòu),盡可能釆用模塊化程序設(shè)計方法,將任務(wù)劃分為相對獨立的功能模塊,明確各模塊的功能、時間順序和相互關(guān)系,系統(tǒng)的軟件設(shè)計可以分為幾個部分,首先是各個模塊的底層驅(qū)動程序編寫,而后是系統(tǒng)聯(lián)機調(diào)試,最后再編寫上位機的系統(tǒng)程序。
主程序是控制和管理的核心,系統(tǒng)上電后,首先進行初始化,系統(tǒng)開始正常運轉(zhuǎn)后,再進行溫、濕度的監(jiān)測與處理等操作。
3.2 上位機軟件設(shè)計
系統(tǒng)上位機能完成的功能有顯示串口號,提示串口是否已被成功打開;同時,上位機能夠與下位機同步顯示溫度,而且能夠?qū)崟r曲線顯示溫度;上位機能夠設(shè)置下限溫濕度和上限溫濕度,當(dāng)高于上限溫濕度或低于下限溫濕度時,還能夠報警。將主機單片機的控制電路串行接口與電腦串口經(jīng)過電平轉(zhuǎn)換連接后,選擇正確的通信協(xié)議,設(shè)置好波特率,即可進行通信。圖7所示是上位機操作界面圖。
上位機軟件可在PC機上通過VC6.0編寫,主要是對MSComm控件及CserialPort類進行操作。
首先是串口設(shè)置。本系統(tǒng)利用的是CSERIAL-PORT類中的初始化函數(shù)InitPort(this,nport,nbtl,'N',8,1,m_dwCommEvents,512),其中nport為串口號,nbtl為波特率,可利用串口設(shè)置對話框中的串口號和波特率兩個組合框分別得到初始化函數(shù)中的nport和nbtl。
其次是對溫濕度上下限的設(shè)置??衫肅SERIALPORT類中的啟動串口監(jiān)測進程函數(shù)Start-Monitoring、發(fā)送字符串函數(shù)WriteToPort以及關(guān)閉串口進程StopMonitoring來進行溫度上下限的設(shè)置,其信息通過這些函數(shù)發(fā)送到串口,單片機從RS232上收到數(shù)據(jù)后,與自身的溫度相比較,再進行相應(yīng)的處理。
第三是曲線顯示。動態(tài)曲線顯示可利用CHis-togram類中的SetRange(200,400),SetPos(temp)函數(shù),SetRange設(shè)置上下極限值,SetPos是在圖上顯示相應(yīng)的數(shù)據(jù)點,temp是從單片機傳來的溫濕度數(shù)據(jù)的處理結(jié)果,具體的移動曲線可由CHistogram類中函數(shù)實現(xiàn)。
4 結(jié)論
經(jīng)測試,在發(fā)射接收模塊沒加天線的情況下,無線發(fā)射接收模塊在大多數(shù)情況下的數(shù)據(jù)傳輸距離在200m左右,發(fā)射頭發(fā)射功率、接收頭接收靈敏度等因素可能會影響傳輸距離,若外加天線,則會大大增加傳輸距離。另外,在調(diào)試過程中,振蕩電阻必須匹配,否則接收距離會變短甚至無法接收。
本系統(tǒng)的數(shù)字信號由單片機采樣,基于DHT11的數(shù)字溫濕度傳感器構(gòu)成的實時監(jiān)控系統(tǒng)具有精度高、抗干擾能力強、電路簡單等諸多優(yōu)點。然后利用單片機與PC機的通信可將數(shù)據(jù)送到PC機進行數(shù)據(jù)的存儲、后期處理與顯示。本系統(tǒng)數(shù)據(jù)處理功能強大、顯示直觀、界面友好、性價比高,可廣泛應(yīng)用于工業(yè)控制、儀器、儀表、農(nóng)業(yè)養(yǎng)殖及智能家居等諸多領(lǐng)域。
20210828_6129107c678bb__基于nRF24L01的無線溫濕度檢測系統(tǒng)設(shè)計