當(dāng)前位置: 首頁(yè) > 傳感測(cè)量產(chǎn)品 > 工業(yè)傳感器 > 溫濕度傳感器
發(fā)布日期:2022-10-09 點(diǎn)擊率:60
溫濕度傳感器 第1張" title="dht11濕度傳感器程序:51單片機(jī)DHT11溫濕度傳感器 第1張-傳感器知識(shí)網(wǎng)"/>
DHT11是一款有已校準(zhǔn)數(shù)字信號(hào)輸出的溫濕度傳感器。 精度濕度+-5%RH, 溫度+-2℃,量程濕度20-90%RH, 溫度0~50℃。
一.電路連接分析
1.引腳圖
2.接線圖
DHT11 器件采用簡(jiǎn)化的單總線通信。單總線即只有一根數(shù)據(jù)線,系統(tǒng)中的數(shù)據(jù)交換、控制均由單總線完成。單總線通常要求外接一個(gè)約 5.1kΩ 的上拉電阻,這樣,當(dāng)總線閑置時(shí),其狀態(tài)為高電平。由于它們是主從結(jié)極,只有主機(jī)呼叫從機(jī)時(shí),從機(jī)才能應(yīng)答,因此主機(jī)訪問器件都必須嚴(yán)格遵循單總線序列,如果出現(xiàn)序列混亂,器件將不響應(yīng)主機(jī)。
二.數(shù)據(jù)采集分析
1.數(shù)據(jù)總時(shí)序
用戶主機(jī)(MCU)發(fā)送一次開始信號(hào)后,DHT11 從低功耗模式轉(zhuǎn)換到高速模式,待主機(jī)開始信號(hào)結(jié)束后,DHT11 發(fā)送響應(yīng)信號(hào),送出 40bit 的數(shù)據(jù),幵觸發(fā)一次信采集
2.主機(jī)發(fā)送起始信號(hào)
單片機(jī)連接DHT11的DATA引腳的I/O口輸出低電平,且低電平保持時(shí)間不能小于 18ms,然后等待 DHT11 作出應(yīng)答信號(hào)。
3.檢測(cè)從機(jī)應(yīng)答信號(hào)
DHT11 的 DATA 引腳檢測(cè)到外部信號(hào)有低電平時(shí), 等待外部信號(hào)低電平結(jié)束, 延遲后 DHT11 的 DATA引腳處于輸出狀態(tài),輸出 80 微秒的低電平作為應(yīng)答信號(hào),緊接著輸出 80 微秒的高電平通知外設(shè)準(zhǔn)備接收數(shù)據(jù)。
4.接收數(shù)據(jù)
(1)數(shù)據(jù)判定規(guī)則
位數(shù)據(jù)“0”的格式為: 50 微秒的低電平和 26-28 微秒的高電平,位數(shù)據(jù)“1”的格式為: 50 微秒的低電平加 70微秒的高電平。
接收數(shù)據(jù)時(shí)可以先等待低電平過去,即等待數(shù)據(jù)線拉高,再延時(shí)60us,因?yàn)?0us大于28us且小于70us,再檢測(cè)此時(shí)數(shù)據(jù)線是否為高,如果為高,則數(shù)據(jù)判定為1,否則為0。
(2)數(shù)據(jù)格式
一次傳送 40 位數(shù)據(jù),高位先出
8bit 濕度整數(shù)數(shù)據(jù) + 8bit 濕度小數(shù)數(shù)據(jù)+8bit 溫度整數(shù)數(shù)據(jù) + 8bit 溫度小數(shù)數(shù)據(jù)+8bit 校驗(yàn)位。
(3)數(shù)據(jù)校正
判斷“8bit 濕度整數(shù)數(shù)據(jù) + 8bit 濕度小數(shù)數(shù)據(jù)+8bit 溫度整數(shù)數(shù)據(jù) + 8bit 溫度小數(shù)數(shù)據(jù)”的結(jié)果是否等于8bit 校驗(yàn)位。如果等于則數(shù)據(jù)接收正確,否則應(yīng)該放棄這一次的數(shù)據(jù),重新接收。
三.驅(qū)動(dòng)程序
DHT11溫濕度傳感器——使用LCD1602顯示
先上效果圖,以及簡(jiǎn)單的和室內(nèi)溫度對(duì)比圖,相交而言測(cè)量的值還是非常準(zhǔn)的。
我的這個(gè)做的很簡(jiǎn)陋,大家可以理解原理后自行升級(jí)。
注意學(xué)習(xí)單片機(jī)最重要的就是學(xué)習(xí)如何閱讀說明文檔,會(huì)看文檔+會(huì)一些c語(yǔ)言編程你就做出你想要的小東西了,下面放上一個(gè)我常用的查芯片說明文檔的網(wǎng)站。
ic芯片網(wǎng)(戳它進(jìn)入)
這是我已經(jīng)下載好的芯片資料,懶一點(diǎn)的朋友可以上百度云上下載。
鏈接: 戳它
提取碼:4ivd
原理講解
◎外設(shè)讀取步驟
主機(jī)和從機(jī)之間的通信可通過如下幾個(gè)步驟完成(外設(shè)(如微處理器)讀取DHT11的數(shù)據(jù)
步驟一:
DHT11上電后(DHT11上電后要等待1S以越過不穩(wěn)定狀態(tài)在此期間不能發(fā)送任何指令),測(cè)試環(huán)境溫濕度數(shù)據(jù),并記錄數(shù)據(jù),同時(shí)DHT11的DATA數(shù)據(jù)線由上拉電阻拉高一直保持高電平;此時(shí)DHT11的DATA引腳處于輸入狀態(tài),時(shí)刻檢測(cè)外部信號(hào)。
步驟二:
微處理器的I/O設(shè)置為輸出同時(shí)輸出低電平,且低電平保持時(shí)間不能小于18ms(最大不得超過30ms),然后微處理器的I/O設(shè)置為輸入狀態(tài),由于上拉電阻,微處理器的I/O即DHT11的DATA數(shù)據(jù)線也隨之變高,等待DHT11作出回答信號(hào)。
步驟三:
DHT11的DATA引腳檢測(cè)到外部信號(hào)有低電平時(shí),等待外部信號(hào)低電平結(jié)束,延遲后DHT11的DATA引腳處于輸出狀態(tài),輸出83微秒的低電平作為應(yīng)答信號(hào),緊接著輸出87微秒的高電平通知外設(shè)準(zhǔn)備接收數(shù)據(jù),微處理器的I/O此時(shí)處于輸入狀態(tài),檢測(cè)到I/O有低電平(DHT11回應(yīng)信號(hào))
后,等待87微秒的高電平后的數(shù)據(jù)接收。
步驟四:
?由DHT11的DATA引腳輸出40位數(shù)據(jù),微處理器根據(jù)I/O電平的變化接收40位數(shù)據(jù),位數(shù)據(jù)“0”的格式為:54微秒的低電平和23-27微秒的高電平,位數(shù)據(jù)“1”的格式為:54微秒的低電平加68-74微秒的高電平。
低電平的時(shí)間是一致的!本質(zhì)比較的是高電平的時(shí)間!!
結(jié)束信號(hào):
DHT11的DATA引腳輸出40位數(shù)據(jù)后,繼續(xù)輸出低電平54微秒后轉(zhuǎn)為輸入狀態(tài),由于上拉電阻隨之變?yōu)楦唠娖健5獶HT11內(nèi)部重測(cè)環(huán)境溫濕度數(shù)據(jù),并記錄數(shù)據(jù),等待外部信號(hào)的到來。
DHT11單總線信號(hào)特性
DHT11編碼步驟:
一. 單片機(jī)上點(diǎn)后1s內(nèi)不讀取(不重要)
二. 主機(jī)(單片機(jī))發(fā)送起始信號(hào):
?1.主機(jī)先拉高data。
?2.拉低data延遲18ms。
?3.拉高data(通過此操作將單片機(jī)引腳設(shè)置為輸入)。
三. 從機(jī)(DHT11)收到起始信號(hào)后進(jìn)行應(yīng)答:
?從機(jī)拉低data,主機(jī)讀取到data線被拉低持續(xù)80us后從機(jī)拉高data線, 持續(xù)80us,直到高電平結(jié)束,意味著主機(jī)可以開始接受數(shù)據(jù)。
四. 主機(jī)開始接收數(shù)據(jù):
?1.主機(jī)先把data線拉高(io設(shè)置為輸入)。
? 2.從機(jī)把data線拉低,主機(jī)讀取data線電平,直到低電平結(jié)束(大約50us)
? 從機(jī)拉高data線后,延遲40us左右(28~70us之間)主機(jī)再次讀取data線電平,如果為低電平,則為“0”,如果為高電平,則為“1”。
?3.繼續(xù)重復(fù)上述1,2步驟累計(jì)40次。
五. data線拉低50us代表讀取結(jié)束
代碼實(shí)現(xiàn)部分
main.c 主程序
LCD1602.c 1602顯示模塊
LCD1602.h
DHT11概述
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ù)以程序的形式儲(chǔ)存在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針單排引腳封裝。連接方便,特殊封裝形式可根據(jù)用戶需求而提供。
DHT11引腳說明
1、傳感器性能說明
2、接口說明
建議連接線長(zhǎng)度短于20米時(shí)用5K上拉電阻,大于20米時(shí)根據(jù)實(shí)際情況使用合適的上拉電阻。
3、電源引腳
DHT11的供電電壓為3-5.5V。傳感器上電后,要等待1s以越過不穩(wěn)定狀態(tài)在此期間無需發(fā)送任何指令。電源引腳(VDD,GND)之間可增加一個(gè)100nF的電容,用以去耦濾波。
4、串行接口(單線雙向)
DATA用于微處理器與DHT11之間的通訊和同步,采用單總線數(shù)據(jù)格式,一次通訊時(shí)間4ms左右,數(shù)據(jù)分小數(shù)部分和整數(shù)部分,具體格式在下面說明,當(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)換到低速模式。
總線空閑狀態(tài)為高電平,主機(jī)把總線拉低等待DHT11響應(yīng),主機(jī)把總線拉低必須大于18毫秒,保證DHT11能檢測(cè)到起始信號(hào)。DHT11接收到主機(jī)的開始信號(hào)后,等待主機(jī)開始信號(hào)結(jié)束,然后發(fā)送80us低電平響應(yīng)信號(hào)。主機(jī)發(fā)送開始信號(hào)結(jié)束后,延時(shí)等待20-40us后,讀取DHT11的響應(yīng)信號(hào),主機(jī)發(fā)送開始信號(hào)后,可以切換到輸入模式,或者輸出高電平均可,總線由上拉電阻拉高。

仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
單片機(jī)源程序如下:
使用1602顯示DHT22的溫濕度,精確到小數(shù)點(diǎn)的后一位
//
// DHT21使用范例
//單片機(jī) AT89S52 或 STC89C52RC
//功能 串口發(fā)送溫濕度數(shù)據(jù) 晶振 11.0592M 波特率 9600
//硬件 P2.0口為通訊口連接DHT22,DHT22的電源和地連接單片機(jī)的電源和地,單片機(jī)串口加MAX232連接電腦
//
#include
下一篇: PLC、DCS、FCS三大控
上一篇: 電氣控制線路圖控制原