1、產(chǎn)品概述 DHT11數(shù)字溫濕度傳感器是一款含有已校準(zhǔn)數(shù)字信號(hào)輸出的溫濕度復(fù)合傳感器,它應(yīng)用專用的數(shù)字模塊采集技術(shù)和溫濕度傳感技術(shù),確保產(chǎn)品具有極高的可靠性和卓越的長(zhǎng)期穩(wěn)定性。傳感器包括一個(gè)電阻式感濕元件和一個(gè)NTC測(cè)溫元件,并與一個(gè)高性能8位單片機(jī)相連接。因此該產(chǎn)品具有品質(zhì)卓越、超快響應(yīng)、抗干擾能力強(qiáng)、性價(jià)比極高等優(yōu)點(diǎn)。每個(gè)DHT11傳感器都在即為精確的濕度校驗(yàn)室中進(jìn)行校準(zhǔn)。校準(zhǔn)系數(shù)以程序的形式存在OTP內(nèi)存中,傳感器內(nèi)部在檢測(cè)型號(hào)的處理過程中要調(diào)用這些校準(zhǔn)系數(shù)。單線制串行接口,使系統(tǒng)集成變得簡(jiǎn)易快捷。超小的體積、極低的功耗,信號(hào)傳輸距離可達(dá)20米以上,使其成為給類應(yīng)用甚至最為苛刻的應(yīng)用場(chǎng)合的最佳選擇。產(chǎn)品為4針單排引腳封裝,連接方便。 2、技術(shù)參數(shù) 供電電壓: 3.3~5.5V DC 輸 出: 單總線數(shù)字信號(hào) 測(cè)量范圍: 濕度20-90%RH, 溫度0~50℃ 測(cè)量精度: 濕度+-5%RH, 溫度+-2℃ 分 辨 率: 濕度1%RH, 溫度1℃ 互 換 性: 可完全互換 , 長(zhǎng)期穩(wěn)定性: <±1%RH/年 3、應(yīng)用領(lǐng)域 暖通空調(diào) 測(cè)試及檢測(cè)設(shè)備 汽車 數(shù)據(jù)記錄器 消費(fèi)品 自動(dòng)控制 氣象站 家電 濕度調(diào)節(jié)器 醫(yī)療 除濕器 4、特性 相對(duì)濕度和溫度測(cè)量 全部校準(zhǔn),數(shù)字輸出 卓越的長(zhǎng)期穩(wěn)定性 無(wú)需額外部件 超長(zhǎng)的信號(hào)傳輸距離 超低能耗 4引腳安裝 完全互換 5、常見電路說(shuō)明 建議連接線長(zhǎng)度短于20米時(shí)用5K上拉電阻,大于20米時(shí)根據(jù)實(shí)際情況使用合適的上拉電阻 6、電源引腳描述 DHT11的供電電壓為 3-5.5V。傳感器上電后,要等待 1s 以越過不穩(wěn)定狀態(tài)在此 期間無(wú)需發(fā)送任何指令。電源引腳(VDD,GND)之間可增加一個(gè)100nF 的電容,用以去 耦濾波。 7、串行接口(單線雙向) DATA 用于微處理器與 DHT11之間的通訊和同步,采用單總線數(shù)據(jù)格式,一次 通訊時(shí)間4ms左右,數(shù)據(jù)分小數(shù)部分和整數(shù)部分,具體格式在下面說(shuō)明,當(dāng)前小數(shù) 部分用于以后擴(kuò)展,現(xiàn)讀出為零.操作流程如下: 一次完整的數(shù)據(jù)傳輸為40bit,高位先出。 數(shù)據(jù)格式:8bit濕度整數(shù)數(shù)據(jù) +8bit濕度小數(shù)數(shù)據(jù) +8bi溫度整數(shù)數(shù)據(jù)+8bit溫度小數(shù)數(shù)據(jù)+8bit校驗(yàn)和 數(shù)據(jù)傳送正確時(shí)校驗(yàn)和數(shù)據(jù)等于“8bit濕度整數(shù)數(shù)據(jù)+8bit濕度小數(shù)數(shù)據(jù) +8bi溫度整數(shù)數(shù)據(jù)+8bit溫度小數(shù)數(shù)據(jù)”所得結(jié)果的末8位。 用戶MCU發(fā)送一次開始信號(hào)后,DHT11從低功耗模式轉(zhuǎn)換到高速模式,等待主 機(jī)開始信號(hào)結(jié)束后,DHT11發(fā)送響應(yīng)信號(hào),送出40bit的數(shù)據(jù),并觸發(fā)一次信號(hào)采集, 用戶可選擇讀取部分?jǐn)?shù)據(jù).從模式下,DHT11接收到開始信號(hào)觸發(fā)一次溫濕度采集, 如果沒有接收到主機(jī)發(fā)送開始信號(hào),DHT11不會(huì)主動(dòng)進(jìn)行溫濕度采集.采集數(shù)據(jù)后 轉(zhuǎn)換到低速模式。 8、封裝信息 9、引腳描述: 10、看一下我們實(shí)驗(yàn)所用到的模塊:
連接方法: 測(cè)溫濕度模塊信號(hào)引腳放在arduino模擬0上,蜂鳴器和LED燈模塊放在arduino數(shù)字引腳7,8上,所有模塊的地和電源都直接接在arduino上的地和電源就可以了。完成了硬件部分接下來(lái)是代碼的編寫了,下面我就把調(diào)試出來(lái)的代碼寫出來(lái)給大家作參考: #define DHT11_PIN 0 int Led=8; int Buzzer=7; byte read_dht11_dat() { byte i = 0; byte result = 0; for(i=0;i<8;i++) { while(!(PINC&_BV(DHT11_PIN))); delayMicroseconds(30); if(PINC&_BV(DHT11_PIN)) result|=(1<<(7-i)); while((PINC&_BV(DHT11_PIN))); } return result; } void setup() { DDRC|=_BV(DHT11_PIN); PORTC|=_BV(DHT11_PIN); pinMode(Led,OUTPUT); pinMode(Buzzer,OUTPUT); Serial.begin(19200); Serial.println("Ready"); } void loop() { byte dht11_dat[5]; byte dht11_in; byte i; PORTC &= ~_BV(DHT11_PIN); delay(18); PORTC|=_BV(DHT11_PIN); delayMicroseconds(40); DDRC &= ~_BV(DHT11_PIN); delayMicroseconds(40); dht11_in = PINC & _BV(DHT11_PIN); if(dht11_in) { Serial.println("dht11 start condition 1 not met"); return; } delayMicroseconds(80); dht11_in=PINC & _BV(DHT11_PIN); if(!dht11_in) { Serial.println("dht11 start condition 2 not met"); return; } delayMicroseconds(80); for(i=0;i<5;i++) dht11_dat[ i]=read_dht11_dat(); DDRC|=_BV(DHT11_PIN); PORTC|=_BV(DHT11_PIN); byte dht11_check_sum = dht11_dat[0]+dht11_dat[1]+dht11_dat[2]+dht11_dat[3]; if(dht11_dat[4]!=dht11_check_sum) { Serial.println("DHT11 checksum error"); } Serial.print("Current humdity= "); Serial.print(dht11_dat[0],DEC); Serial.print("."); Serial.print(dht11_dat[1],DEC); Serial.print("%"); Serial.print("temperature = "); Serial.print(dht11_dat[2],DEC); Serial.print("."); Serial.print(dht11_dat[3],DEC); Serial.println("C"); if(dht11_dat[0]==25) digitalWrite(Led,HIGH); else digitalWrite(Led,LOW); if(dht11_dat[0]==28) digitalWrite(Buzzer,LOW); else digitalWrite(Buzzer,HIGH); delay(2000); } 調(diào)試結(jié)果,大家可以打開arduino的窗口,在上面可以看到窗口里顯示著溫濕度,溫度和濕度達(dá)到我們?cè)O(shè)置的結(jié)果時(shí),蜂鳴器和LED燈模塊會(huì)有反應(yīng)。 這是調(diào)試的結(jié)果:
實(shí)驗(yàn)遇到的各種問題總結(jié): 1、 這個(gè)傳感器資料上說(shuō)可以讀到小數(shù)位,可我怎么也讀不出來(lái)哦? 答:DHT11無(wú)小數(shù)部份,讀回?cái)?shù)據(jù)只有低8位有效,且是整數(shù),低8位的最高位表示負(fù)號(hào)。 2、 溫度和度濕的精度是否是一樣的呢? 答:溫度的精度是1%,濕度的精度達(dá)不到1%,只有正負(fù)5%。分辨率和精度是兩回事。 3、 DHT11的溫漂是怎么樣的? 答:你都不知道dh11多么漂,漂的太厲害了,個(gè)人感覺這個(gè)模塊不適宜用來(lái)做溫度濕度測(cè)量。 |