已經在上一篇文章中 我們介紹DHT11,這是您可以使用的另一個溫度和濕度傳感器。 但是在這篇新文章中,我們將告訴您 您需要了解的有關DHT22的所有信息。 通常,乍看之下,DHT11和DHT22之間的唯一區別是,前者採用藍色外殼,而後者為白色。 實際上,兩者都是同一傳感器家族的兄弟。
El DHT11是小弟弟,也就是說,與DHT22相比,它的缺點或好處更少,因此價格更高。 DHT11可用於不需要高測量精度的項目,而如果您想要更精確的測量,則應選擇DHT22。 22的精度也不是很高,但是對於大多數DIY製造商的項目來說,它確實具有超過可接受的功能。
什麼是DHT22?
El DHT22是一款溫度和濕度傳感器,具有非常接近於高精度的功能。 您可以在專門商店或百貨公司中輕鬆找到它 找不到產品。。 這樣一來,您不必分別依賴溫度傳感器和濕度傳感器,而是可以將所有組件集成在同一設備中。
您會發現它鬆動或 在專門為Arduino設計的模塊中即DHT22安裝在即用型PCB板上,而無需添加上拉電阻等。 到目前為止,一切看起來都非常像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集成
與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指南已成為您的指南,儘管通常來說,通常完成的項目會稍微複雜一些,但是這些代碼可以了解傳感器的工作原理,這些代碼具有指示性,然後修改代碼並添加您想要的任何內容...
好信息發布。 只有一個細節可以包括發布日期。 有時我們需要它作為使用標準編寫的作品的參考。 謝謝你。