DHT11:有關用於測量溫度和濕度的傳感器的全部信息

雙氫睾酮11

測量溫度和濕度非常普遍 在許多電子製造商項目中。 在DIY中,通常必須測量這些參數以控制某些系統。 例如,要能夠創建一個在溫度或濕度達到一定值時啟動的製冷,植物護理或空調系統。 但是,要做到這一點,您需要像DHT11這樣的傳感器。

在市場上 有很多傳感器 不同的溫度範圍,支持的溫度範圍或精度不同。 一個例子是 LM35,最受歡迎和在電子產品中使用的之一。 還有其他濕度傳感器會通過改變電導率起作用,例如Analog Devices的AD22103KTZ。 但是,如果您想同時測量兩個參數,那麼也許我們今天在本文中討論的設備會引起更多關注...

什麼是DHT11?

El DHT11是一種簡單的傳感器,可測量溫度和濕度, 一體。 A)是的 您將不必購買兩個傳感器 分別地。 它的價格約為2歐元,因此相當便宜,儘管您也可以將其安裝在模塊上(安裝在PCB上以便於使用),這與Arduino的此類電子組件一樣。 對於板子,它包括一個5千歐的上拉電阻和一個LED,可向我們發出警告。

DHT11有 經過校準的數字信號,具有很高的可靠性和穩定性。 另外,如果您查看它的數據表,將會發現它具有有趣的功能,如以後的部分所述。

同類產品

雙氫睾酮22

您可能會對與DHT11類似的產品感興趣。 這是 DHT22。 它也是一個集成的溫度和濕度傳感器,但在這種情況下,它的價格要高一些,約為4歐元。 與DHT5一樣,溫度測量的精度也有11%的變化,但與之不同的是,它的測量範圍超出了20%至80%的濕度範圍。 因此,對於需要測量22%到0%濕度的項目,您可能對DHT100感興趣。

La 數據採集頻率 它也是DHT11的兩倍,在DHT22中每秒採集2個樣本,而不是DHT1每秒11個樣本。 至於溫度,它可以測量從-40ºC到+125ºC的精度,因為它可以測量幾分之一度,特別是它可以欣賞正負0,5ºC的變化。

引腳排列,功能和數據表

DHT11引腳排列

您可以找到有關 數據表中的DHT11。 該設備的每個製造商都可以提供一些可能有所不同的值,因此我總是建議您閱讀所購買設備的特定製造商的PDF。 儘管大多數值對您來說看起來都是一樣的,但彼此之間可能會有一些細微的差異。 它最重要的技術特徵是:

  • 3,5v至5v電源
  • 2,5mA電流消耗
  • 數字量輸出信號
  • 溫度範圍為0ºC至50ºC
  • 在25ºC左右約2ºC的溫度下測量溫度的精度
  • 測量溫度的分辨率為8位,1ºC
  • 濕度可從20%RH到90%RH
  • 溫度在5-0ºC之間時,相對濕度為50%RH,準確
  • 分辨率為RH的1%,無法拾取低於該值的變化
  • Mouser數據表

關於數據, 數字廣播。 因此,沒有必要像其他傳感器一樣從模擬轉換為數字。 這使在Arduino IDE中編寫代碼變得很複雜,但是在這種情況下,則不需要它,並且變得容易得多。 儘管傳感器本身是模擬的,但是它包含執行轉換的系統,可以直接連接到Arduino的數字輸入。

來自傳感器的模擬信號(電壓的變化)被轉換為數字格式,然後發送到Arduino微控制器。 傳輸到 40位幀 與DHT11捕獲的濕度和溫度信息相對應。 前兩個8位組用於濕度,即該幀的最高16位。 然後其餘2個其餘的8位組用於溫度。 也就是說,它有兩個字節用於濕度,兩個字節用於溫度。 例如:

0011 0101 0000 0010 0001 1000 0000 0000 0011 1001

在這種情況下,0011 0101 0000 0010是濕度值,0001 1000 0000 0000是溫度。 第一部分是整數部分,第二部分是小數。 至於0011 1001,即 最後8位是奇偶校驗 避免錯誤。 這樣,您可以檢查傳輸過程中所有內容是否正確。 它對應於先前位的總和,因此,如果總和等於奇偶校驗,它將是正確的。 在我所舉的示例中,它不是,因為正如您所看到的那樣,它並不對應...那將指示失敗。

一旦知道了這一點,在DHT11的技術水平上接下來要注意的就是引腳。 這 接觸或引出線 該設備的配置很簡單,因為它只有4個。 其中一個引腳用於電源或Vcc,另一個引腳用於I / O傳輸數據,一個不連接的NC引腳,以及一個GND用於接地。

與Arduino集成

將DHT11與Arduino連接

一旦您知道DHT11的引腳以及 Arduino開發板,連接非常簡單。 請記住,如果您選擇了集成到PCB中的DHT11模塊,則引腳將為三個,因為去掉了NC,使事情變得更加容易。 您所要做的就是將接地引​​腳連接到Arduino的GND連接之一,如上圖所示。

另一方面,電源引腳應連接到 來自Arduino的5v連接, 因此,傳感器將完全由GND和Vcc供電,但是現在數據丟失了。 要將數據從DHT11傳感器傳輸到Arduino板,您可以使用任何數字輸入,例如圖像中顯示的7。現在,一旦創建了必要的Arduino IDE,便可以使用它了。代碼...

如果傳感器在您的項目中距離較遠,並且您要使用長度超過20米的電纜,請使用5k上拉電阻,對於較大的電纜,它應成比例地更大。 請注意,如果您使用3,5v電源而不是5v,則由於電壓降,電纜的長度不應超過20cm。

請記住,他們推薦的是 每5秒鐘進行一次測量, 儘管DHT11可以工作的採樣頻率更高,但是如果更頻繁地進行採樣,則可能不那麼準確。

Arduino IDE中的代碼

直接進入代碼,說 Arduino IDE 您可以使用許多具有DHT11功能的現有庫,這些功能將使您的生活更輕鬆。 例如,其中之一是 提供Adafruit。 請記住,我們有一個以PDF格式的Arduino開頭的初學者指南,您可以 從這裡免費下載 它可以為您提供幫助。

一旦安裝了相應的庫,就可以註釋 輸入驗證碼 使用Arduino控制您項目的DHT11溫濕度傳感器。 例如:

#include "DHT.h"

const int DHTPin = 7;     
 
DHT dht(DHTPin, DHTTYPE);
 
void setup() {
   Serial.begin(9600);
   Serial.println("Midiendo...");
 
   dht.begin();
}
 
void loop() {
   delay(2000);
 
   float h = dht.readHumidity();
   float t = dht.readTemperature();
 
   if (isnan(h) || isnan(t)) {
      Serial.println("Fallo en la lectura del sensor DHT11");
      return;
   }
 
 
   Serial.print("Humedad relativa: ");
   Serial.print(h);
   Serial.print(" %\t");
   Serial.print("Temperatura: ");
   Serial.print(t);
   Serial.print(" ºC ");
}


成為第一個發表評論

發表您的評論

您的電子郵件地址將不會被發表。 必填字段標有 *

*

*

  1. 負責數據:MiguelÁngelGatón
  2. 數據用途:控制垃圾郵件,註釋管理。
  3. 合法性:您的同意
  4. 數據通訊:除非有法律義務,否則不會將數據傳達給第三方。
  5. 數據存儲:Occentus Networks(EU)託管的數據庫
  6. 權利:您可以隨時限制,恢復和刪除您的信息。