DHT22-精密溫度和濕度傳感器

DHT22傳感器

已經在上一篇文章中 我們介紹DHT11,這是您可以使用的另一個溫度和濕度傳感器。 但是在這篇新文章中,我們將告訴您 您需要了解的有關DHT22的所有信息。 通常,乍看之下,DHT11和DHT22之間的唯一區別是,前者採用藍色外殼,而後者為白色。 實際上,兩者都是同一傳感器家族的兄弟。

El DHT11是小弟弟,也就是說,與DHT22相比,它的缺點或好處更少,因此價格更高。 DHT11可用於不需要高測量精度的項目,而如果您想要更精確的測量,則應選擇DHT22。 22的精度也不是很高,但是對於大多數DIY製造商的項目來說,它確實具有超過可接受的功能。

什麼是DHT22?

DHT22模塊

El DHT22是一款溫度和濕度傳感器,具有非常接近於高精度的功能。 您可以在專門商店或百貨公司中輕鬆找到它 找不到產品。。 這樣一來,您不必分別依賴溫度傳感器和濕度傳感器,而是可以將所有組件集成在同一設備中。

您會發現它鬆動或 在專門為Arduino設計的模塊中即DHT22安裝在即用型PCB板上,而無需添加上拉電阻等。 到目前為止,一切看起來都非常像DHT11。 由於使用了經過校準的數字信號,因此您還將在測量中具有很高的可靠性和穩定性。

引腳排列,功能和數據表

DHT11引腳排列

在上圖中,您可以看到 DHT22和DHT11引腳,如您所見,它們在side角方面是相同的。 因此,其組裝將完全相同,並且最好的是,您可以在項目中隨時用DHT11替換DHT22,反之亦然,而無需進行太多更改。

請記住,您必須使用3個引腳: GND,Vcc和數據。 #3引腳未使用,並且在模塊中被旁路,也就是說,您只會看到三個引腳。 如果要查看有關已購買產品的更多詳細信息,可以搜索特定型號和製造商的數據表以獲取所有完整信息。 雖然大多數值對您來說看起來都是一樣的,但彼此之間可能會有一些細微的差異。 它最重要的技術特徵是:

  • 3,3v至6v電源
  • 2,5mA電流消耗
  • 數字量輸出信號
  • 溫度範圍為-40ºC至125ºC
  • 25ºC溫度變化0.5ºC時的測量精度
  • 測量溫度的分辨率為8位,0,1ºC
  • 濕度可從0%RH到100%RH
  • 溫度在2-5ºC之間時,相對濕度精確度為0%-50%RH
  • 分辨率為RH的0,1%,無法拾取低於該值的變化
  • 每秒2個樣本的採樣率:2Hz
  • Sparkfun數據表

如果您已閱讀有關DHT11的手冊,則將了解 以數字方式傳輸 因此,這些傳感器的另一個優勢是它的數據引腳。 無需在Arduino IDE中生成代碼即可將模擬值轉換為人類可理解的值,但是可以直接處理數字信號以將其傳遞到相對濕度的度數或百分比。

在某種程度上,這也是為什麼它如此精確的原因,因為有了 40位幀 傳輸,精度更高。 它甚至包括一些奇偶校驗位以檢測信號故障。 除了模擬信號對電壓變化非常敏感的事實外,您還沒有模擬信號...

與Arduino集成

DHT22連接到板 Arduino UNO

與DHT11一樣, 用Arduino安裝DHT22非常簡單。 請記住,如果單獨使用它,而未將其安裝在模塊上並且傳感器距離較遠(或者如果使用較低電壓為其供電),則必須使用在Vcc引腳之間橋接的上拉電阻和數據引腳。 但是,如果您使用該模塊,則可以按上圖所示將其保存並直接連接...。另外,請記住,在模塊中不會出現未使用的NC引腳,因此對您來說更加容易不要感到困惑。

您只需要將GND和Vcc連接到 Arduino開發板的正確連接,即在這種情況下標記為GND和5v的那些。 對於數據引腳,您可以將其連接到Arduino的任何數字輸入,在本例中,我們已在7中完成了此操作。似乎很明顯,但這是在Arduino IDE中復制和粘貼代碼時的一個非常常見的錯誤)。

Arduino IDE中的代碼

現在您已經連接了,讓我們看看 Arduino IDE的簡單代碼示例。 。 請記住,我們有一個以PDF格式的Arduino開頭的初學者指南,您可以 從這裡免費下載 它可以為您提供幫助。 另外,如果您已閱讀有關DHT11的文章,請記住 有一個庫可以使用DHTxx傳感器因此,DHT11可以使用與DHT22相同的模型。

一旦有了 安裝了庫,一切準備就緒,現在是您必須輸入代碼的時候 對Arduino微控制器進行編程以使您的項目正常工作。 一個基本的例子是:

#include "DHT.h"
 
// Ejemplo sencillo de uso para el DHT22
 
const int DHTPin = 7;     
 
DHT dht(DHTPin, DHTTYPE);
 
void setup() {
   Serial.begin(9600);
   Serial.println("Test DHT22");
 
   dht.begin();
}
 
void loop() {
   // Tiempo de espera entre tomas de mediciones de 2 segundos.
   delay(2000);
 
   // Lee temperatura y humedad durante unos 250ms
   float h = dht.readHumidity();
   float t = dht.readTemperature();
 
   if (isnan(h) || isnan(t)) {
      Serial.println("Fallo en la lectura");
      return;
   }
 
 
   Serial.print("Humedad relativa: ");
   Serial.print(h);
   Serial.print(" %\t");
   Serial.print("Temperatura: ");
   Serial.print(t);
   Serial.print(" *C ");
}

我希望 我們的DHTxx指南已成為您的指南,儘管通常來說,通常完成的項目會稍微複雜一些,但是這些代碼可以了解傳感器的工作原理,這些代碼具有指示性,然後修改代碼並添加您想要的任何內容...


發表評論,留下您的評論

發表您的評論

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

*

*

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

  1.   羅傑 他說:

    好信息發布。 只有一個細節可以包括發布日期。 有時我們需要它作為使用標準編寫的作品的參考。 謝謝你。