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

          關(guān) 閉

          新聞中心

          EEPW首頁 > 工控自動化 > 設(shè)計(jì)應(yīng)用 > 數(shù)字溫濕度傳感器的多點(diǎn)溫濕度報警系統(tǒng)設(shè)計(jì)

          數(shù)字溫濕度傳感器的多點(diǎn)溫濕度報警系統(tǒng)設(shè)計(jì)

          作者: 時間:2012-01-13 來源:網(wǎng)絡(luò) 收藏

          實(shí)驗(yàn)室作為學(xué)生實(shí)驗(yàn)和科研活動的重要場所,實(shí)驗(yàn)室環(huán)境指標(biāo)是否符合要求,直接關(guān)系到實(shí)驗(yàn)?zāi)芊耥樌M(jìn)行,乃至實(shí)驗(yàn)的成敗,特別是對于醫(yī)學(xué)院校生物、生理等實(shí)驗(yàn)課程,都要求穩(wěn)定的實(shí)驗(yàn)室環(huán)境,所以對于實(shí)驗(yàn)室環(huán)境參數(shù)的檢測就顯得尤為重要。傳統(tǒng)的實(shí)驗(yàn)室溫度濕度檢測方案基本使用采集信號,經(jīng)放大、濾波、校準(zhǔn)、模數(shù)轉(zhuǎn)換、顯示等硬件電路實(shí)現(xiàn),這種方案由于硬件系統(tǒng)復(fù)雜,調(diào)試?yán)щy,使用時系統(tǒng)小元件故障就可能造成系統(tǒng)不穩(wěn)定乃至癱瘓。鑒于此,我們采用DHT11對傳統(tǒng)檢測方案進(jìn)行改進(jìn),對實(shí)驗(yàn)室溫濕度參數(shù)采用多點(diǎn)檢測,實(shí)現(xiàn)了實(shí)時綜合評估實(shí)驗(yàn)室溫濕度環(huán)境適宜性的目的。

          1 系統(tǒng)原理及硬件構(gòu)成

          1.1 系統(tǒng)原理

          實(shí)驗(yàn)室多點(diǎn)溫濕度原理框圖如圖1所示,由低性價比單片機(jī)對溫濕度控制,通過模擬溫度傳感器通訊時序,實(shí)現(xiàn)對溫濕度數(shù)據(jù)采集,并對數(shù)據(jù)處理、顯示。當(dāng)溫濕度數(shù)據(jù)超出設(shè)定溫濕度值時,由單片機(jī)驅(qū)動報警裝置,實(shí)現(xiàn)現(xiàn)場報警功能。



          圖1 原理圖

          1.2 硬件選型

          單片機(jī)選用國產(chǎn)宏晶科技生產(chǎn)的高性價比STC89C51RC系列,與傳統(tǒng)8051單片機(jī)相比,其具有功耗低,抗外部電磁輻射干擾強(qiáng),程序下載方式為UART方式等優(yōu)點(diǎn),使用非常方便。顯示模塊采用自帶漢字庫的LCD12864,主控芯片為ST7921,要求支持串口通信(部分LCD模塊需要跳線才能實(shí)現(xiàn)串口通信功能)。報警裝置采用LED與蜂鳴器實(shí)現(xiàn)聲光報警,當(dāng)溫濕度超出設(shè)定值時,單片機(jī)I/O口輸出高電平,經(jīng)NPN型三極管驅(qū)動大電流蜂鳴器和高亮發(fā)光管,實(shí)現(xiàn)報警功能。

          1.3 DHT11特性研究

          DHT11溫濕度傳感器,是一款含有已校準(zhǔn)數(shù)字信號輸出的溫濕度復(fù)合傳感器。測量范圍相對濕度20%~90%RH,攝氏溫度0~50℃。傳感器包括一個電阻式感濕元件和一個NTC測溫元件,并與一個高性能8位單片機(jī)相連接。數(shù)據(jù)接口采用單線制串行接口,信號傳輸距離可達(dá)20 m以上。傳感器典型連接方式如圖2所示,電源正與地跟單片機(jī)電源正和地相連接,8路數(shù)據(jù)接口分別接5.1 k上拉電阻與單片機(jī)P1口連接。



          圖2 傳感器典型連接方式

          DHT11數(shù)字溫濕度傳感器采用單線雙向的串行接口技術(shù),一次通訊時間約4ms,數(shù)據(jù)分小數(shù)部分和整數(shù)部分,一次完整的數(shù)據(jù)傳輸為40bit,高位在先。即8bit濕度整數(shù)數(shù)據(jù)+8bit濕度小數(shù)數(shù)據(jù)+8bit溫度整數(shù)數(shù)據(jù)+8bit溫度小數(shù)數(shù)據(jù)+8bit校驗(yàn)碼,其中校驗(yàn)數(shù)據(jù)等于上述4個8bit數(shù)據(jù)之和所得結(jié)果的末8位。例如:讀取數(shù)據(jù)為:濕度為:36.50%;溫度為22.80℃,則對應(yīng)的40bit數(shù)據(jù)為:0010 0100,0011 0010,0001 O110,0101 0000,1011 1100,其數(shù)值對應(yīng)于溫濕度如表1所示。



          DHT11與單片機(jī)主機(jī)通訊過程時序如圖3所示,總線空閑狀態(tài)為高電平,主機(jī)把總線拉低大于18ms等待DHT11響應(yīng),等開始信號結(jié)束后,延時等待20~40μs,DHT11然后發(fā)送80μs低電平響應(yīng)信號,然后主機(jī)讀取DHT11的響應(yīng)信號,若總線為低電平,說明DHT11發(fā)送響應(yīng)信號,DHT11發(fā)送響應(yīng)信號后,再把總線拉高80μs,準(zhǔn)備發(fā)送數(shù)據(jù),每1 bit數(shù)據(jù)都以50μs低電平時隙開始,高電平的長短(26μs~28μs表示數(shù)字0;70μs表示數(shù)字1)決定了數(shù)據(jù)位是0或1。如果讀取響應(yīng)信號為高電平,則DHT11沒有響應(yīng),應(yīng)當(dāng)檢測器件或電路。當(dāng)最后1 bit數(shù)據(jù)傳送完畢后,DHT11拉低總線50μs,隨后總線由上拉電阻拉高進(jìn)入空閑狀態(tài)。當(dāng)用戶MCU再次發(fā)送一次開始信號后,DHT11從低功耗模式轉(zhuǎn)換到高速模式,等待主機(jī)開始信號結(jié)束后,DHT11發(fā)送響應(yīng)信號,送出40blt的數(shù)據(jù),這是讀到的數(shù)據(jù)為上次測量的數(shù)據(jù),要得到實(shí)時溫濕度數(shù)據(jù),必須連續(xù)兩次讀取溫濕度值,且第二次讀到的值為當(dāng)前的溫濕度值。這一點(diǎn)特別值得注意。



          2 系統(tǒng)軟件

          軟件結(jié)構(gòu)比較簡單,主要包括了系統(tǒng)各部分的初始化,數(shù)據(jù)的讀取、計(jì)算、顯示、超限判斷等。程序編寫首先要用單片機(jī)軟件模擬DHT11時序,驅(qū)動單個傳感器模塊,然后應(yīng)用模塊化編程方法集成整個系統(tǒng)軟件,以實(shí)現(xiàn)各項(xiàng)功能。

          3 總結(jié)

          本文采用了單總線數(shù)字溫度、濕度傳感器,應(yīng)用單片機(jī)原理,LCD顯示技術(shù),實(shí)現(xiàn)了實(shí)驗(yàn)室多點(diǎn)溫濕度參數(shù)的實(shí)時顯示和超限,保障了實(shí)驗(yàn)室環(huán)境的可靠性,有效地提高了實(shí)驗(yàn)成功率。本系統(tǒng)還可以根據(jù)需要增加其他模塊,通過控制比如通風(fēng),加溫等裝置,達(dá)到自動控制實(shí)驗(yàn)室環(huán)境的目的。

          本文引用地址:http://www.ex-cimer.com/article/161206.htm
          蜂鳴器相關(guān)文章:蜂鳴器原理


          評論


          相關(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); })();