概述
DHT11是一個(gè)數(shù)字傳感器,由兩個(gè)不同的傳感器組成一個(gè)封裝。該傳感器包含一個(gè)NTC(負(fù)溫度系數(shù))溫度傳感器,一個(gè)電阻型濕度傳感器和一個(gè)8位微控制器,用于轉(zhuǎn)換來(lái)自這些傳感器的模擬信號(hào)并產(chǎn)生數(shù)字輸出。
我已經(jīng)在我的 DHT11濕度傳感器Arduino 項(xiàng)目中使用了DHT11傳感器。在該項(xiàng)目中,我提到了DHT11傳感器的引腳配置,如何將其與微控制器連接以及如何解碼DHT11傳感器的數(shù)字輸出。
所以,我建議您參考該項(xiàng)目一次,以獲取有關(guān)DHT11濕度和溫度傳感器的更多信息。我將解釋一下我在Arduino項(xiàng)目中遺漏的一些事情。
我們知道輸出來(lái)自DHT11傳感器是數(shù)字的。但我們究竟能讀取這些數(shù)字?jǐn)?shù)據(jù)?
從DHT11讀取數(shù)字輸出
DHT11使用單總線數(shù)據(jù)格式進(jìn)行通信。只有像Arduino或Raspberry Pi這樣的MCU與DHT11傳感器之間的單條數(shù)據(jù)線足以交換信息。
在此設(shè)置中,微控制器充當(dāng)主設(shè)備和DHT11傳感器充當(dāng)從站。 DHT11傳感器的數(shù)據(jù)輸出采用漏極開(kāi)路配置,因此必須在5.1KΩ電阻的幫助下將其拉高。
此上拉將確保當(dāng)Master沒(méi)有請(qǐng)求數(shù)據(jù)時(shí),數(shù)據(jù)的狀態(tài)為HIGH(除非Master請(qǐng)求,否則DHT11不會(huì)發(fā)送數(shù)據(jù))。
現(xiàn)在,我們將如何傳輸數(shù)據(jù)和DHT11傳感器的數(shù)據(jù)格式。每當(dāng)微控制器想要從DHT11傳感器獲取信息時(shí),
微控制器的引腳被配置為OUTPUT,它將使數(shù)據(jù)線保持低電平至少18ms并釋放線路。在此之后,微控制器引腳設(shè)為INPUT。
DHT11傳感器的數(shù)據(jù)引腳,即INPUT引腳,讀取微控制器產(chǎn)生的低電平,并充當(dāng)輸出引腳,在數(shù)據(jù)線上發(fā)送低信號(hào)響應(yīng)約80μs,然后再將該線路上拉80μs。
此后,DHT11傳感器發(fā)送40邏輯‘0’的位數(shù)據(jù)是50μs的低電平和26到28μs的高電平的組合,邏輯‘1’是50μs的低電平和70到80μ的高電平。
發(fā)送40位數(shù)據(jù)后,DHT11數(shù)據(jù)引腳保持低電平再持續(xù)50μs,最后將其狀態(tài)更改為輸入以接受來(lái)自微控制器的請(qǐng)求。
注意:我們?cè)诰帉?xiě)Arduino時(shí)實(shí)現(xiàn)了這個(gè)邏輯。但是對(duì)于Raspberry Pi,我們使用了一個(gè)處理所有這些事情的庫(kù)。
Raspberry Pi DTH11濕度和溫度傳感器接口
通過(guò)將DHT11傳感器與Raspberry Pi連接,您可以構(gòu)建自己的物聯(lián)網(wǎng)氣象站。實(shí)現(xiàn)此類(lèi)物聯(lián)網(wǎng)天氣所需的只是Raspberry Pi,DHT11濕度和溫度傳感器以及具有互聯(lián)網(wǎng)連接功能的計(jì)算機(jī)。
電路圖
以下是DHT11和Raspberry Pi接口的電路圖。
所需組件
Raspberry Pi 3型號(hào)B
DHT11溫度和濕度傳感器
連接電線
計(jì)算機(jī)
如果你觀察電路圖,那么連接方面就沒(méi)有很多東西了。您需要做的就是將DHT11傳感器的VCC和GND引腳連接到Raspberry Pi的+ 5V和GND,然后將傳感器的數(shù)據(jù)輸出連接到GPIO4,即Raspberry Pi的物理引腳7。
安裝DTH11庫(kù)
由于我們使用Adafruit為此項(xiàng)目提供的名為Adafruit_DHT的庫(kù),我們需要先將此庫(kù)安裝到Raspberry Pi中。
第一步是從GitHub下載庫(kù)。但在此之前,我在Raspberry Pi的桌面上創(chuàng)建了一個(gè)名為“l(fā)ibrary”的文件夾來(lái)放置下載的文件。您不必這樣做。
現(xiàn)在,輸入以下命令以下載與Adafruit_DHT庫(kù)相關(guān)的文件。
git clone https://github.com/adafruit/Adafruit_Python_DHT.git
所有內(nèi)容都將下載到名為“Adafruit_Python_DHT”的文件夾中。使用cd Adafruit_Python_DHT打開(kāi)此目錄。要查看此文件夾的內(nèi)容,請(qǐng)使用“l(fā)s”命令。
在該文件夾中,有一個(gè)名為“setup.py”的文件。我們需要使用以下命令安裝此文件。
sudo python setup.py install
代碼
我們正在使用該庫(kù)對(duì)于這個(gè)項(xiàng)目的Adafruit_DHT,Python編程部分沒(méi)什么可做的。您需要做的就是使用傳感器和GPIO引腳調(diào)用庫(kù)并打印溫度和濕度值。
工作
按照電路圖進(jìn)行連接并安裝庫(kù)。使用上面的python程序查看結(jié)果。
應(yīng)用程序
DHT11溫度和濕度傳感器是業(yè)余愛(ài)好者在許多物聯(lián)網(wǎng)項(xiàng)目中實(shí)施的流行傳感器模塊之一。此傳感器與Raspberry Pi一起也可用于:
HVAC Systems
恒溫器
家庭和辦公室氣候控制
氣象站
-
傳感器
+關(guān)注
關(guān)注
2552文章
51237瀏覽量
754775 -
樹(shù)莓派
+關(guān)注
關(guān)注
117文章
1710瀏覽量
105724
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論