傳感器介紹之DHT11


一.DHT11介紹

     DHT11 數字溫濕度傳感器,如圖所示,是一款含有已校准數字信號輸出的溫濕度復合傳感器。它應用專用的數字模塊采集技術和溫濕度傳感技術,確保產品具有極高的可靠性與卓越的長期穩定性。傳感器包括一個電阻式感濕元件和一個NTC 測溫元件,並與一個高性能8 位單片機相連接。因此該產品具有品質卓越、超快響應、抗干擾能力強、性價比極高等優點。每個DHT11 傳感器都在極為精確的濕度校驗室中進行校准。校准系數以程序的形式儲存在OTP 內存中,傳感器內部在檢測信號的處理過程中要調用這些校准系數。單線制串行接口,使系統集成變得簡易快捷。超小的體積、極低的功耗,信號傳輸距離可達20 米以上,使其成為各類應用甚至最為苛刻的應用場合的最佳選則。產品為4 針單排引腳封裝。連接方便,特殊封裝形式可根據用戶需求而提供。

二.編程分析

      DHT11是通過單總線與單片機進行通信的,這樣做的好處就是占用資源少,編程實現簡單,發送數據的具體格式為 8bit 濕度整數數據+8bit 濕度小數數據+8bi 溫度整數數據+8bit 溫度小數數據+8bit校驗和。主機先要給DHT11發送一個啟動新號,等待DHT11做出響應,然后再進行檢測溫濕度的發送及傳輸,下面通過一張圖來了解一下DHT11的傳輸過程。

     從圖上我們可以看出,主機要先把應答線拉低,因為空閑的時候是高狀態,然后再次拉高,等待DHT11的響應,也就是等待數據線被拉低,當DHT11准備輸出數據時,再把數據線拉低,輸出數據給單片機,單片機可以根據高電平時間的長短來判別輸出的數據是0還是1,最后在進行校驗位的檢查,從而成傳輸。

三.程序

   下面給出DHT11讀數據的程序

  

uchar DhtReadByte(void)

{    

bit bit_i;  

uchar j;  

uchar dat=0;  

for(j=0;j<8;j++)     

{  

 while(!TRH);   // 等待低電平結束    

Delay5us();    // 延時   Delay5us();  

 Delay5us();   Delay5us();    // 延時   

Delay5us();   Delay5us();  

 if(TRH)     // 檢測數據線是高電平還是低電平  

 {    bit_i=1;    while(TRH);   }

  else   {    bit_i=0;   }   

dat<<=1;       // 將該位移位保存到dat變量中   

dat|=bit_i;     }    

return(dat);  }

/**************  函數:void ReadTrh(void)  ---------------------------    說明:將讀取到的溫濕度通過串口發送出去    參數:  返回值:讀取到的字節內容 ***********/

void ReadTrh(void)

{     uchar check;    // 校驗字節  

uchar TemHig,TemLow,HumiHig,HumiLow;        

TRH=0;      // 主機拉低18ms  DelayMs(18);  

TRH=1;      // DATA總線由上拉電阻拉高 主機延時20us

 Delay5us();    Delay5us();  Delay5us();  Delay5us();     // 主機設為輸入 判斷從機響應信號

 while(!TRH);    // 等待DHT 80us的低電平結束  

while(TRH);     // 等待DHT 80us的高電平結束  

HumiHig = DhtReadByte(); // 濕度高8位  

HumiLow = DhtReadByte();  // 濕度低8為,總為0

 TemHig  = DhtReadByte(); // 溫度高8位  

TemLow  = DhtReadByte();  // 溫度低8為,總為0

 check   = DhtReadByte(); // 8位校驗碼,其值等於讀出的四個字節相加之和的低8位  TRH=1;    // 釋放總線

 if(check==HumiHig + HumiLow + TemHig + TemLow)    // 如果收到的數據無誤

 {   Send(TemHig);   Send(HumiHig);  } }  

四.總結

   上述程序是從DHT11溫濕度傳感器讀出數並發送給串口值的程序,要學這一類傳感器的程序,大家要記得,學會看懂時序圖,會用就可以了,需要DHT11的pdf的小伙伴,請留下聯系方式或私聊我0.0

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM