DHT11/DHT22 ve Arduino ile Sıcaklık ve Nem Monitörü Oluşturma

Sıcaklık ve nem gibi çevresel koşulların izlenmesi, ev otomasyonundan sera yönetimine kadar çeşitli uygulamalar için gereklidir. Çok yönlü Arduino platformu ve DHT11 veya DHT22 gibi sensörlerle, güvenilir bir sıcaklık ve nem monitörü oluşturmak hem uygun hem de basittir. Bu kılavuzda, ihtiyaç duyulan bileşenler, kurulum işlemi ve monitörünüzü hayata geçirmek için gereken kodlamada size yol göstereceğiz.

İhtiyacınız olacak bileşenler

  • Arduino uno
  • DHT11 veya DHT22 sensörü
  • 10k ohm direnç
  • Breadboard ve jumper telleri
  • LCD ekran (isteğe bağlı)
  • USB kablosu

DHT11/DHT22 sensörlerini anlamak

DHT11 ve DHT22, sıcaklık ve nemi ölçmek için popüler sensörlerdir. DHT11, maliyet etkin ve temel uygulamalar için uygundur, ± 2 ° C doğruluk ve nem aralığı ile ±% 5 doğrulukla 0-50 ° C sıcaklık aralığı sunar. Öte yandan DHT22, ± 0.5 ° C doğruluk ve nem aralığı ile daha geniş bir sıcaklık aralığı ve ±% 2-5 doğrulukla% 0-100'lük bir sıcaklık sağlar, bu da daha zorlu projeler için idealdir.

Sensörü Arduino'ya bağlama

DHT sensörünüzü Arduino'ya bağlamak için bu adımları izleyin:

  1. Güç Bağlantıları: DHT sensörünün VCC pimini Arduino'daki 5V pimine ve GND pimini yere (GND) bağlayın.
  2. Veri Pin: DHT sensörünün veri pimini Arduino'daki dijital giriş pimine bağlayın (genellikle pim 2).
  3. Çekme direnci: Kararlı veri iletimini sağlamak için VCC ve veri pimi arasına 10 bin ohm direnç yerleştirin.
  4. LCD ekran (isteğe bağlı): Bir LCD kullanıyorsanız, okumaları görüntülemek için uygun Arduino pimlerine bağlayın.

Arduino programlama

DHT sensöründen verileri okumak için, DHT.h süreci basitleştiren kütüphane. Başlamanız için bir örnek kodu snippet'tir:

// 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");
}

Kodun açıklaması:

  • . DHT.h Sensörle iletişimi kolaylaştırmak için kütüphane dahildir.
  • Veri pinini ve sensör türünü kullanarak tanımlıyoruz #define.
  • İçinde setup() İşlev, seri iletişim ve DHT sensörünü başlatırız.
  • . loop() İşlev nem ve sıcaklığı her iki saniyede bir okur ve bunları seri monitöre yazdırır.

Verileri Görüntüleme

Daha kullanıcı dostu bir kurulum için okumaları bir LCD'de görüntüleyebilirsiniz. Seri monitör yerine LCD'ye veri göndermek için kodu değiştirin. Uygun LCD kütüphanesine sahip olduğunuzdan emin olun ve pimleri buna göre yapılandırın.

LCD ekran için örnek kodu:

// 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(" %");
}

Kurulumunuzu test etmek

Kodu Arduino'nuza yükledikten sonra seri monitörü açın (seri çıkışı kullanıyorsanız) veya LCD ekranını gözlemleyin. Gerçek zamanlı sıcaklık ve nem okumalarını görmelisiniz. Bağlantılarınızın güvenli olduğundan ve sensörün doğru çalıştığından emin olun. Sorunlarla karşılaşırsanız, kablolamayı iki kez kontrol edin ve doğru sensör türünün kodunuzda tanımlandığını doğrulayın.

Geliştirmeler ve sonraki adımlar

Artık temel bir sıcaklık ve nem monitörünüz olduğuna göre, aşağıdaki geliştirmeleri göz önünde bulundurun:

  • Veri Günlüğü: Analiz için zaman içinde verileri kaydetmek için Arduino'nuzu bir SD kart modülüne bağlayın.
  • Kablosuz İzleme: Akıllı telefonunuza veya bulut hizmetlerinize veri göndermek için ESP8266 veya Bluetooth gibi modülleri kullanın.
  • Uyarılar: Sizi aşırı koşullar hakkında bilgilendirmek için LED'ler veya buzzerler kullanarak eşik tabanlı uyarılar uygulayın.
  • Çoklu Sensörler: Hava kalitesi veya ışık yoğunluğu gibi parametreler için ek sensörler ekleyecek şekilde kurulumunuzu genişletin.

Çözüm

DHT11/DHT22 ve Arduino ile bir sıcaklık ve nem monitörü oluşturmak, yeni başlayanlar ve meraklılar için mükemmel bir projedir. Sensör entegrasyonu, veri işleme ve ekran teknikleri ile uygulamalı deneyim sağlar. Kişisel kullanım için isterse daha karmaşık sistemler için bir temel olarak, bu proje Arduino ekosisteminin gücünü ve esnekliğini sergiliyor. Mutlu bina!

Yorum bırak

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.