何穎
(西安思源學院,電子信息工程學院,陜西,西安 710038)
目前在我們國家,氣象監測技術已經較為成熟,氣象臺站普、自動氣象觀測系統已經大面積鋪設,并且在一些人類難以生存的苛刻環境也有氣象站或者是氣候站的布置,這些氣象觀測系統的數據傳輸使用衛星通信。盡管我國的氣象監測技術已經有了巨大的發展,但相較于發達國家來說我國仍有不小的差距,尤其是在氣象數據采集這一自動氣象站的關鍵技術上我們國家仍有很大發展提高空間。作為自動氣象站的核心技術,數據采集的主要作用就是數據采樣、處理、傳輸以及存儲[1-2],其性能主要取決于測量的精度、系統的穩定性、可靠性以及靈活性。目前來說,強實時、多參數、高精度等方面是數據采集的主要展望。對于采集數據的存儲來說,容量大、體積小、攜帶方便則是其發展關鍵。多通信方式(有線、無線)以及遠距離數據傳輸則是數據傳輸技術的發展目標,可模塊化設計以及可靈活組態的數據采集系統使用較少。因此,國內僅有部分觀測系統采用自己研發的數據采集器,這些數據采集器的功能單一、靈活性以及重配置性差,其應用范圍受到局限,僅適用于一些特定場合[3-4]。鑒于以上研究背景,設計一種基于nRF24L01的無線氣象數據采集系統。
本設計分為主機和從機,從機上有各種傳感器,將采集的信息通過nRF24L01模塊傳輸給主機,主機的12864液晶屏可以實時顯示當前的經緯度、高度、氣壓、溫度、濕度等數據;采用的是遠距離nRF24L01,傳輸距離為2300M,本設計的氣象信息采集,從機小巧,質量輕,傳輸穩定,距離遠。系統設計框圖如圖1所示。

圖1 系統設計框圖
單片機需要有一個最小的系統維持芯片的正常運行,系統采用STC89C52作為主控芯片,單片機最小系統需要一對供電單元,40號引腳供給電源,接正極,20號引腳接到電路的零極,由此組成一個供電單元。微處理器的運行程序需要有一個標準的振蕩時鐘電路,時鐘電路接入XTAL1和XTAL2的兩個引腳上,一個復位電路接入RST引腳上。
DHT11溫濕采集模塊在進行數據采集的時候,會自動從低功耗模式變成高速工作模式,DHT11會在主機的開始信號結束的時候發出40位的響應信號數據。這將使信號采集被首次觸發,此時操作者可以對部分數據進行有選擇的讀取操作。在采集完畢數據之后,如果單片機尚未發送下一次采集指令,傳感器就會從高速模式變回低功耗模式[5]。對于總線來說,其在空閑的情況下處于高電平,但是CPU會將總線電壓拉低來保證DHT11能夠檢測到起始信號,并且這個拉低的時間要大于18 ms。DHT11在檢測到起始信號時會在這個信號結束延時20~40 μs后發送低電平信號,這個低電平信號的持續時間在89 μs。此后再讀取DHT11的相應信號。主機發送開始信號后,有兩種相應操作,分別是切換到輸入模式、輸出高電平。總線由上拉電阻拉高。
LCD12864是128×64分辨率的常用的圖形液晶顯示模塊,其內置8192個中文漢字(16×16點陣可顯示漢字及圖形),可以將漢字實現圖形出來。此外還有128個字符(8×16點陣)及64×256點陣顯示 RAM(GDRAM)。
數據發射的過程為:第一步,先配置nRF24L01到發射模式。第二步,按照時序通過SPI在nRF24L01的緩存區寫入相應的TX_ADDR以及TX_PLD,其中,TX_ADDR是接收節點地址且僅在發射的時候寫入一次,TX_PLD是有效數據。當nRF24L01開啟自動應答模式,在接收模式下將接收應答信號。當信號未被接收,系統會自動將該數據重新發射[6-7]。
在模式控制引腳MS置1的狀態下,芯片將在單通道模式下工作。此時,僅有一組RXD和TXD被允許與母串口通信。地址線的作用則是選擇與母串口連接的目標子串口。外部CPU則會使用兩根輸入地址線與兩根輸出地址線來選擇與母串口連接的子串口。輸入輸出地址線并沒有被要求是相同的,也就是說RXD和TXD可以屬于不同子串口[8]。GPS定位電路圖如圖2所示。

