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 }