劉 寅,李 曉,徐龍飛,趙瑩瑩
(中北大學(xué) 信息與通信工程學(xué)院,山西 太原 030051)
現(xiàn)有的有線溫濕度系統(tǒng)使用時安裝非常復(fù)雜,接線容易混亂[1],因此,本文開發(fā)了基于C8051F340的溫濕度監(jiān)測系統(tǒng)。該系統(tǒng)使用無線射頻收發(fā)模塊nRF24L01P來代替?zhèn)鹘y(tǒng)線纜,使整個系統(tǒng)簡單且便于安裝;使用數(shù)字式AM2302傳感器,省去A/D轉(zhuǎn)換過程,能夠同時直接獲得溫度和濕度的數(shù)字信號,調(diào)試方便;使用C8051F340單片機為主控芯片來控制整個系統(tǒng)。
本系統(tǒng)由兩部分組成,上位機部分和下位機部分。在下位機部分,由AM2302傳感器實時監(jiān)測溫度和濕度的數(shù)字信號,通過I/O口將數(shù)字信號發(fā)送給主芯片C8051F340,在單片機的控制下溫、濕度數(shù)據(jù)再通過nRF24L01P模塊以無線射頻方式發(fā)送到另一個nRF24L01P模塊中,從而將溫、濕度數(shù)據(jù)傳到上位機部分,同時,主芯片將溫、濕度數(shù)據(jù)顯示在下位機的液晶屏上。在上位機部分,C8051F340主部件會將從無線模塊接收到的溫、濕度數(shù)據(jù)做兩種處理:一種是將數(shù)據(jù)通過液晶模塊顯示出來;另一種是通過串口UART0進行通信將數(shù)據(jù)傳給PC機,通過PC機的軟件開發(fā)可以對溫度和濕度數(shù)據(jù)進行顯示、處理和繪圖。溫、濕度監(jiān)測系統(tǒng)的結(jié)構(gòu)框圖如圖1所示。
AM2302是一款4引腳的具有高可靠性和穩(wěn)定性的數(shù)字式傳感器。其具有響應(yīng)速度快、抗干擾性強、性價比高、體積微小和超低功耗等優(yōu)點。數(shù)據(jù)傳送只占用一個I/O接口使用起來非常方便。只需要將DATA引腳與C8051F340的一個I/O端口引腳連接,由于連接線短于18m,DATA引腳接5kΩ上拉電阻,另外再連接VDD引腳和GND引腳即可。
圖1 溫、濕度監(jiān)測系統(tǒng)結(jié)構(gòu)框圖
nRF24L01P是一款8引腳的工作頻率為2.4GHz~2.5GHz的無線收發(fā)模塊,其數(shù)據(jù)傳送通過單片機上的SPI總線接口實現(xiàn),具有非常低的電功率損耗,在其傳輸狀態(tài)下最低電損耗可達到11mA[2]。無線模塊的連接方式是將nRF24L01P的CSN、SCK、MISO、MOSI這4個引腳分別與單片機的4個I/O口引腳連接;nRF24L01P的CE引腳是芯片使能端,直接連接電源VDD;CSN是片選端;SCK是輸入SPI時鐘端;MISO是主機輸入從機輸出端;MOSI是主機輸出從機輸入端。無線模塊和溫濕度傳感器與單片機的連接如圖2所示。
單次采集時,AM2302通過單總線接口給單片機傳送40bit溫、濕度數(shù)據(jù)??偩€在上拉電阻作用下在被釋放時一直被拉高,首先C8051F340通過拉低總線1ms~10ms然后釋放總線20μs~40μs的方式對AM2302進行初始化。隨后C8051F340隨時檢測AM2302是否返回80μs的低電平回饋信號來表示已準備好發(fā)送數(shù)據(jù)了。若未收到回饋信號則結(jié)束;若收到,隨后AM2302會拉高總線80μs,接下來就會給單片機發(fā)送40bit數(shù)據(jù);若AM2302未拉高總線則結(jié)束。
圖2 無線模塊和溫濕度傳感器與單片機的連接圖
被傳送的數(shù)據(jù)是0還是1是這樣分辨的,50μs的低電平隨后70μs的高電平表示1,而50μs的低電平隨后26μs~28μs的高電平表示0。溫、濕度數(shù)據(jù)采集流程如圖3所示。
圖3 溫、濕度數(shù)據(jù)采集流程圖
C8051F340拉低nRF24L01P的引腳CE使其運行在待機狀態(tài),并對其控制寄存器進行狀態(tài)寫入以準備接受單片機傳來的數(shù)據(jù)。C8051F340通過地址TX_ADDR的辨識,將數(shù)據(jù)TX_PLD利用SPI總線接口傳送給nRF24L01P。C8051F340將PRIM_RX拉低,然后再拉高CE超過12μs,將nRF24L01P置于發(fā)送狀態(tài),隨后nRF24L01P上電向外傳送數(shù)據(jù)。若數(shù)據(jù)成功傳送,nRF24L01P就會收到回饋信號,然后寄存器狀態(tài)位TX_DS會被置于高狀態(tài)從而TX_FIFO中的數(shù)據(jù)被刪除;若沒有收到應(yīng)有的回饋信息,則返回重新開始,數(shù)據(jù)將被重新傳送。單次數(shù)據(jù)發(fā)送流程如圖4所示。
圖4 nRF24L01P單次數(shù)據(jù)無線發(fā)送流程圖
液晶顯示模塊使用前需要先對其進行初始化,然后按照所需的功能進行程序指令的調(diào)用即可。首先用區(qū)域填涂指令LCDDrawDollop將屏幕平鋪為紅色,然后用font指令設(shè)置溫濕度數(shù)據(jù)的文字大小、顏色和背景顏色,再用字符串顯示指令GUI_DisplayStr顯示溫、濕度數(shù)據(jù)。
經(jīng)過實地測試,本文設(shè)計的溫濕度監(jiān)測系統(tǒng)運行穩(wěn)定可靠,其無線傳輸距離在無障礙的情況下達到了80m,具有一定的實際應(yīng)用價值。
[1] 朱玉穎,蔡占輝.基于nRF24L01的遠程溫度檢測系統(tǒng)設(shè)計[J].自動化技術(shù)與應(yīng)用,2010(5):56-58.
[2] 莢慶,王代華,張志杰.基于nRF24L01的無線數(shù)據(jù)傳輸系統(tǒng)[J].現(xiàn)代電子技術(shù),2008(7):68-71.