|
摘要:本文介紹了一種基于PTR2000的無線氣象信息采集系統(tǒng)的硬件和軟件設計,該系統(tǒng)可以實現(xiàn)溫度、濕度、氣壓等氣象數(shù)據(jù)的采集和傳輸。氣象數(shù)據(jù)采集系統(tǒng)由單片機ATmega16、溫度傳感器DS18B20、濕度傳感器HS1101和氣壓傳感器MPX4105構成,實現(xiàn)溫度、濕度、氣壓等基本氣象參數(shù)的測量。采集的氣象數(shù)據(jù)通過無線收發(fā)模塊PTR2000上傳給上位機進行存儲和相應處理。數(shù)據(jù)采集端由太陽能電源系統(tǒng)供電,可以滿足長期測量需要。 引言 隨著經(jīng)濟社會的發(fā)展,工農(nóng)業(yè)生產(chǎn)對氣象信息的需求日益加大。農(nóng)業(yè)農(nóng)情灌溉氣象環(huán)境指標監(jiān)測、森林火險氣象指標監(jiān)測、各種突發(fā)性災害性天氣的快速響應和現(xiàn)場監(jiān)控均需要對氣象信息進行實時采集和分析。本系統(tǒng)采用DS18B20、HS1101等高精度傳感器,低功耗單片機ATmega16,數(shù)字無線收發(fā)芯片NRF401;數(shù)據(jù)采集端配備光伏電源系統(tǒng)供電。通過數(shù)據(jù)采集、傳送與處理實現(xiàn)周圍環(huán)境溫度、濕度、氣壓等氣象要素的全天候監(jiān)測;系統(tǒng)工作方式靈活,通過128×64液晶顯示器可實現(xiàn)現(xiàn)場所測數(shù)據(jù)的顯示,也可以采用無線通信的方式將數(shù)據(jù)傳送至計算機進行存儲和處理。 1 系統(tǒng)工作原理[1-3] 氣象信息監(jiān)測系統(tǒng)由下位機數(shù)據(jù)采集和上位機數(shù)據(jù)管理兩部分構成。下位機數(shù)據(jù)采集系統(tǒng)主要由三部分構成,如圖1所示。其中,數(shù)據(jù)采集模塊由傳感器DS18B20、HS1101、 MPX4105和單片機ATmega16組成,PTR2000數(shù)據(jù)收發(fā)模塊由數(shù)字無線收發(fā)芯片NRF401構成,電源系統(tǒng)采用光伏電源系統(tǒng)構成。上位機數(shù)據(jù)管理系統(tǒng)如圖2所示,其中,PTR2000數(shù)據(jù)收發(fā)模塊由數(shù)字無線收發(fā)芯片NRF401構成,經(jīng)MAX232電平轉換直接與計算機相連,計算機實現(xiàn)數(shù)據(jù)的接收和處理。 上位機定時發(fā)出檢測指令,下位機通過無線收發(fā)模塊接收到檢測指令后,開始檢測氣象數(shù)據(jù)。檢測結束后,通過無線收發(fā)模塊把采集的數(shù)據(jù)發(fā)給上位機。上位機實現(xiàn)采集數(shù)據(jù)的儲存、圖形化。下位機數(shù)據(jù)采集系統(tǒng)可以實現(xiàn)現(xiàn)場氣象數(shù)據(jù)的顯示。現(xiàn)場顯示時,無線數(shù)傳模塊被關閉,下位機數(shù)據(jù)采集端獨立運行,不依賴于上位機發(fā)出的檢測指令,依次顯示采集到的氣象數(shù)據(jù)。 2 信息采集系統(tǒng)硬件電路設計 數(shù)據(jù)采集模塊以ATmega16為核心,完成氣象信息的采集、轉換和傳輸。系統(tǒng)中主要利用ATmega16的片內ADC、定時/計數(shù)器、I/O口輸入輸出控制、可編程串行USART等資源實現(xiàn)數(shù)據(jù)采集。 2.1 溫度測量電路 利用數(shù)字溫度傳感器DS18B20進行溫度采集,溫度測量電路如圖3所示。 DS18B20的數(shù)據(jù)總線接ATmega16的P0.0口。ATmega16不支持單總線協(xié)議,采用軟件方法模擬單總線協(xié)議,完成對DSl8B20芯片的訪問。 2.2 濕度測量電路[2] 濕度測量采用HS1101傳感器,測量電路如圖4所示。該電路把電容參數(shù)的變化轉換為與之成反比的電壓頻率的變化,振蕩電路輸出方波信號的頻率為如式(1)所示。f=1/Cx*(R1+2*R2 )*ln2 (1) 2.3 氣壓測量電路[3-4] 系統(tǒng)選用MPX4105作為氣壓傳感器。MPX4105可產(chǎn)生與氣壓呈線性關系的模擬輸出電壓,氣壓測量電路如圖5所示。輸出電壓Vout和大氣壓P的關系如式(2)所示。Vout=Vcc*(0.01P-0.09) (2) 2.4 液晶顯示電路 選用LCD128×64液晶顯示器顯示溫度、氣壓和濕度氣象信息,顯示電路如圖6所示。通過按鍵設置現(xiàn)場顯示氣象數(shù)據(jù)或是通過無線傳輸數(shù)據(jù)到上位機。 2.5 無線數(shù)據(jù)傳輸電路[5-7] 系統(tǒng)采用無線傳輸模塊PTR2000傳輸氣象數(shù)據(jù)。本模塊工作頻率為國際通用的數(shù)傳頻段,設置CS可以選擇模塊兩個頻道中的一個作為通信頻道。PTR2000模塊直接與單片機的串口連接,通過MAX232進行電平轉換與計算機相連,構成無線通信系統(tǒng),完成氣象數(shù)據(jù)的無線傳輸。與ATmega16連接的數(shù)據(jù)發(fā)送端電路如圖7所示。 2.6 太陽能供電系統(tǒng)電路 下位機采用太陽能供電系統(tǒng)供電,供電系統(tǒng)主要由太陽能電池板、充電控制電路和蓄電池三個部分,太陽能電池供電控制電路如圖8所示。 2.6.1 系統(tǒng)功耗測算 系統(tǒng)工作在現(xiàn)場模式時,PTR2000模塊不工作,LCD處于工作狀態(tài),背光打開,系統(tǒng)工作電壓為4.98V,電流為164mA,LCD處于關閉狀態(tài)時,電流為18mA。系統(tǒng)工作在無線模式時,PTR2000模塊工作,LCD關閉。PTR2000模塊的工作電壓為2.7V~5.25V,發(fā)射時工作電流為20mA~30mA,接收時工作電流為10mA[8]。PTR2000主要工作在發(fā)射狀態(tài),工作電壓約為5V,工作電流取30mA,因此,PTR2000消耗的功率約為0.15W。系統(tǒng)長期工作在無線模式,為節(jié)約能源,LCD處于關閉狀態(tài)。根據(jù)以上分析,數(shù)據(jù)采集系統(tǒng)的總系統(tǒng)工作電流約為48mA,按I=50mA,功率為0.25W。 2.6.2 蓄電池選用 根據(jù)系統(tǒng)的工作情況、太陽能供電子系統(tǒng)的特點,選用電壓為12V的鉛酸蓄電池。數(shù)據(jù)采集系統(tǒng)全天候工作,考慮天氣因素影響,最長陰雨天數(shù)設為5天,蓄電池能為采集系統(tǒng)提供5天的電量,電池的放電深度取75%。根據(jù)系統(tǒng)功耗和系統(tǒng)的工作狀況,蓄電池的容量計算如式(3)所示。 Q=A*I*D*W*Tp/dd (3) 式中:A為安全系數(shù),取1.1~1.4之間,取1.1;I=50mA為系統(tǒng)工作電流;D=24h為全天工作方式;W為最長連續(xù)陰雨天數(shù),取W=5天;Tp為溫度修正系數(shù),一般在0℃以上取1,-10℃以上取1.1,-10℃以下取1.2,取Tp=1.1;dd為蓄電池放電深度,一般鉛酸蓄電池取0.75。根據(jù)式(3),計算容量為9680mAh,選擇容量為10Ah的蓄電池,電池尺寸為151×98×95。2.6.3 太陽能電池板選用[9] 蓄電池電壓為12V,鉛酸蓄電池充電終了時的標志一般是單體電壓為2.7 V,蓄電池的最大充電電壓為16.2V(2.7V×6),考慮充電控制電路線路壓降,應選用18V的太陽能電池板。蓄電池的容量為10Ah,充電電流一般選用1A(10×0.1)。根據(jù)以上分析,太陽能電池板的功率為18W(18V×1A)。實際選用的是單晶硅太陽能電池板,功率為20W,峰值電壓為17.2V,峰值電流為1.16A,電池板尺寸為485*350。 2.6.4 太陽能電池充電控制 充電控制電路控制蓄電池充電,同時保護蓄電池,避免過充。SUN_V與ATmega16的內置模數(shù)轉換器ADC0相連,檢測光電池的電壓,BAT_V與ADC1相連,檢測蓄電池的電壓,判斷蓄電池是否已經(jīng)達到過充點或過放點。SUN_CTR和BAT_CTR與ATmega16的I/O口相連,根據(jù)檢測結果發(fā)出充電、停充指令。當蓄電池電壓高于16.2V,停止充電;當太陽能電池板電壓低于蓄電池電壓時,停止充電;蓄電池電壓低于16.2V,并且太陽能電池電壓高于蓄電池電壓1.3V時,進行充電。 蓄電池的輸出電壓經(jīng)過DC-DC變換為5V后為信息采集端電路供電。 3 信息采集系統(tǒng)軟件設計 采用C語言設計了溫度、濕度和氣壓測量程序,無線數(shù)據(jù)傳輸程序、太陽能充放電控制程序。 3.1 溫度測量程序設計 Read_Temperature(void) 是DSl8B20溫度采集程序,程序清單如下: Read_Temperature(void) { Init_DS18B20() ;//DS18B20初始化 WriteOneChar(0xCC) ; // 跳過讀序號列號的操作 WriteOneChar(0x44) ; // 啟動溫度轉換 Init_DS18B20() ; WriteOneChar(0xCC) ; //跳過讀序號列號的操作 WriteOneChar(0xBE) ; //讀取溫度寄存器 tel = ReadOneChar() ; //溫度低8位 teh = ReadOneChar() ; //溫度高8位 } Init_DS18B20()是DSl8B20初始化程序,根據(jù)DSl8B20的1-WIRE協(xié)議,控制器先向DQ發(fā)出低電平復位脈沖,寬度在480μs~ 960μs之間,然后恢復DQ的高電平,在200μs之內,等待由DSl8B20發(fā)出的應答脈沖。如果DQ被下拉為低電平,則DSl8B20初始化成功。 WriteOneChar()是DSl8B20寫入程序,控制器先下拉DQ為0,延時1μs以上,隨后寫入數(shù)據(jù)位,延時60μs,再置DQ為1,各位逐位寫入。 ReadOneChar()是DSl8B20讀出程序,控制器先下拉DQ為0,延時1μs以上,隨后從DQ上讀入數(shù)據(jù)位,延時60μs,再置DQ為1,完成一位數(shù)據(jù)的讀取,各位逐位讀出。 采集溫度時,先進行DSl8B20復位,然后向DSl8B20寫入跳出ROM命令CCH和溫度轉換命令44H,經(jīng)延時750μs等待DSl8B20充分完成溫度轉換。再進行一次復位后,通過發(fā)送溫度讀取命令BEH,即可調用數(shù)據(jù)讀取子程序得到轉換的溫度數(shù)據(jù)。 溫度計算時,讀取的溫度值高八位如果大于0×07則溫度值為負,應取反加一后乘以0.625,溫度值高八位如果小于0×07則溫度值為正,直接乘以0.625即可。 3.2 濕度測量程序設計[2] 濕度測量電路輸出的方波信號輸入ATmega16的計數(shù)器T0,定時器T1進行計時。定時時間到,產(chǎn)生中斷,根據(jù)計數(shù)器的數(shù)值和定時時間計算出頻率值。 本電路典型的濕度-頻率關系如表1所示。利用Matlab中的polyfit()命令線性擬合出相對濕度與頻率的關系式,如式(4)所示。把ATmega16測算出的頻率(Frequency)代入式(4)就可計算出相對濕度RH。 RH=-0.0767*Frequency+565.0967 (4)3.3 氣壓測量程序設計 MPX4105輸出的模擬電壓經(jīng)ATmega16的片內ADC轉換成相應數(shù)字量,再根據(jù)電壓和氣壓轉換關系即可計算出要測的氣壓值。 氣壓測量程序adc(void)如下所示。 adc(void)//單次AD轉換 10位精度 unsigned char adcl,adch; float adc=0; ADMUX|=0X07;//參考電壓AVCC轉換結果右對齊輸入端ADC7 ADCSRA|=((1 while(~(0XEF|ADCSRA));//等待轉換完成 adcl=ADCL;adch=ADCH;//讀取轉換值 adc=5000/1024*(adch*256+adcl);//10位精度參考電壓5000mV return adc; } 3.4 無線數(shù)據(jù)傳輸程序設計 ATmega16串行通信初始化程序void uart_init(unsigned int baud)如下所示。 void uart_init(unsigned int baud)//串行通信初始化 { UCSRB=0x00; //UART收發(fā)允許中斷允許 UCSRA=0x02;//收發(fā)完成,錯誤狀態(tài)寄存器清零 //設為雙倍速減小波特率設置誤差 UCSRC=(1 SREG=BIT(7);//全局中斷開放 DDRD|=0X02;//配置TX為輸出 } 4 結束語 經(jīng)測試,系統(tǒng)可以實現(xiàn)-55℃~125℃范圍的溫度測量,溫度測量分辨率為0.5℃,系統(tǒng)工作在-20℃~70℃溫度范圍內時不需采取保溫措施;濕度測量范圍為1% RH ~99%RH,平均靈敏度為0.34pF/%RH;氣壓測量范圍為15kPa~105kPa,采集的氣象信息可實時顯示,也可通過無線傳輸給上位機進行顯示、存儲;太陽能供電系統(tǒng)能夠為系統(tǒng)提供穩(wěn)定可靠的能量。晴天時,蓄電池充電耗時約1.5天,蓄電池充滿時能連續(xù)為采集系統(tǒng)提供約8天的電能。為提高太陽能充電效率,縮短充電時間,可以對太陽能電池板加裝單軸步進逐日系統(tǒng)。為提高單日充電時間,降低太陽能供電系統(tǒng)成本,可以選用薄膜太陽能電池板。通過軟件設置,本系統(tǒng)可以與上位機構成含兩站點的氣象信息采集系統(tǒng),完成氣象信息的采集、存儲和處理。 參考文獻: [1] Atmel Corporation.ATmega16-16LData Sheet. 2004 [2] Relative Humidity Sensor HS 1100/HS 1101. HPC001 Rev. 7 June 2002 [3] Motorola Sensor Device Data MPX4105 1997 [4] 孫艷玲,劉亞麗.基于MPX4105芯片的數(shù)字氣壓計設計[J].中國儀器儀表,2007(11):62-65 [5] 吳慧峰,劉政,楊雙.基于PTR2000 智能儀器的無線網(wǎng)絡設計[J]. 機電信息, 2011(12): 134-135 [6] 周源,李元尊,齊強.基于PTR2000的無線數(shù)據(jù)傳輸系統(tǒng)設計與實現(xiàn)[J]. 海軍航空工程學院學報. 2012(5):549-553 [7] 盧超. 分布式無線土壤電導率測量裝置的設計[J]. 儀表技術與傳感器. 2011(8): 37-39 [8] PTR2000datasheet[R/OL].http://pdf.eepw.com.cn/p20091021/a10ff60edd0064674ded45024b6d7840 .pdf [9] 李俄收,王 遠,吳文民.鉛酸蓄電池充電技術的研究[J]. 2010(5): 253-257 |