A DHTXX szenzorok 4 kivezetéssel rendelkeznek, balról jobbra: VCC, adatláb, NC, GND. Az adatláb és a pozitív távfeszültség kivezetés közé egy 5-10 kΩ ellenállásra van szükség, ami az adatlábat magas logikai szintre húzza fel, ezzel engedélyezve a kommunikációt a szenzor és az Arduino panel között.

Az érzékelő néhány változata csak 3 kivezetéssel rendelkezik, ebben az esetben a felhúzó ellenállást gyárilag beépítették. A DHTXX szenzorok saját egyvezetékes adatátviteli protokollal rendelkeznek. Ez a protokoll precíz időzítést igényel, ezzel azonban nem kell foglalkoznod, mert az általunk a példaprogramokban használt library-k lekezelik az időzítési problémákat.

 

Forráskód

A programodban először meg kell hívnod a DHT library-t, amit az Arduino hivatalos weboldaláról tudsz letölteni (www.arduino.cc). Ezek után definiálnod kell, hogy melyik bemeneti tüskét fogod használni a szenzor kiolvasásához. Programod setup részében inicializálnod kell a soros kommunikációt, mert a program későbbi részében a mért értékek megjelenítéséhez a soros monitort fogjuk használni.

A read22 () függvény használatával a szenzorról érkező értékeket be tudod olvasni, illetve a t és h betűkkel jelölt változókba tölteni. Amennyiben DHT11-es szenzort használsz, akkor a read11 () függvényt kell alkalmaznod. A program végén a mért hőmérséklet és páratartalom értékeket a soros monitor segítségével tudod megtekinteni.

 * You can find the DHT Library from Arduino official website
 * https://playground.arduino.cc/Main/DHTLib
 */
 
#include <dht.h>
#define dataPin 8 // Defines pin number to which the sensor is connected
dht DHT; // Creats a DHT object
void setup() {
  Serial.begin(9600);
}
void loop() {
  int readData = DHT.read22(dataPin); // Reads the data from the sensor
  float t = DHT.temperature; // Gets the values of the temperature
  float h = DHT.humidity; // Gets the values of the humidity
  
  // Printing the results on the serial monitor
  Serial.print("Temperature = ");
  Serial.print(t);
  Serial.print(" *C ");
  Serial.print("    Humidity = ");
  Serial.print(h);
  Serial.println(" % ");
  
  delay(2000); // Delays 2 secods, as the DHT22 sampling rate is 0.5Hz
}

 

Letölthető forráskód [RTF]