基于DHT11的實(shí)驗(yàn)室多點(diǎn)溫濕度報(bào)警系統(tǒng)設(shè)計(jì)
DHT11數(shù)字溫濕度傳感器采用單線雙向的串行接口技術(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個(gè)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ī)通訊過程時(shí)序如圖3所示,總線空閑狀態(tài)為高電平,主機(jī)把總線拉低大于18ms等待DHT11響應(yīng),等開始信號結(jié)束后,延時(shí)等待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低電平時(shí)隙開始,高電平的長短(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í)溫濕度數(shù)據(jù),必須連續(xù)兩次讀取溫濕度值,且第二次讀到的值為當(dāng)前的溫濕度值。這一點(diǎn)特別值得注意。
評論