<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          關(guān) 閉

          新聞中心

          EEPW首頁(yè) > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > 基于PTR2000的無線氣象信息采集系統(tǒng)設(shè)計(jì)

          基于PTR2000的無線氣象信息采集系統(tǒng)設(shè)計(jì)

          作者:張修太 李正斌 時(shí)間:2015-09-07 來源:電子產(chǎn)品世界 收藏
          編者按:本文介紹了一種基于PTR2000的無線氣象信息采集系統(tǒng)的硬件和軟件設(shè)計(jì),該系統(tǒng)可以實(shí)現(xiàn)溫度、濕度、氣壓等氣象數(shù)據(jù)的采集和傳輸。氣象數(shù)據(jù)采集系統(tǒng)由單片機(jī)ATmega16、溫度傳感器DS18B20、濕度傳感器HS1101和氣壓傳感器MPX4105構(gòu)成,實(shí)現(xiàn)溫度、濕度、氣壓等基本氣象參數(shù)的測(cè)量。采集的氣象數(shù)據(jù)通過無線收發(fā)模塊PTR2000上傳給上位機(jī)進(jìn)行存儲(chǔ)和相應(yīng)處理。數(shù)據(jù)采集端由太陽(yáng)能電源系統(tǒng)供電,可以滿足長(zhǎng)期測(cè)量需要。

          2.6.1 系統(tǒng)功耗測(cè)算

          本文引用地址:http://www.ex-cimer.com/article/279230.htm

            系統(tǒng)工作在現(xiàn)場(chǎng)模式時(shí),模塊不工作,LCD處于工作狀態(tài),背光打開,系統(tǒng)工作電壓為4.98V,電流為164mA,LCD處于關(guān)閉狀態(tài)時(shí),電流為18mA。系統(tǒng)工作在無線模式時(shí),模塊工作,LCD關(guān)閉。模塊的工作電壓為2.7V~5.25V,發(fā)射時(shí)工作電流為20mA~30mA,接收時(shí)工作電流為10mA[8]。PTR2000主要工作在發(fā)射狀態(tài),工作電壓約為5V,工作電流取30mA,因此,PTR2000消耗的功率約為0.15W。系統(tǒng)長(zhǎng)期工作在無線模式,為節(jié)約能源,LCD處于關(guān)閉狀態(tài)。根據(jù)以上分析,系統(tǒng)的總系統(tǒng)工作電流約為48mA,按I=50mA,功率為0.25W。

          2.6.2 蓄電池選用

            根據(jù)系統(tǒng)的工作情況、太陽(yáng)能供電子系統(tǒng)的特點(diǎn),選用電壓為12V的鉛酸蓄電池。系統(tǒng)全天候工作,考慮天氣因素影響,最長(zhǎng)陰雨天數(shù)設(shè)為5天,蓄電池能為采集系統(tǒng)提供5天的電量,電池的放電深度取75%。根據(jù)系統(tǒng)功耗和系統(tǒng)的工作狀況,蓄電池的容量計(jì)算如式(3)所示。

            Q=A*I*D*W*Tp/dd (3)

            式中:A為安全系數(shù),取1.1~1.4之間,取1.1;I=50mA為系統(tǒng)工作電流;D=24h為全天工作方式;W為最長(zhǎng)連續(xù)陰雨天數(shù),取W=5天;Tp為溫度修正系數(shù),一般在0℃以上取1,-10℃以上取1.1,-10℃以下取1.2,取Tp=1.1;dd為蓄電池放電深度,一般鉛酸蓄電池取0.75。根據(jù)式(3),計(jì)算容量為9680mAh,選擇容量為10Ah的蓄電池,電池尺寸為151×98×95。

          2.6.3 太陽(yáng)能電池板選用[9]

            蓄電池電壓為12V,鉛酸蓄電池充電終了時(shí)的標(biāo)志一般是單體電壓為2.7 V,蓄電池的最大充電電壓為16.2V(2.7V×6),考慮充電控制電路線路壓降,應(yīng)選用18V的太陽(yáng)能電池板。蓄電池的容量為10Ah,充電電流一般選用1A(10×0.1)。根據(jù)以上分析,太陽(yáng)能電池板的功率為18W(18V×1A)。實(shí)際選用的是單晶硅太陽(yáng)能電池板,功率為20W,峰值電壓為17.2V,峰值電流為1.16A,電池板尺寸為485*350。

            2.6.4 太陽(yáng)能電池充電控制

            充電控制電路控制蓄電池充電,同時(shí)保護(hù)蓄電池,避免過充。SUN_V與的內(nèi)置模數(shù)轉(zhuǎn)換器ADC0相連,檢測(cè)光電池的電壓,BAT_V與ADC1相連,檢測(cè)蓄電池的電壓,判斷蓄電池是否已經(jīng)達(dá)到過充點(diǎn)或過放點(diǎn)。SUN_CTR和BAT_CTR與的I/O口相連,根據(jù)檢測(cè)結(jié)果發(fā)出充電、停充指令。當(dāng)蓄電池電壓高于16.2V,停止充電;當(dāng)太陽(yáng)能電池板電壓低于蓄電池電壓時(shí),停止充電;蓄電池電壓低于16.2V,并且太陽(yáng)能電池電壓高于蓄電池電壓1.3V時(shí),進(jìn)行充電。

            蓄電池的輸出電壓經(jīng)過DC-DC變換為5V后為信息采集端電路供電。


          3 信息采集系統(tǒng)軟件設(shè)計(jì)

            采用C語(yǔ)言設(shè)計(jì)了溫度、濕度和氣壓測(cè)量程序,無線數(shù)據(jù)傳輸程序、太陽(yáng)能充放電控制程序。

          3.1 溫度測(cè)量程序設(shè)計(jì)

            Read_Temperature(void) 是DSl8B20溫度采集程序,程序清單如下:

            Read_Temperature(void)

            {

            Init_DS18B20() ;//DS18B20初始化

            WriteOneChar(0xCC) ; // 跳過讀序號(hào)列號(hào)的操作

            WriteOneChar(0x44) ; // 啟動(dòng)溫度轉(zhuǎn)換

            Init_DS18B20() ;

            WriteOneChar(0xCC) ; //跳過讀序號(hào)列號(hào)的操作

            WriteOneChar(0xBE) ; //讀取溫度寄存器

            tel = ReadOneChar() ; //溫度低8位

            teh = ReadOneChar() ; //溫度高8位

            }

            Init_DS18B20()是DSl8B20初始化程序,根據(jù)DSl8B20的1-WIRE協(xié)議,控制器先向DQ發(fā)出低電平復(fù)位脈沖,寬度在480μs~ 960μs之間,然后恢復(fù)DQ的高電平,在200μs之內(nèi),等待由DSl8B20發(fā)出的應(yīng)答脈沖。如果DQ被下拉為低電平,則DSl8B20初始化成功。

            WriteOneChar()是DSl8B20寫入程序,控制器先下拉DQ為0,延時(shí)1μs以上,隨后寫入數(shù)據(jù)位,延時(shí)60μs,再置DQ為1,各位逐位寫入。

            ReadOneChar()是DSl8B20讀出程序,控制器先下拉DQ為0,延時(shí)1μs以上,隨后從DQ上讀入數(shù)據(jù)位,延時(shí)60μs,再置DQ為1,完成一位數(shù)據(jù)的讀取,各位逐位讀出。

            采集溫度時(shí),先進(jìn)行DSl8B20復(fù)位,然后向DSl8B20寫入跳出ROM命令CCH和溫度轉(zhuǎn)換命令44H,經(jīng)延時(shí)750μs等待DSl8B20充分完成溫度轉(zhuǎn)換。再進(jìn)行一次復(fù)位后,通過發(fā)送溫度讀取命令BEH,即可調(diào)用數(shù)據(jù)讀取子程序得到轉(zhuǎn)換的溫度數(shù)據(jù)。

            溫度計(jì)算時(shí),讀取的溫度值高八位如果大于0×07則溫度值為負(fù),應(yīng)取反加一后乘以0.625,溫度值高八位如果小于0×07則溫度值為正,直接乘以0.625即可。




          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();