DHT11溫濕度傳感器(上)
DHT11是一款由Aosong Electronics推出的低成本、集成化數(shù)字溫濕度傳感器,憑借其接線簡(jiǎn)單、無需外圍元件、操作便捷的特性,成為入門級(jí)溫濕度采集場(chǎng)景的首選方案,廣泛應(yīng)用于智能家居、消費(fèi)電子、農(nóng)業(yè)監(jiān)測(cè)、工業(yè)環(huán)境簡(jiǎn)易監(jiān)控等領(lǐng)域。與需要復(fù)雜時(shí)序控制的DS18B20或精度要求較高的DHT22相比,DHT11以“夠用就好”的設(shè)計(jì)理念,平衡了成本與實(shí)用性,其核心優(yōu)勢(shì)在于單總線通信的簡(jiǎn)潔性和全數(shù)字輸出的便利性,無需額外的AD轉(zhuǎn)換器或復(fù)雜的校準(zhǔn)流程,僅需通過三根線(VCC、GND、DATA)即可與微控制器(MCU)實(shí)現(xiàn)數(shù)據(jù)交互,極大降低了硬件設(shè)計(jì)與軟件開發(fā)的門檻。
從硬件結(jié)構(gòu)來看,DHT11內(nèi)部集成了溫濕度傳感元件、8位MCU、單總線接口電路及數(shù)據(jù)校準(zhǔn)存儲(chǔ)單元,整體封裝為4針(或3針)塑料封裝,體積小巧,便于嵌入各類設(shè)備。其中,溫濕度傳感元件采用高分子濕敏電阻和NTC熱敏電阻組合,能夠?qū)h(huán)境中的相對(duì)濕度和溫度轉(zhuǎn)換為模擬信號(hào);內(nèi)部MCU負(fù)責(zé)對(duì)模擬信號(hào)進(jìn)行AD轉(zhuǎn)換、數(shù)據(jù)校準(zhǔn)與數(shù)字編碼,再通過單總線接口將處理后的數(shù)字信號(hào)傳輸給外部主機(jī)。值得一提的是,DHT11的校準(zhǔn)數(shù)據(jù)已在出廠時(shí)存儲(chǔ)于內(nèi)部OTP(一次性可編程)存儲(chǔ)器中,每次上電后會(huì)自動(dòng)加載校準(zhǔn)參數(shù),確保測(cè)量數(shù)據(jù)的穩(wěn)定性,無需用戶額外進(jìn)行校準(zhǔn)操作,這一設(shè)計(jì)進(jìn)一步簡(jiǎn)化了應(yīng)用流程。其供電電壓范圍為3.3V~5.5V,兼容主流MCU的IO電平,工作電流在測(cè)量期間約為2.5mA,休眠期間僅為100μA,低功耗特性使其適合電池供電的便攜設(shè)備(如小型溫濕度計(jì)、智能花盆傳感器)。
DHT11的核心通信方式為單總線協(xié)議,盡管與DS18B20的單總線名稱相同,但時(shí)序規(guī)則與數(shù)據(jù)格式存在顯著差異,且DHT11不支持多節(jié)點(diǎn)級(jí)聯(lián)(單總線僅能掛載一個(gè)傳感器),這是由其硬件設(shè)計(jì)的簡(jiǎn)化性決定的。單總線的DATA引腳兼具輸入與輸出功能,既用于主機(jī)向傳感器發(fā)送啟動(dòng)信號(hào),也用于傳感器向主機(jī)返回溫濕度數(shù)據(jù),因此需要通過外部4.7kΩ~10kΩ的上拉電阻維持總線空閑狀態(tài)的高電平,確保信號(hào)傳輸?shù)姆€(wěn)定性。通信過程分為“主機(jī)啟動(dòng)信號(hào)”和“傳感器響應(yīng)與數(shù)據(jù)傳輸”兩個(gè)階段,時(shí)序的準(zhǔn)確性直接決定通信成敗,且DHT11的時(shí)序要求雖不及DS18B20嚴(yán)苛,但仍需嚴(yán)格遵循時(shí)長(zhǎng)規(guī)范,否則會(huì)導(dǎo)致數(shù)據(jù)丟失或誤讀。
主機(jī)發(fā)起通信時(shí),首先需要發(fā)送啟動(dòng)信號(hào):將DATA線拉低至少18ms(通常設(shè)計(jì)為20ms),確保傳感器能夠檢測(cè)到啟動(dòng)指令;隨后主機(jī)釋放DATA線,總線通過上拉電阻恢復(fù)高電平,主機(jī)進(jìn)入等待狀態(tài),準(zhǔn)備接收傳感器的響應(yīng)信號(hào)。傳感器檢測(cè)到啟動(dòng)信號(hào)后,會(huì)在20~40μs內(nèi)做出應(yīng)答:先將DATA線拉低80μs,再拉高80μs,這兩段連續(xù)的低-高電平組合構(gòu)成應(yīng)答信號(hào),告知主機(jī)“已準(zhǔn)備就緒,可以傳輸數(shù)據(jù)”。主機(jī)檢測(cè)到應(yīng)答信號(hào)后,需立即切換DATA線為輸入模式,等待接收傳感器發(fā)送的40位數(shù)字?jǐn)?shù)據(jù),整個(gè)數(shù)據(jù)傳輸過程無需主機(jī)額外發(fā)送時(shí)鐘信號(hào),完全由傳感器控制時(shí)序節(jié)奏。
DHT11傳輸?shù)?span>40位數(shù)據(jù)遵循固定的格式,按順序依次為8位濕度整數(shù)部分、8位濕度小數(shù)部分、8位溫度整數(shù)部分、8位溫度小數(shù)部分、8位校驗(yàn)和,總計(jì)5個(gè)字節(jié)。需要注意的是,DHT11的測(cè)量精度限制了其小數(shù)部分的實(shí)用性——濕度測(cè)量范圍為20%RH~90%RH,精度為±5%RH;溫度測(cè)量范圍為0℃~50℃,精度為±2℃,且小數(shù)部分始終為0(即僅能輸出整數(shù)溫濕度值),因此實(shí)際有效數(shù)據(jù)僅為濕度整數(shù)和溫度整數(shù),這也是其與高精度傳感器DHT22的核心區(qū)別之一。校驗(yàn)和的計(jì)算規(guī)則為前四個(gè)字節(jié)(濕度整+濕度小+溫度整+溫度?。┑睦奂雍腿〉?span>8位,主機(jī)接收數(shù)據(jù)后,通過計(jì)算校驗(yàn)和與傳感器發(fā)送的校驗(yàn)和對(duì)比,若一致則說明數(shù)據(jù)傳輸無誤,可進(jìn)行解析;若不一致則判定為數(shù)據(jù)錯(cuò)誤,需重新發(fā)起通信。例如,若接收的40位數(shù)據(jù)為“00100101 00000000 00011001 00000000 00111110”,則濕度整數(shù)為0x25(37%RH),濕度小數(shù)為0x00(0%RH),溫度整數(shù)為0x19(25℃),溫度小數(shù)為0x00(0℃),校驗(yàn)和為0x25+0x00+0x19+0x00=0x3E(與最后一字節(jié)一致),數(shù)據(jù)有效。





