Hőmérsékleti és páratartalom -monitor építése DHT11/DHT22 és Arduino segítségével

A környezeti feltételek, például a hőmérséklet és a páratartalom figyelemmel kísérése elengedhetetlen a különféle alkalmazásokhoz, az otthoni automatizálástól az üvegházhatású menedzsmentig. A sokoldalú Arduino platformon és olyan érzékelőkkel, mint a DHT11 vagy a DHT22, a megbízható hőmérséklet és páratartalom -monitor létrehozása megfizethető és egyszerű. Ebben az útmutatóban átmegyünk a szükséges összetevőkön, a beállítási folyamaton és a monitor életre keltéséhez szükséges kódoláson.

Az összetevőkre szükséged lesz

  • Arduino Uno
  • DHT11 vagy DHT22 érzékelő
  • 10K ohm ellenállás
  • Kenyérlemez és jumper vezetékek
  • LCD kijelző (opcionális)
  • USB -kábel

A DHT11/DHT22 érzékelők megértése

A DHT11 és a DHT22 népszerű érzékelők a hőmérséklet és a páratartalom mérésére. A DHT11 költséghatékony és alapvető alkalmazásokhoz alkalmas, 0-50 ° C hőmérsékleti tartományt kínálva, ± 2 ° C-os pontossággal és páratartalommal, 20-80% ± 5% -os pontossággal. A DHT22 viszont szélesebb hőmérsékleti tartományt biztosít -40–80 ° C, ± 0,5 ° C-os pontossággal és páratartalom 0-100% -kal, ± 2-5% -os pontossággal, így ideálisan igényesebb projektekhez.

Az érzékelő vezetéke Arduino -ba

Follow these steps to connect your DHT sensor to the Arduino:

  1. Teljesítménycsatlakozások: Connect the VCC pin of the DHT sensor to the 5V pin on the Arduino and the GND pin to the ground (GND).
  2. Adat PIN: Csatlakoztassa a DHT -érzékelő adatcsapját az Arduino digitális bemeneti csapjához (általában 2. érintkező).
  3. Pull-up ellenállás: Helyezzen egy 10K ohm ellenállást a VCC és az adatcsap között a stabil adatátvitel biztosítása érdekében.
  4. LCD kijelző (opcionális): Ha LCD -t használ, csatlakoztassa azt a megfelelő Arduino csapokhoz a leolvasások megjelenítéséhez.

Az Arduino programozása

A DHT érzékelő adatainak olvasásához a DHT.h könyvtár, amely egyszerűsíti a folyamatot. Az alábbiakban egy minta kódrészlet található az induláshoz:

// Include the DHT library
#include <DHT.h>

// Define the sensor type and the pin it's connected to
#define DHTPIN 2
#define DHTTYPE DHT22 // Change to DHT11 if you're using that model

// Initialize the DHT sensor
DHT dht(DHTPIN, DHTTYPE);

void setup() {
  // Start serial communication
  Serial.begin(9600);
  // Initialize the DHT sensor
  dht.begin();
}

void loop() {
  // Wait a few seconds between measurements
  delay(2000);

  // Read humidity and temperature
  float humidity = dht.readHumidity();
  float temperature = dht.readTemperature();

  // Check if any reads failed
  if (isnan(humidity) || isnan(temperature)) {
    Serial.println("Failed to read from DHT sensor!");
    return;
  }

  // Print the results to the Serial Monitor
  Serial.print("Humidity: ");
  Serial.print(humidity);
  Serial.print(" %\t");
  Serial.print("Temperature: ");
  Serial.print(temperature);
  Serial.println(" *C");
}

A kód magyarázata:

  • A DHT.h A könyvtárat tartalmazza az érzékelővel való kommunikáció megkönnyítése érdekében.
  • Az adatcsapot és az érzékelő típusát definiáljuk #define.
  • A setup() Funkció, inicializáljuk a soros kommunikációt és a DHT érzékelőt.
  • A loop() A funkció két másodpercenként leolvassa a páratartalmat és a hőmérsékletet, és kinyomtatja azokat a soros monitorra.

Az adatok megjelenítése

A felhasználóbarátabb beállításokhoz megjelenítheti az LCD leolvasásait. Módosítsa a kódot, hogy adatokat küldjön az LCD -nek a soros monitor helyett. Győződjön meg arról, hogy a megfelelő LCD könyvtár telepítve van -e, és ennek megfelelően konfigurálja a csapokat.

Mintakód az LCD megjelenítéséhez:

// Include necessary libraries
#include <DHT.h>
#include <LiquidCrystal.h>

// Define sensor and LCD pins
#define DHTPIN 2
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);

// Initialize the LCD (adjust pin numbers as needed)
LiquidCrystal lcd(12, 11, 5, 4, 3, 6);

void setup() {
  // Start serial communication
  Serial.begin(9600);
  dht.begin();
  // Initialize the LCD
  lcd.begin(16, 2);
  lcd.print("Temp & Humidity");
}

void loop() {
  delay(2000);

  float humidity = dht.readHumidity();
  float temperature = dht.readTemperature();

  if (isnan(humidity) || isnan(temperature)) {
    lcd.clear();
    lcd.print("Sensor Error");
    return;
  }

  // Display on LCD
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Temp: ");
  lcd.print(temperature);
  lcd.print(" C");
  lcd.setCursor(0, 1);
  lcd.print("Humidity: ");
  lcd.print(humidity);
  lcd.print(" %");
}

A beállítás tesztelése

Miután feltöltötte a kódot az Arduino -ba, nyissa meg a soros monitort (ha soros kimenetet használ), vagy figyelje meg az LCD kijelzőt. Látnia kell a valós idejű hőmérsékletet és a páratartalom leolvasását. Győződjön meg arról, hogy a csatlakozások biztonságosak, és az érzékelő helyesen működik. Ha problémákkal találkozik, ellenőrizze duplán a vezetékeket, és ellenőrizze, hogy a helyes érzékelő típus meghatározható-e a kódban.

Fejlesztések és a következő lépések

Most, hogy van alapvető hőmérsékleti és páratartalom -monitorod, vegye figyelembe a következő fejlesztéseket:

  • Adatnaplózás: Csatlakoztassa az Arduino -t egy SD -kártya modulhoz, hogy idővel naplózza az adatokat.
  • Vezeték nélküli megfigyelés: Használjon olyan modulokat, mint az ESP8266 vagy a Bluetooth, hogy adatokat küldjön okostelefonjára vagy felhőalapú szolgáltatásaira.
  • Riasztások: Végezzen el küszöb alapú riasztásokat LED-ek vagy hangjelzők segítségével, hogy értesítse Önt a szélsőséges feltételekről.
  • Több érzékelő: Bővítse be a beállítást, hogy további érzékelőket tartalmazzon olyan paraméterekhez, mint a levegőminőség vagy a fényintenzitás.

Következtetés

A hőmérsékleti és páratartalom -monitor felépítése a DHT11/DHT22 és az Arduino segítségével kiváló projekt a kezdőknek és a rajongóknak egyaránt. Gyakorlati tapasztalatokat nyújt az érzékelő integrációjával, az adatfeldolgozással és a megjelenítési technikákkal. Akár személyes használatra, akár bonyolultabb rendszerek alapjául, ez a projekt bemutatja az Arduino ökoszisztéma erejét és rugalmasságát. Boldog épület!

Hagyj egy megjegyzést

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.