圖2 GPS定位電路圖
軟件開發環境采用Keil編譯器。當打開軟件時系統會進行IO端口及時鐘的初始化,會顯示實時時間、溫度、濕度、壓力等信息,當初始化成功后,溫濕度傳感器會對環境中的溫度進行實時監控,并將溫濕度信息轉換為電脈沖信息,隨著電信號傳送到單片機進行預處理;類似地,壓力傳感器也會收集檢測時刻的壓力值,并將其轉換為相應的電脈沖信號,一并將其送到單片機進行處理;同時,GPS模塊運用衛星定位功能,將裝置的大致位置信息傳送到單片機端進行處理。然后單片機通過5個GPIO進行無線發送[9]。
從站程序流程圖如圖3所示。

圖3 從站程序流程圖
主電路板功能比從電路板功能簡單,主要采集無線模塊傳送過來的數據,整理后進行顯示,向使用者實時顯示從站上采集的氣象數據。通過按鍵可以分屏顯示不同的數據。主站程序流程圖如圖4所示。

圖4 主站程序流程圖
關鍵代碼如下:
****/
/*void RX_Mode(void)
{
nRF24L01_CE_L;
SPI_Write_Buf((WRITE_REG+RX_ADDR_P1),
Rx_Address11,TX_ADR_WIDTH);//Use the same address on the RX device as the TX device
SPI_RW_Reg((WRITE_REG+RX_ADDR_P2),0x22);
SPI_RW_Reg((WRITE_REG+RX_ADDR_P3),0x33);
SPI_RW_Reg(WRITE_REG+CONFIG,0x0f); //Set PWR_UP bit,enable
CRC(2 bytes) &Prim:RX.RX_DR enabled..
nRF24L01_CE_H;//Set CE
} */
void RX_Mode(void)
{
nRF24L01_CE_L;
SPI_Write_Buf((WRITE_REG+
RX_ADDR_P0),Rx_Address11,TX_ADR_WIDTH);//寫RX節點地址
SPI_RW_Reg(WRITE_REG+EN_AA,0x01); //使能通道0的自動應答
SPI_RW_Reg(WRITE_REG+EN_RXADDR,0x01);//使能通道0的接收地址
系統主控單元是單片機控制系統,采用獨立式按鍵結構,初始化后確定是否有按鍵按下。當檢測到有鍵盤按下則去抖動,延時一段時間再檢測判斷,識別出是哪一個鍵閉合[10]。掃描過程如圖5所示。

圖5 鍵盤掃描流程圖
將測試裝置放置于不同溫濕度的環境之中(其余測量參數不宜改變,故只需要改變溫濕度已達到不同環境下的測試效果),以便進行測試虛擬環境的仿真。不同環境下的測試結果如圖6所示。

圖6 不同環境下溫濕度的測試情況
對于所有測試的情況,若發生以下情況,則為正常情況:
(1) 微處理器上電后運行正常、無報錯為合格。
(2) 能下載、上傳程序為合格。
(3) 將從站置于不同溫濕度環境內,主站能準確顯示溫濕度數值為合格。
(4) 將從站置于不同壓力環境內,主站能準確顯示壓力數值為合格。
(5) 將從站置于不同位置,主站能準確顯示定位信息為合格。
從機實物圖如圖7所示。

圖7 從機實物圖
主站在開始運行時,單片機進行預處理、初始化。當一切顯示穩定后,單片機運用無線接收裝置進行無線連接,連接成功后接收由從站發送過來的相關環境信息,并通過LED顯示屏將所接收的溫濕度、壓強和位置信息全部顯現出來。主機實物圖如圖8所示。

圖8 主機實物圖
無線氣象數據采集系統在人們的日常生活和國防建設中都有著十分巨大的影響意義。文中通過查閱資料了解每個元器件的使用方法,并通過計算得出電路的配置關系,繪制完整的電路原理圖,結合電路原理圖和控制要求,從站采集溫度、濕度、壓力和GPS位置信息,主站接收從站發來的信息后顯示狀態信息。硬件構成主要包括:單片機、最小系統、LCD12864液晶顯示模塊、NRF24L01無線收發模塊、GPS定位模塊、DHT11溫濕度采集模塊、BMP180氣壓檢測模塊、DS18B20溫度采集模塊、LED指示燈模塊。本設計從機具有小巧、質量輕、傳輸穩定、傳輸距離遠等優點,可以用作航模的氣象信息采集。